JPY | USD

UDOO Neoは、広範なI/Oセンサおよび強力な計算リソースが重要であるIIoT設計に最適

著者 ヨーロッパ人編集者

Digi-Keyのヨーロッパ担当編集者 の提供

モノのインターネット(IoT)は、センサやアクチュエータなどの広範なエッジノードデバイス向けに設計された小型ヘッドレスマイクロコントローラボードの急成長を担っているとみなされています。 少量のI/O、ワイヤレスマイクロコントローラを備え、わずかな消費電力のこうしたボードおよびモジュールは、クラウドベースの分析サービスにデータをフィードする多くのデバイスを構成します。 多くのアプリケーション向けに、計算リソース、オペレータインターフェースおよびコネクティビティオプションの増加要件が存在します。

ゲートウェイ機能の実行、多くのセンサからのデータ集約、ローカル制御または混合した機能の開始を問わず、より多くの機能とリソースを持つシングルボードコンピュータの必要性があります。 産業機器のメーカーが、各機器のあらゆる可能性のある多様なニーズを満たせる組み込みデバイスの構築方法に取り組む中で、こうしたメーカーの多くは、必要に応じてメインの組み込みボードおよびペリフェラルアドオンを使用するプラットフォームのアプローチを選択します。 少量から中量向けに、市場で入手できる、ますます人気が高まっている多くのオープンソースシングルボードコンピュータ(SBC)の1つを選択することに、ますます多くのメリットがあります。 これにより、多額のNREコスト、ワイヤレス規制認証、およびソフトウェア開発を節約できるだけでなく、開発チームは、組み込む可能性がある多くのデバイスを評価、設計、試作する必要がなく、設計のアプリケーションの観点で非常に素早く開始することができます。

多くのエンジニアリングチームにとって、IoTの際立った影響の1つは、新しいプロジェクトのアプローチ方法に根本的な変化があることです。 チームは、一からの組み込みボードの設計に秀でているかもしれませんが、短い納期中に機能する設計を提供するのが最終目標です。 独自のボードを作成する前に、SBCプラットフォームを使用して設計を急速に向上させることを望む人々にとって、すべての機械的なファイル、レイアウト、BOMへのアクセスはすべて必要です。

UDOO Neo

図1:UDOO Neo

開発者が考慮するかもしれないSBCの例がUDOO Neoです。 3つの異なるバージョン(Basic、Extended、Full)で入手できるこれらの製品は、包括的でかつ低コストのシステムを代表し、すべて、AndroidおよびLinux用のFreescale i.MX6SoloXアプリケーションプロセッサをベースにしています。 この記事では、Neo Fullに焦点を当てています。 このFreescaleデバイスは、シングルチップに、1GHzで実行する強力なシングルコアARM® Cortex®-A9プロセッサ、および最大200MHzで実行可能なARM Cortex-M4 I/Oリアルタイムコプロセッサを組み込んでいます。 GPIO、UART、I2Cなどの多くのハードウェア実装の機能を共有し使用することができるこれらの製品は、高速AXIバスを通してともに接続されます。 開発者は、編集可能な多重化を通して、どのペリフェラル機能がどのコアによって使用されるかといった構成を割り当てることができます。

UDOO Neo Fullは、1GBのフラッシュを備え、GPIOの包括的なレンジ、シリアルインターフェース、フルWi-Fi 802.11 b/g/nおよびBLEコネクティビティを提供します。 このボードは、組み込み9軸モーションセンサ、3軸加速度センサ、磁気センサおよびジャイロスコープ、LVDS、HDMI、カメラ、およびオーディオインターフェースを装備し、多くの産業設計に好適です。

オペレーティングシステムの観点から、Cortex-A9コアは、Android LollipopまたはUDOObuntu(14.04 LTS)を実行することができます。 Cortex-M4は、フルArduinoシールドヘッダを含むフルスタックArduino環境へのアクセスを有しているため、非常に柔軟なプラットフォームです。

UDOO Neo Fullボードの主な機能

図2:UDOO Neo Fullボードの主な機能

図2の赤色で示した外部ピンは、デフォルトで、GPIOモードでCortex-A9に割り当てられています。 したがって、これらのピンは、ファイルシステム(Linux、Android)から直接制御できます。 緑色で示した内部ピンは、Arduino UNOピン配列と同じ寸法で、Cortex-M4により割り当てられ、制御されます。

このボードは、6~15VDCの単一電源から給電され、すべてのGPIOは3.3VDCで動作します。 回路ブロック図の図3は、i.MXアプリケーションプロセッサの周りの主なコンポーネントおよびインターフェースを示しています。

