##到着
スイッチサイエンスさんに注文したM5Stampが届きました。
書込みツールが付属したDIY KITが品切れだったので、モジュールのみ(mate)を3個購入しました。シールに従ってUSBシリアル変換アダプターとケーブルを接続してTeraTarmなどで119200bpsで接続すると起動メッセージが出て、そこにAPIKEYが表示されます。
ets Jun 8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 188777542, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:5280
ho 0 tail 12 room 4
load:0x40078000,len:12908
load:0x40080400,len:3512
entry 0x4008063c
_ __ _
_ _(_)/ _| | _____ __
| | | | | |_| |/ _ \ \ /\ / /
| |_| | | _| | (_) \ V V /
\__,_|_|_| |_|\___/ \_/\_/
APIKEY: ????????
MAC: ????????????
##Arduinoで書込み
M5シリーズは基本的にESP32が使われており、電源投入時に特定のピン(G0)をGNDと接続することでUART Download Modeに入ります。このモードにするために3Dプリンタで治具を作りました。
f3d/stlファイルはこちらです
https://github.com/NaohiroIIDA/M5StampJig
Fusion360を使って、プログラム中にM5Stampがグラグラ動かないように枠を作ります。セットしたM5Stampとの接続にはポゴピンを使います。内蔵されたバネの力で端子を押し付けることで、パッドとの接続を保ちます。(amazonで購入できます)
##結線
この様に結線しました。
USBシリアル変換 | スイッチ | M5Stamp |
---|---|---|
DTR | - | - |
RxD | - | Tx |
TxD | - | Rx |
VCC | - | 3v3 |
CTS | - | - |
GND | - | GND |
- | SW1 | EN(Reset) |
- | SW2 | G0 |
2個のボタンはそれぞれEN(Reset)とG0ピンに繋がっていて、押す事でGNDと接続されます。G0をGNDと接続した状態でリセットすることでUART Download Modeに入ります。
組み立てるとこんな感じに。
##Arduino IDEの設定
公式ページに従って進めます。
https://docs.m5stack.com/en/arduino/arduino_development
インストールを進めると、ボードマネージャーから『STAMP-PICO』が選べる様になります。
スケッチを描いて、治具のUSBシリアルモジュールのポートも設定します。書き込む直前にEN,G0両方のボタンを押したまま、EN(Reset)のボタンを先に外します(そのあとでG0ボタンも離してOK)。これでUARTダウンロードモード状態になるので、ArduinoIDEの書き込みボタンを押すと書き込みが出来ます。
ちなみにですが、出荷されたM5Stampには最初からUiFlowのファームが書き込まれています。Arduinoで書き込むとUiFlowのファームは消えてしまいますので、再度使う時にはM5Burnerを使って書き込む必要があります。
##基板も作ってリフローしてみた
M5Stampは耐熱プラスティックの外装やリフロープロファイルも公開されている。せっかくなので基板実装してみた。まずEagleでライブラリを作成して、赤外線リモコン信号を送信する基板をデザインしてみた。その後インクジェットプリンタを使ってフォトマスクを作成して、サンハヤトの感光基板を使って作成してみました。
Qiita:ハッカソンなのにエッチングで基板を量産する
作成したM5Stamp_Pico.lbrはこちらです
M5Stampをこのままリフロー炉に入れても問題なく実装でき、一発で動作しました。
ちなみにこれは、『自宅のM5Atomのボタンを押すと数キロ離れた事務所のエアコンがONになる装置』です。
##感想:とても使いやすい
コンパクトで値段も安価かつSMT実装が出来るのは、試作や少量生産を行う自分にはとてもありがたい。開発はVSCode+PlatformIOでもMicroPythonでもOKだし、例えばM5Atomで試作したものをプリント基板に起こして30セット作るとか・・・そんな案件で使ってみたいです。
##余談:バネが強すぎた
https://twitter.com/dannymodules/status/1428550590565478401