2014-06-23

Raspberry PiでQt5.3

今月は Raspberry Pi の仕事をしていた(お客さんに、それRasPiでやりませんか? と提案したら一発OKが出た。ノリのいいお客さんだ)。内容は、シーケンサ(PLC)で構築されていた制御システムを、Raspberry PiとUSB接続のデジタル出力ボードに置き換えるというもの。

次の写真は試作段階のスナップ。入力はRasPiのGPIOを使い、出力は制御しなくてはならない接点の数が多いので USB DIO ボードを使って拡張した。こちらが担当するのはソフトウェアのみなので、ハードウェア部分は別の会社が製作する。

RasPiとUSB DIO Board

もとのシステムは、おそらく20年以上前に作られたもので、シーケンス制御(ラダープログラム)により動作する。これまた制御機構に面白い工夫が凝らされた、なかなか味わい深いものであったが、さすがに経年劣化で動作に問題が出てきたらしい。

今ならRaspberry Piのような低価格マイコンボードと制御用のソフトウェアの組み合わせで実現できる。価格も当時に比べればかなり安く済んだのではあるまいか。

制御用ソフトウェアは Qt Library を利用して C/C++ で作成した。

この記事を書いている時点のQtの最新版は5.3だが、Raspbianのパッケージとして用意されているQtはバージョン4.8.2でやや古い(やや、じゃなくて、とても、か?)。

QCommandLineParserとかQSerialPortとか便利そうなクラスを使いたかったので、Raspberry Pi上でQt 5.3をソースからビルドしてインストールすることに。

QSerialPortは、Qt4.8でも別途入れれば使えるが、コーディングはMac上の Qt 5.3 + Qt Creator 3.1.1 で行うので、バージョンをそろえておきたかったという理由もある。

クロスコンパイルではなく、RasPi上でセルフコンパイルしたのでmakeが終わるまで2日半くらいかかった(オーバークロックしとけば、もう少し早く終わったかもしれない)。 一度ビルドしてしまえば、ビルド済みバイナリーを使い回せばいいので数十分でインストールできる。

RasPiの耐久性や信頼性が、どの程度のものか未知数ではあるものの、機能的にはシーケンサ(PLC)によるものに、勝るとも劣らない(しかも廉価な)システムが完成、無事納入できた。

業務連絡:というわけで、働くRasPiシステムの構築も承っておりますので、そっち方面のお仕事ございましたら、ご用命下さい。

0 件のコメント:

コメントを投稿