Neoスイートは、ヘッドレスコンピューティングプラットフォームとして使用でき、または、LVDSタッチパネルまたはHDMIを追加することで、ユーザー制御に適したプラットフォームとして使用できます。 意図するアプリケーションがモーションセンサまたは多くのメモリを必要としない場合、NeoのBasicまたはExtendedバージョンを選択して、ボードのコストを節約できます。 多くのリモートアプリケーション向けに、ヘッドレス構成が望ましく、リモートアプリケーションとの通信は、SSHリモート端末または類似のものを介して行われます。

UDOO Neoのi.MX6ブロック図

図3:UDOO Neoのi.MX6ブロック図

UDOO Neoで開始するのは、これまでになく簡単になりました。 より包括的な構成、コードサンプルなどとともにボードを実行するのに必要なすべての情報は、Wikiスタイルのサイトで見つけることができます。 また、このサイトは、必要な場合に完全な機械的レイアウトファイルおよびBOMリストを提供します。

供給される際に、ボードには、オペレーティングシステムがインストールされていません。 Linux、またはAndroidを選択するにしても、8GB以上の容量を持つmicroSDカードにアクセスする必要があります。 Neoのドキュメントサイトから、選択したオペレーティングシステムをPCまたはラップトップにダウンロードし、解凍します。 次に、microSDカードをカードソケットまたはUSBアダプタに挿入する必要があります。 オペレーティングシステムイメージを移す前に、コンピュータのコマンドラインにアクセスし(詳細はこちらを参照)、カード、およびすべてのパーティションをアンマウントする手順に従います。 完了したら、必ずカードを同期またはイジェクトして、イメージ書き込みを適切に閉じます。

NeoにmicroSDカードを挿入し、マウスおよびキーボード(通常はUSB)、HDMIモニタ(まず、すべてが正しく動作していることの確認が推奨されます)を取り付け、それからパワーアップします。 まもなく、ボードの緑色および黄色LEDからアクティビティがご覧いただけるはずです。そして、Linuxを選択した場合は、UDOO Ubuntuデスクトップの前にスクリーンにLinuxペンギンのTuxが表示されるはずです。 このおなじみのデスクトップで、Linuxの通常機能およびユーティリティのすべてにアクセスできます。 また、Neo構成されたArduino IDEはLinuxディストリビューションであらかじめロードされており、デスクトップからすぐに使用できます。  次の段階は、Neoのウェブベースの制御パネルへの接続です。 これには、Neoのブラウザでudooneo.ローカルウェブサーバーにアクセスするか、またはボード自身のIPアドレスにアクセスする(そのIPアドレスをご存知の場合)という方法があります。 図4をご覧ください。

UDOO Neoウェブ制御パネル

図4:UDOO Neoウェブ制御パネル

この制御パネルは、Neo内で起こっていることへの優れた洞察を提供します。 これは、有線とワイヤレスの両方の接続状況、センサおよびサマリーボードに関する情報を提供する他に、ワイヤレスアクセスポイントのセットアップおよびワイヤレスアクセスポイントへの取り付け、地域設定の設定とディスプレイ出力変更のための構成オプションを提供します。 また、加速度センサ、ジャイロスコープおよび磁気センサからの軸および絶対値データが提供され、ボードを穏やかに動かすことで動作をテストできます。

また、サンプルArduinoスケッチをテストし、いくつかのシンプルなスケッチを書き込む能力は、ウェブ制御パネルから提供されます。図5をご覧ください。 Arduino UNOなどのボードに精通している人々は、ピン13をトグルする、図5で示すサンプルアプリケーションでのシンプルな「Blink」例を認識するでしょう。 Neoの赤色LEDがこのピンに接続されているため、このスケッチのアップロードで点滅します。 プログラミングアプリケーションの中で、グラフィカルな相互接続されたロジックブロックの方法でArduinoスケッチの作成を可能にするArdublockyアプリケーションが提供されることに注目してください。

ArduinoウェブIDEおよびスケッチサンプル

図5:ArduinoウェブIDEおよびスケッチサンプル

前述のように、Neoは2つのセットのGPIOを装備しています。 すなわち、Arduinoスケッチからアクセスでき、ヘッダの最も内側のセットである内部と呼ばれるGPIOと、Linux内からアクセスでき、外部と呼ばれるGPIOです。 すべてはデフォルトで入力構成で設定されており、入力または出力として構成でき、必要な場合にコア割り込みを生成できます、 ピン多重化により、MPUは、より多くの専門的タスクを、これらの外部ピンに割り当てることができます。

Linux内からアクセスできるGPIO

