블루투스 통신을 이용했다.
모바일에서 블루투스로 a,b,c,d,e,f등을 보내면 그에 맞게 앞바퀴를 움직인다.
ATmega8에 크리스탈을 달고 16Mhz를 이용해 구성했다.
////
#define F_CPU 16000000
#include <avr/io.h>
#include <avr/delay.h>
#include <avr/interrupt.h>
#define DELAY1 30
#define DELAY2 50
#define DELAY3 100
#define DELAY4 200
#define DELAY5 300
volatile unsigned char RxData=0, RxFlag=0, DataFlag=0;
volatile unsigned char TimerFlag=0;
ISR(USART_RXC_vect)
{
RxData=UDR;
UART_Tx(RxData);
if(RxData == 'a'){DataFlag=1;}
else if(RxData == 'b'){DataFlag=2;}
else if(RxData == 'c'){DataFlag=3;}
else if(RxData == 'd'){DataFlag=4;}
else if(RxData == 'e'){DataFlag=5;}
else if(RxData == 'f'){DataFlag=6;}
else if(RxData == 'B'){DataFlag=7;}
else if(RxData == 'C'){DataFlag=8;}
else if(RxData == 'D'){DataFlag=9;}
else if(RxData == 'E'){DataFlag=10;}
RxFlag=1;
}
void UART_Tx(char TxData){ while(!(UCSRA&(1<<UDRE))); UDR=TxData;}
void UART_Init(void)
{
UCSRA=0;
UCSRB=(1<<RXCIE)|(1<<RXEN)|(1<<TXEN);
UCSRC=(1<<UCSZ1)|(1<<UCSZ0);
UBRRH=0;
//UBRRL=8; //115200bps
UBRRL=103; //9600bps
}
int main(void)
{
DDRB=0xff;
UART_Init();
sei();
while(1)
{
if(RxFlag==1)
{
if(DataFlag==1) {PORTB=0x01; _delay_ms(DELAY3); PORTB=0x00;}
else if(DataFlag==2){PORTB=0x01; _delay_ms(DELAY4); PORTB=0x00;}
else if(DataFlag==3){PORTB=0x02; _delay_ms(DELAY3); PORTB=0x00;}
else if(DataFlag==4){PORTB=0x02; _delay_ms(DELAY4); PORTB=0x00;}
else if(DataFlag==5){PORTB=0x01; _delay_ms(DELAY5); PORTB=0x00;}
else if(DataFlag==6){PORTB=0x02; _delay_ms(DELAY5); PORTB=0x00;}
/*
else if(DataFlag==7){PORTB=0x02; _delay_ms(DELAY2); PORTB=0x00;}
else if(DataFlag==8){PORTB=0x02; _delay_ms(DELAY3); PORTB=0x00;}
else if(DataFlag==9){PORTB=0x02; _delay_ms(DELAY4); PORTB=0x00;}
else if(DataFlag==10){PORTB=0x02; _delay_ms(DELAY5); PORTB=0x00;}
*/
DataFlag=0;
RxFlag=0;
}
}
}
'개발 > HW 개발' 카테고리의 다른 글
AVR / ATmega2560 / 2012 창의적종합설계대회 / 의료시스템 개발 / 교내대회 금상 (0) | 2015.01.23 |
---|---|
AVR / ATmega8 / 솔라카 만들기 / 한화케미컬 솔라카경진대회 (0) | 2015.01.23 |
AVR / ATmega8 / 솔라카 만들기 / 솔라셀 전력측정 및 디자인 (0) | 2015.01.23 |
AVR / ATmega128개발 / 유아사고방지로봇 동작영상 (0) | 2015.01.23 |
AVR / ATmega128개발 / 유아사고방지로봇 실사례 적용 (0) | 2015.01.23 |