ArduinoでLT用のプレゼンタイマーを作成しました。
Aruinoの初心者キットを先輩から借りたので、会社で自分が主催しているLT会用のプレゼンタイマーを作成してみました!
ちなみに、Arduinoを触るのは始めてです。
仕様
LT会の発表は発表時間7分、質疑応答3分で行っています。
それを考慮して、簡単な仕様を考えてみました。
「プレゼンタイマー」
・スタートボタンを押す。
(発表開始)
・ブザー音が2秒鳴る。白LEDが光る。
・5分経つと黄色LEDが光る。ブザー音が1秒鳴る。
・7分経つと赤色LEDが光る。ブザー音が3秒鳴る。
(発表終了、質疑開始)
・3分経つとブザー音が3秒鳴る。
(質疑終了)
デモ
デモ用に待ち時間を短縮してます。
平日の朝に撮影したのですが、かなりシュールな動画になってます笑
配線
LEDはプラス側が手前です。
回路図作成ソフトで「Fritzing」てのがあり少し触ってみたのですが、作成に時間がかかりそうだったので、写真だけ載せておきます。
コード
delay()はある一定時間以上だと正常動作しなくなるのですが、時間の後ろにULをつけると動作します。詳しくは参考に記述したリファレンスサイトをご確認ください。
// ブザーで利用するピン定義 int buzzer_pin = 8; // LEDで利用するピン定義 int led_pins[] = {9,10,11}; // 1秒 int one_sec = 1000; void setup() { } void loop() { //***********【プレゼンスタート】************** //ドの音を2秒鳴らす tone(buzzer_pin, 523, one_sec * 2); //白のLEDを光らせる digitalWrite(9, HIGH); //5分待つ delay(one_sec * 300UL); //***********【開始から5分経過】************** //ミの音を1秒鳴らす tone(buzzer_pin, 659, one_sec * 1); //緑のLEDを光らせる digitalWrite(10, HIGH); //2分待つ delay(one_sec * 120UL); //***********【開始から7分経過】************** //赤のLEDを光らせる digitalWrite(11, HIGH); //ソの音を3秒鳴らす tone(buzzer_pin, 784, one_sec * 3); //***********【質疑応答スタート】************** //3分待つ delay(one_sec * 180UL); //***********【質疑応答終了】***************** //ソの音を3秒鳴らす tone(buzzer_pin, 784, one_sec * 3); //すぐに処理が終了しないように、3分だけ待機 delay(one_sec * 180UL); }
苦労したこと
開発できる場所が限られる
家だと集中できないので、作業するときはファミレスでやることが多いです。
ただ、人が沢山いるファミレスでハード系の作業をやるのは流石に厳しいので、今回は人気のないコンビニのイートインコーナーで作業してました。
配線いじったり、音がなったりしてたので、こそこそやっていました(汗)
ハードを扱う怖さ
Arduinoの記事をみると、配線を間違えると繋いでるPCが壊れる!とか、 LEDの極性を間違えると部品が吹き飛ぶよ!などと書いてあったので、 ビクビクしながらやっていました。
感想
思ってた以上に簡単に動く物が作れた!
専用の開発環境がある。公式サイトや記事の充実。簡単な文法で実装可能。
ハードウェア面白い!
日頃ソフトしかやっていないので、ハードと組み合わせて何か作りたくなった。
エンジニア以外の人に是非やってもらいたい!
基礎のプログラミング覚えられる。モノ作りの楽しさを実感できる。
参考
Arduino docs
https://fabkura.gitbooks.io/arduino-docs/content/chapter7.html
delayMicroseconds(us) - Arduino 日本語リファレンス
http://www.musashinodenpa.com/arduino/ref/index.php?f=0&pos=2564