LoginSignup
6
9

More than 3 years have passed since last update.

M5StickCでI2C機器を使ってみる

Last updated at Posted at 2019-09-21

やりたいこと

  • UIFlowを使って簡単プログラミングしたい
  • ちょっとしたところで躓いて先に進まないので基本から
  • I2Cを使ってちょっとしたものを動かしたい

前回のメモ、M5StickCのUIFlowは秀逸だけどI2Cの実装がよくわからない件で、深いところにはタッチできなかったので、手抜きをやめて順番にやってみることにします。

色々調べながらやってみると、このページが参考になりそうです。
まずは、色々環境を整えます。
arduinoやesp32でDCモーターとかサーボーモーターを制御してみる(PCA9685,L298N)

環境整備

基本に返ってスイッチサイエンスのページから環境整備をしていきます。

M5StickC

ここを起点に開発ツールとして紹介されているのが、
UIFlow
MicroPython
M5StickCの小ネタ

UIFlowを一通り使ってみましたが、深いところをやろうとすると、トラブルが続出。
micropythonで書いて、呼び出す形が良いようです。

M5StickCは2個購入したので、片方をUIFlowで、もう片方をIDEで開発するようにします。

M5StickCクイックスタート

基本的にマニュアルに沿って進めればよいのですが、ボードマネージャにESP32が出てこなくて難儀しました。
ボードマネージャのリンクをリンクのコピーで行わずに、テキストのコピーで行ったため、パスが間違っていました。(スペースが挟まってました)

https://dl.espressif.com/dl/package_esp32_index.json
誤 https : //dl.espressif.com/dl/package_esp32_index.json

みなさんもお気を付けください。

これで環境が整いました。
サンプルのFactoryTestも動きました。
キャプチャ.PNG

I2Cをつないでみる

I2C_Testerなるものがあります。
ちょっとつないで、PCA9865がつながっているのか確認してみます。
適当な部品をかき集めました。

25999342-ABBE-4481-B0B7-61D7D5F6C415.jpeg

デバッグ用のシリアル通信

PWMが全く動かないのですが、中身を確認するすべがない。
・・・シリアル通信する手段を確保しなければ・・・

シリアル通信
  Serial.begin(9600);
  Serial.println("GPIO test!");

image.png

IMUのほうが検証は楽そうだ

出力して動きを確認しないとわからないモータドライバよりも、値が入ってくるだけのIMUのほうが検証は楽そうなので、MPC-6050をgroveコネクタ経由で接続しました。

ラベルに加速度X,Y,Z、温度、ジャイロX,Y,Zを表示します。
普通にデータを読み出すとテキストが化けますので、shortをbigエンディアンで読み込みます。

image.png

試行錯誤の末、この体裁に収まりました。
I2Cでアクセスできてます。

この要領でPCA9685にもアクセスしていきます。

(続く)

6
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
9