#やりたいこと
- UIFlowを使って簡単プログラミングしたい
- ちょっとしたところで躓いて先に進まないので基本から
- I2Cを使ってちょっとしたものを動かしたい
前回のメモ、M5StickCのUIFlowは秀逸だけどI2Cの実装がよくわからない件で、深いところにはタッチできなかったので、手抜きをやめて順番にやってみることにします。
色々調べながらやってみると、このページが参考になりそうです。
まずは、色々環境を整えます。
arduinoやesp32でDCモーターとかサーボーモーターを制御してみる(PCA9685,L298N)
#環境整備
基本に返ってスイッチサイエンスのページから環境整備をしていきます。
ここを起点に開発ツールとして紹介されているのが、
UIFlow
MicroPython
M5StickCの小ネタ
UIFlowを一通り使ってみましたが、深いところをやろうとすると、トラブルが続出。
micropythonで書いて、呼び出す形が良いようです。
M5StickCは2個購入したので、片方をUIFlowで、もう片方をIDEで開発するようにします。
基本的にマニュアルに沿って進めればよいのですが、ボードマネージャにESP32が出てこなくて難儀しました。
ボードマネージャのリンクをリンクのコピーで行わずに、テキストのコピーで行ったため、パスが間違っていました。(スペースが挟まってました)
正 https://dl.espressif.com/dl/package_esp32_index.json
誤 https : //dl.espressif.com/dl/package_esp32_index.json
みなさんもお気を付けください。
これで環境が整いました。
サンプルのFactoryTestも動きました。
#I2Cをつないでみる
I2C_Testerなるものがあります。
ちょっとつないで、PCA9865がつながっているのか確認してみます。
適当な部品をかき集めました。
#デバッグ用のシリアル通信
PWMが全く動かないのですが、中身を確認するすべがない。
・・・シリアル通信する手段を確保しなければ・・・
Serial.begin(9600);
Serial.println("GPIO test!");
#IMUのほうが検証は楽そうだ
出力して動きを確認しないとわからないモータドライバよりも、値が入ってくるだけのIMUのほうが検証は楽そうなので、MPC-6050をgroveコネクタ経由で接続しました。
ラベルに加速度X,Y,Z、温度、ジャイロX,Y,Zを表示します。
普通にデータを読み出すとテキストが化けますので、shortをbigエンディアンで読み込みます。
試行錯誤の末、この体裁に収まりました。
I2Cでアクセスできてます。
この要領でPCA9685にもアクセスしていきます。
(続く)