ALTERAのお値打ちなFPGA、MAX10の実験キットを手に入れた。CQ出版の企画物で、教材と評価基板、取り付け部品込み込みで1万円台のものだ。まだわけもわからずLチカしたりADしたりするだけだが、なんとか使いこなして、Raspberry Piを補完したい。
Raspberry PiはADがつらい
Raspberry Piを使っていて困るのは、ADだ。もちろんRaspberry Piで使えるADC自体はたくさん売っている。モータの制御や環境系センサから、一発だけ(あるいはリアルタイム性が必要なく連続的に)データを取得する程度ならばそれで十分だろう。
しかし、本格的に計測しようとすると、もうすこしちゃんとしたADCが欲しい。ちゃんとしたというのは、基準信号と同期して、正確なタイミングで、高速かつ連続的にデータを取得できるようなものである(できればGPSのPPS信号とNMEAのデータを自動的に取り込んで、クロックの同期と位置・時刻情報をデータに付加してくれるようなのがあるといいんだが…)。
それくらいのADCになると、たいていはWindowsが必要であったり、PCIeが必要であったりする。Linux対応でかつ、USBという制限がつくと、なかなか見当たらない。
だいぶ探し回ったが、私が見つけられたものはACCES社のUSB-AIシリーズだけだ(「ACCES - 12 or 16-Bit, 16-Channel, Multifunction Analog Input/Output USB Modules Page」)。スペックにもよるが、端子台などオプション含めて10万円くらい。他になにかあるなら教えてほしい…。
この製品はLinuxにも対応しており、マニュアルを見るとRaspberry Piでのインストール方法がのっている。会社で購入して使ってみたところ、なんだか色々とエラーが出たが、アレコレいじっていたら、なんとかRaspberry Piでデータを連続的に取得することができた。外部信号をトリガにしてADを開始することもできるので(5Vなのが、3.3V系の多いRaspberry Pi周りだと面倒だが…)、一応計測には使えそうだ。ただ、完全な連続取得はできておらず、現状1分に1回程度、データを吐き出す際に停止している。回避できるのかどうかはよくわからない。まぁそれは本題ではない。
リアルタイム処理はFPGAで
とにかく、ADはRaspberry Piでは中々の鬼門という話である。ADに限らず、リアルタイム性を要求されるようなものは、LinuxをベースとするRaspberry Piだと中々苦労する。といって、マイコンでは荷が重い。
FPGAを使えればなぁと思っていたが、中々使う機会がなかった。そんな折、ALTERA社のMAX10を搭載した評価ボードと、その使い方をまとめた、我らがCQ出版のオールインワン・キットを手に入れた。
マルツパッケージ MAX10 FPGA入門基板 好評発売中です | マルツセレクト
まぁまぁのお値段だが、USB-Blaster互換の機能を持った基板もある。USB-Blasterだけで本来ならば4万円近くする(参考「PL-USB-BLASTER-RCN | Altera FPGA ケーブル | Altera 【通販RS】」。互換品はこの数分の1の値段で売っているが…)。USB互換機能の基板と、FPGAとその評価基板、さらに教科書付きならば、安いくらいではなかろうか。さらに、別売りでRaspberry Pi拡張基板もある。Raspberry Piとの連携が考えられているのは大きい。ALTERAの開発環境QuartusがMacに対応していないのはまぁ仕方ない。むしろLinux版があるのに驚いた。
ということで、最近ずっと勉強している。まだまだ、わけもわからずADして、その値を元にLEDをチカチカさせることしか出来ていない。せっかくなので画像を一つ。

MAX10評価基板
上画像の上段がUSB-Blaseter互換基板で、下段がMAX10搭載の評価基板である。下段が青く光っているのはフルカラーLEDで、ADで取得した値によって色が変わるようになっている(サンプルどおりである)。モバイルバッテリーが電源代わり。
付属テキストは600ページの大著だが、1/3まで進んでも出来ることはLチカだけ。先は長い。
MAX10は1MSa/sという高速なサンプリングが可能であるし、SPIでRaspberry Piと通信できるようだから、GPSモジュールなどとも連携させることで、理想のADCが作れるのではないかと考えている。うまくいくかどうかはわからないが……。
うまくやれば開発まで漕ぎ着けられないだろうかと考え、シコシコ作業している。自分自身で、売れるようなものを作りたいものだが、道のりは長く険しい。うーむ、頑張ろう。
コメント