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



FFTライブラリの対数計算結果から、db表示に換算する
計算式を、実際にテストプログラムに組み込んでみて、
想定した数値が吐き出されるか、試してみた。



Arduinoのmath.hには、2の対数の関数が実装されて
いないんだな。まぁ仕方ないので、そこも10が底の
log10を使って換算して求める式にちょっと弄る。

んで、テストデータとして、各電圧レンジを想定して、
フルレンジぎりぎりの入力があった場合とか、1Vrms
の入力があった場合とかを想定してシミュレーション
データを流し込んでみる。

…それぞれ想定どおりの結果でバッチリ。イイカンジ
の結果なので、この計算ロジックをそのまま組み込め
ばバッチリだな。




計算式とか、タイマ割り込み周期とか、測定レンジ
(電圧、時間)とか、FFT処理後の換算とか、
オペアンプの回路定数とか、モロモロのパーツが
およそ揃ってきたので、あとは組み合わせれば一丁
上がりとなる予定。



んで、パーツはともかく、画面設計が意外とやっかい
になりそうだなぁと。

何しろ狭い。

グラフを描くのは、およそ64×64ドットの領域で、
残った部分に、グラフの見方の説明とかを表示し
ないといけない。

んだけど、その残りの部分っていうのが、文字表示
でいうと3文字×6行くらいしかない。

そこに、電圧のスケールとか、時間のスケールとか、
わかるように表示しないといけないんだけど、
横3文字って言うのが非常にキビシイ。

どうしても、部分的に4文字欲しくなるところが。
小数点とかマイナス符号とか。そこは無理やり
ドット打ってごまかすかな…

とりあえず、テストプログラム中でモックアップ
画面を表示して、考えてみようかな。



もしくは、横4ドットで描けるフォントを使うか…

http://d.hatena.ne.jp/tasuten/20110308/1299527778

4×4ドットフォントって言うのがあった。面白い。
なんとなく、テイストがkerokerokingのukulelemanで
使ってたフォントに似ているな。すごい8ビット感。


DFrobot社の、5110液晶のシールド。もう無くなった
モノと思ってたら、
http://tokyodevices.jp/items/150
東京デバイセズでまだ在庫あった。

Uno対応って書いてあるってことは、5V-3.3V変換
も搭載しているんだろうな。あぁ、ちょっと欲しいな。



http://nuneno.cocolog-nifty.com/blog/arduino/index.html
なんとなく面白いサイト発見。16×16のLEDマトリックス
や8×8のLEDマトリックスで感じをスクロール表示…。
漢字フォントROMかぁ。もう売り切れになってるなぁ。



http://www.itmedia.co.jp/enterprise/articles/1405/01/news028.html
交通管制システムにハッキング?リアルダイハード4?

  「攻撃は100ドル足らずのハードウェアを使って
   仕掛けることができ」

って、一体どっちのRaspberry Pi?




http://headlines.yahoo.co.jp/hl?a=20140501-00000003-mantan-ent
鉄拳のパラパラ漫画。
一日20時間って、1ヶ月600時間?
あれ?クールJapanを支えている云々ってやつ?
デジャブかなぁ???
まぁ、体を壊さないように…



http://rocketnews24.com/2011/08/25/124752/
windowsフォン。この「People Hub」って、自分の
プライバシーが完全になくなりそうだなぁ。
これは正直ゴメンだな。




コメント ( 0 )




引き続き、Arduinoでオシロの続き。FFT計算まわりの、
対数計算の換算処理を詰める。



この間も書いたけど、ArduinoのFFTライブラリで
対数表示を使う場合、16ビットのデータ幅を活かす
ために、2の対数の計算結果に16を掛けた値が出力
される。

 → 16 log2(N)

ので、これをdb表示するには、10の対数に換算する
必要。そのあたりの換算計算を落書き帳に書き出して、
整理してみる。



まぁ、対数から対数への変換だから、加減乗除だけ
で計算できるんだけど、元の値が具体的に何の
大きさを示しているのかとか、オペアンプ周りの
増幅とか、VrmsとVppの換算とか、そもそもFFTで
どんな計算が行われるのかとか、その辺りの
ゴニョゴニョした計算をキチンと詰めておかないと。

じゃないと、出てきた値が全然無意味の、単に
周波数ごとに大きいか小さいかだけしか判らない値
になっちゃう。
いくらArduinoで作るおもちゃでも、そのへんが
いい加減だと、おもちゃ以下にしかならないよな。

そうならないように、物理量をキチンとあわせる
ように、計算式をキチンと整理しておく。



んで、式をざーーーーーっと書き出してみて、その式
に値を入れて電卓で計算してみると…

