「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



例によって、Arduinoのウクレレ用クロマチック
チューナー。

http://akizukidenshi.com/catalog/g/gK-06436/
秋月の555搭載マルチ発振基板を使って、
アナログ入力から約300Hzの矩形波を
突っ込んでみる。



あれやこれや悩みつつ、オシロに頼りながら、
上手く動かないなぁ…を、一つ一つ潰し込んで
みた。


まずは、TimerOneライブラリの割り込み周期が
狙ったとおりにならない。timer1のパラメタ設定
が悪いのか、それとも割り込み処理中の処理が
重すぎるのか…

後者だとばかり思っていたんだけど、どうやら
それだけじゃないみたい。割り込み周期設定の
計算式が、ちょっと変っぽい。とりあえず定数値
を直接指定してみる。割り込み周期に直接16us
(62500回/秒)とか指定。…ある程度動くように
なった。


なったけど、やっぱ、割り込み周期を短くしていくと、
周期が伸び始める。これは割り込み処理中の処理時間
の問題だな。

とはいえ、ADCからサンプル値を読み込む以外は
殆ど何もしてないことを考えると、ADC制御用の
SFRレジスタ設定周りかな。

Arduinoのアナログ入力は、デフォルトでADCクロック
のプリスケーラが「128」に設定されているのを、
ギリギリまで詰めて「8」(最大で153.8ksps)に
しようと思っていたんだけど、これだとまだADCの
変換時間が長過ぎるみたい。

さらにADC精度を下げて、「4」(最大で307692ksps)
とサンプル速度を上げてみる。

これだと、単純計算で、6ビット精度くらいになっ
ちゃう感じなんだけど、データシート上で10ビット
精度出せる速度(Arduinoだとプリスケーラが128
あたり?)っていうのは、ADCに接続する元信号の
インピーダンスが10kΩ程度であることを想定して
のお話のはず。

今回は、オペアンプ内蔵バッファの出力を直接
ADCに繋ぐ予定なので、インピーダンスは二桁以上
小さいはず。

ということで、速度優先として、プリスケーラを「4」
としてみる。


…動いた。結構イイカンジに動いた。フルスイング
させても、矩形波のADCのサンプル結果は0と255の
2値を取る。シメシメ。

メモリダンプをシリアルモニタに表示して、中身を
検証してみる。


入力データを元に元信号の周波数を計算してみると、
「290Hzくらい」になる計算。テスターの周波数
カウンタモードで周波数を計ってみると、やっぱり
290Hzくらいと出る。おぉ。バッチリ。

さらに、スケッチ中で計算して求めた「音程」と
「その音程からのズレ量(cent)」を見てみると、
これも妥当と思える値。


うん。とりあえずは期待通りの結果が出てきて
なにより。あとでDDSシンセを繋いで、もう少し
厳密な周波数の検証をしてみよう。


問題は、処理時間だな。周波数→音程検出の
計算時間が、期待してるよりもかなり長い。

それと、どのくらいの信号のときに「無音」と
看做すか。弁別値は、ヒューリスティックに
決める必要あるよなぁ。


まぁ、スケッチの骨格はおよそできたと思うので、
回路をシールド化しちゃうことかな。電源周りの
ノイズ対策がかなり微妙なんだよな。



http://www.youtube.com/watch?v=CxZlzVmalnU
CEATECって、電気自動車とか乗り物関係も出てるん
だなぁ。ニッサンの自動制御運転のクルマもナカナカ
面白そうなんだけど、モーターショーで見たホンダ
のアレもちょっと面白そう。



洗車の入さん、ビデオじゃないけど、
http://ch.nicovideo.jp/sensyanoiri/blomaga/ar429915
空想というか、妄想マシンだな。妄想は、楽しいよな。

で、ふと8ビットの最強PCなんて、どんなものになる
だろうなぁって思い始めたら、
http://ikura.2ch.net/test/read.cgi/i4004/1291090549/l50
既にそんなこと考えてる人たちはいたっぽい。


88SRをこよなく愛するオイラとしては、やっぱ
88系の88VAが思い浮かぶんだけど、
http://www.lares.dti.ne.jp/hariki/88va/88va.html
88VAは16ビット機なんだよな。

というより、妄想じゃなく、これは実機だった。

8ビット機で理想のマシンを妄想するとしたら、
 ・640×400のモノクロ表示画面
 ・320×200の、512色中8色、2プレーン同時表示
 ・ハードウェアスクロール機能サポート
 ・大量のスプライト表示機能
 ・OPN、もしくはOPMによるサウンド機能
 ・ATARI互換(今ならUSB)のジョイスティック
 ・2HDのFDD(今ならSDカードの方が…)
なんて感じになるのかな。あとはハードウェア
回転機能とか付いたら、8ビットだと無敵では。

http://tiny-p.cocolog-nifty.com/log/2014/01/18-f864.html
MZ-2500は、結構近いスペック持ってるんだよな。
スプライトはないけど。


https://twitter.com/annoharuna/status/419325979031396352/photo/1
「ファミコイン」って、見た記憶があるんだ
けど、このちゃっくんぽっぷはグッとくるな。
どこで見つけてくるんだろう?



いしかわきょーすけさんの1/7の日記で触れられてた、
http://www.intel.com/content/www/us/en/do-it-yourself/edison.html
Intel Edison。まさか、Intel QuarkがSDカード
サイズに収まっちゃうなんて…

SDカードに収まったLinuxマシンっていうのはこれまで
にもあったけど、x86アーキティクチャがこんな小さな
カードの中に入っちゃうとは。




コメント ( 0 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする