IchigoJam用のWi-Fiシールド「MixJuice」のファームウェアを書き換えて、Windows PCから簡単にIchigoJam用のプログラムを転送する試作品を作成してみました。
そのうち、MicJackや、MixJuiceでも対応されると思いますが、それまでに使ってみたい人や、似たようなものを作成している人向けの試作品です。
※まだまだ不具合が存在していると思います。
※MixJuice本来の機能は含まれていません(MicJackに期待しましょう)。
関連情報
robo8080さんのTwitter:MicJack:MixJuice:
できること
もととなるスケッチは、ESP-WROOM-02を使って作成した各種IoTセンサから得られた情報を、IchigoJamへ転送し、テレビ画面に表示するために作成しました。
WebブラウザからIchigoJamへBASICコマンドを送って、その応答を確認することもできます。
以下、どのようなことができるかをまとめました。
機能1.各種IoTセンサからの受信データの表示
基本機能であるIoTセンサからの情報表示のデモです。ブレッドモードの中央にあるマイコンにはIchigoJam BASICのファームウェアを、右側にあるモジュールには専用のスケッチを書き込みます。
各種IoTセンサから受信したデータをテレビに表示する機能の様子
機能2.ブラウザからIchigoJamをコントロール
IchigoJamへ「? VER()」を送信し、バージョン情報「12025」を受信した様子
ブラウザ画面の「IchigoJam STATUS」はIchigoJamからの応答を表示する部分です。また、「HTTP GET」はIchigoJamへBASICコマンドを送信するための手段です。5つの固定命令ボタンのほか、テキストボックスにBASICコマンドを入力して実行することもできます。
「HTTP POST」は短いプログラムの簡易転送用です。長いプログラムや特殊文字、記号が含まれたプログラムを転送することはできません。
「FTP Server」の部分が、今回、新たに追加した機能です。詳しくは後述します。
「NTP Client」は、時刻を取得する機能です。ブラウザの下部に現在時刻を表示します(今のところ、ファイル共有機能との連携はしていません)。
機能3.ファイル共有機能
今回、追加したFTP Server機能です。Windows PCなどからファイルをアップロードしたり、ダウンロードすることができます。
FTPサーバ部にはライブラリ(https://github.com/nailbuster/esp8266FTPServer)を使用しましたが、もともとはFileZilla専用でファイル一覧をFTPのMLSDコマンドで取得する仕様でした。Windowsで使用するLISTコマンドがうまく動作しておらず、問題個所を見つけて以降も、私には、なかなか対策することができませんでした。そんな中、IchigoJam FANグループの尾野さんから「robo8080さんが対策済」との情報を得て、Twitter内(https://twitter.com/robo8080/status/777444520396926976)でrobo8080さんの情報を見つけ、ようやくWindowsでも共有できるようになりました。
この機能を使って、Windowsパソコンで作成したIchigoJam BASIC用のプログラムをMixJuiceへ保存し、IchigoJamから容易にアクセスすることができるようになりました。
これで、制約だらけだったHTTP POSTによるプログラム機能は、拡張しないまま不要になってしまいました。
使用方法
製作方法の説明の前に、使用方法から説明します。初めて使用する場合は、ファイルシステムの初期化が必要です。IchigoJam BASICで以下のコマンドを実行して下さい。「MJ FORMAT」の部分は必ず大文字で入力します。
?"MJ FORMAT
フォーマットが完了したら、無線LANアクセスポイントへ接続します。下記のssidとpassは、お手持ちの無線LANアクセスポイントのものを使用してください。一度、設定すれば、ファイルシステム内にSSID(ssid)とパスワード(pass)を保存します。暗号化していないので、ESPモジュールを廃棄する際は少なくともFORMATを再実行してください。
?"MJ APC ssid pass
MJ APC命令を実行後、しばらくすると、ネットワークに接続し、MixJuiceに割り当てられたIPアドレスと、現在時刻が表示されます。
?"MJ APC ssid passMJ APC ssid passOK'Connecting to ssid''''''''''''''''''''''''' …………………………………………………………..(進捗表示)'192.168.XX.XX ……………………………………………………..(MixJuiceのIPアドレス)'NTP OK'HTTP Serv.'UDP listen'FTP Serv.' 2016/11/27,12:23:47 …………………………………………(現在の時刻)
ファイルシステムへアクセスする
に、インターネットブラウザからMixJuiceのIPアドレスへアクセスして、動作確認してみてください。
に、インターネットブラウザからMixJuiceのIPアドレスへアクセスして、動作確認してみてください。
ファイルシステムへアクセスするには、エクスプローラへIPアドレスとともに以下のように入力します。ブラウザにも表示されるので、コピー&ペーストすればよいでしょう。FTP用のアカウントとパスワードはソースコード内で固定です。長期的に使用する場合は変更してください。ただし、SSIDやWindowsアカウントとは異なるものにしたほうが良いでしょう。
ftp://cqpub:bokunimowakaru@192.168.XX.XX/
アクセスに成功したら、BASICプログラムをファイルシステムへコピーしてください。プログラムの拡張子は「txt」もしくは「bas」にしてください。
IchigoJam側からファイルシステム内のファイルを確認するには、下記の「MJ FILES」コマンドを使用します。
?"MJ FILESMJ FILESOK'?"MJ LOAD test.txt'?"MJ LOAD test.bas'?"MJ LOAD log.csv
以下のように「MJ LOAD」コマンドを入力する、または上記からダウンロードしたい、プログラムやファイルの先頭の「'」を消して「Enter」を押して、IchigoJamへファイルをダウンロードすることができます。
NEWOK?"MJ LOAD test.txtMJ LOAD test.txtOK10 ?"Wataru Kunino"20 end
IchigoJamからファイルを保存する機能については、そのうち実装するかもしれませんが、MicJackが登場したら、これが最終版になるかもしれないです。きっと、尾野さん次第です。
必要なハードウェア
- IchigoJam U または IchigoJam T
- Mix Juice
- 無線LANアクセスポイント
- USB シリアル変換アダプタ (AE-FT234X)
- シリアルを接続するためのジャンパ線
- パソコン(ファームウェアを書き込むために必要)
ファームウェアを書き込む方法
MixJuiceをIchigoJamに「接続しない状態」で、MixJuiceのIO 0(CN4の一番奥)をGNDに接続し、USBシリアル変換アダプタを接続します。MixJuiceの電源を入れると、ファームウェア書き換えモードで起動し、LED 1が薄く点灯します。
書き込むためのファームウェアは下記からダウンロードすることができます。
ファームウェア(ソースコード含む)ダウンロードしたZIPファイル内の下記のファイルがファームウェアexample22a_jam.ino.bin
また、ファームウェア書き込みツールはESPモジュールの開発元のEspressifからダウンロードすることができます。バージョンは、2.3または2.4を使用してください。
Espressifダウンロードページ
FLASH_DOWNLOAD_TOOLSをダウンロードしたら、デスクトップなどにZIPを展開し、「ESP_DOWNLOAD_TOOL_V2.3.exe」(または ESP_DOWNLOAD_TOOL_V2.4.exe)を起動します。起動するとコンソール画面(CLI画面)と以下のようなGUI画面が開きます。一番上のボックスへファイル「example22a_jam.ino.bin」を入力し、書き込みます。
詳しい情報:http://15jamrecipe.jimdo.com/mixjuice/ファームウェアの更新/
書き込みが完了したら、USBシリアル変換アダプタやIO 0のジャンパ線を取り外してから、IchigoJamに接続し、電源を入れてください。
ご注意
作成したサンプルプログラム(スケッチ)は試作品です。不具合などがあると思いますが、当方は一切の責任を負いません。
また、致命的な不具合に気づき、直された方は、当方までお知らせくださればありがたいです。
by ボクにもわかるIchigoJam用マイコンボード