Ubuntu 16.04にesptool(準備とか)

ちょっと前の続き、やってることメモ。

 

以前はMacとかNanoPiとか変なところからESP8266を使ってたんだけど、最近はUbuntuを主に使ってるので、こっちにツールを入れることにした。

さっそくesptoolをインストール。Macのときはgitでファイルを持ってきたけど、調べてたらpipというコマンドが使えるらしい。

(Mac上でもインストールすれば使える)

 $ sudo pip install esptool

何かトラブルがあるかも…と心配してたけど、何もなかった。

だーっとインストールの状況が出てくるけど、最後に

 Successfully installed ecdsa-0.13 esptool-2.2 pyaes-1.6.1

と、出てきて成功。あっさりしすぎて、メモするほどではなかった。

ちなみにpipはPythonのパッケージをインストールするユーティリティとのこと。

 https://www.python.jp/install/ubuntu/pip.html

最新のPythonがインストールされて入れば大丈夫だな、たぶん。

 

そして久々にMicroPythonの公式サイトを訪問。最新のMicroPythonのbinファイルをダウンロードしてくる。

 http://micropython.org/download/

今回はESP8266用。

自力でコンパイルすることもできるけど、自分はやったことがない。単にめんどくさい。

後はESP8266の手持ちのモジュールをUSB接続して、準備完了。

 

以前書き込み時のトラブルが多かったので(ESP01に無理矢理入れてたせいもあるけど)、今回は改めてマニュアルを探した。日本語で。

pipでesptoolをインストールするところからあったので、以下のところを参照させて頂きました。

 https://qiita.com/koji14/items/25e2415234085565d4d5

というわけでいったん中身を消す。

 $ sudo esptool.py --port /dev/ttyUSB0 erase_flash

 esptool.py v2.2
 Connecting....
 Detecting chip type... ESP8266
 Chip is ESP8266EX
 Uploading stub...
 Running stub...
 Stub running...
 Erasing flash (this may take a while)...
 Chip erase completed successfully in 10.5s
 Hard resetting...

最後に自動的にリセットしてくれた。

もしかすると/dev/ttyUSB0に接続されてないかもしれないので、そこは事前にdmesgとかで確認が必要かも。

ダウンロードしてきたbinファイルを書き込み。
 $ sudo esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=32m 0

 esp8266-20171101-v1.9.3.bin

 WARNING: Flash size arguments in megabits like '32m' are deprecated.
 Please use the equivalent size '4MB'.
 Megabit arguments may be removed in a future release.
 esptool.py v2.2
 Connecting....
 Detecting chip type... ESP8266
 Chip is ESP8266EX
 Uploading stub...
 Running stub...
 Stub running...
 Changing baud rate to 460800
 Changed.
 Configuring flash size...
 Flash params set to 0x0040
 Compressed 600888 bytes to 392073...
 Wrote 600888 bytes (392073 compressed) at 0x00000000 in 8.9 seconds (effective 542.9 kbit/s)...
 Hash of data verified.

 Leaving...
 Hard resetting...

メモリが4MBだったんでワーニング出てる。先にハードの仕様確認しておくんだった。

 

まあ問題なければ、シリアル通信を確認。

 $ sudo screen /dev/ttyUSB0 115200

でもscreenがないって言われた。インストールする。

 $ sudo apt-get install screen

これでもう一度シリアル通信で確認。

でも出てきたウィンドウにプロンプトは出てこなくて焦った。

試しにhelp()と入れてみたら、だーっとヘルプの内容らしきものが出てきた後、>>>が表示されたのでうまくいったらしい。

Hello WorldしてみてもOKだったし。

 

とりあえず一番やりたかったのはLinuxへのesptoolのインストールだったけど、全く問題なくできた。それ以外に問題が多少あっただけで。

今回のESP8266モジュールはちゃんと使うにはメモリも足りなさそうだし、元々メーカーが怪しいので、出番はPythonの勉強ぐらいかな。

次はまともなESP32にインストールしようっと。

Sponsered Link

Wemos D1 mini

今さらなメモ。
ちょっと前からD1 miniにハマってて、引き続きちょくちょく購入している。
小ささでいったらEPS-01Sのほうが可愛い。でもD1 miniは4Mのメモリが魅力的。

 

AliExpressは細かいものをいくつか買う場合、たまに送料がプラスされて値段が上がる。
10、20個とか買うならいいんだけど、2つだけ欲しい場合別々に頼んだほうが安い。

