Top > FLIR_Lepton > Arduino 広告 ArduinoでFLIR Leptonのデータを読み込むそもそもの事の起こりは、FLIR Leptonモジュールのピン配置がArduinoに合わせてある データシートによると1/27秒(約37msec)の間に9840バイト(164バイトx60行)のデータを読み込む必要がある。 UNOやNanoに使われているATMEGA328Pだと変数に使えるメモリが2kBしかないので、Leptonのデータをまるまる展開できない。 また、SPIの周波数も最高でCPUのクロックの1/2までなので、8MHzまでしか出ない。 大丈夫じゃんと思うかもしれないが、これはあくまでもLeptonデータを読むだけ。 例えば、115200bpsでシリアル通信したとすると、単純には一秒間に14400バイトしか送れないので、Leptonデータ(9840バイト)を送るには約0.7秒掛かってしまう。1/27秒には全然到達しない。 一度すべてのデータを取ってから送ることができれば1/27秒でデータを読でから送ることができるが、上で書いたようにメモリが2kBしか無いからこれは不可能だ。 じゃあ分割して取ってから送るとどうかとなる。例えば一行分の164バイトを読み取ってから送るとすると、
通信速度をさらに2倍の460800bpsにしてもまだ5倍の開きがあり、Arduinoでこの速度は正確に送れない。 メモリを増設してまずそれに書き込めばいいのではと思ってやってみたが、そもそもメモリに書き込む時もSPIなのでLeptonからデータ読み込む時と同じ時間が掛かる!! そしてよくよくFLIR Leptonモジュールのページ Note2: The UNO Arduino is not fast enough (unless coding in assembly) to capture an image. なんてこっそり書いてある! というわけでよくよく考えてみればできないことをやってはまってしまった話でした。 広告 |