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



引き続き、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 )