我ながらセコい。
送料なんて1ドル未満の場合が多いから気にしなくてもいいかもだけど、本体が3ドル程度だとそれも気になる。

 

そしていくつか買ってるうちに、ようやく本物のWemos D1 mini V2を手に入れることができたらしい。

昨日AliExpressから届いた荷物。値段は3ドル弱。

基板のシルクからしか証明できないんで自己満足だけど別にいい。そもそもパチもん多過ぎ。
いろんなメーカーのクローンを並べてまとめを作ろうと思ってたが、購入先に記載されてるスペックが怪しくて確認ができない。
そもそも発注した商品の写真と違うものを送られるからどうしようもない。
NodeMCUといい、ESP8266のボードは困り者。


まあまともな通販先だったら、ちゃんとメーカー品が送られてきます。たぶん。

AliExpress内のWemosの公式ページなら当然ちゃんとしたD1 miniが売ってます。

 https://wemoscc.aliexpress.com/store/1331105

でも今はV3.0か、他にはProとLiteしか買えなくなってる。

特にこだわりがなければ、最新のV3.0が一番良いはず。

 

調べてるとクローン品にはみんな困って…はいないか。興味があるらしい。
 https://hackaday.com/2017/05/15/attack-on-the-clones-a-review-of-two-common-esp8266-mini-d1-boards/
本物かどうかの判定ツールもあったらしいが、今はリンクがないそうだ。残念。

 

しかしここまでかき集めておいて、本来のWifiモジュールとしては一度も使用したことがない。
技適マークがないんでヘタに電波を飛ばすのもなんだし(電源入れた時点で何かしら電波は出てるとかいう正論は却下)、Arduinoの代わりとして使うのが楽しいのでまあいいか。

Sponsered Link

Raspberry pi用TFTディスプレイとD1 mini(続き)

前の続き、スケッチで一部つまづいたのでメモしておく。

 

JPEG画像を表示させる「TFT_flash_jpg」というサンプルスケッチを試してみようとしたところ、コンパイルでエラーになってしまった。やっぱり落とし穴があったか。

最初のエラーは単にライブラリ不足、JPEGDecoder-masterというのをインストールしておく必要があった。

 https://github.com/Bodmer/JPEGDecoder

と、ちゃんと元記事に書いてあってリンクもしてあった。良く読もう。(自分が)

 

しかしその後もまだエラーが出ていた。

だらだら出てきたエラーメッセージのうち、最後の「#error Architecture or board not supported.」というメッセージで検索したところ、そのまんまの解決策が出てきた。

 http://www.esp8266.com/viewtopic.php?p=59623

エラーの内容がほぼ同じ。

解決策は簡単で、Sd2PinMap.hの20行目を修正するだけ。

 

旧) #if defined(__arm__) // Arduino Due Board follows

   ↓

新) #if defined(__arm__) || defined(__XTENSA__) || defined(ESP32) // Arduino Due Board follows

 

Sd2PinMap.hを探すのに苦労したけど、これだけで本当にコンパイルできるようになった。

サンプル画像も無事表示された。

中途半端に画面をフォーカスして撮影したから色が変だけど、実際にはちゃんと表示されてます。

 

ArduinoはMCUがARMだから元のままでいけるけど、ESP32とかはTensilicaのXtensaだからってことだろうか?

でも調べてみるとD1 miniというかESP8266はTensilicaだけどLX106 というのを使ってる、と出てきた。

一応表示できたからいいか、と思いつつ、正直なんかモヤっとしたままです。

Sponsered Link

Raspberry pi用TFTディスプレイとD1 mini

Ubuntuと遊んでる合間に、ちょっとよそ事。
久々にESP8266が載ってるボードをいじったよメモ。

 

今回参考にした元ネタは、以前ESP32のDevelopment Boardの件で紹介したこちら↓のブログから。
 https://macsbug.wordpress.com/2017/08/12/how-to-use-a-tft-display-for-raspberry-pie-with-esp32/
読んでるだけで面白くてやってみたいことがいっぱい出てきてどうしようという感じだけど、上記の記事を見てたら似たようなパーツが既に手元に揃ってるんじゃないか?と、ふと気付いてしまった。

というわけで以前AliExpressから購入したD1 miniを引っ張り出したんだけど、実はこのボードの正体がよくわかってない。

