161225: Waves のブレイクアウトボードで L チカまで
Wi-Fi 通信モジュールである ESP シリーズ、「技適」が最大のネックだったようで適用された ESP8266( ESP-WROOM-02 が正式名称みたいです。長いしややこしいので以下 WROOM-02 と呼びます)は既に 2016 年の初めごろに大きな話題になっていたみたいです。そんな騒ぎがあった事は当時は知るよしもなく。Wi-Fi やってみたいなぁと思って Amazon で安いのを検索したところ、Waves ブレイクアウトボードを見つけました。
このモジュールは端子のピッチが 1.27 mm と、見慣れた工作しやすい 2.54 mm ピッチのちょうど半分です。これを力技で実装するならちょっと工夫する必要があります。そういう面倒を回避して確実に使いやすくするものを「ブレイクアウトボード」というらしいです。突破板。
この Waves ブレイクアウトボード、購入当時は 880 円でした。実際に使ってみてピンピッチを変換するだけのブレイクアウトボードよりはボタンやスイッチがあり使いやすかったです。色々含めるとこれより手ごろなものはなかったですね。
商品が到着した時の脳内
Arduino に Wi-Fi 機能を追加できるボードなんだべさと思っていました。そう、よく調べず可能性だけで注文しました(あー…)。手元に届いたのは 16/12/23。封筒から取り出して、それでもまだそれが何なのかを分かっていない状況です。アホは怖いですね~
実はこの WROOM-02、Wi-Fi 通信ができる Arduino よりも小さくて高性能なマイコンという事なんです。だから話題になったわけです。こういうの SoP(System-on-a-chip)っていうんですって。
SMD 抵抗を実装していこう
Waves ブレイクアウトボードに固有の話です。モジュールと表面実装抵抗が未実装なので、はんだ付けしていきます。取り付けの説明書は添えられていましたが WROOM-02 には動作モードというものがあるようです。最初は分からなかったのですが、難しく考える必要はありません。Arduino みたいに使いたいのであれば「実行モード」「書き込みモード」だけで良いです。「SD ブートモード」というのは必要が無いので今は分からないです。
GPIO2: Hi
GPIO15: Lo
とすると、あとは GPIO0 に接続されている付属のスイッチで Hi / Lo の切り替えが行えるようにできています。添付の説明書は書いてあることがちょっと違う…??っぽいです。ん~当然かもですが初心者向けじゃないですねー。前の TFT も随分と分からない続きでしたが、でもまぁこうして小さな壁があるとそのたび勉強になります。
プログラム書き込み
WROOM-02 の真価はプログラムを書き込まないと発揮できません。ですが、このブレイクアウトボードには USB シリアル変換が無いのでこれ単体では USB につないでスケッチを書き込むことはできないんです。前述のとおり、最初に何をするものなのか分かっていなかったので調べていくうちに「わー詰んだわ~」とか思ってしまったのですが大丈夫。えかいには DIP 版の Arduino UNO R3 があるじゃないーの、という事でこれで代用できました(参考)。この記事のおかげで、大事なものが危険にさらされる!!となって一発で分圧を理解できましたね。いい機会でした。
ただしこれは応急処置です。都度 328P-PU を取り外すのは明らかに無謀なので、変換アダプタはのちに注文しましたが一回目が初期不良で、二回目の注文で 2017/01/31 あたりにようやくまともな環境が手に入りました。しかし…(意味深)
CH_PD
海外の記事かもしれませんが、調べている時にシルクと一致しない端子がでてきました。この場合は消去していって EN だなとすぐ分かりましたが、前の TFT でも端子名が一致せず接続ができなくて困ったことを思い出します。EN ピンは Enable という役割で非常に重要な端子です。Hi(要するに 3.3 V)にしないとスイッチがオンになりません。
Arduino の産湯に漬かっているとこういうちょっとした事で躓くことがあります。Hi / Lo でスイッチするというのは簡単な事なのですが、最初のうちは Control 端子がある電圧レギュレータすらまともに動かせませんからね。経験ですね。
AT コマンド
https://nurdspace.nl/ESP8266#Commands
興味が無いのでわからないのですが、AT コマンドというもので WROOM-02 を動かせるそうです。私が最初に想定していた追加ボードとして Arduino から動かす的な事でしょうかね。アタマノカタスミに。
L チカ
さて、Arduino みたいに使ってみましょう。手始めは慣例で L チカしましょう。これにはまずいくつか手順を踏む必要があります。
IDE の導入
まず arduino.org でなく arduino.cc の IDE を使います。お使いの方は次です。
こちらの IDE には org 版には無い機能があります。既にインストールされている場合、導入するとアンインストールされてしまうため、インストーラ版でなく実行ファイル単体版(管理者権限を必要としないインストーラ)を選び、適当なフォルダへ投げ、スタートメニューなんかにショートカットを置くスタイルでおっけいです。
ボードの追加
せっかく記事があるのでこちらを参照ください。ここにすべて書いてあります。
一応いくつか明記しておくと、必要なのは環境設定の「追加のボードマネージャの URL」というボックスに
http://arduino.esp8266.com/stable/package_esp8266com_index.json
を貼り付け、[ ツール ] - [ ボードマネージャ ] で 8266 を検索して esp8266 by ESP8266~… というのをインストールすれば8割完了です。
あとは書き込む際 [ ツール ] メニューを以下のように構成します。
ボード:Generic ESP8266 Module
Flash Mode: QIO
Flash Frequency: 80 MHz
CPU Frequency 160 MHz
Flash Size: 4M ( 3M SPIFFS )
Debug port: Disabled
Debug Level: なし
Reset Method: nodemcu
Upload Speed: 912600
ーーー
書き込み装置: USBasp
書き込みに失敗する際は転送速度を下げてみましょう。メモリが大きいので時間はかかりますが失敗はしなくなるはずです。
スケッチ
スケッチは例の [ ファイル ] - [ スケッチの例 ] - [ 01.Basics ] - [ Blink ] です。いつもの Arduino と同じ感覚でプログラムを書いてアップロード、指定したピンに電流制限抵抗をかませた LED を接続すると LED が点滅するはずです。
手間はかかりますが、WROOM-02 による L チカまでを確認して今回は終わりです。
焼きました
ESP32 の実装とテストを終えてようやく心に余裕ができ、記事を公開するまでに至りました。二度と電圧でマイコンを焼くまいと誓った、小さな記録です。