工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduino UNOで奏でるポリフォニック「アベンジャーズ・テーマ」 〜Playtuneライブラリで3音同時発音〜

概要

Arduino標準のtone()関数は単音再生のみですが、Len Shustek氏のPlaytuneライブラリを使うとUnoで3音、Megaで6音の同時発音(ポリフォニック再生)が可能になります。本プロジェクトではこのライブラリを用いて、映画『アベンジャーズ』のテーマ曲を3チャンネルで演奏するデモを紹介します。

ハードウェア

部品数量備考
Arduino UNO1
スピーカー(3W, 4Ω)1ブザーでは音量不足。小型エンクロージュア付き推奨
220Ω抵抗3D10, D11, D12各ピンとスピーカー間に直列接続
LED(任意)3各チャンネルの信号有無を可視化
ブレッドボード、ジャンパー線1式

回路図とブレッドボード図

D10, D11, D12の各ピン→220Ω抵抗→共通接続→スピーカー(+) 、スピーカー(-)→GND。LEDを各ピンとGND間に(抵抗付きで)接続するとチャンネルアクティビティが光ります。回路図(PNG)、ブレッドボード図(PNG)、PCB設計ファイル(ZIP)が提供されています。

ソフトウェア

ライブラリ導入

Playtuneライブラリ(GitHub または Google Driveミラー)をArduino IDEにインポート(ZIP形式)。

スケッチのポイント

#include <Playtune.h>
// 楽譜データ(PROGMEM配列)は十進/十六進のバイト列で定義
const byte PROGMEM avengers[] = { 0x90,0x3E,0x00,0x7A,0x80,0x00,0x02, ... };
Playtune p;

void setup() {
  p.tune_initchan(10);  // チャンネル0 → D10
  p.tune_initchan(11);  // チャンネル1 → D11
  p.tune_initchan(12);  // チャンネル2 → D12
}

void loop() {
  p.tune_playscore(avengers);  // 再生開始
  while (p.tune_playing);      // 再生完了まで待機
  p.tune_delay(3000);          // 3秒休止(Arduino delay()非使用)
}

楽譜データはMIDIライクな独自フォーマット(ノートオン/オフ、ウェイト、音色切替等)で、専用ツールでMIDIファイルから変換可能です。ライブラリはタイマー割り込み(Timer1, Timer2等)を使用し、バックグラウンドで3チャンネルのPWM波形を合成出力します。

音質向上のコツ

応用例

製造プロセス

  1. スマート渇きアラート植物アラーム – 最適な水やりタイミングを知らせるDIYセンサー
  2. イタリア語ワードクロック自作:Arduino Nano、NeoPixel、LCD、RTCで時刻を文字で表示
  3. アナログ3ピンで4×3キーパッドを接続 - Arduinoピン節約テクニック
  4. Arduino MKR Fox 1200で作る信頼性の高いSigfox kWhメーター
  5. Bluetooth対応温度モニター:Arduino NanoとHC-06でスマホ監視
  6. 自動レンジ切替対応 静電容量メーター (10pF〜10µF) - Arduino Nano で簡単自作
  7. 非接触ジェスチャー錠: APDS-9960とArduinoでセキュアアクセス
  8. Arduino Nanoコンパニオンキット – 電子工作に必須の部品とツールを搭載した多機能IC型デバイス
  9. Arduino Micro/Leonardo用 USB-MIDIアダプタキット – 完全パーツリストと実装ガイド
  10. Arduino用絶縁アナログ入力回路の設計:LM331 V-F変換+フォトカプラでノイズ耐性を確保
  11. Arduino UNOで作る精密反応速度テスター