ESP32マイコンボードでライブラリを使用しないサーボモーターSG90の速度コントロール可能なソースを複数サイトのソースを組み合わせて書きました。
今回はESP32マイコンを使って自動開閉ゴミ箱を作ってみました。
ESP32マイコンはWi-FiとBluetoothを搭載した低消費電力のマイクロコントローラです。
自動開閉ゴミ箱は、IR(赤外線)センサーで手を検出して、サーボモーターで蓋を開閉する仕組みです。
以下の手順で作成しました。
1. 必要な部品と道具を用意する
2. 配線図に従って配線する
3. Arduino IDEでプログラムを書く
4. ESP32マイコンにプログラムを書き込む
5. 動作確認する
必要な部品と道具
- ESP32マイコンボード(ESP-WROOM-32)
- サーボモーター(SG90)
- IRセンサー(LM393)
- AC-DC5V電源アダプター
- プラスチック製のゴミ箱
- ルーターやヤスリなどの切断用具
- ホットグルーガンやネジなどの固定用具
配線図
以下のように配線します。
IRセンサーのVCCはESP32の3.3Vに、GNDはGNDに、OUTはGPIO33に接続します。
サーボモーターの赤い線はESP32の5Vに、茶色い線はGNDに、オレンジ色の線はGPIO5に接続します。
プログラム
Arduino IDEをインストールして、ESP32マイコンボードを選択します。
以下のソースプログラムを書きます。
ソースプログラム
const int IRSENSOR = 33; // 赤外線センサ
const int SERV = 5; // サーボ
boolean IRSENSOR_flg=false; //IRセンサ反応フラグ
void setup() {
pinMode(IRSENSOR, INPUT_PULLUP);//IRセンサに手をかざす(安定させるため内部プルアップ抵抗を指定)
pinMode(SERV,OUTPUT);
}
void loop() {
if(digitalRead(IRSENSOR) == LOW){ //IRセンサに手をかざしたら
IRSENSOR_flg=true; //IRセンサに手をかざした状態
}
if (IRSENSOR_flg == true){ //サーボモーターを回す
for(int j=90;j>0;j--){//90°から0°へ回転
SERVSpeed(j);
}
}
for(int i=0;i<=90;i++){//0°から90°へ回転
SERVSpeed(i);
exit(0);//繰り返さない
}
}
void SERVSpeed(int x){//xの値は0~180
int PWM = (x*8.75)+420;//角度からパルス幅への変換式
//数値8.75は指定した角度までフタが開いてくれない時には数値を大きくする。
//数値420はフタが閉まるべき位置で開いたままなら数値を小さくする。
digitalWrite(SERV,HIGH);
delayMicroseconds(PWM);
digitalWrite(SERV,LOW);
delay(200);//ゴミ箱フタの閉速度調整カッコ内数値が大きいほどゴミ箱フタがゆっくり閉まる
}
ソースプログラム内にできるだけ説明を入れております。
サーボモーターの取付方向などにより上のソースプログラム16行目と20行目の角度数値は変わります。
26行目はサーボモーターの個体差に合わせて27~28行目の説明を参考に数値を変更して調整してください。
動作確認
ソースプログラムをESP32マイコンに書き込みます。
Arduino IDEのシリアルモニタで出力が表示されることを確認してブレッドボード上にて動作確認を行います。
サーボモーター、IRセンサー、ESP32マイコンボードを配線しプラスチックごみ箱に取り付ける
サーボモーターの取付
プラスチック製のゴミ箱の蓋にサーボモーターを取り付けます。
今回はゴミ箱フタをルータやヤスリで加工してサーボモーターをネジで固定し、プラスチック溶接機で溶着させたヒンジと接続しました。
ゴミ箱フタの開閉をチェックしながら加工していました。
この段階でゴミ箱のフタが閉まる速度が速かったのでソースプログラムを変更して上のソースプログラムに落ち着きました。
IRセンサーとESP32マイコンボード、電源プラグの取付
IRセンサーとESP32マイコンボードはゴミ箱の前面に取り付けます。
IRセンサーとマイコンボードの保護に廃棄プリンターから部品取りしておいたアクリル板とプラ板を使用しました。
AC電源は廃棄無線LANから流用した出力DC5V1Aです。
配線はゴミ箱の内側に隠してホットグルーガンなどで固定します。
手をかざすと自動開閉ゴミ箱完成
完成した自動開閉ゴミ箱は以下のようになります。
手をゴミ箱の前にかざすと、蓋が自動的に開きます。開ききったらゆっくりと蓋が閉じます。
ペダルを踏むとフタが開く機能は残してありますので改造前と変わらずゴミ捨てできます。
ESP32マイコンで自動開閉ゴミ箱を作る方法を紹介しました。
ESP32マイコンは様々なセンサーやアクチュエーターと組み合わせて、便利なデバイスを作ることができます。ぜひ挑戦してみてください。