ラベル AVR の投稿を表示しています。 すべての投稿を表示
ラベル AVR の投稿を表示しています。 すべての投稿を表示

2013/10/10

AVRマイコンを使った簡単な音信号処理 -回路図-

どうも、Nekosanです。


前回の記事、AVRマイコンを使った簡単な音信号処理の続きです。

PCのフォルダをまさぐっていたら、回路図を発見したので載せます。

実際に作った回路とは少し違います(シリアル通信の端子が無かったり、LEDが無かったり)が、マイクアンプ周りは大体同じ、はずです。

グーグル先生で調べたサイトに載っていた回路図をパク...参考にして作りました。
単純な反転増幅回路ですね。
倍率は、OUT1と-1端子につながっている抵抗と-1端子からマイク側のコンデンサにつながっている抵抗との比率で求められたはずです。
反転増幅回路とググればきっと出ます。

たぶんここを参考にして作ったはずです。
https://www.marutsu.co.jp/user/mame/187.htm

よく分からず作りましたが、ちゃんと動いたので問題なしです。


使ったオペアンプはNJM2732Dです。
単電源でフルスイング入出力だったので採用しました。
秋月で売ってます。→http://akizukidenshi.com/catalog/g/gI-04723/


回路はこんなものですかね。
問題はプログラムですが、眠いので寝ます。

では。

2013/10/07

AVRマイコンを使った簡単な音信号処理

どうも、Nekosanです。

昨日、高専ロボコン九州大会がありました。

その大会に出場したロボットに積んでいた回路について、自分メモを兼ねて記事を書きます。


今年のロボコンは、コントローラー無しで、ロボットに触って操作してもいけないというルールです。
なので、笛を吹いて、その音を聞き分けることでロボットを操作しようと考えました。


そのためには音、今回は笛を使っているので、笛の音を聞き分けることができる回路が必要です。
で、作ったのがコレ

\デーン/


コンデンサマイクの信号をオペアンプで増幅して、マイコンのA/D変換ピンに接続してるだけ。
素晴らしく単純!!!

ただし、ただ音の大きさを調べるだけでは、歓声やロボットの動作音で誤動作する可能性が大きいです。
そこで、フーリエ変換という信号処理を行い、検出の精度を上げています。
フーリエ変換→http://d.hatena.ne.jp/Zellij/20120612/p1


マイコンはATMega328Pを使い、外部クロック16MHzで動作させてます。

信号をA/D変換した後、フーリエ変換で信号を周波数成分に分けます。
波形の中に、どの周波数がどれくらい在るかが分かるので、これを利用して笛を聞き分けてます。
笛の音の判別は、「どの周波数成分が強いか?」を調べて行っています。

フーリエ変換のアルゴリズムはここを参考にしました。
http://www.kurims.kyoto-u.ac.jp/~ooura/fftman/
http://www.kurims.kyoto-u.ac.jp/~ooura/fftman/ftmn1_2.html#sec1_2


実際にこの回路を使って出場しましたが、よく反応してくれて、歓声などの外乱もあまり影響を受けていないようでした。


詳しいことはまた別の記事に書こうかと思っているので、これぐらいで。

では。

2013/03/16

Mikromediaに書き込めたらしい

どうも、Nekosanです。
昨日Mikromediaが動かないという記事を書きましたが、「JTAGICE3」を使ってみたところ、書き込むことができました。
以前までは「AVRISPMk.II」を使っていましたがどうしても書き込めませんでした。(正確に言うと途中までしか書き込めてない。)
まだ原因が分かっていません。
ファームウェアも最新のはずですし。
すっきりしませんが、とりあえず開発は進められそうなので良かったです。
一通りの機能を使ってみて、そのあとはMP3プレーヤーのようにしたりゲーム機のように使ったりできればなーと。
まあそこまでやる気が持てばの話ですが...w
ではこれぐらいで。
しーゆーあげいんっ!

mikromediaに書き込めぬえぇぇん

どうも、Nekosanです。
AVRのXmegaを搭載して、液晶タッチパネルやmp3デコーダが載っているmikromediaというマイコンボードに興味を持って、使ってみました。
http://www.mikroe.com/mikromedia/xmega/
元々、このマイコンにはブートローダーが書き込まれており、USBケーブルを繋ぐことでプログラムが書き込めます。
ちなみにブートローダーに書き込むためのソフトウェアはHPにてダウンロードできました。
また、製品に付属しているCDからもインストールできるはずです。
ブートローダーを使って、サンプルプログラムをいくつか書き込んだあと、AVRISP(AVRマイコンの書き込み器)でも書き込めるということらしい(付属資料に記述されていた)ので、それを使ってみようと思いました。
ブートローダーでは書き込み速度が遅いので書き込みに時間がかかってしまうのですが、AVRISPなら早く終わります。(たぶん)
...が、ここからが泥沼の始まり。
なんとプログラムを書き込んでみたところ、verifyでエラーが...。
マイコンに書き込まれているhexファイルを読み出してみたところ、途中までしか書き込まれてねーじゃん!? という事態に。
しかも途中まで書き込んだということはブートローダーを消してしまったということなので、ブートローダーを使っては書き込めない...
\(^o^)/
というわけでマイコンに書き込む手段がなくなってしまったのです。
mikromediaの値段もバカにならん...
いまだ解決できてないので結構ピンチです。
大人しくブートローダー使っとけばよかったかもです...
後悔先に立たず、ですけど。
マイコンから読み出したhexファイルは、毎回同じところで書き込みがストップしているようなので、マイコンが壊れている可能性は薄いと思うのですが...
AVRISPの書き込み範囲がおかしいのでしょうか。
持っているAVRISPはatmegaでは正常に書き込めます。
Xmegaを使うときに必要な設定とかがあるんですかね...
謎です。
とりあえず今日はこの辺で。
もし情報提供して頂ける方がいらっしゃれば、是非お願いします。
では、しーゆーあげいん!

人気の投稿