電子工作プロトタイピングのソフトウェアアーキテクチャについて
この記事の目的
電子工作のプロトタイピング時のソフトウェアアーキテクチャについて、どのように作るべきかを整理する
電子工作プロトタイピング時の参考書
電子工作でRaspberry piやArduinoを用いたプロトタイピングを行う場合、下記の参考書が便利である。
Raspberry Piで学ぶ電子工作
カラー図解 最新 Raspberry Piで学ぶ電子工作 作って動かしてしくみがわかる (ブルーバックス)
- 作者: 金丸隆志
- 出版社/メーカー: 講談社
- 発売日: 2016/07/20
- メディア: 新書
- この商品を含むブログ (1件) を見る
Raspberry Piの環境構築や各種電子部品を用いた実装まで手を動かして学ぶことができる本
LED点灯からラジコンの操作用ソフトまで多種のセンサ・アクチュエータを取り扱っておりとてもわかりやすい。
Arduinoをはじめよう
Arduinoをはじめよう 第3版 (Make:PROJECTS)
- 作者: Massimo Banzi,Michael Shiloh,船田巧
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/11/28
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (5件) を見る
Arduinoの開発環境構築・使い方や各種電子部品のソフトの基本的なサンプルを取り揃えている。入門書としてとっつきやすい。
実用的なプロトタイプのためのアーキテクチャ
一方で上記の解説書では記載されているサンプルコードをそのまま実行させることで満足してしまい、実用的な機能を作るのが難しいのではないかと感じた。
ユーザーがPCからGUIで処理要求・センサデータの確認をしつつ、アクチュエータを動作させるプロトタイプを実現するためには、下記のような構成が適している。
上記の構成において、個々のセンサ・アクチュエータは参考書やWebのサンプルページを流用することで動作させることができる。
しかし、一連の機能として連携させて1つのソフトとして動作させるためは下記の要素を理解する必要がある。
項目 | 説明 |
---|---|
プロジェクト構築(Python) | 機能ごとにモジュール化/クラス化して整理した複数のPythonScriptから成り立つプロジェクトを構築する |
スケジューリング(Python) | 機能ごとに適切な周期で処理を呼び出す(GUI/通信などを含む。プロセス処理) |
プロジェクト構築(Arduino) | 機能ごとにモジュール化/クラス化して整理した複数のCファイルから成り立つプロジェクトを構築する |
スケジューリング(Arduino) | Arduinoプロジェクトで機能ごとに適切な周期で処理を呼び出す |
プロトタイピングの参考書では上記のような点にページを割かず単一機能・mainループの処理のみに記載しているものが多い。
しかし、組込みソフト開発で開発をする場合などには上記概念を理解しておくことが重要であると感じている。
今後の記事で上記について実例を挙げながら説明する。