ラズパイPICOでサーボモーター(SG90)使う!

はじめに

この記事を読めば「Raspberry Pi Pico W」でサーボモーターを使ったものを作れるようになります!

ラジコンやコントローラーを用いて遠隔でデバイスを動かす際にとても便利なモジュールです。
普通のモーターと違い角度を指定して、回転させることができるのでとても便利です。
サーボモーターが使えるようになると、「Raspberry Pi Pico W」でできることがぐっと広がります。

わからないことがありましたら、問い合わせページまたは公式ラインに連絡をください!
Youtubeもありますので、ぜひ見てみてください!

つかうもの

この記事で使っているものを紹介します。
*このリンクは、アフィリエイトリンクです。
こちらのリンクから購入されると、投稿主にインセンティブが発生します。
より良い記事のために、ぜひ購入する際は以下のリンクよりお願いします。。

実際に投稿主が購入したキットを紹介します。
こちらのキットは、マイコンと電子工作に必要な部品がセットになったものです。
こちら購入すればすぐに電子工作始められます!
また、公式HPでモジュール、プログラムの解説もされているので、非常におススメです。

購入はこちらをクリック!
*画像はリンク先より引用

個別で購入する方は、以下のリンクよりどうぞ!

購入はこちらをクリック!
*画像はリンク先より引用

購入はこちらをクリック!
*画像はリンク先より引用

購入はこちらをクリック!
*画像はリンク先より引用

購入はこちらをクリック!
*画像はリンク先より引用

モジュール解説

今回使うサーボモーターは安価で使いやすい「SG90」です。
こちらは、-90~+90度まで動くサーボモーターです。
パルス信号の長さによって180度の可動域で調節することができます。

制御方法の簡単な解説が以下の画像です。

duty cycleの長さを変えることで、サーボモーターに角度を伝えることができます。

動かしてみよう

下の画像を参考に回路を組んでみてください

それでは、こちらをコピペして保存したら実際に動かしてみましょう!

from machine import PWM, Pin
import utime

servo = PWM(Pin(0))
servo.freq(50)
right_button = Pin(6, Pin.IN, Pin.PULL_DOWN)
left_button = Pin(9, Pin.IN, Pin.PULL_DOWN)
led = Pin(15, Pin.OUT)
duty_max = 65535
kakudo = 0.0725  # グローバル変数として定義

def center():
    servo.duty_u16(int(duty_max * kakudo))
    return kakudo

# 最初に90度の位置に移動
center()

while True:
    if right_button.value() == 1:
        kakudo += 0.0053  # 右ボタンを押すごとに10度右に回転
        print(kakudo)
    elif left_button.value() == 1:
        kakudo -= 0.0053  # 左ボタンを押すと左に10度回転
        print(kakudo)

    # kakudo の範囲を0から1の間に制限する
    kakudo = max(0, min(1, kakudo))

    # LED の制御
    if kakudo > 0.1255 or kakudo < 0.01949999:
        led.high()
    else:
        led.low()

    servo.duty_u16(int(duty_max * kakudo))
    print(kakudo)
    utime.sleep(0.1)  # 100ミリ秒の待機

プログラムを保存して動かしたら、その位置がセンターになるので、わかりやすいように羽をつけます。

付属の羽をギザギザに合わせておしこむだけでOKです。
ラジコン等を作る場合は、ねじで固定してください。

それでは、右のボタンを4回押してみると、、、

右に傾きました。
今度は左に8回おすと、、

左に回りました。
1番右にすると、、

LEDが光りました!

これで、サーボモーターは終わりです!

動かない原因

動かない場合は、以下の項目を確認してみてください。

プログラム

プログラムがラズパイPICOに保存されているか、エラーが出ていないかを確認してください。

回路

正しいピンにつながっているか、ジャンパー線は断線していないか、ブレッドボードは壊れていないか
これらを確認してください。

わからないとき

これらを確認して解決しない場合は、以下のQR,URLから公式ラインに連絡ください!

友だち追加

さいごに

今回は、サーボモーターを使ってみました!
どうだったでしょうか?

サーボモーターが使えるとラジコンやロボットも作れるようになってきます!
ぜひ!作りたいをカタチに!

また次回の記事でお会いしましょう!

Raspberry Pi Pico Wカテゴリの最新記事