新刊ピックアップ

素人電子工作奮闘記:ラズパイPico 2Wで挑む! お薬飲み忘れ防止ガジェット開発

この記事を読むのに必要な時間:およそ 2 分

自分だけのガジェットを作るって,ワクワクしませんか?

世の中にはたくさんの「困った」があって,それに対応する便利なアイテムも星の数ほど存在しますよね。でも,自分の「こういうやつがほしい!」というニーズに完璧にハマるものって,なかなか見つからない。結局,既製品のちょっとした不満を工夫して使ったり,昔ながらのアナログな方法でなんとかしのいだりしているのが,私たちの日常だったりします。

そんな中,私たちの前に現れたのが,ラズパイPico W/2W。簡単なのに高性能,そしてお財布にも優しい,まさに無敵の救世主! Wi-Fiだってサクッと繋がっちゃうんですから驚きです。

これを使えば,電子工作ド素人の私だって,自分だけのオリジナルガジェットが作れるかもしれない! そんな期待に胸が膨らみました。

ラズパイPico W/2Wとは?

ラズパイPico W/2Wとは,Raspberry Pi Foundationが開発する小型のマイコンボードです。いわゆる電子工作を楽しむためのキットとして,多くのファンを獲得しています。

計算処理や制御処理を行うマイコンチップや無線LANの仕組みを搭載しており,LED・液晶表示器・センサーなどを接続してプログラミングすることで,自分のアイデアを実現する作品を生み出せます。

ラズパイPico 2W(ボードに搭載した様子)

001.jpg

「もし,こんなガジェットがあったら……」から始まった

さて,一体何を作りたかったのか? それは,ズバリ,お薬の飲み忘れを防いでくれるマシンです!

もちろん,アナログな対策だってあります。⁠○月○日朝」なんてメモを貼ったり,曜日や時間ごとに薬を小分けできるケースを使ったり。でも,正直,メモなんてしょっちゅう書き忘れるし,小分けにするのも結構面倒くさい。⁠薬を飲み忘れてるよ!」って,さりげなく教えてくれるガジェットが欲しい!

操作はできる限りシンプルに。ボタンがいっぱい付いていると,どれを押せばいいか迷ってしまいます。何も考えずに「ポチッ」と一回押すだけでOK,そんなのが理想です。

シンプルこそ最強!徹底的にこだわった設計

それなら,アラームやタイマーの仕組みを応用すればいけるんじゃないか? そう考えました。

具体的には,一日の服薬タイミング「朝・昼・夜・寝る前」に合わせて,それぞれの締め切り時間(7:00,13:00,21:00,23:59)を設定。そして,小型の液晶ディスプレイには,現在の時間と,一番近い締め切り時間を分かりやすく表示します。

薬を飲んだら,ユーザはただボタンを一度押すだけ。すると,表示されている締め切り時間が,次の服薬タイミングへと自動的に切り替わるという仕組みです。もし,設定時間を過ぎてもボタンが押されなかったら,LEDをピカピカ点滅させて「飲んでないよ!」と教えてくれます。点滅中にボタンを押せば,LEDは消えて,次のタイミングに進む,というわけです。

時刻合わせの手間をなくすために,Wi-Fi経由でNTPサーバーに接続して,常に正確な時間をゲット。起動したときには,現在の時間以降で一番近い締め切り時間を,初期値として表示するようにしました。これらのアイデアは,外食先のレストランで,紙ナプキンに落書きしながら考えました。

紙ナプキンにアイデアを書き出す

002.jpg

必要最低限だから扱いやすい。厳選したハードウェアたち

ガジェットの部品選びは,参考書で紹介されていた,初心者にも扱いやすそうなものを中心にセレクトしました。表示部分には,小さくて省エネなI2C接続の液晶ディスプレイ「AQM0802⁠⁠。

通知用のLEDは,パッと見て分かりやすい青色を選びました(しかも抵抗内蔵型なので,配線がちょっと楽なんです⁠⁠。

操作ボタンは,押しやすいように,一般的なものより少し大きめのものをチョイス。これらの部品たちを,ブレッドボードを使ってラズパイPico 2Wに接続しました。

さらに,すべてのGNDピンをGNDラインに繋ぎ,念のためパスコンも2個投入。これで誤動作対策もバッチリ…のはず!

頼れる相棒!AIとの二人三脚によるソフトウェア開発

プログラミングについてもど素人の私。そこで,⁠Geminiくん,助けて!」とお願いすることにしました。

「こんな条件で動くプログラムを書いて」と,ざっくりとしたお願いをしてみたところ,それらしいコードを吐き出してくれました。…が,もちろん一発で完璧に動くわけもなく(やっぱり欲張りすぎましたか⁠⁠。

こういうときは,焦らずに,少しずつ機能を追加していくのがセオリーですよね。参考書を片手に,自分で書けるところは書いて,分からないところはGeminiくんに教えてもらいながら,少しずつ進めていきました。

具体的なステップとしては,①現在の時刻を液晶に表示する,②締め切り時刻を設定して表示する,③ボタンを押すと締め切り時刻が更新される,④締め切り時間を過ぎたらLEDを点滅させる,⑤ボタンを押すとLEDが消えて次の締め切り時刻になる,⑥日付が変わる時の誤作動を防ぐ,といった具合に機能を分割して,一つずつ動作確認をしてから次の機能を追加していきました。

以下の動画は,0700を締切とし0659からの一連の動作を記録したものです。ご覧のように0700の時間になると左上の青いLEDが点滅,ボタンを押すとLEDが消灯,次の締切(1300)が表示されています。

大きめのボタンを使ったせいか,ボタンを押したときの信号が何度もON/OFFを繰り返してしまうチャッタリングという現象に悩まされ,締め切り時間が一気に数回分も進んでしまうこともありましたが,それもなんとか解決! ついに,ガジェットは思い描いた通りに動作するようになったんです。やったー!

小さな一歩が,無限の可能性へ

とりあえず,最初の目標は達成! でも,実際にこのガジェットを使ってみるうちに,⁠もっとこうなったら便利かも」という新しいアイデアがどんどん湧いてきました。

「ボタンを押した時間を記録して,スマホから確認できたら,もっと便利になるかも⁠⁠。

スマホアプリがブロックプログラミングで簡単に作れる「MIT App Inventor2」を使えば,それも夢じゃないかもしれません。さらに,遠くに住む高齢の親に使ってもらえば,さりげない見守りにもつながるかも。

自分で作ったガジェットって,後からいくらでも機能を足していけるのが良いですよね。小さな一歩から始まった今回のガジェット作りですが,その可能性は無限に広がっていると感じています。

開発を陰で支えてくれた,心強い一冊

今回のガジェット作りの基本的な知識やハードウェアの製作についての参考書はこちらの本です。フルカラーで図解が豊富なので,電子工作初心者でもすごくわかりやすくなっています。⁠何か困っていることを解決したい」⁠電子工作に挑戦してみたい」⁠スマホアプリにも興味がある」という方には,ぜひ手に取ってみてほしい一冊です。