音楽付きボードブック:全年齢の気分と記憶を向上
必要な部品と用品
| 部品 | 説明 | 数量 |
|---|---|---|
| Arduino UNO | 1 |
必要な工具と機械
| 工具 | 説明 |
|---|---|
| 3Dプリンター(汎用) |
プロジェクト概要
音楽は人々に恩恵をもたらします。幼児から高齢者まで、気分を高め、健康を促進し、記憶を刺激します。最近、アルツハイマー病の母親に子供向け音楽絵本をプレゼントしたところ、馴染みの曲を聴いた瞬間に驚くほど生き生きとし、喜んでいる様子でした。母親専用の、年齢に適した音楽が入った本があれば素晴らしいと思いませんか?
「Notable Board Books」は、パーソナライズされた音楽と写真を含むカスタマイズ可能なインタラクティブな本です。合唱を促すため、インストゥルメンタルとボーカル両方の音声トラックを収録。ボタンやスイッチを一切排除し、本を手に取ると「準備完了」モードになり、ユーザーが開いたページの曲が自動再生されます。
電子部品ケースとスピーカーの組み立て
3Dプリントした「backbase(ベース)」と「speakerhousingb(スピーカーハウジング)」を用意。
端から見て穴位置を合わせ、M3ネジ2本で固定。
4Ωスピーカーに約9インチのリード線をはんだ付け。
スピーカーをハウジングにM3ネジとナット2組で取り付け。
スピーカー線を大きな穴から電子部品ケース側へ通す。
フォトレジスタ(光センサー)の準備と取り付け
フォトレジスタのリードを本体近くで曲げ、電子ケースの丸穴に挿入。リード用の小さな長方形の開口部があります。
熱収縮チューブ(約1/2インチ)をフォトレジスタの片方のリードに通し、ショート防止用に絶縁します。
すべてのフォトレジスタに対して同様に処理。
回路図に従って配線
フォトレジスタの片方のリードにラッピングワイヤーをはんだ付けし、余分なリードをカット。
はんだ付け部分に熱収縮チューブを被せる。
すべてのフォトレジスタに対して同様に処理。
フォトレジスタのもう片方のリード(すべて共通)を+5Vに接続。
チルトスイッチ(傾きスイッチ)の取り付け
ローラーボール型チルトスイッチを3Dプリントした「tilt1」に挿入。真鍮側が上、銀色側が下になる向きで。両端にはんだ付けし、電子ケース内にベルクロで固定。
ボードブックへの穴あけ
3Dプリントした「パンチ治具」をブランクボードブックの右上隅に合わせる。
ドリルパンチで穴位置をマーク。
中空ドリルビット(7mm使用)で穴を開ける。通常のドリルビットで下穴を開けてから中空ビットを使うとブレにくい。ドリルプレスがあればより確実。
1番目の穴は5ページ分、2番目は4ページ分…と深さが変わります。
ページの印刷と貼り付け
テキストと写真を選定・サイズ調整後、写真用紙(厚手で耐久性のあるもの)に印刷。普通の白糊を使用。
糊をたっぷり塗り、タオルや刷毛で均一に伸ばして貼り付け。ページ同士がくっつかないよう、乾いてから次のページを作業します。
音楽データの準備と転送
音楽を本に転送するプロセス。オープンソースを目指し、著作権切れの楽曲を選び、家族で演奏・録音しました(母がキーボード、娘がボーカル、父が録音・編集)。
※法的アドバイスではありませんが、市販楽曲も(a)購入済み(b)個人利用(c)非公開(d)非配布・非販売の条件下なら使用可能と思われます。
録音機材がないためiPhoneの「ボイスメモ」を使用。
「編集」の左にある上向き矢印のボックスを選択し、「メール」で自分宛てに送信。ファイルはm4a形式で届くため、「m4a to ogg 変換」で検索し、無料コンバーターでoggに変換。
Adafruitサウンドボードには11の制御ピンがあり、メモリスロット11個に対応。スロット5で再生したい場合、ファイル名を「T05.ogg」とします。
サウンドボードをmicroUSBでPCに接続するとUSBドライブとして認識されるので、.oggファイルをコピー。イジェクトすれば再生準備完了。
最終組み立てとテスト
9V電池の線をスピーカーケースから電子ケースの大きな穴を通して引き込み、回路図通りに配線。Arduinoにスケッチ(プロジェクトファイルに含む)を書き込み。
システム電源オン(ケースを傾けてチルトスイッチON)し、オーディオアンプのツマミで音量調整。大きめ(歪まない範囲)が推奨。
動作確認と調整
ボードブックの穴位置がズレているとフォトレジスタの出力に影響します。Arduinoのアナログ入力電圧を確認するため、抵抗分圧点にラッピングワイヤーを接続し(1〜5番ラベル)、グランドも引き出してブックを載せ、通常の室内照明下で各ページを開いた時の電圧を測定。「暗い」状態で約2V、「ページを開いた」状態で3.5V以上。深いページは光が通りやすく少し高め。部屋が明るければ値は上がります。
Arduinoの0-5Vは0-1023に対応するため、開いたページは約700。余裕を見て「600」以上を「ページが開いている」判定閾値としました。
ベルクロ固定と完成
1インチ幅のベルクロを半インチ幅にカットし、電子ケースの窪みに貼り付け。フィルムを剥がし、ブックの穴とフォトレジスタを合わせて載せ、電池/スピーカーカバーをM3ネジで固定。
これで完成です!
部品表
- Arduino Uno ×1
- Adafruit Audio FX Sound Board (WAV/OGG対応、16MBフラッシュ) ×1
- 2インチ 4Ω 3W フルレンジスピーカー (Gikfun EK1725等) ×1
- 3W DC 5V オーディオアンプ (DROK等) ×1
- フォトレジスタ 5mm ×5
- 5V リレーモジュール ×1
- ローラーボール チルトスイッチ ×1
- 3.3kΩ 抵抗 1/4W ×5
- 9V電池コネクター ×1
- 9V電池 ×1
- M3×12mm ネジ ×6
- M3ナット ×2
- ブレッドボード (2×3.5インチ) ×1
- ブランクボードブック (6×6インチ) ×1
- ベルクロ 1インチ幅 10インチ長 ×1
- その他:はんだ、熱収縮チューブ、ワイヤー
- 3Dプリントパーツ:Back Base、Speaker housingb、Speaker lidb、tilt1 各1
ファイル
コード
Notable Board Books Control (Arduino) (C/C++)
int r=200, r1=200, r2=200, r3=200, r4=200;
int a=0, b=0, c=0, d=0, e=0;
int t1=0, t2=0, on=0, td=500;
void setup() {
pinMode(2, OUTPUT); pinMode(4, OUTPUT); pinMode(7, OUTPUT);
pinMode(9, OUTPUT); pinMode(11, OUTPUT); pinMode(3, OUTPUT);
digitalWrite(3, HIGH); // バイパスリレーで電源維持
digitalWrite(2, HIGH); digitalWrite(4, HIGH);
digitalWrite(7, HIGH); digitalWrite(9, HIGH);
digitalWrite(11, HIGH);
delay(1000); // 本を持ち上げるのを待つ
}
void loop() {
r4 = analogRead(A4); r3 = analogRead(A3); r2 = analogRead(A2);
r1 = analogRead(A1); r = analogRead(A0);
if (r4 > 600) a = 1;
if (r3 > 600) b = 2;
if (r2 > 600) c = 4;
if (r1 > 600) d = 8;
if (r > 600) e = 16;
t1 = a + b + c + d + e;
delay(600);
r4 = analogRead(A4); r3 = analogRead(A3); r2 = analogRead(A2);
r1 = analogRead(A1); r = analogRead(A0);
if (r4 > 600) a = 1;
if (r3 > 600) b = 2;
if (r2 > 600) c = 4;
if (r1 > 600) d = 8;
if (r > 600) e = 16;
t2 = a + b + c + d + e;
if (t1 == t2) { // 2回連続で同じ値なら有効
if (a == 1) {
digitalWrite(2, LOW); on = 1;
digitalWrite(4, HIGH); digitalWrite(7, HIGH);
digitalWrite(9, HIGH); digitalWrite(11, HIGH);
digitalWrite(3, HIGH); delay(150);
}
if ((b == 2) && (on == 0)) {
digitalWrite(4, LOW); digitalWrite(2, HIGH);
digitalWrite(7, HIGH); digitalWrite(9, HIGH);
digitalWrite(11, HIGH); digitalWrite(3, HIGH);
on = 1; delay(150);
}
if ((c == 4) && (on == 0)) {
digitalWrite(7, LOW); digitalWrite(4, HIGH);
digitalWrite(2, HIGH); digitalWrite(9, HIGH);
digitalWrite(11, HIGH); digitalWrite(3, HIGH);
on = 1; delay(150);
}
if ((d == 8) && (on == 0)) {
digitalWrite(9, LOW); digitalWrite(4, HIGH);
digitalWrite(7, HIGH); digitalWrite(2, HIGH);
digitalWrite(11, HIGH); digitalWrite(3, HIGH);
on = 1; delay(150);
}
if ((e == 16) && (on == 0)) {
digitalWrite(11, LOW); digitalWrite(4, HIGH);
digitalWrite(7, HIGH); digitalWrite(9, HIGH);
digitalWrite(2, HIGH); digitalWrite(3, HIGH);
delay(150);
}
if (t2 == 0) {
digitalWrite(11, HIGH); digitalWrite(4, HIGH);
digitalWrite(7, HIGH); digitalWrite(9, HIGH);
digitalWrite(1, HIGH); digitalWrite(3, LOW); // 電源オフ
}
}
on = 0; a = 0; b = 0; c = 0; d = 0; e = 0;
}
回路図
製造プロセス
- シニア向けUX設計: 包括的ガイド
- アイロン台の製造:設計、素材、生産プロセス
- クラシックジュークボックスの遺産と進化
- 楽譜:中世写本から現代出版まで——業界概観
- プリント基板:設計、製造、未来トレンド
- サーフボードの構造とデザイン:ポリネシアのルーツから現代の革新まで
- 現代の本の進化と製造プロセス
- Heliumベースのソーラー駆動空気質センサー:設計と導入ガイド
- RasPiRobot Board V2:Raspberry Pi を強力なロボットコントローラーに拡張
- DIY Arduinoワードクロック – 文字で時刻を表示する洗練されたリアルタイムクロック
- Arduino Megaで作る美しい5x5x5 LEDキューブ