購入先ではD1 mini V2 NodeMcuという感じの名称だったんだけど、もう扱ってない。
載ってるのはWeMosのESP8266と記載されているけど、シルクにはリア面にもWeMosの記載が無い。
D1 miniに載ってるのは基本ESP-12らしいんだが、ESP-12FとかESP-12Eとかいろいろあるんでよくわからない。
「D1 mini V2 NodeMcu」で検索してみても、手元のボードとはシルクが違ってたりと同じものが無く、謎が多い。
パチもんにパチもんを重ねた結果かな。まあ動くからいいか。

 

Raspberry Pi用のTFTディスプレイは以前購入して使ってたもの。

これで使えるんだろうかと思ったけど、載ってるICの種類を確認し、たぶん大丈夫だろうと判断。

 

ライブラリは以下を丸ごとダウンロードしてArduino IDEに読み込ませた。
 https://github.com/Bodmer/TFT_eSPI/
…ホントは必要なところだけでいいんですけどね。
接続も画像が載ってるので、それを参照。
 https://github.com/Bodmer/TFT_eSPI/blob/master/Tools/RPi_TFT_Connections.png
最低限、必要なピンをD1 miniと接続。

 SCK  <--->  D5
 MOSI <--->  D7
 DC    <--->  D3
 RST  <--->  D4
 CS    <--->  D8
 GND  <--->  GND
 VCC  <---> 5V

User_Setup.hをESP8266のD1 mini用に編集。
 https://github.com/Bodmer/TFT_eSPI/blob/master/User_Setup.h
必要なものをコメントアウトする。

ドライバはRaspberry PiのディスプレイなのでILI9486で良さそう。
 #define RPI_ILI9486_DRIVER // 20MHz maximum SPI
上記で20MHz maximum SPIとあるので、SPIのクロックを修正。
 #define SPI_FREQUENCY  20000000
あとはデフォルトのまま(…だったと思う)。

 

その後480 x 320のサンプルスケッチを開き、コンパイル。今回はTFT_ring_meterを使った。
書き込みは以前ESP8266用の設定をインストール済みだったので問題なかった。

ボードはWemos D1 R2 & miniを選択。

無事、表示されて成功。とっても簡単。

他のサンプルはまだ試してないけど、内容によってはもしかすると問題が出てくるかも。

とにかく良く出来たライブラリで、User_Setup.hで設定が楽なのがとてもいい。
2〜3ドルのD1 miniでこれだけできたらもう充分。カスタムして何か作りたくなる。
でも最初に参照させていただいたブログで使っている、ESP32 Minikitも興味出てきた。
安いところを探して手に入れておこうと思う。

Sponsered Link

NodeMCU用シールド

久しぶりに買ったものメモ。

 

幅が微妙なサイズのために、小さめのブレッドボードに挿すとピンが使えなくなったりして困ったちゃんなNodeMCU。
自分はこれにMicroPythonのファームウェア入れたらもう充分だったんだけど、ちょっと他のことしてみようかなと思っていじってみたら結構邪魔なことに今さら気付いた。
で、放置してたんだけどAliExpressで良さそうなものを発見したのでさっそく(他のものと一緒に)買った。

NodeMCUシリーズ用のシールド。

一応V3用と明記されてたので、他のバージョンというかパチもんを載せるときには注意が必要だと思う。

 

要するにただのソケットじゃん、という感じだけど、これだけIOピンが立ってると他のパーツと接続する時には結構助かった。
以前EPS-01のときも思ったけど、やっぱピンの扱いには困ってる人がいて同じようなこと考えてるんだろうな。
このボードにはDCジャックが付いてるけど、今のとこ使ってない。でもいざというとき便利…だろうか。

 

少しだけ気になるのは、リア面にメーカー名などのシルクがないこと。

別の通販サイトで売ってるものには堂々と入ってるのに。

 https://www.banggood.com/WeMos-NodeMcu-Base-ESP8266-Testing-DIY-Board-For-LoLin-V3-NodeMcu-Lua-WIFI-Development-Board-p-1011867.html

格安だったし、一応使えてるからまあいいか。


ついでなので書いておくと、上記のボードについて検索していて見つけた、ESP32のDevelopment Boardについて総まとめしているところ。

これがすごくいい。
 https://macsbug.wordpress.com/2016/12/09/watch-the-esp32-board/

購入先と、部品面側の部品の詳細が見える画像まで添付されていて素晴らしい。

最近いいかげんに集めすぎて訳解らなくなってきたので、本当に助かった。

自分のブログは節操の無い趣味のせいで散らかりまくってるんで、整理してこういう人のためになるようなまとめ方をしないといかんなとつくづく思う。
(でないと自分が自分の書いた過去記事を参照し辛くなってきて、困ってる)

Sponsered Link