ビジーボードとは?
赤ちゃんや子供が触って楽しめるアイテムを取り付けた教具・知育おもちゃ。
色々なタイプがありますが、今回作ったのは様々なスイッチに触れることができるものです。
安全性には気をつけつつ、スイッチ類はアケコン用と本物の制御盤で利用されるパーツを使いました。
電源を入れると、ボタンによって動物たちの声が聞こえるモードAと、ドラムパッドとして使えるモードBが利用できます。
ミサイルスイッチを入れ、始動ボタンを押すと複雑な操作が必要な裏モードに切り替わります。
私自身が小さい頃にこんなおもちゃが欲しかったので、それを自身で実装したかったということも制作の狙いです。
最終的には分解してもらいたい。
木材でケースを作る
モンテッソーリ教育の棚は、汚れがわかりやすくなるよう明るい色の木製棚が使われていますが、統一性を持たせるためにビジーボードの外装を木製(合板)で作ることにしました。
今回はさまざまなスイッチを使ったため、薄板に固定するようなボタンを設置するために、厚みを調整する必要があり設計・実装が大変でした・・・
前面はアルミ板にしてしまった方が楽です。
I2Sを利用したオーディオ再生
スピーカーから音を再生するため、I2S接続のアンプ(MAX98357)を利用しました。
I2Sを初期化し、PCMデータを流し込むだけで割と簡単に再生する事ができましたが、書き込みを行うと処理がブロックされ、複数音源のミックス等はできません。esp-adfというESP32でサウンド関連処理を行う事ができるライブラリを見つけましたが、ビルドが通らなかったので早々に自作する方向にしました。
開始すると音声処理用のスレッドを作成し、任意のタイミングでデータを多重に再生する事ができます。
https://github.com/ayumu-bekki/esp32_i2s_mix/
指定した周波数の正弦波を出力する実装も作ったので、デジタル楽器が作れそうです。(esp-idf5.2 C++17)
PCM音源を利用している都合上、データサイズが大きいのですが、ESP32のSPIフラッシュメモリ(4MB)に収まってくれました。もっと長い音声データを再生する場合はOgg Vorbisでも組み込むのが良さそう。
IOエクスパンダ
ボタンとLED出力が多くESP32のGPIOでは不足しています。そのためI2S接続のIOエクスパンダ MCP23017 を利用してIOポートを増やしました。
例の如くESP32用の実装がインターネット上に見当たらなかったので自前実装。 (esp-idf5.2 C++17)
https://github.com/ayumu-bekki/esp32_mcp23017
GitHubリポジトリ
https://github.com/ayumu-bekki/busy_board
回線図は掲載していません。
- 9V積層電池(006P型)からDC/DCコンバーターで3.3Vを作っています。
- 電流計は秋月で激安放出されていた50μAのモデル。(68kΩの抵抗を挟んでPWM制御)
- 7セグLEDは秋月キット(SPI接続)
- 10バーLEDアレイはソフトウェア制御。
- レタリングはテプラを利用
ボタンを押すのが好きな人向けの情報
押すをテーマにした遊び空間 OSEBA に行こう。
(株式会社 島田電機製作所 東京都八王子市)