組み込み機器の開発にコンサルとして参加させていただいているのはアタシの本業のひとつ。そのクライアントからWi-Fi機能付きの新製品開発について調査依頼が入った。
我が国には技適というものがあり、これを通っていない対象機器は法律上使ってはいけないことになっている。通すには人もお金もかかりそうなので、「技適通ってます」という製品を使うのが大人の対応というものだ。クライアントからのアドバイスもあり、ESP-WROOM-02なるモジュールを試してみることにした。リンク先は秋月電子通商だが、スイッチサイエンスほか数社から発売されている。秋月のこの製品は同社お得意のDIP化基板スタイルで使いやすく、価格も安い。
このモジュールは無手順シリアル通信(I2Cなどほかの通信規格も可能らしいが試していない)を使いATコマンド(懐かしい)で制御するようになっている。そこで使い慣れたArduinoからシリアルでつないで制御してやろうと目論んだ。Arduinoならシールド基板にまとめた方がスマートだよねと、基板や延長用ピンソケットも取り寄せた。ここまではしごく順当だった。
ところが調べていくうちに、このモジュールがArduino互換機になり得ることがわかってきた。Arduino-IDEで開発したスケッチを書き込んでやると、そのまま実行してくれるらしい。つまりWi-Fiモジュール付きのArduino互換機になるのだ。その代わりスケッチがシステムを完全に上書きしてしまうようでATコマンドは使えなくなるというが、Arduinoとしてプログラミングできるならいらんわ、そんなもん(強気)。
そこで方針変更して写真のような実験機を組み立てた。小型のブレッドボードの上にWi-Fiモジュールと、それと通信するためのUSB<-->シリアル変換基板(これも秋月電子)、それにプルアップ、プルダウン用の若干の抵抗とモード変更ならびにリセットのためのタクトスイッチを乗せてある。Arduino-IDEで開発したスケッチをこのWi-Fiモジュールに書き込むにはそれなりの準備とステップが必要なんだが、それは興味があればGoogle先生に聞いてほしい。念のために言っておくが、明らかに間違ったことを書いていたり、逆に自明なこととして肝心なことを書いていない情報もままある。こうしてできた例がここにもあるので、うまく動かなかったら情報もとより自分の勉強不足と若干の不運を嘆くがいいぞ。うにゅ。(^^)
さらに珍しくお節介をすると、書き込み時のモード切り替えを忘れないこと。Wi-Fiモジュールに与える3V3の電源は少なくとも300mA以上の容量を持っていること。電源ラインに0.1μF程度のパスコンを入れておくこと。あとはふだんの行いに気をつけておくこと。もちろんこれは冗談だ。
いまこの実験機の上でArduino-IDE上で開発した割り込み型のLチカアプリが動いている。割り込み周りはCPUがUNOなどとは違うので、独自の仕組みを組み込む必要がある。そういうところは面倒だが、UNOの8bitと比べてこのWi-FiモジュールのCPUは32bitだという。いつも気になるRAMエリアはUNOが2KBほどなのに比べて50KBも使える。もちろんコードエリアも数百KBという広大さだ。Arduinoでの開発で苦労していた人たちは、気絶しないように注意しようね。アタシも初めて見たときはめまいがした。^^;
そんなことで、Arduinoにコンパイラを仕込んでFPGAスタックマシンを制御しようと思っていたものを、このWi-Fiモジュールを使うことに決めた。メモリ空間が広いしWi-Fiも使えるしスケッチレベルでArduino互換機だ。どれもスタックマシンとは関係ないような気がするが、気にしないことにする。あぁそうだよ、単なる新しい物好きだよ。
I/Oピン数が少し少ないので、8bitパラレルでスタックマシンにデータを送り込むところは再検討かも知れないなぁ。それはそれでまた、楽しい。(^^)
※コメント投稿者のブログIDはブログ作成者のみに通知されます