産業関係で未だにMS-DOSで動くシステムなどがありますが、
20年続いたシステムでもハードウェア面でメンテナンスが出来なくなって
最新のシステムに置き換える事例などがあるかと思います。
今から作るなら.NETを使って実装が王道だけど、今回はWindows、Linux両方で動く
Pythonを使った方法を考えてみました。
仕様イメージは組込み開発でWindowsやLinuxが動くパソコンを使って装置を動かすというもの。
パソコンに求められるものといえば、
・シリアルポートやLANを使う
・画面で運転状況を表示する
・リアルタイム制御を求める
この3点くらいだと思います。
どういったものを使えば出来るかというと、
1つ目、シリアルポートやLANは、pyserial、twistedなどを使うことで解決。
2つ目、最近の流れに沿って、スマートフォンで操作できるように、WEBアプリ開発でDjango、jQuery mobileを使えば対応できる。
3つ目、WEBフレームワークDjangoのバックグラウンドにハード制御を行うスレッド又はプロセスを常駐させることで対応できる。
今回はDjangoを使うので、管理画面が最初からついてきます。しかもデータ操作が可能なものです。
それを使えばパラメータ設定などはDjangoの機能を使えば簡単に出来るし、データベースをSqlite3に
すれば1ファイルで管理できるメリットずくめ。後はWEBサーバが必要になるのでnginxを使うとします。
ここまでの構成をまとめると、
nginx + django + jquery mobile + pyserial + twisted + sqlite3
だいぶ使うものが増えてきました。
[画面周り]
・ブラウザ経由(ネットワーク経由で遠隔操作なども可能)
・スマホ対応のライブラリjquery mobileを使うことで幅広くなる
・リアルタイム性はajaxを用いて、常時ハードウェアのステータスを拾うようにする。
[制御]
・WEBアプリ(画面周り)と切り離してバックエンドで動かすドライバ的なものにする。
・URL経由でハードを動かしたり、ステータスを取得できるようにする。
[パラメータ]
・sqlite3で管理する。DB操作はdjangoを使って楽する。
・ログなどもdjangoを使って楽をする。
画面周り+ハード制御用ドライバを実装して、これらをURL経由で操作できるようにすれば
WEB系を取り入れた組込み開発になる。
こんな感じになると組込み系の醍醐味?だと思うLCDにキャラクターパターンをUART経由で送信して表示するというような事はしなくなりそうです。
今日はここまで。
0 件のコメント:
コメントを投稿