R5.3.2 打ち止め
再びパラメータをいじって、少々動くようになった。LEDも0x003300と節電して点灯(^^) しかし、プログラムに変化はないので、相変わらず安定した直立姿勢はできない。ここで撤退。
R5.3.2 小型化2
さらにコンパクトさを求めて、秋月電子さんでDRV8835を購入(^^;) 中央黄色枠内がそれ。やっぱりもう少しの小型化を諦められなかった。Pololuさんのものより小型になってる。配線は同じにすればいいようだ。
モーターをAtom本体に張り付けて、よりコンパクトになった(^^)
さらに、リチウムイオンバッテリーからの電源供給をGroveポートからにして、マトリックスLEDを使わないようにすると、モーターの動きが良くなった。
R5.2.23 小型化へ
前進がうまく行かないものの、ESP-NOWでなかなかコントロールできる!(^^) 基本的に倒立振子の原理を理解していないために、動きを安定させる方策に思い当たらない(^^;)
で、小型化に走った。
R5.2.21 コントロール
作った倒立振子をM5Stackのボタンでコントロールしようと考えた。BLEを使うかな?と思ったが、ESP-NOWというのがあるらしい。たなかまさゆきさんの「M5StickCでESP-NOW その1」にSlaveとControllerに共通のスケッチがあり、M5StackとM5Atomの機種依存する部分の書き換えで送受信できた。これは便利!
R5.2.17 その後の経過
直立して多少動くようになったので、次への展開。たまたま高価なTB6612FNG搭載のsparkfunモータードライバが部品箱にあったので小型化。
R5.2.6 はじめに
だいぶ前から気になっていたバランスロボット。倒立振子という複雑な仕組みで直立するロボットだ。自分には無理だな、ということでやらなかった。ところが、木楽らぼさんの実験ノート「M5Atomでバランスロボット」を見つけ、これならできるかも? ということで取り組んでみた。材料はすべて揃っているし。ただし、モータードライバが木楽らぼさんのはI2C版のDRV8830に対して、手持ちのものはPololuDRV8835だ。これで、少し悩んだ。
DRV8835ドライバが基板に取り付けられていたので、はがすことから開始。すると、ダイオードがはがれた(^^;) 幸い事前に写真を撮っていて、辛うじてカソードマークの白いハチマキが見えたので、テープで仮止めして先細に削ったハンダで半田付け。テストスケッチで使えることが分かったのだ(^^)/ ヤレヤレ
R5.2.7 組み立て
小さなDCモーターやプーリータイヤもあったので、組み立ては簡単にできました。木楽らぼさんのようにTailバッテリーには内蔵しませんでした。失敗したらまずいので。
R5.2.8 モーターテスト
モータードライバのテストで左右のモーターが動くことを確認。体の姿勢をAtomのIMUで確認して、この動きでバランスをとればいいわけです。しかしそれが難題(^^;)
動きはこんな感じ。
R5.2.14 動いたかな?
木楽らぼさんの「M5Atomでバランスロボット」でのスケッチを利用させていただいて、I2C_DRV8830の部分をPololuDRV8835で動作するように変えて、ようやく立ちました!
I2C_DRV8830の場合は、M5Atomからの信号線は2本。モーターが1つでも2つでも2本で済みます。他にI2Cのセンサがあっても2本でいいんですね。スケッチの中では、I2Cアドレスを変えて2つのモーターやセンサに動きの指示を出しています。DRV8835の場合は、M5Atomから1つのモーターに対して、2本ずつの信号線が必要です。AIN1・AIN2とBIN1・BIN2です。これらからの信号を受けて、ドライバで処理してくれます。私の場合は理解が進まなかったので、無理矢理やりました。そのためか、動きはなかなかスムーズではないです(^^;)
上のようにタオルを敷くと動きが安定します。タイヤがスリップするんでしょう。タイヤ(モータ)の回転速度が十分調整されていないからかもしれません。
とりあえずは動きました。方向転換などもあるのですが、手は出したくないです(^^;)
ただ、もう少し小型にしてもいいかな? と計画中です。