ロボット犬『Mini Pupperミニぷぱ』ラズパイ4 Node-REDで味見

Home > 電子工作 > ロボット犬『Mini Pupperミニぷぱ』ラズパイ4 Node-REDで味見
すき 0
うんこ 0

前回はATOM Matrixを用いて ミニぷぱの動作を楽しみました。

ロボット犬『Mini Pupperミニぷぱ』ATOM Matrix で動作再検討

ここでは正規のラズパイ4と専用基板を用いて ミニぷぱを動かせるようにします。

 

 

ミニぷぱ専用基板

以前 ミニぷぱに同梱のラズパイ4にRaspi OSを入れて専用基板でのサーボモータ制御を試みたのですが、サーボに電源が供給されず断念しました。
(2022/2/16現在 専用基板の回路図は未公開)

そうしましたところ、ミニぷぱの開発元様よりサーボ電源のイネーブルピンの存在をご教示いただきました。

ラズパイのGPIO21、GPIO25がサーボ電源供給のENピンとのことです。
それぞれサーボモータドライバのPCA9685の16個分のサーボの半分ずつの電源スイッチとなっているようです。

PCA9685動作

サーボドライバ PCA9685 はI2Cがインターフェースとなっております。

 

Raspi OSでI2C通信を有効にします。

 

I2C有効後に専用基板を載せてi2cdetect で接続されているI2Cデバイスを調べてみました。

0x40がPCA9685です。0x70はなんだろ? 🙄 
https://github.com/mangdangroboticsclub/QuadrupedRobot/tree/MiniPupper_V2/Mangdang によると
専用基板にはI2Cは3系統あって正規のI2Cピン(i2c-1)にはPCA9685しか つながってないはずだけど?

i2c-1 : for pwm controller PCA9685
i2c-3 : for EEPROM
i2c-4 : for fuel gauge max17205

サーボ制御

ラズパイ4にNode-REDを導入して専用基板でサーボを動かしてみました。
以下のPCA9685用のノードで制御しています。
 https://flows.nodered.org/node/node-red-contrib-pca9685

ちょっとハマったのが専用基板のサーボ1を動かすためにはPCA9685ノードで15を設定する必要がありました。
専用基板のサーボナンバー 1~12がPCA9685ノードの15~4に対応していました。
PCA9685ノードがおかしいのか専用基板の配線がそのようになっているのかは不明です。

rpi-gpio outノードでGPIO21、GPIO25をHighにしてサーボに電源供給しています。

 

無事に専用基板でサーボを動かせるようになったので、いよいよミニぷぱ制御に挑戦です!

 

ミニぷぱ 足制御

ESP32やATOM Matrixで行っていた時と同様に逆運動学でミニぷぱの足を制御します。

とりあえず1本動かしてみた。

 

Node-REDで足の高さを指定して制御しています。

IK 右前足ファンクションで足の高さをうけて各サーボの角度を導出しています。

 

足踏み

足1本を制御出来ればこっちのもんです。同じように残り3本も制御できるようにして足踏み動作してみました。

足踏み動作実現!
久しぶりに外装も全て取り付けて可愛さが復活しました。
ディスプレイも表示させたいな 🙄 

 

しかしNode-REDで動作シーケンス組むのは結構大変だったな。。。

歩行動作とかも仕込みたいので実装手法は検討が必要そうです。

 

おわりに

ついにラズパイ4と専用基板でミニぷぱを動かせるようになりました。

引き続きもろもろ検証して自由自在に動かせるようにしたいと思います。

次の記事

ロボット犬『Mini Pupperミニぷぱ』Pythonでモーション記述

コメントはこちらから

メールアドレスが公開されることはありません。コメントのみでもOKです。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください