Microsoft WindowsデスクトップとArduinoの出会い:メーカーの夢か?
DigiKeyのヨーロッパ担当編集者の提供
2017-09-26
メーカーコミュニティには、新しいアイデアがあふれています。その多くは、技術の使用を中心としており、サービスを提供し配信する新しい方法を生み出しています。その他は、以前は考えられなかったアイデアで数多くの世界を切り開いています。このようなアイデアを持っていても、製品設計を紙から現実にするということは困難な課題になります。新進の起業家は、最初に市場に出すことが非常に重要であることを認識し、迅速な開発フェーズが必要であることを認識しています。Arduino、Raspberry Pi、BeagleBone Blackなど、組み込みシングルボードコンピュータ(SBC)は、短期間のうちに多くのメーカーが選択するプラットフォームになりました。大部分のSBCは、オペレーティングシステムとしてLinuxを採用しています。しかし、Linuxは、多数の柔軟性と機能を設計に組み込む一方で、使い始める時点でかなり熟知していなければならないため、オープンソースオペレーティングシステムの使用に不安がある人々は使用を思いとどめるかもしれません。おそらくArduinoは、オペレーティングシステムを使用しないという点で例外です。とはいえ、これは、組み込み設計で現実世界と接続するという難題にシンプルさとプログラミングしやすさをもたらすArduinoの信頼性をどのような形でも制限するものではありません。メーカーコミュニティ内、特にエレクトロニクスに新規参入したメーカーに非常に人気のあるArduinoは、エレクトロニクス愛好家の興味を再びかきたて、多くの新製品アイデアの背後にある想像力に火を付ける役割を果たすと考えられています。
新製品の開発では、Arduinoが提供する最良の機能をユーザーおよびアプリケーションが慣れ親しんだMicrosoft® Windowsと組み合わせる製品をどのように試作するかが、多くのメーカーの課題となっています。GPIO、PWM、およびADC周辺機器とともに、SPI、I2C、UARTfvなど接続オプションのホストを提供することで、間違いなくArduinoは設計を現実世界に結び付け検知することができます。アプリケーション開発の観点から、Linuxよりは、C#、Java、Pythonなどの言語でMicrosoft Visual Studio IDEを使用したデスクトップアプリケーションの開発に精通している可能性が非常に高いと考えられます。最近まで、WindowsデスクトップとArduinoの異なるドメインを統合する直接的な方法はありませんでしたが、DFRobotのLattePandaというSBCがその統合を実現しそうです(図1)。

図1:DFRobotのLattePanda
LattePandaは、Microsoft Windows 10 Home Editionがプリインストールされている本質的に超小型シングルボードWindowsコンピュータであり、Arduino互換のAtmel ATmega32u4コプロセッサに加えて、1.8GHzで稼働するIntel® Cherry Trail Atom Z8350クアッドコアマイクロプロセッサをホストします。これは、完全なWindows 10システムであり、機能縮小したIoT版ではありません。32GB e-MMCストレージと2GB RAMボード、または64GBストレージと4GB RAMボードの2つのモデルが用意されています。LattePandaボードは、アクティブなWindows10キーなしでも利用できます。標準の接続オプションとして、LattePandaは、USB 2.0およびUSB 3.0、100Mbps Ethernetポート、HDMI出力、3.5mmオーディオソケット、microSDソケット、Bluetooth 4.0、Wi-Fiを装備しています。図2は、LattePandaの主要なコンポーネントとインターフェースを示しています。ボードは、マイクロUSBソケットを使って単一5VDC、2.5アンペアの電源を供給されます。起動時にLattePandaがリセットしないようにするために、動作中は電源アダプタが必ず2.3アンペア以上供給できるようにしてください。わずか88mm x 70mm(3.46" x 2.76")のLattePandaは、スペースに制約のある設計に組み込むには十分な大きさです。エンクロージャ内への実装を助けるために、LattePandaの機械仕様と3Dモデルファイルをボードのフォーラムから入手できます。ボードを制限されたスペースに収める場合、ファンにより強制空冷を提供し、通常動作中にボードがかなりの高温で動作するときは適切なヒートシンクを採用することを推奨します。LattePandaで使用できるカスタム銅ヒートシンクのセットが用意されています。5VDCファン電源がボード上にあります。