図6:Linux内からアクセスできるGPIO。 フルサイズの画像を閲覧するには、ここをクリックしてください。

GPIOピンの制御は、次のようなシンプルなコマンドを使用して、コマンドラインから行うことができます。

echo out > /gpio/pin19/direction – 出力ピンとしてピンを設定するためのコマンド。または、

echo in > /gpio/pin19/direction – 入力ピンとしてピンを設定するためのコマンド

出力として指定されるピンは、echo 0 > /gpio/pin19/valueを使用して、低いゼロボルトに設定できるか、

または、echo 1 > /gpio/pin19/valueを使用して、高い+3.3VDCに設定できます。

入力ピン値は、cat /gpio/pin19/valueを使用して、読み取りが可能です。

UDOObuntu Linuxでプリインストールされているudoo-gpio-exportパッケージは、/sys/class/gpioディレクトリからのリンクの作成に加えて、入力としてのすべてのGPIOのエクスポートを担当します。 これなどの高度な要件についての詳細は、UDOOのドキュメントでご覧いただけます。

Cortex-A9コアとCortex-M4コア間の通信は、データ交換のために共有メモリを使用する双方向の仮想化シリアルピンを通して可能です。 これは、/dev/ttyMMC(例:minicom –D /ttyMCC)を使用することでLinux内から読み取りでき、またはSerial0オブジェクトを使用してArduinoスケッチ内から読み取りできます。

UDOO Neo Fullには、ボード上に3つのモーションセンサがあります。 14ビット加速度センサおよび16ビット磁気センサは、Freescale FXOS8700CQデバイスの同じパッケージ内にあります。 この加速度センサは、+/-2g、+/- 4gまたは+/- 8gの3つの動的に選択可能なフルスケール範囲を有しています。

3軸ジャイロスコープはFreescaleのFXAS21002Cです。

それらはI2Cバスに取り付けられ(図7を参照)、どちらのコアによってもアクセスできます。

センサおよびデバイス構成を示すI2Cバス

図7:センサおよびデバイス構成を示すI2Cバス

それらは、コマンドラインから、次のコマンドで有効化できます。

すなわち、echo 1 > /sensors/accelerometer/enableまたはecho 1 > /sensors/gyroscope/enable です。そして、offの値を、cat /sensors/magnetometer/dataなどのコマンドで読み取ることができます。

もちろん、組み込みアプリケーションは、適切なI2Cレジスタを介して、それらから直接読み取ることができます。 加速度センサおよび磁気センサは、アドレス0x1Eおよびジャイロスコープ0x20を使用します。

また、これらのセンサへのアクセスは、たとえばPythonなどのより高レベルの言語を通して行うことができます。 どんな新しいボードでも、そのボードを使用する初期の段階において、ボードの設計のオープンソースおよびコミュニティの性質を好みます。 この好例として、Cortex-A9で動作するPythonアプリケーション内からセンサインターフェースコードを提供する、GitHub上で利用可能なNeo.GPIO Pythonライブラリがあります。 PythonはすでにUDOObuntuディストリビューションに含まれているため、これはNeo上で開発するのに容易な選択肢になります。 使用する前に、GitHubから.ZIPファイルをダウンロードし、それからそのファイルを、Pythonアプリケーションを作成するディレクトリに展開する必要があります。 また、複数のコード例が.ZIPファイルに含まれており、そのシンプルなバージョンを図8に示しています。

ジャイロスコープを読み取り、ジャイロスコープからデータを表示するPythonプログラム

図8:ジャイロスコープを読み取り、ジャイロスコープからデータを表示するPythonプログラム

コマンドラインから、図8で示すPythonコードを実行するには、ルートとして実行する必要があります。 UDOO Neoを上記のように使用している場合、ユーザーアカウントはudooerであるため、次の方法でGyroExample.pyプログラムを使用する必要があります。 図9をご覧ください。

echo udooer | sudo –S su –c ‘python GyroExample.py’

実行するGyroExample.pyコードのスクリーンキャプチャ

図9:実行するGyroExample.pyコードのスクリーンキャプチャ

UDOO Neoは、産業用IoTアプリケーションに最適な開発プラットフォームとしての役割を果たす包括的で強力なSBCを提供します。 Neoを使用すれば、初期のアプリケーションを極めて迅速に実行し、可能な限り最も時間およびコスト効率の良い方法で製品を市場に投入できます。

免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、Digi-Key Electronicsの意見、信念および視点またはDigi-Key Electronicsの公式な方針を必ずしも反映するものではありません。

著者について

ヨーロッパ人編集者

出版者について

Digi-Keyのヨーロッパ担当編集者