Arduinoと7セグLEDで電子サイコロを作ってスゴロクで遊んだよ!

台風のため外出しない週末の過ごし方。家に転がっている「おとうさんのおもちゃ」で山キッズたちと遊びます。

今回は電子サイコロ!

「ねえねぇ、おとうさーん、Arduinoやろうよ」

というので、前回7セグLEDで遊んだ続きをやることにしました。

電子部品をチェックしに息子と日本橋をブラブラしてきたよ!
台風一過。運ばれてきた南方の風がもわーんとしています。今日は海も山も行かず、山キッズ1と二人で日本橋にやってきました。 大阪の電気街といえば...

本当はLED7発でサイコロの目を表現したかったのですが、手持ちのLED在庫では色が揃わなかったので、7セグLEDでデジタルサイコロに方針変更。

IMG 3346

任意の数字を表示させるプログラムを作るところまでできていたので、あとは

・スイッチが押されたら、ランダムに1〜6の数字を表示する

・電子サイコロ感を出すために、ピロピロ回るアニメーションを加える

・ムードを盛り上げる効果音を発生(圧電ブザーで音を鳴らしています)

こんな感じでプログラムを書き足します。

今回時間がかかったところ

loop内でスイッチが押されたときにサイコロが回り始めるようにしたかったのですが、digitalRead(PINNO) == HIGHを条件にしても勝手にプログラムが進んでしまいます。調べた結果、digitalInする場合、GNDもしくは5Vを入れておかないと周りの回路の状態次第で不定値をとるようです。digitalInのPINの5vを直接入れるのではなく、プルアップ抵抗を入れて電流を流すことで解決しました。

また、乱数のシード値を一定にしてしまうと毎回同じ乱数が発生してしまうため、特に何も繋いでいないanalogIn(0)の値をシード値として使うようにしました。

動画もアップしてみました

電子サイコロなので、それほど大したプログラムでもないのですが、作ったものが実際に動くと楽しいものですね。

作ったものは実際に使って楽しむ!

Fullsizeoutput 3254

早速、電子サイコロを使いながらすごろくゲームをやって遊んでいました。

山キッズ1曰く、サイコロの振り方でズルできないから良い!らしいです。普段の遊びにも使えそうなので、次は小型のArduinoProMini互換ボードとかを使って組み上げちゃいましょうか。

応援よろしくお願いします!
↓更新の励みになりますのでランキング投票お願いします! にほんブログ村 アウトドアブログへ

この記事をシェアする

山ボーイをフォローする