夏の蚊対策にサーボモータを利用してみた

企画意図
Qiitaに技術面の進め方を書いているので、こちらではやりながら感じたことを書いてゆきます。何といっても非羽状に熱い今年の暑い夏、たぶん虫たちも活発に活動する。そこで何か面白いことをやってみようと、昔の魚屋さんの店頭のハエヨケ機、家電店の扇風機売り場の情景から、風鈴のような蚊よけマシンを思いつきました。
いろんな分野の情報をかたっぱしから頭に詰め込んでゆくと、頭のなかで発酵熟成して、なにがしかのアイデアを生み出す。それが元の分野と異なると、斬新なアイデアになるのかもしれない。今回のアイデアも昔の情景がよみがえっただけで、自分としては特にすごいことはしていないつもりです。
ふたん仕事に関係したことばかり考えているので、遊びのつもりでやってます。小学生の時の「学研 マイキット」という電子工作の遊びみたいです。
事前準備
今回特に気を付けたのは、「たぶん途中で行き詰まるだろう」から、そのための備えをどうするか?であった。時間をかけて自分で解決策を見出だす作成は、今秋出張が控えているため、取れない。なので、だれかにヘルプを求めることを想定しておくこと。そのために何を考えているかを伝える資料(Qiita登場)作成に時間をかけました。自分の頭の中を伝えるためイラストたくさん必要だと思い生成AIで準備しました。
それでもやっぱりトラブルはあった
以前から発生して解決できていなかったが、Githubの中野自分のファイルへのリンクが入手できない。そもそもGitとかGithubは最近ISO審査員でIT企業を訪問すると必ずでてくる技術用語なので、どんなものかつ使い始めたが、まだよくわかっていない。なので、以下の画面から先に進めない(アップしたファイルのURLがわからない。自力での解決は早々にあきらめ、ヘルプを出して助けを待っている状態。→GithubでなくYoutubeへ動画アップしてうまくいきました。Youtube動画を追加しておきます。
肝心のサーボモータのプログラムのほうは、動作をこれから行うのだが、ヒモが50cmはあり、それなりの場所が必要。今夜家族が寝静まったら、デバグすることにしよう。
早速、obniz IDを記入ミスして動かない。アクセストークン不要なのに設定してしまって動かないなど、それだけでも解決に時間かかってしまった。
第一エラーメッセージが原因そのものズバリを言ってくれないから。現在もまたよくわからないエラーメッセージで動きません。先は長そうです。

コードの説明
開発はobniz開発コンソールのHTMLで作成しています。
サーボモータが正回転時は青色LED点灯、逆回転時は消灯させます。
サーボモータにつけたプロペラの先端に長いヒモ2本を括り付けています。
以下ソースコードはデバッグ中のものです。
<!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>