6種類の警報音が鳴るサウンドボックスの製作
警報音が6種類入った「SMC0618」サウンドICを購入。2020年3月現在、aitendoで1個130円で売ってます。
車の盗難防止機器で使われるような音が簡単に鳴らせます。
(データシートを見ると、12Vの電源で大音量を鳴らすためのサンプル回路になっていることから、まさに車載機器用に作られたICのような気がします。)
サイレンとか警報音は、ボタンを押して鳴らすだけで子供が喜んでくれます。ちょうどこうしたおもちゃが好きな世代のお子さんを持つ友人にプレゼントする機会があり、このICを使って、子供がとにかく喜びそうなサウンドボックスを製作しました。
目次
設計のポイント
子供がとにかく喜びそうなおもちゃの条件を揃えるために、次のポイントにこだわりました。
- ボタンがたくさんついてる
- 押したらとにかく喧しい音が鳴る
- 光りまくる
- 謎のダイヤルがついてる
- シルバーの金属製トグルスイッチで電源ON!
できたのがこちら。
回路図
基本はSMC6018にスイッチとスピーカー、電源を接続するだけです。
データシートのサンプル回路は12Vの電源と大音量スピーカーに接続するためのものですが、乾電池2本(3V)で動作させるにはシンプルにVddに接続し、スピーカー端子に圧電スピーカーをそのまま接続すれば動作します。
回路図はこちら。
工夫したポイントは次の通り。
- サウンド鳴動に連動したLEDを光らせてます。SMC0618はスピーカー出力端子が2つあり、一つは普通にスピーカーに接続しますが、もう一つは抵抗を挟んで赤色LEDに接続しています。
- スピーカーボリュームを追加。スピーカー出力端子と圧電スピーカーの間に可変抵抗を挟んでます。これで、音量調整機能を持たせています。
- 大きめのタクトスイッチでいろんな色・形のボタンを設置。いろんなボタンを楽しめます。また、ボタンによって音が変わることも楽しめます。
- 電源LEDを追加。電源スイッチに連動して緑色に光るようにしています。とにかく光るものが多いとお子さんが喜びます。
- 乾電池二本で動作。遊びまくって電池がなくなっても、調達しやすい乾電池を交換すればまた遊べます。
回路図はgithubで公開しています。
この回路図に従って、組み立てを行います。
ブレッドボードでの組み立て
ブレッドボードで動作確認。
実験段階ではディップスイッチで確認しました。
外装設計、実装
ケースは100均で買ってきた、ポリプロピレン製っぽい小さめの箱を選びました。
お子さんのおもちゃということで、落としても割れなさそうな素材を選んでます。
単4電池2本のケースが入って少し余裕があるぐらいのサイズでした。
近いサイズのものなら何でもOKと思います。
これに、スイッチを並べて端子を通す穴を空けてスイッチを実装しました。
スピーカーも外付けすることで大音量を楽しめるようにします。
あとは、ブレッドボードで動作確認した部品をユニバーサル基板に実装して完成です。
まとめ
シンプルな構成で、マイコン制御なく組み立てられるため、丈夫で安全なお子様用のおもちゃが手軽に制作できます。メインのICが130円で、スピーカーやスイッチ、可変抵抗やスピーカーを合わせても500円~700円ぐらいで部材が揃いおもちゃとしてもお手頃です。お子さんのおもちゃを自作してみたい、という方は是非チャレンジしてみてください。
部材リスト
ご参考に、今回の工作に必要な部材のリストを挙げておきます。
- 6アラームサウンドIC「SMC0618」
- 大きめのタクトスイッチ
- ボリューム型可変抵抗
- 圧電スピーカー
- LED
- 抵抗
- 電池ボックス
- ユニバーサル基板
- 単4電池
ATTiny85を使った小型ゲーム機の製作(その2:小型ケース加工、ユニバーサル基板への実装)
tinyjoypadで公開されている情報に基づいて、小型・省電力で安価なATTiny85を使った小型ゲーム機を製作しました。
前回の記事では、ATTiny85マイコンに書き込むまでの手順をまとめました。
この記事では、書き込んだマイコンやボタンを小型のケースにまとめて、持ち運んだり手軽に遊べるように組み上げるための情報をまとめてみたいと思います。
目次
ケースの選定と基板の加工
tinyjoypadはメインのATTiny85マイコン自体が小型で、対応してる液晶が0.96インチの小型なものもあり、周辺デバイスも抵抗とスピーカー、スイッチと、選びようによってはかなり小さな箱に収まります。
フリスクサイズのケースにもがんばったら十分収まる容量なので、良い箱が見つかったら、部品を並べてみて全体的に収まるかどうかを確認し、レイアウトを決めましょう。
今回、秋月で売ってる50円のフリスクケース大の透明スチロールケースを使用しました。
ケースに収まることがわかったら、寸法を測定したりして、スイッチや液晶の固定位置を決めていきます。プラスチックのケースだと、サインペンで位置を決めます。
穴を開けたときに消えますし、間違えてもリームーバーで消せるので、電池などの他の部品と干渉しないかなどを確認します。
次に、メインのユニバーサル基板の加工です。
フリスクケース大にピッタリの基板なんかも売ってたりしますが、私の場合Amazonで売ってる安いセットで近いサイズのものを加工して使ってます。
ケースに収まらない場合は、ニッパーで切って、切断面はヤスリがけすると綺麗になります。
スイッチの取り付け
スイッチの配置が決まったら、ケースに固定していきます。
基板側に実装してからケースの外に出すほうが良いのですが、基板・ケースの固定や位置決めをつめないといけないこと、加工が難しいことから、手軽に遊びでくっつけるだけなら、ケース側にスイッチを付けるほうが楽そうです。
ここでは、4本足のタクトスイッチを使いましたので、ケースにスイッチごとに4つの穴をあけて、スイッチに細い導線をはんだ付けしてからはめ込みます。
穴は、ピンバイスなどでスイッチの足の太さにあわせて直径1mm~2mm程度の穴をあけていきます。先に動線をはんだ付けしている足を入れる穴は広めにしておくと良いでしょう。
穴を開けたら主要な部品が干渉しないか、仮組みします。
今回のゲーム機では、液晶、電池がかなりの場所を取るので、上下のスペースを考えて並べます。結果、液晶をフタにネジ止めし、電池は底に貼り付けることで配置しました。
確認が終わったらスイッチを取り付けます。
小型のスイッチは、先にはんだ付けしておかないとプラスチックケースだと金属部だけ一瞬ではんだ付けするのがたいへんなので、最初に確実にくっつけておくようにします。
スイッチ部とメイン基板の接続設計
スイッチに動線をつけたら、メイン基板と接続するようにコネクタにまとめます。
コネクタにまとめておけば、メイン基板の実装と分離して行えるため、実装がやりやすくなります。コネクタのピン配置はメモしておくと良いでしょう。
スイッチ部の実装が終わったあと、メイン基板側のコネクタ場所を検討します。
今回のようなスペースに限りがある場合、L型のコネクタを用いて接続すると効率が良くなります。
メイン基板の実装
マイコンと電池とコネクタだけのシンプルな実装になります。
(あまり考えてなかった抵抗が、ボリュームと干渉することがわかり、足を思い切り伸ばして横に避けてますが・・・。)
ただし、裏側はコネクタの各端子とマイコンの足を必死でつないでます。
メイン基板とスイッチ部の結合
実装が終わったら、メイン基板とスイッチ部のコネクタを接続します。
電池を入れて動かす前に、主要部分の導通をテスタとかで確認しておくと安全です。
こんなふうに動きます
最後に、組み上げた小型ゲーム機の動作映像をあげておきます。
昔小さいゲームのキーホルダーが流行ったりしたのを知ってる世代だと盛り上がってくれます。小さなケースを見つけたら、是非チャレンジしてみてください。
ATTiny85を使った小型ゲーム機の製作(スペースインベーダー)
ATTiny85を使った小型ゲーム機の製作(その1:ATTiny85の準備)
Arduinoを使って電子オルゴールをいろいろ開発してきましたが、小型化を突き詰めるともう少し小さくて消費電力の低いマイコンを使いたくなります。Arduinoで使われているAVRマイコンの下位ラインナップを調べると、ArduinoIDEで開発できて、手頃なマイコンがいくつかありそうです。
特にATTiny85は10ピンの小型・シンプルな設計で、最低限のリソース・I/Oを備えており、安価で入手もしやすいマイコンです。秋月で1個130円(2020年3月時点)で売ってます。
最終的には、こんな感じの小型ゲーム機を作りました。
完成したゲーム機の動画はこちら。
ATTiny85を使った小型ゲーム機の製作(スペースインベーダー)
面白そう!と思った方は、是非チャレンジしてみてください。
目次
- 目次
- ATTiny85
- tinyjoypad
- ATTiny85の開発環境整備
- ArduinoIDEでブートローダーを書き込む
- tinyjoypadのゲームをダウンロード、ビルドする
- ケースに入れたゲーム機としての実装(その2以降で公開)
- まとめ
ATTiny85
特にATTiny85は10ピンの小型・シンプルな設計で、最低限のリソース・I/Oを備えており、安価で入手もしやすいマイコンです。秋月で1個130円(2020年3月時点)で売ってます。
ネット上に実例も多く工作もしやすそうです。
tinyjoypad
面白いのが「tinyjoypad」プロジェクトです。
ATTiny85にI2Cの液晶をつなげれば簡単に小型ゲーム機が作れます。
ソースはGPLv3で公開されていますので、自由に活用できます。このソースを参考にオリジナルゲームを作ってまた公開し、オープンソースでの開発に貢献するのも楽しそうです。
ATTiny85の開発環境整備
まずは、ATTiny85の開発環境整備です。
このマイコンの書き込みには、AVRマイコンの書き込み環境が必要になります。
Arduinoがあれば、書き込み用プログラムのソースが公開されていますので、ブレッドボードなどで線をつなぐだけで書き込みが可能です。
こちらのサイトが丁寧にまとめていただいているのでとても参考になりました。
一番簡単なのはUSBaspを使うことです。
今回、Amazonで2個で770円のお手頃なUSBasp(HiLetgo 2個セット 51 AVR Atmega プログラムUSBasp USBASP 10ピン USB プログラマー 3.3V/5V ワット/ケーブル [並行輸入品])がありましたので購入してみました。
USBaspとLinuxPC(ubuntu18)を接続。
LinuxPCの場合はドライバは不要で、ArduinoIDEとAVR用のライブラリだけ導入すればすぐに使えます。
今後よく使うかもしれないので、専用の変換アダプタを作ってみました。
USBaspとATTiny85のソケットをつないだだけのものですが、毎回ブレッドボードに線をつなぐ手間が省けて便利です。
私の場合、Ubuntu18の環境で、次の操作をしてすぐに書き込みができました。
(ほぼ自分用のメモです。)
AVRユーティリティ(avrdude)のインストール
$ sudo apt-get install avrdude
ArduinoIDEのボードマネージャにボードをインストール
- 「ファイル」→「 環境設定」の「追加のボードマネージャ」のURLに”http://drazzy.com/package_drazzy.com_index.json”を追加
- 「ツール」→「 ボード」「ボードマネージャ」で ATTinyCore をインストール。
ArduinoIDEでブートローダーを書き込む
USBaspでPCとATTiny85を書き込めるように接続が終わったら、ブートローダーの書き込みです。tinyjoypadで遊ぶには、次のボード設定でブートローダーを書き込みます。
- ボード:ATtiny25/45/85
- Clock:16MHz(PLL)
- 書き込み装置:USBasp
書き込みが完了したら下のメッセージ部に「ブートローダーの書き込みが完了しました。」と出ます。
tinyjoypadのゲームをダウンロード、ビルドする
tinyjoypadのソースと、I2Cディスプレイ制御のためのライブラリを導入します。
tinyjoypadプロジェクトから動かしたいゲームのソースをダウンロードしてきます。
ここでは、「Tiny Tris v2」をダウンロードしてきて、展開する例を示します。
ssd1306xledライブラリをダウンロード
tinyjoypadで使用するI2C接続OLEDのライブラリです。
githubよりzipでダウンロードしましょう。
Tiny Tris v2のダウンロードと展開
こちらのサイトよりTiny Tris v2のソースをダウンロードしてきて、展開します。
ダウンロードしたソースを展開します。
ArduinoIDEでのビルドと書き込み
まず、さきほどダウンロードしてきたソースをAruduinoIDEで開き、まずはOLEDライブラリをインクルードします。
次に、tiny-trisのビルドと、ATTiny85への書き込みを行います。
ArduinoIDEのメニューの「スケッチ」→「書き込み装置を使って書き込む」を選択すると、ビルドと書き込みを行ってくれます。
書き込みが完了すると、次のようなメッセージがでます。
ブレッドボードでの動作確認
ATTiny85マイコンへの書き込みが完了したら、ブレッドボードで動作確認を行います。
tinyjoypadのそれぞれのソースには、回路図も付属しています。
TinyTrisの場合は次のような簡単な回路図がついています。
TinyTrisはアナログ入力で2つの抵抗値のみ判定しますが、インベーダーは可変抵抗で左右操作したり、一部回路構成が違うのでご注意ください。
つないでみた様子はこちら。
I2C接続の有機EL液晶について
ここで使ってる液晶について。
SSD1306コントローラー(または互換コントローラー)搭載で、I2C接続のものなら動きそうです。
私の手元では、次の3つの商品で動作が確認できています。
- 0.96インチ 128×64ドット有機ELディスプレイ(OLED): ディスプレイ・表示器 秋月電子通商-電子部品・ネット通販
- KeeYees OLEDモジュール OLED LCDディスプレイ 0.96インチ I2C IIC 128X64 SSD1306 4ピン ホワイト 白 Arduinoに対応 Raspberry Piに対応 3個入り (白)
- ★1.3インチ★OLEDモジュール★I2C★ - aitendo
ケースに入れたゲーム機としての実装(その2以降で公開)
続きに記載します。
まとめ
小型・省電力、低コストマイコン「ATTiny85」で小型ゲーム機を作る基本的な準備について記載しました。
この基本環境があれば、tinyjoypadで公開されているゲームで遊んだり、自分でゲームを作って公開したりすることができます。
ゲーム以外にも活用方法はたくさんありますので、小型でコイン電池でも動作する省電力デバイスを作りたい方は、是非ご参考に環境構築されてみてはいかがでしょうか。
クエストサウンドボックス(ミニ)の製作
先週作ったクエストサウンドボックスがボタン電池でも十分動いたことから、小型化してみました。
みなさんおなじみの冒険のテーマで日頃の作業を盛り上げたり、山場になったらバトルモードのBGMに流したり、達成したらレベルアップしたり、これらのちょっとしたサウンドを手軽に持ち運べてボタン一つで手軽に流せる「クエストサウンドボックス」のご紹介です。
目次
システムの概要
ボタンを押すと冒険のテーマが流れたり、戦闘シーンのBMGが流れたり、レベルアップのサウンドを鳴らしたりするボックスです。
Arduino miniと安価な一般的な回路で構成されていますので職場に持っていってチーム作業で気分転換に使ったり、何か達成したときにはレベルアップサウンドを流したりして楽しんでみてください。
こんなふうに動きます。
回路図
さて、さっそく設計からです。
回路図はこちら。
Arduino pro mini互換機のGPIOにスピーカー、スイッチ、フルカラーLEDを接続します。
- GPIO2に圧電スピーカーを接続。tone()を使ってサウンド再生します。
- GPIO6~8にスイッチを割り当て。再生メロディ判定に使います。Arduino側ではプルアップで接続し、スイッチを挟んでGNDに落とすことで、シンプルな接続にします。ボタンを押したときはLOW、何も押して無いときはHIGHの判定となります。
- GPIO5~7にフルカラーLEDを接続。赤、緑、青の3色表示ができるようにして、入力待ち状態や現在再生しているメロディの状態表示に用います。
今回、電源はLR2025(LR2032などでも可)を用いており、電源電圧は3Vです。Arduino pro miniの互換ボードで5V入力するために、「DC-DC昇圧 電源昇圧モジュール 10個1.5V 1.8V 2.8V 3V 3.3V 3.7V 4.2Vから5VへのDC-DCブーストコンバータモジュールT64」を挟んで5Vに昇圧しています。参考に、このコンバータは1.5V入力も5Vに昇圧してくれるため、後で試したのですが、LR44(1.5V)でも動作させることができました。
ブレッドボードでの組み立てと動作確認、制御用ソースコード
ブレッドボードに組んで動作確認。
基本的な設計はアンパンマンメロディボックス2と同じですが、次の点でクエストサウンドボックス用に改造しています。
- 青色ボタン(レベルアップサウンド)は一回再生したら入力待ちに遷移する。
- 緑ボタン(フィールドサウンド)と赤ボタン(戦闘サウンド)は再生が始まったら無限に繰り返し再生する。
- 他のボタンが押されたら最初から再生
この時点で、ソフトを焼いて問題がないか確認します。
このシステムの回路図にあわせたソースコードはこちら。
BSDライセンスで公開していますので、自由に改変・組み込みにご活用ください。
ユニバーサル基板での実装
ブレッドボードで動作を確認したら、ユニバーサル基板に実装していきます。
秋月で買った50円の小さい箱を筐体に使っています。この箱を横にすると、Arduino Pro miniを縦方向にしてぴったり収まります。
蓋の部分に小さな赤、青、緑のタクトスイッチの電極分の穴を開けてボタンを固定します。
蓋と基盤の間はコネクタを用いて配線を整理しました。
完全に自分の記録用ですが、基盤のコネクタは次のように配線しています。
今回はカソードコモンのフルカラーLEDを使用。
パックに入ったLEDなので型番不明ですが、おそらくこれ。
RGBフルカラーLED 5mm OSTA5131A カソードコモン (10個入): LED(発光ダイオード) 秋月電子通商-電子部品・ネット通販
自分用のメモですがピン配はこちら。
メーカーのデータシートからの抜粋です。
フルカラーLED用の抵抗を表に実装するスペースがないので裏側に配線。
完成したのがこちら。
前回作成したものと比べると半分以下のサイズになってかわいくなりました。
このサイズだと、持ち歩いてどこでも冒険の雰囲気を作ることができます。
活用方法
かばんに忍ばせておいて、盛り上がってきたら戦闘シーンのBGMを流したり、何か達成したらレベルアップサウンドを鳴らすと盛り上がります。
小型で部材も安いので、場を盛り上げるツールとしてご活用いただければと思います。
部材リスト
最後に、代表的な部材リストを挙げておきます。
- Arduino pro mini互換ボード
- タクトスイッチ
- ケース
- スピーカー
-
電池
- 電池ボックス
- DCDCコンバーター(5V昇圧)
- フルカラーLED
- 抵抗
- ロッカースイッチ
ボタンを押したらレベルアップ音が流れる小箱の製作
先週公開した冒険サウンドが流れる箱で、使い勝手の良いレベルアップ音だけ手軽に流せるように、単機能で持ち運びに便利な派生作品を作ってみました。
部材も少なくて済み、工作も簡単なのでレベルアップ音だけでいい!という方向けにまとめておきます。
目次
システムの概要
こんなふうに動きます。
先週公開した冒険サウンドが流れる箱とからボタンとLEDを一つにしてサウンドをひとつだけサポートしただけのものです。電流を確認したところ、LR44(1.5V)からDCDCコンバーター(DC-DC昇圧 電源昇圧モジュール 10個1.5V 1.8V 2.8V 3V 3.3V 3.7V 4.2Vから5VへのDC-DCブーストコンバータモジュールT64)で5Vに昇圧したら十分動くものだったので、小型化して単機能なものを制作しました。
回路図
Arduino pro mini互換機から、スイッチとLED、圧電スピーカーを接続したらおしまい。
電源はLR44(1.5V)からDCDCコンバーター(DC-DC昇圧 電源昇圧モジュール 10個1.5V 1.8V 2.8V 3V 3.3V 3.7V 4.2Vから5VへのDC-DCブーストコンバータモジュールT64)で5Vに昇圧したらして使ってます。
ソースコード
このシステムの回路図にあわせたソースコードはこちら。
BSDライセンスで公開していますので、自由に改変・組み込みにご活用ください。
部材リスト
最後に、主要な部材のリストを挙げておきます。
・Arduino pro mini互換機
・DCDCコンバーター(5V昇圧)
・電池、電池ボックス
・トグルスイッチ
・LED
・タクトスイッチ
・ケース
クエストサウンドボックスの製作
年明けからアンパンマンブームのお子さんがいるご家庭をターゲットにジュークボックスを改良してきましたが、大人も使えそうなメロディボックスの要望があり、ジュークボックス設計を流用して作ってみました。
みなさんおなじみの冒険のテーマで日頃の作業を盛り上げたり、山場になったらバトルモードのBGMに流したり、達成したらレベルアップしたり、これらのちょっとしたサウンドをボタン一つで手軽に流せる「クエストサウンドボックス」のご紹介です。
目次
システムの概要
ボタンを押すと冒険のテーマが流れたり、戦闘シーンのBMGが流れたり、レベルアップのサウンドを鳴らしたりするボックスです。
Arduino miniと安価な一般的な回路で構成されていますので職場に持っていってチーム作業で気分転換に使ったり、何か達成したときにはレベルアップサウンドを流したりして楽しんでみてください。
こんなふうに動きます。
ある程度長い時間遊べるように単三電池2本で動かしていますが、LR44ボタン電池一つでも動作する程度に省電力ですので、小型化も可能です。
回路図
さて、さっそく設計からです。
回路図はこちら。
Arduino pro mini互換機のGPIOにスピーカー、スイッチ、フルカラーLEDを接続します。
- GPIO2に圧電スピーカーを接続。tone()を使ってサウンド再生します。
- GPIO6~8にスイッチを割り当て。再生メロディ判定に使います。Arduino側ではプルアップで接続し、スイッチを挟んでGNDに落とすことで、シンプルな接続にします。ボタンを押したときはLOW、何も押して無いときはHIGHの判定となります。
- GPIO5~7にフルカラーLEDを接続。赤、緑、青の3色表示ができるようにして、入力待ち状態や現在再生しているメロディの状態表示に用います。
今回、単3電池2本を電源にしているため、電源電圧は3Vです。Arduino pro miniの互換ボードで5V入力するために、「DC-DC昇圧 電源昇圧モジュール 10個1.5V 1.8V 2.8V 3V 3.3V 3.7V 4.2Vから5VへのDC-DCブーストコンバータモジュールT64」を挟んで5Vに昇圧しています。このコンバータは1.5V入力も5Vに昇圧してくれるため、後で試したのですが、LR44(1.5V)でも動作させることができました。
ブレッドボードでの組み立てと動作確認、制御用ソースコード
ブレッドボードに組んで動作確認。
基本的な設計はアンパンマンメロディボックス2と同じですが、次の点でクエストサウンドボックス用に改造しています。
- 青色ボタン(レベルアップサウンド)は一回再生したら入力待ちに遷移する。
- 緑ボタン(フィールドサウンド)と赤ボタン(戦闘サウンド)は再生が始まったら無限に繰り返し再生する。
- 他のボタンが押されたら最初から再生
この時点で、ソフトを焼いて問題がないか確認します。
このシステムの回路図にあわせたソースコードはこちら。
BSDライセンスで公開していますので、自由に改変・組み込みにご活用ください。
ユニバーサル基板での実装
ブレッドボードで動作を確認したら、ユニバーサル基板に実装していきます。
秋月で買った100円のポリカーボネートの小さい箱を筐体に使っています。単三電池ボックスとユニバーサル基板を並べてぴったり収まるぐらいのサイズです。
蓋の部分に大きめの赤、青、緑のタクトスイッチの電極分の穴を開けてボタンを固定します。
蓋と基盤の間はコネクタを用いて配線を整理しました。
今回はカソードコモンのフルカラーLEDを使用。
パックに入ったLEDなので型番不明ですが、おそらくこれ。
RGBフルカラーLED 5mm OSTA5131A カソードコモン (10個入): LED(発光ダイオード) 秋月電子通商-電子部品・ネット通販
自分用のメモですがピン配はこちら。
メーカーのデータシートからの抜粋です。
さらに、ほとんど自分用メモですがArduino基盤側でArduinoを左においたときのコネクタ配線はこちら。
完成したのがこちら。
活用方法
学校や職場に置いておいて、盛り上がってきたら戦闘シーンのBGMを流したり、何か達成したらレベルアップサウンドを鳴らすと盛り上がります。
小型で部材も安いので、場を盛り上げるツールとしてご活用いただければと思います。
部材リスト
最後に、代表的な部材リストを挙げておきます。
- Arduino pro mini互換ボード
- タクトスイッチ
- ケース
- スピーカー
アンパンマンメロディボックス ver.2
お正月にソースコード書き初めで作ったアンパンマンメロディボックスの2号機を作るついでにいろいろ機能拡張したのでメモ程度に公開します。
目次
システムの概要
アンパンマンのお菓子入缶をベースに作っています。
顔を外すと制御部が出てきて、好きなメロディを選んで楽しむボックスです。
Arduino miniと安価な一般的な回路で構成されていますのでアンパンマン好きのお子様のいるご家庭にはおすすめの電子工作です。
こんなふうに動きます。
お正月に作った最初のバージョンは3ビットのトグルスイッチで曲を選択するという2進数の感覚を理解することと、選曲しているメロディがRGBのLEDで状態を表現するという高度な情報知育教材でしたが、さすがに解り難いシステムでした。今回は、選曲をダイヤルで行い、曲番号が7セグメントLEDで表示されるというわかりやすいものにしました。また、資源の限られたArduinoでより長いメロディを奏でるためにメロディデータをROM直接読み込みにしています。
回路図
さて、さっそく設計からです。
回路図はこちら。
曲番号を表示するための7セグメントLED(5101AS)
曲番号を表示する7セグメントLEDはArduinoのGPIOを使って行います。
今回は1桁なのですべての制御ピンを直接GPIOにつないでます。
7セグメントLEDはピン数が多くなるので、他に接続するものがある場合はシフトレジスタなどを使ってArduinoのピンを節約すると良いでしょう。
今回使った1桁7セグメントLEDは、カソードコモンの10ピンの「5101AS」です。
データシートを見ると、次のようなピン配です。
7セグメントLEDのピン番号とArduinoのIOピンの番号がわかりやすいように配線しました。
曲を選択するための小型ボリューム可変抵抗
曲を選択するために、「小型ボリューム 10KΩB」を使いました。
Arduinoのアナログピンに入力すれば、抵抗値にあわせて0~1024の数値を取得することができます。このメロディボックスは8曲選択できますので、読み込んだ抵抗値を8分割して選曲に利用することにします。
ブレッドボードでの組み立てと動作確認、制御用ソースコード
ブレッドボードに組んで動作確認。
この時点で、ソフトを焼いて問題がないか確認します。
このシステムの回路図にあわせたソースコードはこちら。
BSDライセンスで公開していますので、自由に改変・組み込みにご活用ください。
ユニバーサル基板での実装
ブレッドボードで動作を確認したら、ブレッドボードに実装していきます。
アンパンマンの体の中に入れるというスペースの制約がありますので、表に出る制御部を金属製の蓋に固定して1つの基板を作ります。アンパンマンの体の中に入れる蓋が金属の筒は、100均で売ってた小さなジャム用の容器を使っています。アンパンマンの缶より一回り小さい入れ物を探すのがポイントです。また、金属製の蓋は、操作部が出るように穴を開けておきます。私の場合、ドリルとヤスリでちょうど良い大きさの穴を開けました。ユニバーサル基板も、金属製の蓋のサイズにあわせて角を削っています。
スイッチと7セグメントLEDを組み込み。サイズを合わせながら穴を開けていきます。
スピーカーは中に入れても良いですが、音が小さくなるため、今回は外にネジ止めしました。
7セグメントLEDのすべてのLEDには抵抗が必要となります。ここから別基板にあるArduinoのI/Oとすべて線でつなぐと扱いづらい構成になりますので、中継用のコネクタを用意しました。
もう一つの基板として、Arduino本体と、IO接続用のコネクタ、さらには、単3電池2つで3Vの電源を5Vに昇圧するコンバーターをはんだ付けします。
操作部と、Arduino部をはんだ付けし終わったのがこちら。
上下のコネクタを繋いで電池を入れたところ。
コネクタピンアサイン
参考に、操作部のユニバーサル基板とArduino側のユニバーサル基板をつなげている真ん中のコネクタのピンアサインはこのようにしました。7セグメントLEDのピンをうまくさばくためにこのような配列になりました。
組み上がったら、アンパンマンの缶に組み込んでテストします。
可変抵抗を左に回しきったところで選曲番号がゼロになります。この状態では、ゼロとドットが点滅して曲番号入力を促す待ち状態となります。ボリュームを回して、有効な曲番号が入力されたら、その曲を最後まで再生します。
曲の再生中もボリュームを回して次に再生する曲を選択することができます。
まとめと活用法
ソースコードを修正すれば、好きなメロディを好きな番号に割り振って活用いただくことができます。アンパンマンの缶でなくても、お子さんの好きな容器があればこのシステムを組み込んで、自分だけのメロディボックスを作ることができます。
是非、良い容器が見つかったらご活用いただければと思います。
パーツリスト
最後に、主要なパーツリストを挙げておきます。
・Arduino互換ボード
・DCDCコンバーター(5V昇圧)
・7セグメントLED
・小型ボリューム 10KΩB