Home > Archives > 2025年07月31日

2025年07月31日

「ラズパイ Zero 2 W + SG90」で物理ボタンのリモコン

物理ボタンをリモートから押したいなぁと思ったので,ラズパイ Zero 2 W に小さなサーボモータ(SG90)をつけてスイッチ押せるようにしてみた.

gpiozero の AngularServo を使ったらとても簡単で,データシートから PWM Peiod (frame_width) = 20ms, duty_cycle = 0.5ms--2.4ms という辺りの情報を拾ってコンストラクタに渡しておけば,あとは角度を代入するだけでアームがその角度になってくれる:

from gpiozero.pins.pigpio import PiGPIOFactory
from gpiozero import Device
Device.pin_factory = PiGPIOFactory()
from gpiozero import AngularServo
from time import sleep
sg90pin = 18  # PWM0
servo = AngularServo(sg90pin, min_angle=-90, max_angle=90, min_pulse_width=0.5/1000, max_pulse_width=2.4/1000, frame_width=20/1000)
servo.angle = 38
sleep(0.5)
servo.angle = 30
sleep(1.0)

/boot/firmware/config.txt に dtoverlay=pwm を入れてればたぶんハードウェアの PWM が使えてくれてるんじゃなかろうか.スイッチ押すだけなのでソフトウェア PWM でも問題ないけれど.

あとはいい感じの位置にモータとラズパイを固定するための枠を 3D プリンタで用意して目的達成.

Home > Archives > 2025年07月31日

Search
Feeds

Page Top