趣味のマイコンいじり

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

Pythonでfirmataを動かしてみました

先にFirmata用の無線Uartを作って見ましたが、fimataへのアクセスに関しては
最初に作ったWiFiのUartブリッジの時と同じnode.jsによるものでした。今回は
このnode.jsによる部分をPythonを使ったものに変更して見ました。Python
関しては、他の記事に紹介されている様に機能拡張用のパッケージが沢山用意
されていて使い勝手が非常に良い事が判りました。以下がその内容です。

Python での Firmata コントロール
   「Wireless Uart for Firmata」でFrimataへのアクセスに使っていたnode.jsの
     部分をPythonを使ったものに変更して見ました。

  [全体の構成]
   イメージ 1

   1.Firmata用のボードにはArduino Pro Mini クローンボードを利用
   2.PCとの接続にはUSB to Uart のボードを利用
   3.無線デバイスはnRF24L01+のボードを利用
   4.Uart回線用の制御にはSTM8S103F3ボードを利用
   5.Web用にはFlask+SocketIO、Firmata用にはPyMataのパッケージを利用
   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ブリッジは次の記事です。
      WiFi Uart ブリッジ : ESP-01 WiFi Bridge version

     前回作成したnode.jsによるFirmataアクセスは次の記事です。
      node.jsコード : Wireless Uart for Firmata

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

Python関連のインストール>   
   1.Pythonのインストール
         イメージ 3

   2.関連パッケージのインストールとpipコマンドのアップグレード
         イメージ 4
         pipの実行時に警告が出て気になった場合は上のアップグレードを実行

   3.FirmataPlusのインストール
         PyMataのライブラリのマニュアルに従ってインストール
         イメージ 5

<テスト内容と結果>
    Wireless Uart for Firmata での node.js の代わりにPythonを使っても、
    以下の動作が同様できるのを確認できました。

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

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

       1.今回の方法でも以前の node.js を利用した場合と同様な制御が
             可能である事が判りました。
       2.また、Pytnon のパッケージを利用すれば、Apache 等のHTTPサーバは
             必要としない事も判りました。
       3.その他、Pythonには様々なパッケージが用意されており、簡単に機能を
             拡張できるのでとても便利であると思いました。

  [テストでの機器の接続]
   Wireless Uart for Firmataの場合と同じものを利用しました。
    イメージ 6

  [Wireless Uart board へのコードの書き込み]
   イメージ 12

  [コードの変更]
   イメージ 7

  [コード構造]
   イメージ 8
  [Serialポートの設定]
   イメージ 9

  [PCのIPアドレスの確認]
   イメージ 10

  [テストの実行]
   イメージ 11

  [コード類]