図2:LattePandaの主要コンポーネントとインターフェース
ボードには、Windowsオペレーティングシステムだけでなく、MicrosoftのVisual StudioとArduino IDEもプリインストールされています。TightVNCなどの適切な仮想ネットワークコンピューティング(VNC)を使用するか、LattePandaの1074 x 600、7インチLCDディスプレイパネルを対応タッチパネルに取り付けることにより、ボードはヘッドレス操作できます。ディスプレイと容量性タッチパネルは、FFCケーブルとZIFソケットを使ってLattePandaに接続します。
さまざまな周辺機器IOの使用に関して、WindowsとArduinoの組み合わせを十分に考慮しています。図3は、使用可能なピン配列を示しています。AtomとATmega32u4の両方からの信号を利用できます。その大多数は、24ピンデュアルロウソケットを介するArduinoからの信号です。Atom IOは、図3のU1エリアにあります。20個のGPIOピン(アナログA0~A5およびデジタルD0~D13)はすべて5Vロジックを使用し、入力または出力として使用できます。そのうち12個は、アナログ入力用に個別に設定できます。図3のU2エリアを参照してください。センサまたはデバイスをIOに接続するときは、5Vロジックも使用するようにしてください。ロジックレベルコンバータが必要な場合は、3.3VDCデバイスを使用する必要があります。各アナログピンは、0~5VDCの入力電圧範囲から1024値を提供する10ビットの分解能を備えています。D3、D5、D6、D9、D10、およびD13ピンは、8ビットのPWM出力として使用できます。さらに、D7、D3、D2、D1、およびD0を使用して、さまざまな条件で外部割り込みをトリガできます。従来のArduinoに沿って、標準の点滅LEDスケッチで使用できるD13に接続されたLEDがあります。

図3:LattePanda – 周辺機器ピン配列
いくつかのArduinoピン、D9、D10、D11、A0、A1、およびA2は、コアArduinoコネクタ内とDFRobot Gravityセンサ用に表示されています。
ピンは、ATmega32u4コアおよびAtomで稼働するアプリケーションからアクセスできます。標準のGPIOベースIOに加えて、I2CとSPIを介するシリアル通信もピンヘッダから利用できます。6ビットのICSPコネクタも提供されます。Visual Studio用のLattePanda Firmataオープンソースライブラリが付属しているため、WindowsアプリケーションはArduino GPIOピンを簡単に使用できます。これにより、アプリケーションは、クラス関数を使って任意のピンへのアクセスと制御が可能になります。使用可能なライブラリ関数の詳細な説明と個別にダウンロード可能なVisual Studio C#の例は、ここを参照してください。
図4:オンボードLEDを点滅させるためのコードのVisual Studioスクリーンキャプチャ
すべてが正常に動作していることを確認するために、Firmataクラスライブラリを呼び出すVisual Studio C#コードを図4に示します。実行すると、このコードはオンボードLEDを点滅させます。ArduinoのCベースコード構造と関数を知っていれば、クラス関数がArduinoスケッチ内で使用されるクラス関数に似ていることがわかるでしょう。
ボード用にカスタム設計されたセンサセットが用意されているため、LattePandaでのアプリケーション作成はより容易になります。合計14個のセンサとその接続ケーブルで構成されるGravityセンサスタータキットには、光センサ、ガスセンサ、炎センサ、アナログ回転センサ、デジタル押しボタン、さまざまなカラーLED、リレーモジュールが含まれます。これらは、ボード上にある6つの3ピンGravityコネクタに差し込まれます。このピン配列は図3に示します。
ボードのI2Cバスは、センサ、アクチュエータ、ディスプレイを接続するもうひとつの便利な方法を提供します。Firmataライブラリは、wireBegin、wireRequest、およびdidI2Cdatareceive関数を使用して、Visual Studioアプリケーションに直接データを送受信するために必要なクラス関数を提供します。以下の例は、AdafruitのI2C 3軸加速度計評価ボードの使用を示しています。このボードは、Analog DevicesのADXL345超低電力高分解能3軸MEMSセンサを使用しています。MEMSセンサは、図5に示すように、LattePandaに接続されます。

