今までやったことをまとめて,無線ラジコンを作ります.
完成図
まず初めに無線コントローラを作ります.
必要なもの:
・Attiny2313
・タクトスイッチ 4個
・基盤
・振動子(8MHz)
・電池(6P形)
・三端子レギュレータ(5V)
・コンデンサ(100μF,0.1μF)
・バッテリースナップ
・Xbee
・Xbee用2.54mmピッチ変換基板
・1×10ピンソケット 2個
すべて秋月電子通商さんから手に入れることができます.
Attiny2313に以下のプログラムを書き込んでください.
2313_controller.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
#include <avr/io.h> #include <util/delay.h> void AVR_init(void) { DDRB=0b11110000; PORTB=0b00001111; } void USART_init(void) { unsigned int baud; baud=8000000/16/9600-1; //ボーレートの計算(9600) UBRRH=(unsigned char)(baud>>8); UBRRL=(unsigned char)baud; UCSRC=(1<<USBS)|(3<<UCSZ0); UCSRB=(1<<RXEN)|(1<<TXEN); } void Utx(unsigned char data) //データ送信 { while(!(UCSRA & (1<<UDRE)) ); UDR=data; } unsigned char Urx(void) //データ受信 { while(!(UCSRA & (1<<RXC)) ); return UDR; } int main(void) { AVR_init(); USART_init(); while(1) { if(bit_is_set(PINB,0) == 0) //PB0のSW押すとPB0がLowになる { Utx('3');//右折 } if(bit_is_set(PINB,1) == 0) { Utx('2');//左折 } if(bit_is_set(PINB,2) == 0) { Utx('1');//後進 } if(bit_is_set(PINB,3) == 0) { Utx('4');//前進 } _delay_ms(20); } } |
次に以下の回路を作ってください.
回路図
外観
回路に電池を繋いだら,PCにXbeeを接続します.
X-CTUのソフトを起動し,通信してみましょう.
Terminalタブ上にしたら,コントローラのタクトスイッチを押します.任意の数字がTerminal上に出力されたらコントローラは完成です.
次はラジコン本体を作ります.
おすすめ図書(よかったらどうぞ)