ラズパイでサーボモーターを制御すればロボットへの大きな一歩!

ラズパイがあれば簡単にサーボモーターを制御できます。これさえできればシンプルなロボットならすぐできます。この制御はパルス幅変調(PWM(Pulse Width Modulation))と呼ばれる方法で行われます。小型ロボットに一番良く使われるSG90とそのジェネリックであるMS18を例にとって説明していきます。

1)PWMとは?めんどくさそうな専門用語!そういうのが嫌いな方はどうぞ次の項へ進んでください。でも理解してから振り返るとそれほど複雑なことではありません。 SG90/MS18では以下の図(ひどいですが・・・)のように50Hz(1秒間に50回オン・オフを繰り替えし)することがキホンです。その際にオンになっている時間(パルス幅)を500μ(0.5ミリ)秒から2400μ(2.4ミリ)秒に調整することで、サーボーモータの動作角度を制御できます。

パルス幅500μ秒= 一番左向き(0度)1450μ秒= 中央(90度)2400μ秒= 一番右向き(180度)
そうするとある角度に向けたいときに必要なパスル幅は以下のように計算できます。パルス幅=角度 x(1900/180)+500 (注:xはエックスではなく乗算記号です)
これをPython(ラズパイでよく使用されるプログラム言語)でプログラムに書いてみると以下のとおりです。

これで一番左(0度)から0.2秒に10度ずつ180度まで右に回り、また逆に0度まで戻ります。

これを組み合わせればすぐにロボットになりますね!次回は応援ロボットを作ろうと思います。お楽しみに!

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です