裏側です。電池は単三型Ni-MHを4本。タミヤのダブルギヤボックスをギヤ比114.7:1で使っています。タイヤ径は約55mm。
Arduino ProMini 3.3Vの互換品がeBayで250円くらい。ただし、シリアルのピン配列が純正品と逆でした。
ジャイロ加速度センサーのMPU6050を載せたGY521というモジュール。eBayで200円くらい。Amazonでも買えます。このモジュールには3.3Vを作るためのレギュレーターが載っていますが、入力電圧範囲が3-5Vらしいので、ProMiniから3.3Vを供給しています。I2C通信です。
モータードライバのDRV8835。小さなチップにフルブリッジが2回路搭載されているので、これ1個でDCモーター2個ドライブできます。モーター用電源とロジック電源が分かれているのも使いやすい。モードピンをHIGHにして、ENABLEピンにPWMを、PHASEピンに回転方向を入れています。
距離センサーはGP2Y0A21YK。電源は電池から直結。出力は0から3.3Vの範囲に収まります。距離(mm)の計算はかなりいい加減ですが、95000をanalogRead()の値で割って30を引いています。
ライントレース用センサーは、ヴィストンで安売りしていた反射型赤外線センサーを少し改造。ProMiniから3.3Vを供給し、analogRead()で読み込んでいます。
ライントレースの動画です。
2017年11月5日
その後追加した赤外線リモコンによる操縦機能も入っています。
2017年11月8日
こんにちわ、
返信削除とても安定していて
うらやましいです。
できればソースを見せて頂くことは
可能でしょうか?
こんにちは、
返信削除是非ともスケッチを参考にさせて
頂けないでしょうか?
コメントありがとうございます。
返信削除だいぶ前のものなので、スケッチを探し出してみます。
少々お待ちください。
ありがとうございます。
削除よろしく、お願いします。
自分も”半日で作る倒立振子”を見て
いろいろと作ってみてますが、安定させるのは
本当に難しいですね。
お待ちしております。
スケッチが見つかったので動作確認しようとしましたが、肝心のハードウェアがバラバラになっていて、再整備が必要なことが分かりました。ちょっと時間がかかりそうです。
削除探して頂きありがとうございます。
返信削除作られた倒立2輪の部品のいくつかは持っているので
真似て作成したいと思います。
(ライントレース用センサーはないですが)
スケッチをアップロードしました。一番下の「ソースコードはこちらです」をクリックしてください。
返信削除ありがとうございます。
削除自分も本日、手持ちの部品で一応出来上がった
ところでした。
距離センサやライントレースも注文した部品は
届いたのですが、実装の方法はこれから
調べたいと思います。
早速、ドライバのピン番を合わせて、スケッチを
動かしてみましたが、車輪が回転したまま
止まらないので、スケッチを参考に調べたいと
思います。
ありがとうございました。
お世話になります。
削除スケッチで教えていただけると
助かります。
A2ピンは、どこかの電圧を測定しているようですが
どう言った用途でしょうか?
自分のハードには無いですが、センサ値と違い
スケッチの倒立制御には必要な要素と言うのは
わかったように思います。
できるなら自分のハードにも追加実装いたしますので
よろしくお願いいたします。
A2は電池の電圧を測定するのに使っています。電圧に応じてPWMのデューティーを微調整しています。battFactorを1.0に固定すれば、無くてもよいです。使う場合は電池とグランドの間に10kΩの抵抗2つを直列に入れて、1/2に分圧してA2に接続すればOKです。
返信削除現在の回路では、モーターのノイズに弱いので、改良作業をしています。完了したら、回路図をアップロードするつもりです。
ありがとうございました。
削除了解いたしました。
手持ちが5vのPro miniでハードなこともあり
電池は、リチウム電池3.7ⅹ2で、Pro mini給電し
降圧した電圧(3.5V位)をモータ用としてDRV8835
に給電してます。立つようになったらセンサを先に
実装したいと思います。
MPU6050もDRV8835もVcc(Vcc)以上の電圧を入力ピンにかけるのは良くないと思いますので、できればProMiniの3.3V版を使か、レベルシフトしたほうがよいかもしれません。
返信削除ノイズ対策等のため、DRV8835へ接続するProMiniのピンを変えました。スケッチも変更したので、これから回路図も含めてアップロードします。
ありがとうございます。
削除すみません、説明が不十分でした。
リチウム電池3.7ⅹ2は、Pro miniのRAW入力ピンに繋いでいます。
RAW入力ピンは、UNOのVin入力に相当する電源端子との理解です。
先ほど確認したらVCC端子が4.9V程度になっていたので、
MPU6050もDRV8835へも4.9VならOKではと思ってます。
よろしくお願いいたします。
こんにちわ、Mt_fujiです。
削除ProMiniの3.3V版を使った方が良いとのご助言が理解できず
申し訳ありません。MPU6050のロジック入力は、3.3Vとは知らずに
使ってました。
そこで、ProMiniの3.3V版をアマゾンに購入して換装しました。
USB-TTL3.3v変換アダプタがやっと入手できたので
公開(改良版)頂いたスケッチを書き込みました。
また、電源モニタやラインセンサは未実装です。
ブログも作成して
動作動画を載せてみました。
https://dekitaraiina-annakoto-konnakoto.blogspot.jp/
ですが、
電源入れると、初期化後、間欠的にしかモータが作動しないので
まだ、うまく立ってくれません。
一応、battFactorを1.0に固定しているのですが
もう少し調査する予定です。
今後ともよろしくお願いいたします。
車輪が逆転しているように見えますので、MPU6050の取り付け方向が私の実験機と同じであるなら、まずはDRV8835からモータへの配線を入れ替えてみてはどうでしょうか? あとギヤ比は100程度にしてますか? ギヤ比を変えても車輪の回転方向が変わりますので、お気を付けください。
返信削除こんにちわ、Mt_fujiです。
削除ありがとうございました。
モータが逆回転になっていることに
自分は気づいていませんでした。
入れ替えたら、とても安定しました。
モータドライバの電圧モニタも追加して
残るは、ライントレースを実装したいと思います。
スケッチの理解にも頑張りたいと思います。
本当にありがとうございました。
動いてよかったです。ソースコードはかなりぐちゃぐちゃで、不要なコードも入っているので、ご質問ありましたらご連絡ください。
削除