ラジオ少年の楽しい電子工作、その他

AVRを使った簡単な回路の実験、そして日々のちょっとした出来事を書きます。

倒立振り子作り直し(4)

2015年02月06日 | 日記

MPU6050を使ったプログラムは期待した結果は出ずガックリ。そこで、L3GD20を使った実績のあるプログラムを書き込んでこの新しいボディで倒立するのか試して見ることにした。

モータのドライバの回路が少し違っていることや、ハード的な差異をカバーさせるためにプログラムの変更を実行。

   

電源を入れたと時にちょっとあばれるますがうまくそれを手で支えてやると上記画像の様に倒立している。モータが意外と電力を喰うので単3電池では長時間の倒立は苦しい。ニッケル水素充電池を使った方が良さそうだ。

MPU6050を使ったプログラムは色々定数を変えてやってみたが、どうも結果は思わしくない、何が影響しているのか?何度もやっているうちに電池がダウンしてしまう。外部電源で6V作りやってみるが、、、。

このMPU6050を使った倒立振子はリモートコントローラーを使って動かす事を前提にしている。しかし、手元にまだそれがない。この辺が何かうまく倒立しない原因かとも考えているがはっきりしていない。

2015/2/7(Sat)

電源を入れるとき片側の車輪が廻ってしまう原因を探っていました。プログラムのsetupにENA,ENBを出ないようにすることでOKになりました。

void setup () {

。。。。。。。。。。。

analogWrite( 9, 0 ); //ENA
analogWrite( 10, 0); //ENB

 

コメント (4)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 倒立振り子作り直し(3) | トップ | 倒立振り子作り直し(5) »
最新の画像もっと見る

4 コメント

コメント日が  古い順  |   新しい順
Unknown (ラジオ少年)
2015-02-11 12:57:52
ばんとさん、どうもです。
RCの部分は実際はモータ制御に無関係にしてあります。この結果、RCは無関係なことが分かりました。

ばんとさんの云われるようにメカ(モータ、ギヤ比等)が異なりますので、パラメータの数値が私のメカにあっていない、これが最大の原因だと考えております。
PID制御だけで倒立させている事例は他のブログでもみました。倒立まで介添えするとその後、フラフラしながら倒立姿勢を維持していました。

メカのチューニング方法が分かれば倒立は可能だと思いますが、暫く時間がかかるのではと思います。
返信する
Unknown (ばんと)
2015-02-11 10:44:19
毎度です。ばんとです。

ずいぶんシンプルなソースですね。
Complementary Filterと自家製PIDで制御し
てるようです。

RC制御が立たない理由のように考えられてる様子
ですが、あくまでもこれはリモコン操作の為のもの
であって姿勢制御は関係ありません。
loop関数ないの Recive();をコメントアウトすれば
良いだけ。

それより、Complementary Filter(Filter関数)の
中にはマジック数(決め打ち数値)が入れられてた
り、モータ制御も独自の工夫の後が見られます。

マジック数とか独自なモータ制御などは、現物で
チューニングしたものだと思うので、同じバラン
スの車体。そして同じモータでないと有効ではな
いでしょう。

これまだ立った倒立振子は、元にになったモータ
とかの部品そのまま流用したのだと思います。
それにあわせて原作者がソースを書いていると
思うので、少しぐらい車体の構造が違っても立っ
たのだと思います。

倒立振子を立てる理論(経験からするとPID制御
で十分ななので難しい理論ではなくても意外と
立つ)と、モータ制御などのチューニングの仕方
が理解できたら立ちますょ。

返信する
Unknown (ラジオ少年)
2015-02-11 00:13:27
ばんとさん、今晩は。
>MPU6050の倒立振子を立たせる理論は、どの
ようなものなのでしょうか?

理論は後追いで詳しくは知りません。
下記のURLにあるコードをDLしました。
http://www.sainsmart.com/sainsmart-balancing-robot-kit-v2.html
ここにある
SainSmart Instabots Upright Rover V2.zip

です。

version1もありますが、基本的な部分は同じです。

デモ動画の様に動かして見たかったのですが、、、、
今はRC部分はありませんので、取り合えず、無しでも倒立させないことには先へは進みません。

返信する
Unknown (ばんと)
2015-02-10 22:13:12
毎度です。ばんとです。

MPU6050の倒立振子を立たせる理論は、どの
ようなものなのでしょうか?

倒立振子の構造は単純です。理論で立たせるよ
なところがあります。理論さえしっかりしてれば、
ジャイロやモータが変わったところで、立たせる
ことができます。
理論さえしっかりしてれば、かなり適当に作って
もしっかり立つのが倒立振子です。

電子工作意欲が減退気味なので、昨年作った
Arduinoの倒立振子のファームを見なおして
ます。
カルマンフィルター+PID制御で立つはずだ
と思ってます。

ちなみにMPU6050には、DMPとかいう機能が
あって適切にソフトで制御すれば、激しい動き
の中でも正確な姿勢が得られるようです。
カルマンフィルタ利用よりDMPの方が、精度が
高いようなので、機会があったらDMP+PID制御
版も作ってみようかな…

ではでは…
返信する

コメントを投稿

日記」カテゴリの最新記事