ISD1700音声録音チップ用Arduinoセットアップガイドと録音ソフトウェア
部品と材料
| 部品 | 数量 |
|---|---|
| Arduino Nano R3 | 1 |
| ブレッドボード (汎用) | 2 |
| ISD1760 音声録音・再生モジュール | 1 |
| USB-A - Mini-USBケーブル | 1 |
| 3.5mm オーディオコネクタ | 2 |
| 9V 1A スイッチングACアダプター | 1 |
| ブレッドボード用電源モジュール 5V | 1 |
| ジャンパーワイヤー (汎用) | 1セット |
アプリとオンラインサービス
- ISD1700 Record Tool (Arduinoスケッチ + Windowsアプリケーション)
- Arduino IDE
プロジェクト概要
短いテキストメッセージを音声出力する必要があり、MP3シールド+SDカードはオーバースペック、Arduino単体で音声合成するとリソースとメモリを圧迫するため、ISD1700シリーズの音声録音・再生チップを採用しました。SPI制御で数分間のメッセージを格納可能です。
音声メッセージは事前に個別ファイルとして用意し、それらをICメモリに書き込む方法を検討しました。専用プログラマーは高価で入手性が低いため、標準的なハードウェアであるArduinoボードをプログラマーとして使用することにし、自動化のために「ISD1700 Record Tool」を開発しました。
ISD1700 Record Toolの概要
ISD1700 Record Toolは、Arduinoボードを介して一連の音声ファイルをISD1700に録音するソフトウェアで、以下の2部構成です:
- Arduinoスケッチ (ISD1700.ino) - ATMega328PベースのArduino (Uno, Nanoで動作確認済み) 向け
- スタンドアロンWindowsアプリケーション (ISD1700.exe) - BASSオーディオライブラリベースでMP3, WAV, OGG等に対応
対応ISD1700チップ
- ISD1730
- ISD1740
- ISD1750
- ISD1760
- ISD1790
- ISD17120
- ISD17150
- ISD17180
- ISD17210
- ISD17240
1. ハードウェア接続
開発時は市販の録音モジュールを使用しました。他の接続方法を試す前に、オリジナルのISD1700データシートをよく読むことを強く推奨します。図1-5は筆者のハードウェアセットアップ (Arduino Nano使用) です。
小型ブレッドボードに2つの3.5mmソケットを配置 (左: 音声入力、右: イヤホン出力)。Arduinoの5V出力から全コンポーネントに給電すると接続エラーが多発したため、外部電源の使用を推奨します (配線品質の問題の可能性もあります)。
2. Arduinoへの書き込み
ArduinoボードをUSBでPCに接続し、ISD1700.inoをArduino IDEで開いて通常通りアップロードします。
3. アプリケーションのユーザーインターフェース
ISD1700.exeを実行。各コントロール要素の説明は図7を参照。
4. 典型的な操作手順
- ISD1700に録音したい音声ファイルを開く。マウスドラッグで並び替え、不要ファイルは削除可能。各ファイルの再生と音量調整も可能。
- Arduinoボードが接続されているCOMポートを選択 (図9)。
- 「Detect ISD1700」ボタンを押し、右側のボックスにISD1700のモデルが表示されることを確認。
- 全音声ファイルの合計時間がISD1700の容量 (秒) 以内であることを確認。超過していると録音開始不可。
- 「Start record」ボタンを押して録音開始。プログレスバーで進捗確認。必要なら「Stop record」で中断。
- 完了後、全トラックのアドレスをクリップボードにコピー可能。図10は2つのオプションの違いを示す。
録音モジュールを使用すれば、録音完了後すぐにイヤホンとオンボードボタンで音声ファイルを再生できます。
コード (Arduinoスケッチ)
// Arduino code for ISD1700 Record Tool
// Tested: Arduino Uno, Arduino Nano (ATMega328P)
// Copyright: Anton Tsaritsynskyy, August 2019
#include <SPI.h>
const unsigned int ISD_ERASE_OK = 3002;
const unsigned int ISD_REC_OK = 3003;
const unsigned int ISD_STOP_OK = 3004;
const unsigned int ISD_RESET_OK = 3005;
const unsigned int ISD_CANCEL_OK = 3006;
const unsigned int ISD_FULL = 3007;
const byte ISD_SS_PIN = 8;
boolean isdIsUp = false;
boolean isdNotifyIfFull = true;
// 以下、電源制御、リセット、録音、停止、消去、デバイスID取得、満杯検出、レコードポインタ読み取り等の関数が続く
void setup() {
pinMode(ISD_SS_PIN, OUTPUT);
digitalWrite(ISD_SS_PIN, HIGH);
Serial.begin(9600);
SPI.begin();
}
void loop() {
// シリアルコマンド処理: D(初期化), E(消去), R(録音開始), S(停止), X(リセット), C(キャンセル)
// 満杯検出時の自動リセット処理も含む
}
回路図
接続回路図が提供されています。
製造プロセス
- COVID-19緊急対応用 携帯型パルスオキシメーター(Arduino Nano+MAX30100)
- Arduino Nanoで作る音声反応デスクライト:音楽に合わせて光るイルミネーション
- ArduinoとThingSpeakで作るリアルタイム気象モニタリングシステム
- 無線方向探知用オートマチック・キーヤー – 精度、簡単操作、信頼性
- MeArmロボット用精密ジョイスティックコントローラー - 座標の記録・再生機能付き
- ヘルスバンド:高齢者を見守る信頼のスマートウェアラブルアシスタント
- 自動車ソフトウェアコンポーネントのISO 26262認証取得
- AIチップスタートアップが停滞、業界焦点がインハウスソリューションへシフト
- 先端半導体チップ向け高性能タングステン・チタン合金ターゲット
- 超高純度タングステンターゲット:先端半導体薄膜の鍵
- Hexion Inc.が第11章破産を申請、再編に向けた動き