Arduino, ESP32, ESP8266
ここでは、ArduinoやESP32関連の情報をメモしておきます。
Arduino IoT
Arduino IoT Cloud 2021 - Getting Started with Arduino & ESP32
Arduino MKR WiFi 1010 + MKR IoT CarrierでIoTをする
Arduino Edge Control — Arduino Online Shop
https://github.com/EnviroDIY/Arduino-SDI-12
Arduino MKR WiFi 1010 をソーラで楽しむ
Grove Beginner KitでのArduino入門 その1 準備 | Lang-ship
Grove Beginner KitでのArduino入門 その2 LED | Lang-ship
Grove Beginner KitでのArduino入門 その3 ボタン | Lang-ship
Grove Beginner KitでのArduino入門 その4 回転角センサ | Lang-ship
Grove Beginner KitでのArduino入門 その5 ブザー | Lang-ship
Grove Beginner KitでのArduino入門 その6 光センサー | Lang-ship
Grove Beginner KitでのArduino入門 その7 音センサー | Lang-ship
Grove Beginner KitでのArduino入門 その8 OLEDディスプレイ | Lang-ship
Grove Beginner KitでのArduino入門 その9 温度および湿度センサー(DHT11)
Grove Beginner KitでのArduino入門 その10 気圧計(BMP280) | Lang-ship
Grove Beginner KitでのArduino入門 その11 加速度センサ(LIS3DHTR) | Lang-ship
Getting Started With the Mayfly Data Logger – EnviroDIY
ESP32関連
ATOM Printer
ArduinoでプログラミングできるWiFiにも対応したレシートプリンタ「ATOM Printer」
M5StickC
M5StickC Plus に Grove Water Level Sensor をつなげるメモ
M5StickC で 接触確認アプリ (COCOA) の数を数えてみた。
M5StickCのDisplay周り解析 その3 描画ノウハウ
M5StickCのDisplay周り解析 その4 LovyanGFXで高速描画
M5StickCでサーボを動かしてみる!4台までなら簡単に制御出来ます
Bug.C
小型ロボットBugCをもう1台のM5StickCでコントロールする
Bala.C
M5StackのBALA-CミニセルフバランスカーをBlynkで操作できるようにサンプルコードを改造する方法
// 1. Lay the robot flat, and power on.
// 2. Wait until Gal-1 (Pitch Gyro calibration) completes.
// 3. Hold still the robot upright in balance until Cal-2 (Accel & Yaw Gyro cal) completes.
//
// short push of power button: Gyro calibration
// long push (>1sec) of power button: switch mode between standig and demo(circle)
M5StickV
開発環境
1) SiPEEDのMicroPython環境「MaixPy」→ これを使う
※ステップとしては、最初にファームウエアを書き込んで、その次に開発環境をインストールする。
MaxiPyのファームウエアを書き込むツール
i) EasyLoader → Windowsのみ対応
ii) kflash GUI → Mac OS >> M5StickVで超お手軽エッジAI画像認識 もしくは「プリンをもっと見守る技術」p.14参照
※macOSからアプリを起動すると「開発元を検証できないため開けません。」と表示された場合の対処方法
→ macOSデスクトップ左上のアップルメニューより[システム環境設定]-[セキュリティとプライバシー]をダブルクリック 画面下「ダウンロードしたアプリケーションの実行許可」より「このまま開く」をクリック
iii) MaixPyのダウンロード >> http://dl.sipeed.com/MAIX/MaixPy/ide/
※MaixPyを使う場合は、Sipeedが配布しているファームウェアを焼く必要がある
2) Arduino環境「Maixduino」
3) C言語の開発環境「Kendryte SDK」
A. 学習データkmodelを作成する
TensorFLow: Googleが開発している、ディープラーニングや機械学習を開発するためのソフトウエアライブラリ
Keras: TensorFlow上で動くニューラルネットワークライブラリの一つ
(TensorFlow Liteは、組み込み機器やモバイル端末動作させるための環境。Kendryteでは、TFL向けに作成した学習データをKendryte K210の学習データに変換するためのツールnncaseが用意されている。nncaseでは、CNNのMobileNetV1/V2やYOLOV1/YOLOV3をサポートしている。)
※NNCase 記事まとめ (v.0.2.0)
→つまり、TensorFLow/Keras/TensoFlow Liteでモデルを作成し、nncaseで.tfliteをK210用に変換するという流れ
B. もしくは、V-training: Mobilenetでの移転学習を行う(最大10クラス。1クラスあたり最低35枚の画像が必要)
1) boot-M5StickVをダウンロードして、SDカードにコピーする。
2) SDカードを入れてからM5 StickVに電源を入れる(左ボタンを長押し)
3) 各クラス35枚以上の画像を撮影する。ホームボタンで撮影開始、右側のボタンでクラスの切替。撮影時には関係のないものが映り込まないようにする。
4) 撮影した画像ファイルをZipして、クラウドにアップロードするClick to visit upload page
5) モデルをダウンロードして認識
※このほかYolo v.3 を使うこともできるが、その場合には合計で100枚以上の画像にラベルを付与する必要がある
※転移学習:学習済みのモデルを初期値として使い、出力に近い部分だけを学習し直すこと
※MobileNet:1000種類の物体の識別が可能な画像識別モデル → MobileNet(v1,v2,v3)を簡単に解説してみた
(参考資料)
日経ソフトウエア2020年11月号P.88-98
M5StickVとV-Trainingでお手軽画像認識 その1 – スイッチサイエンス マガジン
M5StickVとV-Trainingでお手軽画像認識 その2 – スイッチサイエンス マガジン
M5Stick VをM5StickCにつないでLineに画像を送付するシステム
以下の記事を参考にプログラムを若干修正
M5Stick用プログラム:M5StickC_connect.py(Aボタンを押すと写真をとって、UARTで送信)
M5StickC用プログラム:M5StickV(UARTで受信した画像ファイルをWifi経由でLineに送信)
(参考資料)
Wi-FiがないM5StickVを、M5StickCと繋ぎLINEに投稿してみるまでの手順
Brownie
注)http://dl.sipeed.com/MAIX/MaixPy/release/master/maixpy_v0.4.0_47_g39bb8bf にアクセス maixpy_v0.4.0_47_g39bb8bf_m5stickv.bin をkflashでインストールする
brownie/README.ja.md at master · ksasao/brownie · GitHub
brownie/readme.md at master · ksasao/brownie · GitHub
M5StickV V-Functionを試す → MotionDetect
Unit V
UnitV と M5StickC で動画ストリーミングを堪能 ーエッジAI活用への道 13
M5StickC + RoverC + UnitV でオブジェクトを追跡させる方法
Unit V2
LovyanGFX
LovyanGFXとJpgLoopAnimeでM5StackとM5Cameraの全画面WiFi動画ストリーミング実験
シリアル通信
ATOM
M5Atomの始め方【ArduinoIDE編】 >> M5StickCと同じ設定
リレーユニット
自動水やり
ArduinoでLCD/OLEDディスプレイ
Arduino,I2C通信により4本のケーブルでLCDを動かす!
ArduinoとHiLetgo I2C 128×64 OLED SSD1306液晶サクッと!動作確認!
ATOM Printer
ArduinoでプログラミングできるWiFiにも対応したレシートプリンタ「ATOM Printer」