閲覧総計:16677  (本日:1  昨日:0)


【応用】ラジコンカー

214908913_145.jpg

【目次】(項目をクリックすると飛べます)

無線送信機

無線送信機を設計、製作しました。
2つのスイッチを用意し、左右のモータを独立に前進・後進
制御する事で、ラジコンカーを自由に操縦出来る様に考えてみました。

アンテナは直径1ミリの鉄の針金で、長さ約15僂箸靴泙靴拭
06/11/03

211575269_18.jpg211575269_17.jpg211575269_165.jpg
/** 
* 無線データ送信(車の操縦)
* 
* PIC 16F628A 
* 発信器:内臓4MHz 
* 電源:乾電池3本(4.5V) 
* switch: RA0,RA1,RA2,RA3 
* LED: RB6 
*  
* Device Flags: _BODEN_OFF _BOREN_OFF _CP_OFF _PWRTE_ON _WDT_OFF 
*        _LVP_OFF _MCLRE_OFF _INTRC_OSC_NOCLKOUT 
* 
* 言語 MikroC v2.1 
*/ 
void main() { //メインプログラム 
 PORTA = 0b00000000; //PORTAの中身をきれいにする 
 PORTB = 0b00000000; //PORTBの中身をきれいにする 

 CMCON = 0b00000111; //PORTAをデジタル入出力使用に設定 

 TRISA = 0b00000001; //RA0を1:入力に、他を0:出力に設定 
 TRISB = 0b00000010; //PORTB RB1:入力、他7ヶは出力設定 

 Usart_Init(2400); //通信速度を2400 band rateに設定 

 do { //doとwhileの間を繰り返す 
  if(PORTA.F0 == 1) { //右前進 
   if(PORTA.F1 == 1) { //左前進 
    Usart_Write('A'); //A:左右前進を送信 
   } else { 
    if(PORTA.F3 == 1) { //左後進 
     Usart_Write('B'); //B:左後進、右前進を送信 
    } else { 
     Usart_Write('C'); //C:右前進を送信 
    } 
   } 
  } else { //右前進off 
   if(PORTA.F1 == 1) { //左前進 
    if(PORTA.F2 == 1) { //右後進 
     Usart_Write('D'); //D:左前進、右後進を送信 
    } else { 
     Usart_Write('E'); //E:左前進を送信 
    } 
   } else { 
    if(PORTA.F2 == 1) { //右後進 
     if(PORTA.F3 == 1) { //左後進 
      Usart_Write('F'); //F:左後進、右後進を送信 
     } else { 
      Usart_Write('G'); //G:右後進を送信 
     } 
    } else { //右後進off 
     if(PORTA.F3 == 1) { //左後進 
      Usart_Write('H'); //H:左後進を送信 
     } else { 
      Usart_Write(0); //ストップ(off) 
     } 
    } 
   } 
  } 
  Delay_ms(10); //10ミリ秒待つ 
  PORTB.F6 = ~PORTA.F0; //発光ダイオード点滅 
 } while(1); //doとwhileの間を繰り返す 
} //メイン終わり 

★この情報は役に立ちましたか?

選択肢 投票
はい 32  
いいえ 12  

ラジコンカー本体

213494308_179.jpg213494308_225.jpg213494308_171.jpg

操縦の方も満足です。応答も速いし、前へ後ろへ右へ左へ自由自在。
急速回転も出来ます。(無理な運転をするとキャタピラがはずれる
のが難点)無線も5〜6mは届きます。 06/11/03

