Raspberry Pi や M5Stack でパトランプを制御
概要
Raspberry Pi や M5Stack を使ってパトランプを制御してみました。ハードウェアはド素人なので説明が雑なのはご容赦を..
使用したもの
- デバイス ※他のモデルでも基本的には同じはずです
- Raspberry Pi Zero 2 W
- M5Stack ATOM Lite
- パトランプ
- ポリスライト CLV-502 (5V)
- なないろ館 12/24V 兼用 フラッシュ ストロボ LED 警告灯 回転灯 (レッド) (12/24V)
- NPN シリコントランジスター 2SC1815-GR
- DC-DC ブーストステップアップ 転換モジュール 昇圧型 2V-24V to 5V-28V (12/24V の場合)
デバイス (Raspberry Pi / M5Stack) との接続
1 のパトランプは単三電池 3本 (4.5V) で回るだけのものだったので、電池の代わりにデバイスから 5V を与えます。2 の警告灯の場合は 12V の線と 24V の線が延びていたので、デバイスの 5V を昇圧型の DC-DC モジュールで 12V または 24V に変換して与えます。
またデバイスの 5V ポートは直接 ON/OFF できないので、GPIO を制御してトランジスタを使って ON/OFF します。
(1) 5V の場合
以下のように配線しました。(バイポーラ型)トランジスタは BE (Base-Emitter) 間に電流を流すと CE (Collector-Emitter) 間が通電するというもの。E を GND(0V) に接続し、B に接続した GPIO を ON にして BE 間に電流が流れると CE 間が 5V で通電、OFF にすると通電しなくなります。つまり GPIO がスイッチの役割となります。トランジスタ完全に理解した!
電池ボックス内で雑に実装しました😅
デバイス側は、黒: GND、赤: 5V、青: GPIO に接続します。以下は Raspberry Pi の GPIO 4、ATOM Lite の場合は GPIO 32 (G32) に接続したものです。
(2) 12/24V の場合
パトランプが 5V 駆動でない (12/24V など) 場合は、デバイスにつながる GND/5V の間に昇圧型の DC-DC モジュールをはさむだけです。出力電圧はつまみで調整します。
制御例
GPIO を ON/OFF して点灯すれば完成です。あとは監視ソフトなどと組み合わせて動かしましょう!
Raspberry Pi
3 秒間隔で ON/OFF します。
import time
from RPi import GPIO
PIN_OUT = 4 // 接続したポート番号
GPIO.setmode(GPIO.BCM)
GPIO.setup(PIN_OUT, GPIO.OUT)
while True:
GPIO.output(PIN_OUT, 1)
time.sleep(3)
GPIO.output(PIN_OUT, 0)
time.sleep(3)
M5Stack
ボタンを押すと ON になります。
const int PIN_OUT = 32; // 接続したポート番号
void setup()
{
pinMode(PIN_OUT, OUTPUT);
}
void loop()
{
M5.update();
if (M5.Btn.isPressed())
{
digitalWrite(PIN_OUT, HIGH);
}
else
{
digitalWrite(PIN_OUT, LOW);
}
delay(100);
}
Discussion