企画意図
夏になると出てくる蚊。手で追い払っても寄ってくる。そこで蚊を追い払う作戦だが、家電量販店の扇風機売り場を思い出してほしい。風が出ていることを見える化するためヒモをつけて風になびかせている。そのヒモの動きで蚊を追い払う。ヒモを動かすのにサーボモーターを使ってみようと思った次第。本記事ではできたところまでを書いて、進捗あったら書き足してゆきます。
発想の原点
昔の魚屋さんの店頭にはハエが寄ってこないように次のイラストのようにヒモを垂らしてそれを動かして、ハエを追い払っていた(そのほかネバネバ紙でハエをからめとるハエトリ紙もあった)。このように紙ヒモを動かして、蚊を追い払おうということ。サーボモータに付けたプロペラの先端に紙をくっつけて、それを動かしておこうということ。
装置構成
obnizボードにサーボモータと、あと正回転してるのか逆回転してるのかを示すLEDをつけて、高いところから吊るし、ヒモを下にたらす。イメージはこんな感じ。(上下にゆれているのはご愛敬ということで無視してください)
https://youtube.com/shorts/NDeBMAdeo_E
プログラムの動作意図
これはobnizの開発画面→HTMLで開発します。
サーボモータを正回転させる前に青色のLED店頭、逆回時は消灯させるともりです。
サーボモータに取り付けたプロペラの先端に長いヒモ(引っ越し時の荷造り用)を2本つないであります。
現在デバッグ中でまだ動いていません。
ソースコードをPCで起動するとエラーが表示されてしまうので、LED単体、サーボモタ単体での動作確認を行っている状況です。
開発途中のソースコード
CHATGPTの修正を入れていますが、まだ動作確認前です。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Obniz LED+Servo Control</title>
<script src="https://unpkg.com/obniz@3.31.0/obniz.js"></script>
</head>
<body>
<div id="obniz-debug"></div>
<h1>夏の蚊対策</h1>
<script>
const obniz = new Obniz('xxxx-xxxx');
obniz.onconnect = async function () {
const servo = obniz.wired('ServoMotor', { signal: 2 });
const led = obniz.wired("LED", { anode: 0, cathode: 1 });
obniz.display.clear();
obniz.display.print('Hello obniz!');
led.off();
while (true) {
await new Promise(r => setTimeout(r, 3000));
obniz.display.clear();
obniz.display.print(`Plus direction`);
led.on();
servo.angle(180);
await new Promise(r => setTimeout(r, 3000));
obniz.display.clear();
obniz.display.print(`Minus direction`);
led.off();
servo.angle(0);
}
};
</script>
</body>
</html>