以前MEGA2560を使用してこのタイプのロボットカーを作成しましたが、途中まで仕上げて放置したままになっていました。
ロボットカーのスマフォでのコントロールが上手く行かなかったためで、途中からステッパモーター仕様のロボットカー作成に移行してしまい、引き出しの奥に埋もれていました。
引き出しの肥やしでは申し訳ないので、日の目を見させようと引っ張り出しました、今回はArduino UNO に変更して作成したいと思います。
OSOYOO から発売されている倒立ロボットカーを参考に作成
OSOYOOから教育用に販売されている以下の製品を参考に作成します。
下のリンクにチュートリアルが書かれています、オープンソースとしてプログラムもアップされていますのでこれを使わせて頂きます。
製品版は12V仕様のモーターを使っていますが 6V仕様のモーターを使用します、このため電源関係やモーターがらみの変更があります。
OSOYOO Two Wheel Self Balancing Car Tutorial
上記リンクからスケッチ、ライブラリー、回路図、などがダウンロード出来ます。
使用パーツ
Arduino UNO 互換
Arduino用バニラシールド
[asin:B009ANYI92:detail]
アマゾンでは100RPMです、こちらの方が安定するのかな?
モータードライバー:TB6612FNG
ジャイロ:MPU6050 ジンバルに使用していた物を流用(形が違います)
ブルートゥース:HC-06
[asin:B083LSHGL1:detail]
必要なら ソナー:SR04
リチウムイオン電池:18650 2本
[asin:B086M86QTP:detail]
その他スイッチ配線用ワイヤー、アクリル板、スペーサー等
回路図
回路図は OSOYOO のホームページからダウンロード出来ますがわかりにくいので Fritzing で作成しました、なお製品版のエンコーダーモーターと今回使用するエンコーダーモーターでは端子の配置が違いますので注意が必要です、また電圧が7.4Vなのでレギュレーターは使用しません。
回路図には入れてありませんが、自動点滅のLEDを電源インジケーターとして追加しました、ソナーは取付けておりません。
モーターシールドの作成及び組み立て
バニラシールドにレイアウトを考えパーツを配置し配線します、ジャイロ(MPU6050)の取付方向に注意が必要です。
フレームは以前作成した物を再利用し、パーツ取付け穴を開け直しました。
動作確認
ArduinoUNOにスケッチを書き込み動作試験をします、書込みの時はBluetoothモジュールを外して行わないと書き込めません、コントロールにはスマフォを使用します私の場合AndroidですのでGoogle Play から専用アプリ(Osoyoo Balance Arduino Robot Car)をインストールします、スマフォの設定などはチュートリアルからリンクがあります。
スマフォからも PID の設定が出来ますが、ディフォルトの設定では安定しませんでしたのでスケッチの中のPIDを変更しました。
まだ調整も不十分ですが動画をアップしました、ギヤの遊びが原因なのかカクカクします、やはりステッパーモーターの方が安定性が断然良いですね。