今Arduinoとwiiモーションのジャイロを使って倒立振子にチャレンジしているがいまいちうまくいきません。
手で本体を支えていればそれなりの本体制御は行っているがモーターの動きが非常にもたついている。動きを調査してみるとPWMDuty30%以下程度で ほとんどモーターが回っていない。ジィーとモーターから音が出ているだけの状態。
恐らくいろんな要因でトルクがたりないのであろうと思う。今更ギヤボックスや、タイヤは変更したくないし・・・。もちろんモーターも。ArduinoのPWM制御は分解能255だから30%以下というとだいたい80以下の値ではモーターが廻っていないことになります。
AruduinoのPWM周波数デフォルトで490Hz程度。低出力ではトルクが低いかも。滑らかな動きは犠牲となるが周波数を下げて試してみました。
ArduinoのPWMピンは今回9番、10番を使用しているためレジスタはTCCR1Bの下位3bitを変更すればPWM周波数を変更できるはず。とりあえず分周比1024、目いっぱいまで下げてみる。計算上はこれでPWM周波数30Hz程度になるはず。
TCCR1B &= B11111000; TCCR1B |= B00000101;
この記述をvoid setup()内に記述すれば周波数は変わるはずです。これで動きを試してみようと思う。
コメント