SSブログ

[電子工作] ATMEL AVRを喋らせてみようプロジェクト始動 [電子工作]

久しぶりに電子工作を再開しました。

ちょっとした工作で、音声でガイドができるといいかな〜というものがあるので、
喋らせる基礎技術を修得しておこうと思います。

考えている仕様:
 マイコン:ATMega168 or 328
       3.3V 8MHz (取り敢えず内蔵RCでやってみてダメだったら水晶)

 音声  :8kHz 8bitサンプリング モノラル PCM
       microSDから固定ファイル名で読み込む
       なんか適当なアンプICで増幅してスピーカーに繋ぐ

microSDからの読み込み:
 arduinoのライブラリを使う。
 あまり悩みたくないし。

音声の出力:
 PWMのDutyを調整してLPFを通してアンプに入れる (1bit DACモドキ)
 が、arduinoのanalogWriteはオッソいので、Timer2のレジスタを直接書き換えて高速動作させる。
 8kHzの一周期は125マイクロ秒
 高速PWMをプリスケール1で回すと、1カウントは0.125マイクロ秒
 ということは、1つのサンプリング値について、250カウントのパルス x 4発でちょうど。
 サンプリング値で250より大きい値は普通は無いはずなので250でサチらせてしまいましょう。
 オーバーフロー割り込み4回毎に新しいサンプリング値をDuty比に設定する。
 SDカードからの読み込みは100マイクロ秒でどれくらい読めるのかな?

 wavから生pcmを得るには、SoX(Sound eXchange)というツールが使えそう。

とりあえず、こんなところかな?

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。