カンデラの開発者による連載コラムが始まります。 第1回は、「身の回りにあるHMI」についてやさしく解説します。
人(ヒューマン)と機械(マシン)の間のやり取りをする仕組み(インターフェース)のことです。
人が機器を操作したり、機器からの情報を視覚や聴覚などを用いて人に伝えます。ここの例では、液晶ディスプレイがこれに当たります。 「UI(ユーザーインターフェース)」と呼ばれることもあります。
コンピュータの演算や制御などの機能を1つの半導体チップにしたものです。
画像にあるような黒い四角い形をしたものがほとんどです。実際にはこのマイクロプロセッサに加えてメモリやストレージ、各種I/Fなどを搭載した基盤をセットにしてデバイスとして製品となっていることが多いです。これらのデバイスは小さなコンピュータとして動作します。しかし、主に部品の価格などを理由に、コンピュータとしての処理能力はパソコンやスマホ、タブレットと比較すると低い傾向にあります。
特定の用途向けに特化、限定した機能を行うための機器です。
多くの場合マイクロプロセッサを搭載し、ソフトウェアで制御されています。液晶ディスプレイを備えているものもありますが、そうでないものもあります。
よく似た言葉として「IoT : Internet of Things(モノのインターネット)」があります。こちらは組込み機器の中で、インターネットに接続する機器や機能のことを指します。厳密には意味が少し異なりますが、最近ではひとくくりに「IoT」と呼ばれていることが多いです。
コンピュータのプログラムのことで、組込み機器を制御しています。
マイクロプロセッサの処理能力は、パソコンやスマホ、タブレットよりも低いモノが搭載されている場合が多いため、処理が軽いC, C++のような言語が採用されています。また、開発段階でマイクロプロセッサの処理能力を最大限に引き出すためのソフトウェアのチューニングが必要になることも多いです。
◆液晶ディスプレイにおけるHMIの構成
液晶ディスプレイにおけるHMIを実現するためには、下図のように液晶ディスプレイ本体、液晶ディスプレイにグラフィックを表示するための装置( ターゲットやターゲットデバイスと呼びます )、その装置上で動作するアプリケーションソフトウェアと、そのアプリケーションが解釈することのできるコンテンツを用意する必要があります。
◆ミドルウェア
下図のように、実際の開発ではアプリケーションソフトウェアは、ターゲットが対応しているグラフィック用のミドルウェアのAPIをコールして、描画命令を発行します。代表的なものとしては、OpenGL ES、OpenVGなどが挙げられますが、ターゲット独自のものが存在するケースもあります。GPUが存在しておらず、グラフィック用のミドルウェアも用意されていないようなターゲットの場合、描画面( メモリ )に対して直接描画を行う、ソフトウェアレンダリングという手法を採用することも考慮する必要があります。
・OpenGL ES
組み込み機器向けの、3Dグラフィック用のミドルウェアです。3DのGPUが搭載されたターゲットでドライバ提供されていることがあります。
・OpenVG
2Dのベクタグラフィックス用のミドルウェアです。2DのGPUが搭載されたターゲット向けにドライバ提供されていることがあります。
・ソフトウェアレンダリング
GPUに頼らず、描画面に対してCPU( アプリケーションプログラム )で直接描画する方法ですがピクセルごとにCPU側で処理を行うので、負荷が懸念されます。
◆ワークフロー
液晶ディスプレイにおけるHMIを含んだ製品を開発する場合、概ね下図のように、製品全体の仕様作成を行う仕様設計担当、製品全体のソフトウェアの開発を行うソフトウェア開発担当、HMIのデザインを作成するデザイン担当、ソフトウェアの実機への組み込みを行う実装担当といった構成で開発を行うこととなります。実際には仕様設計担当から提供された仕様をベースに、ソフトウェア開発担当が、基本となる仕組みを実装し、デザイン担当と連携しながら、作り込みを行い、ある程度素材が揃った時点で実装担当にソフトウェア一式を提供し実機での動作確認を行います。また、どの工程においてもフィードバックや修正依頼が適宜行われ、この流れを繰り返すことで、製品を完成に近づけていきます。