趣味のマイコンいじり

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

お気楽マイコンボードプログラミング [ESPBASIC]

<ESP-BASICの紹介>  

    ESP8266のチップ上で動くファームウェアとして「ESPBASIC」が
    ネット上で紹介されていたので調べて見ました。このファームウェア
    を利用すると、Web上で簡単にESP8266のプログラムを特別なIDE
    不要で組む事ができ、とても面白いと思いました。その時に調べた
    内容は次の様なものでした。

     f:id:I_Satoh:20191126124707p:plain

  1.IDEはCPUのファームウェア内に有り、別途IDEは不要
  2.コード開発はWIFIを利用してWebページ上で行い、CPUボードからの
            配線は不要
  3.ファームウェアはESP8266を搭載したボードで可能

 [動作状況]
    

<関連資料>

    1.ESPBASIC
            URL : http://www.esp8266basic.com/

    2.ESPRESSIF(Flash tool の提供元)
            URL : https://www.espressif.com/en

    3.IPチェックツール(Advanced IP Scanner)
            URL : https://www.advanced-ip-scanner.com/jp/

<テスト内容>

  ESPBASICの動作の検証に関しては次の事を目標としました。

      1.手持ちの色んなESP8266搭載ボードでファームウェア
             インストールできる事を確認
      2.簡単な例題を用意して、そのプログラムを開発する時の状況を確認
      3.数種類のアプリケーションプログラムを組んで見て、それの動作状況
             を確認

    その為のプログラムサンプルとしては、次のものを用意して対応しました。

      1.ブリンクコントロールオンボード上のLEDのLチカ)
      2.PWM(LED輝度)コントロール
      3.センサー(DHT11)入力
      4.サーボモータコントロール
      5.OLEDコントロール
      6.DCモータ(2WDカー)コントロール

     結果としては、非常に簡単にプログラムを組む事ができ、それは期待以上
     のものでとても面白いと思いました。ただし、ESPBASICのページから
     提供されていた書き込みツールでは、手持ちのESP-01以外にはファーム
     ウェアの書き込みが出来なかったので、別の方法を検討する必要が
     有りました。また、Web上での開発なので、シリアルポートを一般のI/O
     として利用して見た所、シリアルポートの動作も同時に働いている様で、
     シリアルポートデータの初期化がダミーで必要となる事も判りました。
     (それが無いと動作がとても緩慢となりました。)
     いずれにしても、特別なIDEは不要で、PCやスマホのブラウザから直接
     コードを打ち込めるので非常に使い易くて魅力的だと思いました。

 [機器の接続]
     サンプルプログラムでの配線は次の様なものでした。 

    f:id:I_Satoh:20191126130307p:plain

 [ファームウェアのダウンロード]
      ESPBASICのファームウェアの書き込みツールは、ESPBASICのWeb
      ページからダウンロード可能です。ただし、手持ちの数種類のESP8266の
      ボードで確認した所、ESP-01以外では書き込みが出来ませんでした。
      その為、別の書き込みツールを使う事にしましたが、ファームウェア
      新しいものが公開されているページが見つからなかった(見つかった
      GitHubは4年以上前のものでした。)ので、下記の様にESPBASICの
      書き込みツールを一度開くと展開されるものを利用しました。 

      f:id:I_Satoh:20191126130814p:plain

 [ファームウェアの書き込み]
      ESPBASICのファームウェアの書き込みは、ESPBASICからのツールが
      使えない場合、下記の様に、ESPRESSIFの「Flash Download Tools」を
      利用します。「SPI MODE」を「DIO」にして、先にESPBASICの書き込み
      ツールから展開した該当のファームウェアを指定して、一旦 消去してから
      書き込みをスタートさせます。なお、この時にMACアドレスがツールの
      下窓に表示されますので、これをチェックして置きます。
      (後でCPUボードのIPアドレスの確認で必要となります。)

      f:id:I_Satoh:20191126130610p:plain

      書き込みが終了したら、CPUをリセットして下さい。(念の為)

 [ファームウェアの設定]
      ファームウェアの書き込みが終わったら、APモードでの利用が可能と
       なっていますが、他のWIFI機器と一緒に使いたい場合はSTAモードでの
       利用に設定する為、下記の様にお使いのWIFIネットワークのSSID
       パスワードの設定が必要となります。 その為の手順は次の様になります。

        1.PC(またはスマホ)のAPをCPUボードからのものに切り替えます。
              (パスワードは不要。MACアドレスがCPUボードのSSID名に表示
                  されていますので、書き込みツールで表示されたAPモード時の
                  情報により確認できます。)                

                f:id:I_Satoh:20191126131422p:plain

   2.アクセスポイントをCPUボードからのものに切り替えたら、
                ブラウザを起動して、CPUボードのAPモード時のデホルトの
                 IPアドレス「192.168.4.1」のページを読み込みます。
                 ESPBASICの先頭ページが出てきますの、「SETTING」
                 ページに切り替えて、お使いのWIFI ネットワークのSSID
                 パスワードを設定・保存して、リセットでCPUボードを
                 再起動します。                

                 f:id:I_Satoh:20191126131643p:plain

        3.次に、PC(またはスマホ)のAPをお使いのWIFIに戻して、
                お使いのWIFIネットワークからCPUボードに割り振られた
                IPアドレスをチェックします。              

                  f:id:I_Satoh:20191126131848p:plain

        4.ブラウザのページをWIFIネットワークで割り振られたCPU ボードの
                IPアドレスに切り替えて先のAPモード時と同じページが表示
                されれば、設定は終了で、以後お使いのネットワークを変えない
                限り、そのページを通じてCPUボードとのやり取りをする事と
                なります。(お使いのネットワークを変えてSSIDとパスワードが
                変わった場合、CPUボードはAPモードで起動される為、再設定と

                なります。また、DHCPのルータを再起動してIPアドレスの割り
                付けが変更となった場合は割り振られたCPUボードのIPアドレス
                再検索する事となります。)

 [コード作成上の工夫]
      コード作成は非常に簡単に行えましたが、少し検討が必要な部分が
      2カ所有りました。

        1.無限ループの構成がWebから参考にしたものでは上手く行かず
               別な方法としました。
        2.シリアルデータ受信に割り当てられているポートを別の用途に
               利用しようとすると動作が非常に緩慢になるため、ダミーの
               シリアルデータ受信の初期化処理を付け加えて対応しました。
              (対応後は動作の緩慢さは無くなりました。)              

                f:id:I_Satoh:20191126132355p:plain

[コード類]
Code download URL : https://drive.google.com/open?id=1zmV2vHNL7ZSkfP-GqWgRgFE5ndydrAqk