RaspberryPiで自動液体スプレーを作る!
コロナ禍でたくさんの電子工作物が生まれましたが, 感染防止の観点で自動アルコールディスペンサーもありました. ただしその機構はプッシュ式のものを物理的にモータ等で駆動したものが多かった印象です. そこで今回はポンプを使って液体噴射してみます. ぜひお試しを!
準備したもの
セットアップ
ソフトウェア
pigpio
ポンプを稼働させるGPIO信号を生成させるためにインストールします.
# install gpio
pip3 install pigpio
ハードウェア
配線
RaspberryPi, モータドライバ, ポンプやACアダプタを結線します.
RaspberryPi | モータドライバ |
5V | Vcc |
GND | GND |
GPIO5 | INA1 |
GPIO12 | INA2 |
GPIO13 | PWMA |
モータードライバ仕様
ポンプを動作させるには12Vの電圧をそのモータに印加させる必要があります.
モータドライバTB67H420FTGの仕様を見ると, PWMAに1, INA1に1, INA2に0のGPIO信号を書き込むと12Vの電圧を印加できることがわかります. そうすると, モータが動き, 液体を噴射させることができます.
上記仕様に従って下記プログラムが記述されています.
配線して, 下記プログラムを実行し, 液体が噴射されれば, うまくセットアップできています.
import pigpio
import time
class Pump():
def __init__(self, in1, in2, pwm):
self.in1, self.in2, self.pwm = in1, in2, pwm
self.pi_in1 = pigpio.pi()
self.pi_in2 = pigpio.pi()
self.pi_pwm = pigpio.pi()
self.pi_in1.set_mode(self.in1, pigpio.OUTPUT)
self.pi_in2.set_mode(self.in2, pigpio.OUTPUT)
self.pi_pwm.set_mode(self.pwm, pigpio.OUTPUT)
def spray(self, spraytime):
self.pi_in1.write(self.in1, 1)
self.pi_in2.write(self.in2, 0)
self.pi_pwm.write(self.pwm, 1)
time.sleep(spraytime)
self.pi_in1.write(self.in1, 0)
self.pi_in2.write(self.in2, 0)
self.pi_pwm.write(self.pwm, 0)
if __name__ == '__main__':
in1, in2, pwm = 5, 12, 13
pump = Pump(in1, in2, pwm)
pump.spray(0.1)
終わりに
今回はポンプを使って液体噴射してみました. 余計な機構がないので, パッケージ化すれば, コンパクトになると思います. 液体の中身を変えれば多様な使い方ができると思うので, ぜひ使ってみてください!