タイマー割り込みを使ってロボットのサーボモータを動かそう

クムクムロボット[QX-001R3J]で利用できるタイマー割り込み[FlexiTimer2]を使ってクムクムの腕と顔のサーボモータを非同期で動かすプログラムを作ってみます。

顔は腕より細かい単位でうごかしたいので、サーボクラスのwriteMicrosecondsを使ってモータのパルス単位での回転をしてみます。

 

クムクムロボットのモータポート

クムクムのサーボモータについては、チュートリアルの[6.モータを動かそう] にもまとめたりますがもう一度下記に記述します。

Arduinoとしてのポート 部位
4 右腕
5 右足の付け根
6 右足
7
8 左足
9 左足の付け根
10 左腕
11 モーターへの電源供給制御

作るプログラムの仕様

今日作るプログラムは、両腕を1秒ごとに上下に動かし顔を1ミリ秒ごとに1パルスずつ動かそうというものです。

プログラムとしては、両腕は0度に動かし1秒まったら180度に動かす!という動作をメインのloop関数の中で行います。
顔についてはそれとはまったく別に [Arduinoタイマー割り込みをクムクムロボットで試す]で使ったFlexiTimer2を使って動かします。

プログラム

コメント

タイトルとURLをコピーしました