/** 
* 無線データ受信、車動作 
* 
* PIC 16F628A 
* 発信器:内臓4MHz 
* 電源:乾電池4本(6.0V) 
* 右モータ: RB0, RB3 左モータ: RB4, RB5 
* LED: RB6 
*  
* Device Flags: _BODEN_OFF _BOREN_OFF _CP_OFF _PWRTE_ON _WDT_OFF 
*        _LVP_OFF _MCLRE_OFF _INTRC_OSC_NOCLKOUT 
* 
* 言語 MikroC v2.1 
*/ 
void main(){ //メインプログラム 
 unsigned short int data; 

 PORTB = 0b00000000; //PORTBの中身をきれいにする 
 TRISB = 0b00000010; //PORTB RB1:入力、他7ヶは出力設定 

 //稼働確認 1秒前進 
 PORTB = 0b00100001; //左前進、右前進 
 Delay_ms(1000); //1秒待つ 
 PORTB = 0b00000000; //ストップ(OFF) 

 Usart_Init(2400); //通信速度を2400 band rateに設定 

 do { //doとwhileの間を繰り返す 
  if(Usart_Data_Ready()){ //受信状態の確認 
   data = Usart_read(); //データの受信 

   switch(data){ //受信データの内容でA-Hの動作 
    case 'A': 
     PORTB = 0b00100001; //左前進、右前進 
     break; 
    case 'B': 
     PORTB = 0b00010001; //左後進、右前進 
     break; 
    case 'C': 
     PORTB = 0b00000001; //右前進 
     break; 
    case 'D': 
     PORTB = 0b00101000; //左前進、右後進 
     break; 
    case 'E': 
     PORTB = 0b00100000; //左前進 
     break; 
    case 'F': 
     PORTB = 0b00011000; //左後進、右後進 
     break; 
    case 'G': 
     PORTB = 0b00001000; //右後進 
     break; 
    case 'H': 
     PORTB = 0b00010000; //左後進 
     break; 
    default : 
     PORTB = 0b00000000; //ストップ(OFF) 
     break; 
   } 
  } 
  PORTB.F6 = ~PORTB.F0; 
 } while(1); //doとwhileの間を繰り返す 
} //メインプログラム終わり

★この情報は役に立ちましたか?

選択肢 投票
はい 9  
いいえ 1  
  • 質問なのですが、void mainの前には何を書けばいいのですか? -- 2012-02-03 (金) 09:53:13

無線ユニットの考察

PIC工作の無線通信に利用される無線ユニットについて調べた所、500円〜数千円の
315MHz AM送・受信機が手頃である事が分かった。

具体的には
1.Strawberry-linux販売の
送信機@500円、受信機@500円、送受信機合計で1,000円と非常に安価な
315MHz AM送受信機と
http://strawberry-linux.com/shop/index.php?c=rf&s=date&p=1&r=1&page=

2.IPI Shop販売の
送信機@1,200円 AM-RT5-315
受信機@1,400円 AM-HRR3-315
送受信機合計で2,600円の315MHz AM送受信機があります。
http://www.ipishop.com/rfmodule.html

IPI Shop販売の送受信機の活用事例はインターネット上にも多数紹介されて
おります。
http://picfun.com/equipj44.html
http://picfun.com/picbook9.html
http://www.suwa-koubou.jp/abrams/abrams2.html

3.NAVI SYSTEM販売の
送信機@920円 NVT200B-315
受信機@2,300円 NVR220-315
送受信機合計で3,220円の315MHz AM送受信機があります。
http://www.y-navi.co.jp/Product01.htm
(IPI Shop販売品とほぼ同等品)

NAVI SYSTEM販売の送受信機の活用事例は
http://www.d4.dion.ne.jp/~chaos/rccom.htm

【最初は活用事例の多い送受信機を利用】
ラジコンカー製作にあたり最初は活用事例の多いIPI Shop販売の315MHz AM
送受信機を購入し利用しました。
結果、無線通信は安定に稼動し目的を達成しました。

【安価な送受信機は安定稼働が出来なかった】
無線通信がうまく動く事が確認されたので、次にStrawberry-linux販売の
送信機@500円、受信機@500円、送受信機合計で1,000円の安価な送受信機
を購入し、稼働安定性を確認してみました。

この送受信機の受信機の方には受信感度を調節する(?)ボリュームが付いて
います。このボリュームを調節し最適な受信感度に設定するのですが、
結局最適受信ボリューム位置を見つけ出す事が出来ませんでした。
'A'信号を最適に受信出来る位置に調節すると'B','C'信号の受信が不安定
になり、'B'信号を最適に受信出来る位置に調節すると、今度は'A','C'信号
の受信が不安定になってしまいます。
いろいろ調節してみたのですが、結局最適ボリューム位置を求める事が
出来ず、今回はこのStrawberry-linux販売の送受信機の利用を一時あき
らめる事にしました。

しかし、このStrawberry-linux販売の送受信機は安価である為是非
利用して見たいです。USART通信ではなく、独自のパルス通信ロジック
で利用するのが良いのかもしれません。
時間を見付けて再チャレンジして見ようと思います。 06/11/03

★この情報は役に立ちましたか?

選択肢 投票
はい 10  
いいえ 4  

ハンドル操作の事例

【備忘】08/10/17
タミヤ工作セットとRCサーボのハンドル事例(赤外通信も参考に)08/10/17 
http://www.eleki-jack.com/mycom2/2008/08/pic1_1.html