頭の中のアイデアを「Arduino(アルドゥイーノ)」で実現!! 筆者と一緒にモノづくりの喜びや難しさを体験・体感してみよう。連載第9回は、前回作った電光掲示板にスイッチとブザーを追加する。仕様通りに完成させるぞ!
厳しかった冬もようやく終わりを告げ、少しずつ春の気配を感じられるようになってきました。ただ、せっかく暖かくなってきても、筆者は毎日のようにPCにかじりついて仕事をしています。当然、運動不足の自覚もあり、いいかげん何とかしなくてはと思っていますが、なかなか実行に移せません……。
カラダを動かすことは、運動不足解消だけでなく、考えで煮詰まった頭をリフレッシュさせてくれる効果もあります。そう、仕事中に誰かが「ちょっと散歩に行っておいでよ!」なんて声を掛けてくれたらどんなにいいことか……。
そんなことを考え、前回、「Arduino」を専属トレーナーにしようと「運動しなさい! 電光掲示板」の開発に挑戦しました。ただ、ディスプレイの扱いが思いのほか手強くて、当初予定していた機能を盛り込むことができませんでした……。今回はそのリベンジです!
前回作ったのは、16文字×2行の表示が行えるOLEDカラーディスプレイを、3つのブロックに区切って文字を表示するシステムです。
使用したディスプレイは、共立エレショップの「シリアル→パラレル変換ボード付16x2 OLEDカラーディスプレイ」です。このキットは、変換ボードとディスプレイがセットになっているので、たった2本のケーブルを接続するだけで配線が完了します。メッセージ表示は、「Serial.print()」を使って文字列を送るだけと超カンタンです! しかし、表示を思い通りに制御しようとすると、それなりにプログラミングしなくてはなりません。実際、ガリガリと書いてみたら、想像以上にプログラムが長くなってしまい驚きました。
企画段階では、スイッチで設定時間を指定できるようにして、ブザー音とともにディスプレイにメッセージを表示するつもりでした。今回は、当初の計画通り完成させますよー! じゃじゃーん(画像1)。
前回の電光掲示板回路に、スイッチを3つとブザーを1つ追加しました。「スイッチもブザーもこれまで使ったことがあるから、今度こそラクショー!」と思っていたんですが……。ディスプレイに表示したタイマーの数字をチカチカと点滅させようとしたら、プログラムにちょっと工夫が必要でした。
タイマーと連動させて文字を点滅させるのは、Arduino入門で必ずやる“LEDチカチカ”とは考え方が違いました。「マイコンプログラムは奥が深い!!」と思いつつ、どうにか「運動しなさい! 電光掲示板 ver.1.1」を完成させました(動画1)。
スイッチで時間をセットして、中央のスタートボタンを押したら、タイマーが始動。前回より仕様を少しバージョンアップして、メッセージは複数登録したものをランダム表示するようにしました。
スイッチを1回押すごとに、設定時間が「+1」または「−1」されます。また、さすがに60分を指定するのにボタンを59回押すのは面倒なので、長押ししたら連続して数字がインクリメント/デクリメントされるようにプログラムしました。もう1つ、タイマーの数字がチカチカと点滅するのもポイントです。これがないとシステムが動いているように見えないんですよね。
今回追加した機能は、日常使っている家電製品でもよくあるものですが、自分でプログラミングしてみると「なるほど、こういうロジックにしないと動かないのか」といった気付きもあり、非常に面白かったです。
以下、今回使用する部品を紹介します(画像2、表1)。
それでは、ブレッドボード上で回路を作成してみましょう。回路図と部品配置図を以下に示します(画像3、画像4、画像5)。
今回、機能が追加されたので、モジュール構成は以下のようになります(画像6)。
Copyright © ITmedia, Inc. All Rights Reserved.