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



エレウケの妄想がだいぶ現実化するところまで見えて
来たんだけど、この続きは実際にモノを組み立てたり
アセンブラでプログラム組んだり、実験用のドライバボード
を作ったりしないと進められない…当面はそこまで手が
つけられる暇が無さそうなので、もうひとつ別の実験の方に…。


この間のLTspiceでやってたBPFの実験の方。
↓この実験ね。

オペアンプのBPFで10KHzとか20KHzとかだけ
を拾って、ダイオードで検波するってだけの回路。

コイツを使って何をするかって言うと…
↓この続き。
http://brown.ap.teacup.com/nekosan0/115.html

そう。マイコンでバーコードを読みたい。バーコード
リーダを作りたいって訳。

ポイントになるのは、外乱光の中からバーコードで
反射した光だけ読み取って、外乱光は読み取らない
ための変調/復調回路。
そして、あの細ーいバーコードの情報を正確に読み出す
ための光学ピックアップの構造。
あとは各種バーコードのコード/デコードフォーマット。

フォーマットは
http://www.n-barcode.com/
ここが詳しいので、色々ある中から面白そうなものを
拾ってくるとして、変調/復調も回路の目処が
なんとなく立った感。

残る課題は光学ピックアップの部分。まずは妄想を練る。

受光素子としては、とりあえず可視光線が使いやすそう
だから可視光(緑LEDを想定)をセンシングできる
センサーとして、
http://akizukidenshi.com/catalog/g/gI-02325/
これなら数十KHzまでは追従しそうなので、
この間既に買い置きあり。それ使う予定。

本当は、赤外線ならリモコン用のセンサーが使いやすい
はずなんだけど、秋月とかで買える赤外線センサーは
変調が38Khz固定だし、発色的にも目で見てどこを
センシングしているのか解り難いのが難点。
なので可視光線をわざわざ選んでいる訳。

さて、これを光学的に細い線を正確に読み取る仕組みが
必要になるんだけど、方針としては大きくは2つの案。

(1)レンズを使ってバーコードの拡大像を作り、
   その像をセンサーで読み取らせる

(2)小さな箱の一部分に小さな穴を空け、その
   箱の中にセンサーを埋め込み、穴をバーコード
   に近づけてスッと移動させて読み取る

といった感じ。何と言っても細いので、どちらにしても
加工精度が大変っぽいのと、外乱光に対して信号の光
が微弱なので変調は必須。

CCDみたいに1画素が凄く小さいといいんだけど、
CCD1画素だけ…みたいな都合のいいデバイスは
売ってないみたいなので、既製品のセンサーを
使って作らないといけないんだなぁ。

一つの案としては、シャーペンの先っぽ…0.5mmとか
の穴が空いてる円錐形の部分…を取り外して、その中に
センサーを入れちゃうって案。
もしくは上記の通り小さな箱の隅っこに剃刀とかで極小さな
穴を空け、バーコードの前をスッと横切って読み取る方法。

これらなら複雑な光学系は要らないので何だかんだで楽そう
な気がするんだけど、分解能がどれだけ細かいのやら…
何しろ「ピンホールカメラ」そのままの原理だから。

もう一つはやはりレンズで数倍に拡大した像を作り、
その像の焦点のところに(やはり小さな窓を開けた
状態の)光センサーを置いてあげれば結構細かい
ところまで読み出せるはず。なにしろ昨今のデジカメ
とやってることはいっしょだから。

できれば前者で何とかならんかなぁ?って思って
居るんだけど、さすがにバーコードの細かさを
ピンホールカメラで読み取るのは厳しいかなぁ…

でも「とりあえず実験してみる」だけならやっぱ
ピンホールカメラ式の方が手っ取り早いからな。
それでダメならレンズ式って構え方かな。

レンズはレンズで秋月で大量に買い込んであるから、
いざと言う時にはそれ使おう。
とりあえず手を動かして、実験材料を揃えておきたい
ところ。



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




去年からずーーーーーーと引っ張りつづけている実験の
一環。以前作ったこのソリッドウクレレ↓




コイツにおいら謹製のエレウケ専用ピックアップ(試作)
を取り付けて、FFTを掛けてみようって寸法。
まぁ、FFTのアセンブラ用ライブラリはまだ未着手
なので、使うのは秋月で買ってきたpico scopeだけど。

で、実際に弾いてみた波形はというと…

まずは4弦=Gの音。


うん。おおよそ「基音」+「整数倍音」の構成になってて
good!

他の弦も大体同じ。以下それぞれ3弦(C)、2弦(E)、1弦(A)





…うん。大体イイカンジ。
Gの音が基音より倍音のほうがちょっと大きい感じなのが
気になるところだけど、まぁその辺は実験の条件にも
因る気がするし、いざとなればソフト処理でなんとか
できるでしょ。

今回は、ピックアップのアンプ回路にNJM072を使っちゃった
ので、前回と単純比較はできないんだけど、まぁだいたい
okでしょう。ねらい通り。


さて、周波数成分じゃなくて”実際の波形”はと言うと…

まずは弦を弾いた直後の波形。

こんな風に、サリーちゃんのパパが横にたくさん並んで
いる状態。
弾いた直後は倍音成分(整数倍音、非整数倍音)がいっぱい
出ているんだと思うんだけど、何回弾いても大体こんな波形。
こんなもんなの?

弾いてからワンテンポ遅らせたところの波形は…

こんな風にサリーちゃんのパパの髪型が丸くなって…

もうちょっと経つと


こんな風に海ボウズに変わってく感じ。


正弦波に近づいていく感じと考えると、倍音成分が
先に抜けてって、明るい音から丸い音に変わっていく
感じと捉えればいいのかな…


さて、波形や周波数成分のグラフを眺めてニマニマ
したいわけじゃなくて、何しろタイムラグが問題なのが
電子楽器。そのへんに関する懸念事項洗い出しってわけ。

タイムラグを生じさせる原因として考えられることは…

(1)midi音源自体のレスポンス
(2)FFT入力用の全サンプルをAD変換完了までの時間
(3)FFTの処理時間
(4)弦の振動のうち基音成分が安定するまでの時間

このうち、今回の波形で見てみたかったのは(4)に
関すること。
実物のウクレレなら、弾いた直後の複雑な倍音成分
(含む:非整数倍音)も音として耳に届く訳だけど、
エレウケというとFFT掛けて周波数成分を抜き出して、
さらにそこからmidi信号を生成して、midi音源側で
またアタマから音を創り出す処理を行う…みたいな処理を
やらないといけないので、どうしてもタイムラグは
避け様が無いわけ。

特に、サリーちゃんのパパ状態の時にどんな周波数成分
が混じるのか、基音だけが旨く取り出せるのか。そこが
見えればある程度目処が立つんじゃないかと。

で、やってみた感想ですが…なるようにしかならない…
かな。

そんなもんです。


あとは、実際にアセンブラ用ライブラリとそれをドライブ
するテストプログラムを適当に組み上げてみて、色々な
条件設定して、実機テストやってみてから考えよう…


まぁ、ちゃんと倍音成分が分離できるって判っただけで
安心したな。目下のところ、めでたしめでたし。



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