センサ/アクチュエータ実験の進め方
概要
モーションセンサ、傾きセンサ、温湿度センサ、ブザー、LCDなどを試すときの共通手順を整理したページです。個別チュートリアルに入る前の標準フローとして使います。
手順
1. 実験テーマを決める
- 入力系(センサ)か出力系(アクチュエータ)かを決める。
- 使うピンと必要部品を先に一覧化する。
2. 回路を組む
- 電源OFFで配線する。
- GNDと電源ラインを先に作る。
- 信号線をGPIOへ接続する。
3. プログラムを動かす
- Pythonスクリプトを作成する。
scpでRaspberry Piへ転送する。sshでログインしてpython3で実行する。
4. 結果を記録する
- 成功条件(何が起きたら成功か)を明記する。
- 失敗時は配線・ピン番号・権限を順に確認する。
コード
import time
import RPi.GPIO as GPIO
SENSOR_PIN = 17 # コメント: センサ入力ピン(BCM番号)
BUZZER_PIN = 18 # コメント: ブザー出力ピン(BCM番号)
GPIO.setmode(GPIO.BCM)
GPIO.setup(SENSOR_PIN, GPIO.IN) # コメント: センサを入力設定
GPIO.setup(BUZZER_PIN, GPIO.OUT, initial=GPIO.HIGH) # コメント: ブザー初期OFF
try:
while True:
detected = GPIO.input(SENSOR_PIN) # コメント: センサ値を読む
if detected:
GPIO.output(BUZZER_PIN, GPIO.LOW) # コメント: 検知時にブザーON
else:
GPIO.output(BUZZER_PIN, GPIO.HIGH) # コメント: 未検知時にブザーOFF
time.sleep(0.2) # コメント: 読み取り間隔
except KeyboardInterrupt:
pass
finally:
GPIO.cleanup()
解説
- まず「共通フロー」を固定すると、部品が変わっても試行が安定します。
- 入力(読む)と出力(動かす)を分けて考えるとデバッグしやすくなります。
- 失敗時はコードより先に配線とピン番号を確認するのが近道です。
よくあるミス
- 配線図と実配線でGNDの列がずれている。
- センサの電源電圧(3.3V/5V)を確認せず接続する。
- 実行時エラーを無視し、原因を切り分けない。