約2ヶ月ぶりとなる今回は、Amazonではなく、Aliexpress/Fruit Pi StoreからESP-WROOM-32開発ボード 1個を7ドル48セント(日本円請求額849円)で購入。
5ヶ月くらい前にアカウントだけは作ったものの、Aliexpressから買うのは電子部品としては自身初ですが、昨日と今日の夕方、別の複数の店で他のものも細々買ってみました。
まだ、Aliexpressから届いたものはないのでちょっとドキドキ。
お、ESP32、確認してみたら、早速、[Awaiting delivery/出荷済み・配達中]となっており、今日から13-21日後予定と考えてよさ気、ここまでは順調、ちなみに発送方法は、China Post Registered Air Mail。
今日時点で別件含め、全て発送済みとはなっていますが、ESP32は他に先駆けて日本に到着、通関中とのこと => 2018/06/17 昼 受領済み
それはさておき、Aliexpress/TENSTAR Storeに追加で発注、4点で15.50ドル(日本円請求額1771円)、計22ドル98セント(日本円請求額2620円)。
ななな、なんと単品で5ドルのESP32S開発ボードを発見...、セラーはRoarKit Store、他もいくつか値頃な品もありそうということで試し買い、どうも無料の発送方法は、どれもChina Post Ordinary Small Packet Plus、配送:15-29日な模様、計27.98ドル。
Artillery 3C StoreからArduino UNO ATmega328P 1個3.16ドル、China Post Registered Air Mail[配送日数:13-21日]を、LED World companyから12V/2AスイッチングACアダプタ USコンセント1.90ドルx2個、AliExpress Standard Shipping[配送日数:13-20日]を追加、2点3個で6.96ドル、計34.94ドル1点2個で3.80ドル、計31.78ドル。
Artillery 3C Storeで買ったArduino UNO ATmega328Pが、08/04に謎のトラッキングナンバーで集荷待ちとなったまま、ステータスが変わらず、今日になって自身初の経験となる[Shipment cancelled.]になりました。
調べてみると、このケースでも、何れは届くこともあるという情報や何れにしてもセラーに連絡、どういう状況か確認、応答がなければ、改めて紛争に持ち込んでよいかメールをしてみると応答がある可能性があるとかで、意図的にしろ、手配ミスにしろ、未発送だったのか、商品仕入れ前の見切り発車的なダミー出荷だったのかはともかく、それを伏せて再送するセラーが多いという情報もあれば、あっさり、[Open Dispute]で返金処理してくれというセラーもいるという情報などがあります。
[Buyer Protection]付きの商品なら、もう1つの選択肢として、商品情報付近にある日数以内(例:60日)に届かなければ、Aliexpressから全額返金されるはずなので、その日数が経過するのを待つというのもあるか?
更にこのArtillery 3C Store、買ってみる決め手になったのは、見る商品がことごとく、無料配送方法が、China Post Resitered Airmailだったからなのですが、改めて見ると今回のUnoも、ブラウザでブックマークしてあった商品も一部Airmailのものもありますが、ことごとくSmall Packet Plusになっている...。
Unoに関しての対応は決め兼ねているものの、何れにしても、以後、このセラーから買うのは、やめておこうと思います。
それにしても、やはり、試し買いはしてみるものだ...、と思ったら、今まで普通に送ってくれていたセラーでも[Shipment cancelled.]の憂き目に遭うことはあるらしい。
よく見るとLED World companyの12V/2AスイッチングACアダプタ USコンセントもAliExpress Standard Shipping[配送日数:13-20日]だったし、今尚そうなっているのにAliの追跡画面を見るとSmall Packet Plusになっている...ここも次回はないかな...。
とりあえず、My Orderページの当該発注リストからセラー(Artillery 3C Store)に次のように自身初のメッセージを送ってみることに。
「なんで?何があったの?一体どうしたらいい?」の旨に対し、「税関から差し戻しがあって、Open Disputeしてくれれば、返金する」旨、(タイムスタンプを見る限り、)速攻で応答があり、「素早い回答ありがとう、んじゃ、そうしてみる」旨、再送信し、これまた自身初のOpen Disputeしてみると、またまた速攻でスマイルマークのみが送られてきた模様で、ん?どういうこと?と思って発注リストを確認してみると既に[Product Status]が"Dispute Finished Your Refund progress"、[Order Status]が"Finished"となっていたから、スマイルマークを返しておきました。
追跡情報を見る限り、集荷もされた節はなく、10日ほど経った後もRY...CNという追跡番号では追跡もできず、税関からの差し戻しって感じの記録は一切ありませんが、メッセージのやり取りの早さには、好感が持てた...けど、やはり、次回の発注はない...かな。
ちなみに発注リストの当該商品のところにある[Open Dispute]ボタンを押し、遷移した画面上で改めて商品を選んで[Open Dispute]ボタンを押す必要があることに、しばし気づかず、少々戸惑ったものの、その後は、[返金のみ]か[商品の返送]かなんかで前者を選択、商品を受け取ったか否かで[No]、返金要求対象で[Customsなんちゃら]、返金要求の簡潔説明で適当に[Status:Shipment cancelled.Seller's message:...]を添えて送信しただけ(だったはず)と簡単でした。
と言ってもモメたらその後が大変なんでしょうが、今回は、セラーが承諾済みで対応も早かったから、あっさり完了。
早々に今日、Aliexpressから返金処理されていましたが、購入時と返金時の為替差分と思われる27円支払った状態となっていました。
逆になることもあるので致し方ありませんが、待たされるは、出荷キャンセルされるは、差分払わされるは...、と言いつつ、考え直してみたら、Unoは手持ちで事足りるので、今時点では、追加で買わずに済み良かったし、マイナスも試し買いしてみたおかげで少額で済んだし、店選びの参考にもなりましたし、勉強代としては超安上がりだったとも言えるでしょう。
Fruit PiからのESP32が、なんと5日程度で届きました。
TENSTAR Storeからは、8日程度で届きました(Aliの追跡情報を見た時には、発送と集荷待ちまでで3日ほどかかっていたので早ければ5日くらいかも?)。
数や大きさ、重さなどにもよるのか、他店も同様か否かなどはわかりませんが、少なくともTENSTAR Storeの今回の発送については、唯一、別途送料が必要だったArduino Megaの配送方法(Air Mail)で異なる配送方法(Ordinary Small Packet Plus)だった他の商品も、まとめて発送してくれました(ポスト投函ではなく、速達・宅配)。
RoarKit Storeからは、15日で届きました([China Post Ordinary Small Packet Plus]で[配送日数:15-30日]なので妥当)。
LED World companyの12V/2AスイッチングACアダプタが発注から25日、発送から23日で届きました。
Aliexpress、中華系Amazonマーケットプレイス含め、14日以内に届いていた自身としては、最も遅い到着となりました。
箱は2つの内1つが若干潰れていましたが、中身は問題ありませんでした。
「公式のdoit ESP32開発ボードwifi + bluetooth超低消費電力デュアルコアESP-32 ESP-32S esp 32類似ESP8266」 7ドル48セント(日本円請求額849円)。
これは、Amazonの商品画像ですが、Aliexpress/Fruit Pi Storeの商品画像も日本の技適マーク付き。
ESPと言えば、開発元のEspressif、サードパーティであるAI-Thinkerですが、これも互換機製造のサードパーティであるようで同じく中華系のdoit製のようです。
Wifi/Bluetooth付きのESPボードとしては、ESP-WROOM-02、02の後継と言ってもよさ気なESP-WROOM-32がありますが、これは、後者の開発ボード。
間もなく2年もオープン1年というタグのあるFruit Pi Store、配達予定日数は、[13-21]ですが、購入後、My Order(私の注文)で見ると出荷処理待ち時間が10days(10日間)となっているので実際の配達予定日は、最長で31日後ということになります。
さて、どのくらいで届くかな...。
お、発注から、5日か?別件の発注品はほとんど動きがない中、これは意外なほど、かなり早く届きました。
ピンヘッダを発泡スチロールに挿した状態で静電気防止袋に封入、内側プチプチの封筒に入って届き、わずかながら、はんだやフラックスの飛散など、やや雑さはありますが、ピンヘッダはんだ付け済み、チップには、[ESP-WROOM-32]とあり、日本の技適マークもあります。
ということは、ESP-WROOM-32は正規品、それを載せた開発ボードが互換品ということか、DevKitC、もしくはDevKitCの互換機?と思ったら、Espressif製は、DevKitC、DOIT製は、DevKitと呼ぶらしく、他メーカー品もあるらしい...と思ったら、ボード裏面に梅をあしらったかのようなロゴに加え、[GOOUUU-ESP32]とありますが、なんぞや?
ちなみにボード裏面は、青く、ボード四隅に固定用の穴はありますが、DOIT製の裏面は、白く、DOITと文字の入ったロゴやURLなども書いてある模様なので、これは、ESP 32 DevKit V1(DOIT製開発ボード)の互換機っぽい。
今日、後日買った、より安価なRoarKitのESP32-DevKit V1互換機が届いたのですが、ボードのサイズ、実装部品のレイアウト、ピンの名称(G13がD13...本家はIO13っぽい...etc.)、ピンの有無(一方にあって他方にない)、結果、Fruit Piの方は、38ピン、RoarKitの方は、30ピン...とピン数やピンレイアウトなどが異なり、ESP-IDFでは不要もArduino IDEを使ってスケッチをアップロードする際に[BOOT]ボタンを押しておく必要があったりとFruit Piで買ったDevKitとはいろいろ違っていました。
Fruit Piで買ったDevKitではESP-IDFしか使っていなかった為、改めてArduino IDEでアップしてみたところ、[BOOT]ボタンを押しておく必要はなかったことからして、後述の通り、これは、ESP32 DevKit V2の互換機なのか...?
ん?いやいや、ESP32-DevKitC V4 Getting Started GuideにあるEspressif製DevKitC V4のピンレイアウトと全く同じでありつつ、開発ボードの4隅に穴があるので、これは、Espressif製DevKitC V4互換ボードであるDOIT製DevKit(V4?)の互換ボード...か、それ風のボードっぽい...。
何はともあれ、後述のようにArduino IDEからHello World!スケッチを書いて手動でボタン操作することなく自動でアップできたこと、シリアルモニタ上のHello World!の表示を以て動作確認とし、すぐAliexpressにログイン、[My Order]から[Comfirmed Goods Recieved]をクリック(AliexpressからFruit Piストアに支払いが行われるように)しました。
早速、動作確認を行なうべく、espressif/arduino-esp32の各OS別(自身はDebian)の説明に沿ってArduino IDEへのボード情報、CPU xtensa用コンパイル環境やESP-IDFライブラリをインストール、環境変数(PATH/IDF_PATH)設定、ESP-WROOM-32を100均のmicro USBケーブルでPCに接続、Arduino IDEのシリアルモニタを開き、[改行なし](Windowsだと[CRおよびLF]かも)、[115200 bps]とし、ESP32のRST(リセット)ボタンを押下。
尚、気が効いている?のは、Arduino IDEでESP32を使う場合、[ツール]メニューから[ボード:]にESP32ボードを選択すると[スケッチ例]にESP32用のサンプルスケッチが表示される、逆に言うとESP32系ボード以外のボードが選択されているとESP32用のサンプルスケッチは一切表示されないこと(気づいてみれば、ESP8266も同様だった...)。
これでATだかSCCだかのコマンドモードになるという情報が結構あるのですが、DevKitボードの情報らしき表示になってしまったものの、Espressifのドキュメントを読むとどうもこれで良いらしい...初期状態が変更されたのか...?
まぁ、後でなんとかなるだろうと思い、Hello World!を先行し、Arduino IDEからアップ、モノの出来はさておき、セラーの対応の早さに応えるべく、早々に受け取り済みとすることにした次第。
と言いつつ、Arduino IDEからスケッチを書き込んだ後、コマンドモードにするには、ファームウェアを書き換える必要があり、過去使ってみたESP-01やESP-12FなどESP8266では、Windows用ツールしか見つけることができず、Linux用はないのかもと諦めていて期待薄だったのですが、ESP-WROOM-32用ツールチェーンとESP-WROOM-32用APIライブラリESP-IDFは意外とあっさり見つかりました。
Windowsユーザー用には、Flash Download Toolsの他、VirtualBox対応Linuxベースのツールチェーン・開発環境仮想イメージも提供しているようです。
これで物理的な故障でもない限りは、Debian環境の自身でもコマンドモードに書き戻して試してみることができそうです。
昨日の内にLinux上の(初めて使った)PuTTYでも、ESP32に書き込んだHello Worldを確認...と言ってもESP-IDFでmakeするなら、make monitorする方が手間もなく簡単ですが。
今日、Get Startedに倣い、Debian上のターミナル・端末からmake flashでBlink書き込み・実行できることを確認(デフォルトではESP32ボード上のG5、220Ω抵抗を介しLED、GNDを接続)。
必要に応じてmake all含め、全て行なうmake flashだと遅いため、app-flashを使うのが、また、そもそもデュアルコア以上のCPUなら並列処理指定した方がよさ気(と思ったら、make app-flashでも必要と判断したらmake flashと同じ挙動になる為、時短っていう意味では使いどころは限られるから、やれることは並列処理だけかも)。
このESP32、ATコマンドの他、Wifi専用のSCCコマンドなるものもあるらしい、工場出荷状態に戻すには、[factory reset]なる手法が使えそう、[make menuconfig] => [Bootloader config]からできたにはできましたが、初期化されただけでコマンドモードにはならない、具体的な方法の記載があるドキュメントを探すもたどり着かない...。
今、PDF含め、ドキュメント読みまくっているのですが、ESP32、できること多すぎ...言い換えると超高機能...、何でもそうかもしれませんが、やりたいことから調べようとすると難しい...基本、Wifi、Bluetooth/BLE機能とArduinoっぽいデバイスとして...なんですが、下手すると全ては覚えきれない、ってか、使いこなせないかもっていうくらい...ESP-IDF環境で自分でアプリ(スケッチ?)書くまでに至るのはいつになるのか...?
とりあえず、ESP-IDFのexamplesからBluetooth用のble_hid_device_demoをmake flashしてみたところ、PC側で機器検索後、ペアリング、機器登録は、あっさり完了、自動的にボリュームGUIが表示され、音量調整したり、ミュートしたりとデモが自動実行されたことを以てESP32のBluetooth接続確認は完了としました。
続いてmake menuconfigで[sta]モード、SSID/PASSWORDを設定の上、simple_wifiをmake flash後、make monitorとし、宅内の無線LANアクセスポイントに接続、IPアドレスが払い出されることを以てWifi動作確認完了としました。
というわけで動作確認としては、この辺にしておこうと思います。
尚、ちょっとハマったのが、[xtensa-esp32-elf]や[eps-idf]などの開発環境、make flashするサンプルコードのディレクトリなどを置くことになるespディレクトリのパス。
当初、他のディレクトリ下に作成したところ、なぜか、パスを通してもうまくいかず、まさかと思い、ドキュメント通り、ホームディレクトリ直下に置いたら、うまくいった...どっかに直書きしてあるのか...。
また、サンプルコードを実行するにあたり、make menuconfig(make flashで出てくる場合も同様)で構成を変更した際、構成ファイルであるsdkconfigのリネームが可能ですが、別名を付けた場合もコピーするなどして同じ内容のsdkconfigを置いておかないとコンパイル時に反映されないこと。
Arduino Mega R3 ATMega2560-16AU CH340G単体 セール品6ドル92セント+送料2ドル11セント/9ドル3セント。
自身にとって他に使い道はなさそうですが、以前、買ったFIFO無しOV7670をMegaならそのまま使えそうな情報があった為、試し買い。(と思ったら、そのまま使えそう...というのは、気のせいだったみたい...)
Amazonで買うとしたら配送時間も含め、HiLetgoがよさ気。
自身初Mega、このボード珍しくデフォルトがBlinkではなく(空?)、よってBlinkアップロードでボード上のLEDの点滅、後述のI2Cモジュール付きLCD1602とポテンショメータの動作確認に使えたことを以て動作確認完了。
Megaボードの角D(GPIO?)22の右上にある[5V]って何?Megaボードが5Vバージョンってこと?と思ったら、反対の端にはGNDとあり、隣接する横並び2ポートは、それぞれ5V/GNDでした。
それと一見欠けてるのかと思いきや、デフォルトのデザインぽいけど、D(GPIO?)31以下の部分(22/24/26/28の反対側)ってなんでないんだろ...?23/25/27にあたるはずだよね...って、そもそもないの?23/25/27...。
このMegaも手持ちの2台のUnoと同様、銅製支柱とUnoではCDケースとした部分を延長コードの樹脂製商品カバーケース?に代えて背面の絶縁をしてみました。
I2Cモジュールはんだ付け済みらしきLCD1602 フォント黒/バックライト黄緑 2ドル19セント。
自身が好みの白/青より10セント高いが、手持ちのLCD2004を見ても黒/黄緑は、より視認性が高いからでしょう。
Amazonマーケットプレイスでも同じ店ではないながらも黒/黄緑の方がだいぶ高いっぽい(安価な白/青は価格的に大差ない模様)。
LCDがI2Cモジュール付きの為、I2Cモジュールなし用のデフォルトのサンプルスケッチLiquidCrystalではなく、I2C用のLiquidCrystalライブラリをダウンロード、これのHello Worldスケッチを前述のMegaにアップして表示されることを以て動作確認完了。
尚、このLCD 1602のLCDアドレスは、([0x3F]ではなく)[0x27]でした。
線形ポテンショメータB10k wh148 3ピンx10個 1ドル93ント。
3ピンでこの手のポテンショメータは使いやすそうなため、在庫として。
Amazonマーケットプレイスでも同程度の価格でした...。
ポテンショメータ、ワッシャー、ナットが各10個あることを確認、Megaの5V/GNDをポテンショメータの両端のピンそれぞれ、ポテンショメータの中央のピン、抵抗220Ω、LED、MegaのGNDに接続、ボリューム調整によりLEDが消灯〜Maxで点灯することを以て動作確認完了。
ナットがさきっちょだけで根元まで入っていかない気がしますが、下手なだけ?こういうもの?面位置からしてこれでいいのか。
そう言えば、忘れてたため、考えてもいなかったのですが、以前買った内径6mmのボリュームキャップ?がピッタリ合うことも確認済み。
ジャンパワイヤ120ピン(オス-オス/オス-メス/メス-メス各40ピン)2ドル35セント。
ジャンパワイヤもAmazonマーケットプレイスと価格的に大差はありませんが、消耗品だけにチリも積もればでよしとします。
40ピンx3種類120ピンあることを確認。
なんとRoarKit Storeに1個5ドルのESP32開発ボードが...、先日買ったFruit Pi Storeより2ドル以上安い...他店でも安くても5個セットで単価5ドル強...、モノを確認するまでは、ちょっとドキドキ。
RoarKitの商品画像を見るとウラ面は、表面同様黒く、ESP32 DEVKITV1と書いてあり、ボード四隅に固定用の穴があり、謳ってはいませんが、これはDOIT製かも?と思ったら、DOIT製の裏面は、白く、DOITと文字の入ったロゴやURLなども書いてある模様だから違うっぽく、DOIT製開発ボード(ESP 32 DevKit V1)の互換機らしい。
15日経った今日届きました([China Post Ordinary Small Packet Plus]/[配送日数:15-30日])。
ボード裏面には、やはり、[ESP32-DEVKITV1]と印字があります。
あ、画像検索やplayelek/pinout-doit-32devkitv1のピンレイアウトと全く同じであることからすると、これこそ、DOIT製のESP32-DevKit V1の互換機である模様。
なんとなく、以前Fruit Pi Storeで買ったESP32 DevKit互換機と並べてみたところ、どっちが正確なのか、そんなことどうでもよいのか、幅は同じくらいですが、長手方向の大きさが違い、RoarKitの方が小さめ。(左がRoarKitのESP32、右がFruit PiのESP32)
よく見ると表面実装部品のレイアウト、部品の有無、Fruit Piの方は、38ピン、RoarKitの方は、30ピン...とピン数やピンレイアウトも異なり、RoarKitの方は、LEDが2つあり、他方は1つ、更にピンの名称(Fruit PiではG13ピンがRoarKitの方はD13...本家はIO13な模様...etc.)、ピンの有無(一方にあって他方にないCMD/SD2/SD3...etc.)なども異なる...。
また、先日買ったFruit Pi StoreのESP32には、ESP-WROOM-32チップの左上に白マジックらしきもので点がマーキングされていたのに対し、RoarKitのESP32は、青い点がマーキングされていますが、これは何を表わすのだろう...。
パソコンとESP32 DevKitにmicroUSB-USB AケーブルをつなぐとDevKitボード上のLEDが点灯、シリアルモニタを開き、DevKitボード上の[EN]ボタンを押下すると、以前買ったものと同様、やはり、ATコマンド入力画面ではなく、情報画面が出る...ので、最近は、これでよい模様。
早速、Arduino IDEからスケッチを書き込もうとすると[ESP32: Invalid head of packet ('\x1b')]なるエラーが...。
調べてみるとesp32.com Q&Aの中段あたりの回答に「DevKit V1には、V2にはないリセットに関するバグがあってプログラム書き込み時にDevKitボード上の[BOOT]ボタンを押しておく必要がある」旨の記述があります。
当方のボードの色はどっちも黒という点は異なりますが、きっと正規品はバージョンによって色が違うのでしょう。
その通り、[BOOT]ボタンを押したまま、Arduino IDEからスケッチをアップロードしてみると、あっさり、書き込むことができた...。(中には、BOOTボタンを押したまま、RST/ENボタンを押す必要のあるものもあるらしい?)
Arduino IDE 1.8.6ではDevKit V1に優しくなりましたに書いたように08/23にリリースされたらしきArduino IDE 1.8.6では、DevKit V1であってもスケッチのアップ時にBOOTボタンを押す必要はなくなっていました。
でも、先日Fruit Pi Storeで買って、この必要がなかったESP32開発ボードは...、と思ったら、このボタンを押しておくのは、Arduino IDEでの話であって、試してみるとESP-IDFの場合には、このDevKit V1ボードでもプログラム書き込み時のボタン押下は不要でした。
ならば、Fruit Pi Storeで買ったやつは...と試してみるとArduino IDEでも[BOOT]ボタンを押しておく必要はない...となると、あれはDevKit V2の互換機か...?見た目の様々な相違もV1とV2の違い...?あ、いや、ピンレイアウトからしてEspressif DevKitC V4の互換機、ボード4隅の穴からして、V4互換のDOIT製DevKit風のボード?っぽい...。
V1互換機だから、このRoarKitのDevKitは安かったのか...?
確かに買う前に現行はV2じゃなかったっけ?V1って...と思わなくもなかったのですが、先日購入品が手元に届いてすら、V1/V2のどっちかも不明で安価なのはV1なのかもなと、それほど気にも留めずにいた次第。
まぁ、Arduino IDEを使う時だけ、プログラム書き込み時だけの話っぽいから別にいいけど...っていうか、ピン数が違うのはなんでだ...。
尚、この挙動確認の過程でArduino IDEでサンプルスケッチ[GetChipID]、[SerialToSerialBT]、ESP-IDFでサンプルスケッチ[hello_world]、[scan](の手順は前回同様)のアップロード後、ESP-WROOM-32のチップID、繰り返されるカウントダウン後のHelloWorld表示、宅内無線LAN(WiFi)アクセスポイントの発見(と接続)など、それぞれシリアルモニタでの結果確認、パソコンのBluetoothデバイス検索でESP32を発見、ペアリングできることなどを以て動作確認完了としました。
ちなみにV1のバグの件においてesp32.net HistoricalのMODEL ESP32-DevKitC V1のNOTESには、「BOOTボタンを押しながら、make flashやesptool.pyで書き込み実行後、BOOTボタンをすぐに放す」旨、記載されていますが、試した限り、手元の互換ボードについては、make flash時は、何もしなくても書き込めて(プログラムをアップロードできて)、そもそもBOOTボタンを押す必要はありませんでした。
12V/2A ACスイッチングアダプタ 1個1.90ドルx2個 3ドル80セント。
見た目は異なるものの、同仕様のACアダプタは、以前、Amazonで買ったものを1つ持っていますが、ESP8266/ESP32に入れ込んでみるとACアダプタは、いくつかあってもよいかなということと、LEDテープ関連でも使うかもということで、とりあえず、2個追加。
LED World companyから12V/2AスイッチングACアダプタ USタイプ(AC 100-240V 50/60Hz)が発注から25日、発送から23日で届きました。
箱は2つの内1つが若干潰れていましたが、1つは、電圧12.65V、もう1つは、12.68Vと正常。
早速、内1つをLEDテープライト製デスク下照明でDC5V-12V変換ケーブルとACアダプタ付きUSB充電器を介してAC100V => 5V => 12Vと無駄に降圧・昇圧していた電源部と交換しました。