實體腳位編號(板子邊緣為偶數腳)。綠框為本專案使用,點一下會在圖上標出。
sudo raspi-config nonint do_i2c 0 sudo apt install -y i2c-tools python3-gpiozero python3-pigpio pigpio sudo systemctl enable --now pigpiod
i2cdetect -y 1
python3 - <<'EOF'
from time import sleep
from gpiozero import LED, Buzzer, AngularServo, DistanceSensor, MotionSensor
from gpiozero.pins.pigpio import PiGPIOFactory
f = PiGPIOFactory() # 硬體計時 PWM,伺服比較不會抖
g, r, bz = LED(23), LED(24), Buzzer(25)
servo = AngularServo(18, min_angle=0, max_angle=90,
min_pulse_width=0.0005, max_pulse_width=0.0025, pin_factory=f)
sonar = DistanceSensor(echo=6, trigger=5, max_distance=2)
pir = MotionSensor(17)
g.on(); sleep(1); g.off()
r.on(); bz.beep(0.1, 0.1, n=3); sleep(1); r.off()
servo.angle = 90; sleep(1); servo.angle = 0
for _ in range(5):
print(f"{sonar.distance*100:5.1f} cm motion={pir.motion_detected}")
sleep(0.5)
EOFpip install --break-system-packages RPLCD smbus2
python3 -c "from RPLCD.i2c import CharLCD; l=CharLCD('PCF8574',0x27,cols=16,rows=2); l.write_string('NTNU-01 62%\r\nOK CUP ONLY')"rpicam-hello -t 5000 # CSI 相機;USB webcam 改用 v4l2-ctl --list-devices python3 edge/pi-demo/node_pi.py --api http://<server>:8000 --bin NTNU-01 --token <token> --depth-cm 30
按上方「通電模擬」後,可以看到 LED、伺服、蜂鳴器、LCD 的反應與實際波形。