うん。理論値ぴったりの値が出てくる。たとえば、
8Vppのレンジで最大振幅の正弦波を入力したと
仮定すると、8Vpp = 4V0p = 2.828Vrmsの信号と
なる。

さらにこの電圧を、オペアンプでレンジ調整してから
ADCで10ビット精度で入力。

んで、FFT計算の引き数である16ビット幅に一旦拡張
してからFFT計算して、結果の2の対数を取った値が
配列に格納されるはずなので、そいつを元に、
落書き帳に書いた計算式を使って何dbになるのかを
計算してみると…

  +9.032db

と出てくる。これは、1Vrmsを基準にしたdb値。
微妙にズレる的なことがなくてよかった。その他
いくつか試してみたけど、計算式は合ってるみたい。


計算式はひねり出せたので、この式が本当に合って
いるかを、実際にArduinoのスケッチに埋め込んで
みて、波形データを入れてみて、電卓と同じ値が
出てくるかを試してみよう。

一歩前進。



ふと、起動時のタイトルロゴに、小さいビットマップ
のアイコンを表示させてみる。

使用メモリ量を見てみると…、ビットマップデータの
定義の分だけ、SRAM消費が増えちゃってる。

ん?ってことは、もしかして文字フォントのデータ
もSRAMを食っちゃってるんじゃね?と思って、
コードを見直してみる。…正解。

http://playground.arduino.cc/Code/PCD8544
Arduinoのplaygroundページのコードを元に書いた
んだけど、確かにPROGMEMでflashに置いた形に
なってないな。


ってことは…計算すると500バイトちかくSRAMを
占拠しちゃってるなぁ。


急遽、PROGMEMを使って、フォントデータをflash
に追い出してみる。…一気に500バイト近く空いて、
未使用SRAMが700バイト位まで増えた。おぉ。

2kBのうち1.3kBくらい使ってて、そのうち約500B
はVRAMとして使ってるんだけど、一通りの機能を
盛り込んでみて、SRAMに余裕があるようなら、
液晶モジュールをNOKIA51110じゃなく、もう少し
広い画面のモノに変えてもイイかもしれない。


この間買っておいた
http://www.aitendo.com/product/7273
aitendoのOLEDモジュールだと1kBか。フル
スクリーンだと厳しいかな。




秋月の新商品、
http://akizukidenshi.com/catalog/g/gK-07253/
これはなかなか。
http://akizukidenshi.com/catalog/g/gP-04944/
この液晶、使ってみたいなぁと思ってはいたけど、
コネクタ加工はやりたくなかったんだよな。
これ使えば簡単にいけそう。




http://jp.techcrunch.com/2014/04/30/20140429firefox-29-launches-with-major-redesign-firefox-account-integration/

Firefoxは、なんでこんなChromeみたいなブラウザ
にしちゃうんだ?
UIをコロコロ変えるの、勘弁して欲しいなぁ。
Chromeそっくりにしちゃうなら、それはもう
Chromeじゃん。Chrome使いたくないよ…

道具の使い勝手がコロコロ変わるの、イヤなんだよな。

操作方法がチョイチョイ変わっちゃうってことは、
例えていえば、クルマに乗るたびに、というか、
コーナーを曲がるたびに、どのボタンをポチッと
押したらブレーキが掛かるのか、方向指示器が
点くのか…がチョイチョイ変わっちゃうってこと
じゃね?

先進的なクルマって、自然に直感的に使えるデザイン
みたいな意味だと思うんだけどな。ブラウザとか
OSとかって、なんでそれまでの操作をスパッと
捨てて、全然違うものを作っちゃうんだろうなぁ。



http://hackaday.com/2014/04/30/umotio-an-arduino-compatible-3d-gesture-controller/

おぉ。これは中身がArduino Leonardo互換になって
いるっぽいな。へぇ。
LeonardoがこんなUIデバイスになってるのは、なんか
おもしろいな。




http://jp.techcrunch.com/2014/04/29/20140429undo/

undoが出来るデバッガねぇ。欲しいなぁ、欲しいなぁ、
って思ってたんだけど、ものすごくメモリ食いそう
だから、難しいのかな?と思ってたけど、なんと、
実現されてしまった。

マイコンくらいの規模で、ソフトウェアの範囲内なら
なんとかなるかも…と思っていたんだけど、もっと
大規模の開発だと、厳しいのかなとか思ってたんだけ
どな。

妄想できるものに、実現できないものなんて、
それほどたくさんは無いんだろうな。

undo機能は、色んなデバッガにも搭載されていって
欲しいな。




コメント ( 0 )



   次ページ »