趣味のマイコンいじり

安価なマイコンを利用して作成したアプリの紹介です。

nRF24L01+ 無線モジュールでラジコンカーを動かして見ました

2.4GHz帯を利用する無線モジュールが有る事は前から知っていたのですが、
制御が複雑そうなので検討を後回しにしていました。代わりの物として先に
別な無線モジュールを検討したのですが、結局、転送速度が遅かったり、
電源の取り扱いに注意が必要だったりして、十分満足の行くものでは無かったので
こちらの nRF24L01+ のモジュールも調べて見ました。結果としは、プログラム
領域はそれなりに消費しますが、速度や安定性は十分満足の行くもので、色々な
アプリケーションに利用できるもので有る事が判りました。以下は検討状況です。

<nRF24L01+ 無線モジュールの概要>
 購入したnRF24L01+ 無線モジュールは2.4GHzのGFSKでデータの送受信を
   行う為のもので、次の様なものでした。

 [デバイスの概要]
    イメージ 1


   1.利用周波数と変調方式  2.4GHz / GFSK
   2.最大転送速度 2Mbps
   3.インターフェイス  SPI  ~10MHz
   4.電源電圧 1.9V - 3.6V

 [動作検証]
    イメージ 2

   1.2つのCPUボードを用意して一つはジョイスティックの情報の送信、
         もう一つはそれを受信してモーターを駆動
   2.CPUボードは、1ドルCPUボード(CPU:STM8S103F3P6) を利用する
   3.制御対象は、2つのジョイスティックによる左右のモーターの回転方向と速度
   4.ジョイスティックデータ転送は7バイトのパケット転送
   5.SPIインターフェイスは4MHzでRFデータ転送は1Mbps

 [動作状況]
   

<関連資料>
   モジュールの資料は次のネットショップのものを参考にしました。
   (詳しい資料の紹介が有ります。)
   URL : http://www.csun.co.jp/SHOP/2009061924.html

    モジュールのステータスレジスタの情報に関しては次のものを参考にしました。
       URL : http://nrqm.pbworks.com/w/page/4416179/nRF24L01%20%E2%80%93%20STATUS%20Register?mode=embedded

    モジュールのコントロールに関しては次のArduinoのライブラリを移植しました。
       URL : https://github.com/maniacbug/RF24/

<テスト内容と結果>
    今回のモジュールでも、先に検討したUARTによる無線モジュールの場合と
    同様に1ドルCPUボードを利用してラジコンカーを作って見る事にしました。

       1.この送受信モジュールを使ってラジコンカーを作成
       2.制御用のCPUボードとしては、1ドルCPUボードを利用

   動作させた結果としては、次の様なものでした。

       1.モジュールの利用に関しては、ハード的には電源対策等は無しでも
             安定に動作しました。
       2.ただし、制御用のプログラムに関しては、モジュールの機能が盛沢山で
             有る為、SPIのコントロールは多少複雑で、プログラム用のメモリ容量も
             それなりに必要でした。
       3.この無線モジュールを利用すれば、先のRFモジュールの様にアンテナを
             付ける必要も無く、データの転送速度も速くできるので、制御用の
             プログラムが多少複雑になるのを問題にしなければ、大変お勧めで
             有る事が判りました。

 [テストでの機器の接続]
    イメージ 3

     イメージ 4

 [コード類]
     コードの開発にはIARのシステムを利用しました。
  (STM8S103F3P6ボードののコード開発に 関してはこちらの記事
         参照して下さい。)

     Code download URL : https://www.dropbox.com/s/pyqjqpn7l4mkj9y/IAR_Radicon_car_3.zip?dl=0