趣味のマイコンいじり

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

nRF24L01+とSTM8S103FでFirmata用の無線Uartを作って見ました

ArduinoのFirmataはPython,PHP,Ruby等でもサポートされておりそれらを利用
すればメモリの容量を気にしないでコードが書けるのでそれらも検討して見たいと
思いました。ただし、通常のFirmataはPCと接続にはUSBケーブルが想定されており
次の無線化する方法を検討して見ました。

Arduino Firmata の無線化Uart での利用>
   無線モジュールのnRF24L01+とSTM8S103F3PのCPUボードを利用して
   ArduinoのFiramataのPCからの制御を無線化する方法を検討して見ました。

  [全体の構成]
   イメージ 1
   1.Firmata用のボードにはArduino Pro Mini クローンボードを利用
   2.PCとの接続にはUSB to Uart のボードを利用
   3.無線デバイスはnRF24L01+のボードを利用
    4.Uart回線用の制御にはSTM8S103F3ボードを利用
    5.HTTPサーバとしてはApacheを実装し、http.conf を必要に応じて編集して
         HTTPサーバのルートにHTMLとJavaScriptのファイルを置く
    6.スマホからWiFiを通じてPCを呼び出して、Firamata用のCPUボードに
         接続されたテスト基板で動作を確認

 
  [使用した主要部品]
   イメージ 2

   1.nRF24L01+無線モジュール
   2.USB to Uart TTL 変換基板
   3.Arduino Pro Mini clone
   4.手作りのオリジナルI/Oテスト基板
        (Red & Green LED, slide switch, pre-set resister が実装)

  [動作状況]
   

<関連資料>
   以前作成した次のESP-01によるWiFi to Uartブリッジの記事のESP-01を
   利用してのWiFiによる無線化の部分を今回のWireless Uart モジュールに
   置き換えて動作確認をしました。
     HTTP化の部分 : ESP-01 WiFi Bridge version

    nRF24L01+の接続等に関しては以前作成した次の記事に合わせました。
     nRF24L01+の部分 : nRF24L01+無線モジュール

<テスト内容と結果>
    ESP-01によるWiFiBridgeの代わりに今回の方法でも、以下の動作をPCから
    Firmataをワイヤレスで動作させる事ができるのを確認できました。

       1.Pro Miniに接続されたLEDのON/OFFの制御
       2.スマホのスライドバーでのPro Miniに接続されたLEDの明るさの制御
       3.スマホからPro Miniに接続されたアナログおよびデジタル入力の確認

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

       1.今回の方法でも以前のWiFiBridgeを利用した場合と同様な制御が可能で
             ある事が判りました。
       2.ただし、nRF24L01+のモジュールでは、同時に送受信ができない為、
             通信方式としては半二重の方式としました。(両端末は通常は受信
             状態にして、送信時に送信モードに切り替える方式)
       3.この時、問題となるのは両端末が同時に送信モードになる事で、それに
             関しては、ランダムな時間遅延による再試行の方法が利用できる事が
             判りました。
       4.また、送信直後に別なデータを送信すると、前回の送信のリトライ中と
             競合して送信データが喪失する事も判り、これに関しては、送信直後に
             別なデータを送信しない時間帯を設ける事で対応できました。
       5.なお、STM8Sのボードでは動作が緩慢で、動作時間にほとんど余裕が
             無い事も判り、別なボードを利用するか、あるいは、アセンブラ
             コードを書いてもう少し動作時間を早くできれば良いと思いました。

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

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

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