図5:LattePandaへのAdafruit ADXL345 3軸MEMSセンサの配線
電源はピン22(5V)と21(GND)から供給され、I2Cはピン6(黄色ワイヤSDA)とピン8(青色ワイヤSCL)に接続されます。
図6のソースコードは、デフォルトのセンサアドレス0x53とデフォルトの計測範囲0x2D(2G)を使用して書き込まれるセンサボードを示しています。データはセンサから連続して読み出され、コンソール画面に表示するX、Y、およびZ軸読み取り値に解析されます。
図6:I2Cを介したADXL345 3軸MEMSのセットアップと読み取り値を示すC#コード
上記の2つの例は、LattePandaを使用していかに迅速にアプリケーションを作成できるかだけでなく、アプリケーションを迅速に開発して市場に展開できる事前認証済みのプラットフォームを提供するという事実も示しています。市場化までの関連するNREコスト、リスク、および時間で、最初から適切な組み込み設計を開発しなくても、SBCを使用した設計を数週間以内に実装できます。設計を商品化し顧客のインストールが行われることにより第一人者としての利益が確保されると、生産量がビジネスケースをサポートする場合、エンジニアリングチームは、LattePandaフォーラムで提供される機械モデルを最大限に活用するカスタム設計の部品表を準備できます。
数あるLattePandaの用途の中でも、モノのインターネット(IoT)ソリューションへの使用が理想的な選択です。リアルタイムで有線および無線接続センサのホストからデータを読み取り、結果を集め、Wi-FiやEthernet通信を介してクラウド分析プラットフォームに転送するための十分なコンピューティングリソースと接続リソースがあります。このゲートウェイ手法は、産業向けのモノのインターネット(IIoT)アプリケーションで確実に人気を集めています。「フォグ」コンピューティングと呼ばれるこの方法は、連続してクラウドに接続する必要はありません。いくつかの制御機能は、クラウドアプリケーションの応答を待つことなく、ローカルで実現できるためです。ある温度ポイントに達すると空調プラントをオンにするなどの例があります。ゲートウェイにローカルな温度センサとプラントアクチュエータがあることで、通信コスト、レイテンシの制御、およびクラウドコンピューティングリソースの必要なしで冷気の要求に応えることができます。
MicrosoftのAzure IoT Hubプラットフォームは、LattePanda SBCをフルにサポートする一般的なクラウドコンピューティングプラットフォームです。GitHubリポジトリは、Azureプラットフォームを使用するボード通信に関連するプロセスを文書化します。これは、LattePandaが提供する情報に付加されます。開発とテストプロセスを容易にするために、Microsoftは、IoTハブへの接続をテストするNode.jsサンプルファイルを提供しています。これらのサンプルファイルをダウンロードする前に、Azureポータルを使用してAzureアカウントを設定し、新しいIoTデバイスを作成する必要があります(図7)。

図7:新しいAzure IoTハブエントリの作成
図8は、ハブエントリ詳細の設定とホストの名前付けを示しています。このプロセスにより、LattePanda上のセンサを識別してAzure IoTハブに結び付けるために使用される資格情報(接続文字列とアクセスキー)が提供されます。このプロセスが完了すると、コードを作成して実行する前に、付属の「simple_sample_device.js」ファイルを編集して、接続文字列を入力できます。Azure IoTハブ内では、DeviceExplorerユーティリティ機能を使用して、ハブがLattePandaから受信しているメッセージを監視できます。

図8:Azure IoTハブ – 新しいデバイスの登録
通信が確立されたことを確認したら、Azureのサービスを使用してアプリケーションの設計を処理できます。たとえば、Azure Storageサービスを使用して、センサ読み取り値のテーブルを作成できます。さらに、Azure Stream AnalyticsとAzure Power BIは、センサデータの値と傾向を割り込み、分析、および表示可能なAzureアプリの例です。

図9:Azure Storage関数を示す光センサNode.jsの例
図9は、「A0」ピンに接続されたGravity光センサの値を読み取り、Azure Storageテーブル内にその値を保管するNode.jsの例を示しています。Azure Storageと通信する関数は、赤色でハイライトされています。
LattePandaでの開発はとても簡単です。数多くのベンダー文書、オンラインコミュニティフォーラム、および機械モデル、ライブラリ、コード例を含む独自のGitHubライブラリを備え、十分にサポートされたプラットフォームです。核となるオペレーティングシステムのMicrosoft Windows 10は、利用可能な多数の商用開発環境およびアプリケーションでサポートが極めて充実しています。さらに、Arduinoコプロセッサには、出版物、開発者、およびプログラミングリソースの広範なコミュニティがあります。Arduino IDEは、現在おそらくもっとも広く普及したIDEです。Microsoft Visual Studioは、C#、Python、F#/.Netなど、一般的な各種プログラミング言語での開発をサポートする理想的なIDE補助ツールです。
結論
LattePandaは、新しい概念をメーカーコミュニティにもたらします。Arduinoが提供する現実世界との接続の容易さとWindows開発者およびアプリケーションの広大なコミュニティを組み合わせることができることで、組み込み設計の範囲がさらに広がり、無限の新製品の可能性が開かれます。
免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、DigiKeyの意見、信念および視点またはDigiKeyの公式な方針を必ずしも反映するものではありません。




