お気楽マイコンボードプログラミング [ESPBASIC]
<ESP-BASICの紹介>
ESP8266のチップ上で動くファームウェアとして「ESPBASIC」が
ネット上で紹介されていたので調べて見ました。このファームウェア
を利用すると、Web上で簡単にESP8266のプログラムを特別なIDE
不要で組む事ができ、とても面白いと思いました。その時に調べた
内容は次の様なものでした。
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やスマホのブラウザから直接
コードを打ち込めるので非常に使い易くて魅力的だと思いました。
[機器の接続]
サンプルプログラムでの配線は次の様なものでした。
[ファームウェアのダウンロード]
ESPBASICのファームウェアの書き込みツールは、ESPBASICのWeb
ページからダウンロード可能です。ただし、手持ちの数種類のESP8266の
ボードで確認した所、ESP-01以外では書き込みが出来ませんでした。
その為、別の書き込みツールを使う事にしましたが、ファームウェアの
新しいものが公開されているページが見つからなかった(見つかった
GitHubは4年以上前のものでした。)ので、下記の様にESPBASICの
書き込みツールを一度開くと展開されるものを利用しました。
[ファームウェアの書き込み]
ESPBASICのファームウェアの書き込みは、ESPBASICからのツールが
使えない場合、下記の様に、ESPRESSIFの「Flash Download Tools」を
利用します。「SPI MODE」を「DIO」にして、先にESPBASICの書き込み
ツールから展開した該当のファームウェアを指定して、一旦 消去してから
書き込みをスタートさせます。なお、この時にMACアドレスがツールの
下窓に表示されますので、これをチェックして置きます。
(後でCPUボードのIPアドレスの確認で必要となります。)
書き込みが終了したら、CPUをリセットして下さい。(念の為)
[ファームウェアの設定]
ファームウェアの書き込みが終わったら、APモードでの利用が可能と
なっていますが、他のWIFI機器と一緒に使いたい場合はSTAモードでの
利用に設定する為、下記の様にお使いのWIFIネットワークのSSIDと
パスワードの設定が必要となります。 その為の手順は次の様になります。
1.PC(またはスマホ)のAPをCPUボードからのものに切り替えます。
(パスワードは不要。MACアドレスがCPUボードのSSID名に表示
されていますので、書き込みツールで表示されたAPモード時の
情報により確認できます。)
2.アクセスポイントをCPUボードからのものに切り替えたら、
ブラウザを起動して、CPUボードのAPモード時のデホルトの
IPアドレス「192.168.4.1」のページを読み込みます。
ESPBASICの先頭ページが出てきますの、「SETTING」
ページに切り替えて、お使いのWIFI ネットワークのSSIDと
パスワードを設定・保存して、リセットでCPUボードを
再起動します。
3.次に、PC(またはスマホ)のAPをお使いのWIFIに戻して、
お使いのWIFIネットワークからCPUボードに割り振られた
IPアドレスをチェックします。
4.ブラウザのページをWIFIネットワークで割り振られたCPU ボードの
IPアドレスに切り替えて先のAPモード時と同じページが表示
されれば、設定は終了で、以後お使いのネットワークを変えない
限り、そのページを通じてCPUボードとのやり取りをする事と
なります。(お使いのネットワークを変えてSSIDとパスワードが
変わった場合、CPUボードはAPモードで起動される為、再設定と
なります。また、DHCPのルータを再起動してIPアドレスの割り
付けが変更となった場合は割り振られたCPUボードのIPアドレスを
再検索する事となります。)
[コード作成上の工夫]
コード作成は非常に簡単に行えましたが、少し検討が必要な部分が
2カ所有りました。
1.無限ループの構成がWebから参考にしたものでは上手く行かず
別な方法としました。
2.シリアルデータ受信に割り当てられているポートを別の用途に
利用しようとすると動作が非常に緩慢になるため、ダミーの
シリアルデータ受信の初期化処理を付け加えて対応しました。
(対応後は動作の緩慢さは無くなりました。)
[コード類]
Code download URL : https://drive.google.com/open?id=1zmV2vHNL7ZSkfP-GqWgRgFE5ndydrAqk