nRF24L01+ 無線モジュールでラジコンカーを動かして見ました
2.4GHz帯を利用する無線モジュールが有る事は前から知っていたのですが、
制御が複雑そうなので検討を後回しにしていました。代わりの物として先に
別な無線モジュールを検討したのですが、結局、転送速度が遅かったり、
電源の取り扱いに注意が必要だったりして、十分満足の行くものでは無かったので
こちらの nRF24L01+ のモジュールも調べて見ました。結果としは、プログラム
領域はそれなりに消費しますが、速度や安定性は十分満足の行くもので、色々な
アプリケーションに利用できるもので有る事が判りました。以下は検討状況です。
<nRF24L01+ 無線モジュールの概要>
購入したnRF24L01+ 無線モジュールは2.4GHzのGFSKでデータの送受信を
行う為のもので、次の様なものでした。
[デバイスの概要]
1.利用周波数と変調方式 2.4GHz / GFSK
2.最大転送速度 2Mbps
3.インターフェイス SPI ~10MHz
4.電源電圧 1.9V - 3.6V
[動作検証]
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モジュールの様にアンテナを
付ける必要も無く、データの転送速度も速くできるので、制御用の
プログラムが多少複雑になるのを問題にしなければ、大変お勧めで
有る事が判りました。
[テストでの機器の接続]
[コード類]
コードの開発にはIARのシステムを利用しました。
(STM8S103F3P6ボードののコード開発に 関してはこちらの記事を
参照して下さい。)
Code download URL : https://www.dropbox.com/s/pyqjqpn7l4mkj9y/IAR_Radicon_car_3.zip?dl=0
制御が複雑そうなので検討を後回しにしていました。代わりの物として先に
別な無線モジュールを検討したのですが、結局、転送速度が遅かったり、
電源の取り扱いに注意が必要だったりして、十分満足の行くものでは無かったので
こちらの nRF24L01+ のモジュールも調べて見ました。結果としは、プログラム
領域はそれなりに消費しますが、速度や安定性は十分満足の行くもので、色々な
アプリケーションに利用できるもので有る事が判りました。以下は検討状況です。
<nRF24L01+ 無線モジュールの概要>
購入したnRF24L01+ 無線モジュールは2.4GHzのGFSKでデータの送受信を
行う為のもので、次の様なものでした。
[デバイスの概要]
1.利用周波数と変調方式 2.4GHz / GFSK
2.最大転送速度 2Mbps
3.インターフェイス SPI ~10MHz
4.電源電圧 1.9V - 3.6V
[動作検証]
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モジュールの様にアンテナを
付ける必要も無く、データの転送速度も速くできるので、制御用の
プログラムが多少複雑になるのを問題にしなければ、大変お勧めで
有る事が判りました。
[テストでの機器の接続]
[コード類]
コードの開発にはIARのシステムを利用しました。
(STM8S103F3P6ボードののコード開発に 関してはこちらの記事を
参照して下さい。)
Code download URL : https://www.dropbox.com/s/pyqjqpn7l4mkj9y/IAR_Radicon_car_3.zip?dl=0