はじめに
ラズパイを使って面白い物を作ってみたいという事で、定期的もしくはSlackからファブリーズを操作する装置を作ってみたいと思います。電子工作はほとんど初めてなので至らない点が多いかと思いますが怒らないで下さい。質問は遠慮なくお願いします。完成品はこちらです。
以下は使用した物です。
- ラズパイ モデル2
- 電動霧吹
- 「ヨーキ産業 電池式スマートスプレー」
- DCモーター駆動式
- モータードライバ
- 「TB6643KQ」
- 単三電池x8
- はんだ
回路
ラズパイに負荷を掛けないように外部電源からモーターを動かしたい時に使われるのがモータードライバです。他にもモーター の回転速度を変えたい時などに、一定の電圧が掛かった時に高速で変更(PWM制御)してくれる部品です。今回はON/OFFの切り替えのみ行います。
各端子の役割は左から順番に下記(データシート)の通り。端子番号2に電圧が加わった時に外部電源からモーターへの電流を流します。
下の緑で囲まれた部分がモータードライバです。
- h2
- ラズパイ10番
- 制御信号送信用
- f3
- モーターLOW
- f5
- モーターHIGH
- j4
- ブレッドボードGRD
- f7
- 外部電源HIGH
- -25
- 外部電源LOW
- -8
- ラズパイGRD
$ gpio -g mode 15 out
-gオプションはBCM番号で参照。
+-----+-----+---------+------+---+---Pi 2---+---+------+---------+-----+-----+
| BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |
+-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
| | | 3.3v | | | 1 || 2 | | | 5v | | |
| 2 | 8 | SDA.1 | IN | 1 | 3 || 4 | | | 5v | | |
| 3 | 9 | SCL.1 | IN | 1 | 5 || 6 | | | 0v | | |
| 4 | 7 | GPIO. 7 | IN | 1 | 7 || 8 | 0 | ALT0 | TxD | 15 | 14 |
| | | 0v | | | 9 || 10 | 0 | OUT | RxD | 16 | 15 |
| 17 | 0 | GPIO. 0 | IN | 0 | 11 || 12 | 0 | IN | GPIO. 1 | 1 | 18 |
| 27 | 2 | GPIO. 2 | IN | 0 | 13 || 14 | | | 0v | | |
| 22 | 3 | GPIO. 3 | IN | 0 | 15 || 16 | 0 | IN | GPIO. 4 | 4 | 23 |
| | | 3.3v | | | 17 || 18 | 0 | IN | GPIO. 5 | 5 | 24 |
| 10 | 12 | MOSI | IN | 0 | 19 || 20 | | | 0v | | |
| 9 | 13 | MISO | IN | 0 | 21 || 22 | 0 | IN | GPIO. 6 | 6 | 25 |
| 11 | 14 | SCLK | IN | 0 | 23 || 24 | 1 | IN | CE0 | 10 | 8 |
| | | 0v | | | 25 || 26 | 1 | IN | CE1 | 11 | 7 |
| 0 | 30 | SDA.0 | IN | 1 | 27 || 28 | 1 | IN | SCL.0 | 31 | 1 |
| 5 | 21 | GPIO.21 | IN | 1 | 29 || 30 | | | 0v | | |
| 6 | 22 | GPIO.22 | IN | 1 | 31 || 32 | 0 | IN | GPIO.26 | 26 | 12 |
| 13 | 23 | GPIO.23 | IN | 0 | 33 || 34 | | | 0v | | |
| 19 | 24 | GPIO.24 | IN | 0 | 35 || 36 | 0 | IN | GPIO.27 | 27 | 16 |
| 26 | 25 | GPIO.25 | IN | 0 | 37 || 38 | 0 | IN | GPIO.28 | 28 | 20 |
| | | 0v | | | 39 || 40 | 0 | IN | GPIO.29 | 29 | 21 |
+-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
| BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |
+-----+-----+---------+------+---+---Pi 2---+---+------+---------+-----+-----+
スクリプト
$ cat mort.sh
#!/bin/bash
gpio -g write 15 1
echo "BCM Pin 15 is 1"
sleep 1
gpio -g write 15 0
echo "BCM Pin 15 is 0"
外部電源を入れて上記スクリプトを実行するとモーターが1秒回転します。ファブリーズが噴射すれば成功です。
課題
- 停電などでラズパイが落ちると基板を制御出来なくなり、電流が流れ続けるのでモーターが回転し続けてしまう
- 騒音