マルツTOP > APPLICATION LAB TOPページ おすすめ技術記事アーカイブス > Electric ImpのプラットフォームでIoT製品開発をジャンプスタート

Electric ImpのプラットフォームでIoT製品開発をジャンプスタート

著者 Jacob Beningo
Digi-Key's North American Editorsの提供
2017-05-09
マルツ掲載日:2018-10-08

インターネットに接続される製品を開発するには、数多くのスキルが必要です。開発者は、組み込みソフトウェアを作成する方法を知り、回路基板を組み立て、デバイスのセキュリティ保護方法を理解し、デバイスをリモートでアップデートおよび管理するネットワークに接続する必要があります。

専門知識と個別のIoT製品のインフラを拡大することは容易ではなく、時間も費用もかかります。開発チームは、コストと市場投入までの時間に関する要件を満たすために、開発をジャンプスタートさせる方法と標準的な設計における作業を最小限にする方法を必要としています。

これに役立つさまざまなIoTプラットフォームが現れ始めていますが、特に興味深いものはElectric Impのプラットフォームです。このプラットフォームは、開発者が迅速に着手するために必要なハードウェアとソフトウェアを揃えています。

この記事では、Electric ImpのIoTプラットフォームとその使用方法について説明します。

Electric ImpのIoTプラットフォームの定義

Electric Impのプラットフォームは、IoTデバイスを接続および管理するための完全なソリューションを開発者に提供するIoTプラットフォームです。このプラットフォームには、製品を迅速に導入するために、開発チームが必要とするすべての構成要素が含まれます。次のような構成要素があります。

 ・完全統合型ハードウェア
 ・ 組み込みオペレーティングシステム
 ・ドライバ
 ・ API
 ・クラウドサービス
 ・コードライブラリ
 ・セキュリティソリューション

最初に開発者は、カスタムソフトウェアだけでなくImp Cloudへのセキュアな接続を管理するImpOSを搭載したElectric Impの無線モジュールに、センサと専用ハードウェアを接続します(図1)。エンドユーザーと開発者は、BlinkUpというアプリケーションを使い、モバイルデバイスを通して製品または開発プラットフォームにWi-Fi設定を提供できます。ImpのハードウェアはWi-Fi情報を受け取ると、Imp Cloudと直接かつ確実に通信可能になり、そこから広いインターネットに通信できるようになります。

図1:Electric Impのプラットフォームは、クラウドへの高速なIoTデバイス接続向けに実績のある完全統合型ハードウェア、ソフトウェア、OS、API、クラウドサービス、およびセキュリティを搭載しています。(画像提供:Electric Imp)

Electric Impなどのプラットフォームを使用することで、開発者は次のようないくつかの利点が得られます。

 ・市場投入までの時間を大幅に削減
 ・ インターネット接続ではなく会社の中核的な専門技術に集中
 ・優れた製品の価値と差別化
 ・接続のインフラと専門技術の構築が不要

Electric Impのハードウェア

Electric Impのハードウェアは、次のような標準のハードウェアセットを開発者に提供します。

 ・802.11 b/g/nまたはa/b/g/n Wi-Fiトランシーバ
 ・32ビットARM® Cortex®プロセッサ
 ・フェイルセーフなファームウェアアップデートによる堅牢な組み込みオペレーティングシステム
 ・GPIO、PWM、Analog Inなど、ユーザーが選択可能なI/O
 ・SPI、UART、およびI2Cによる通信

モジュールは、Murata Electronicsが制作しています。設計者にとって、重要な差別化要因は内部プロセッサ、Wi-Fiコネクティビティオプション、およびパッケージングです。たとえば、imp005(LBWA1UZ1GC-901)は、320MHz ARM Cortex-R4ベースのプロセッサをベースにしており、2.45GHz帯と5GHz帯で動作します。一方、imp003(LBWA1ZV1CD-716)は、144 MHz ARM Cortex-M4Fベースのプロセッサをベースにしており、2.45GHz帯だけで動作します。どちらも面実装パッケージです(図2)。

図2:imp005モジュール(左)とimp003モジュール(右)は、Wi-FiモジュールとARM Cortexマイクロコントローラを統合して、デバイスのフットプリントを最小化します。(画像提供:Murata Electronics)

面実装パターンは、ブレークアウトボードなしでアクセスするのは困難です。imp003には、シンプルなブレークアウトであるIMP003-BREAKOUTがあります。これは、開発者がデバイスに電力を供給するためのUSBインターフェース、Electric ImpのユニークなBlinkUp手法を使用するWi-Fi設定でモジュールをプログラムするために必要なフォトトランジスタ、各種サポートコンポーネントを備えています(図3)。

図3:imp003ブレークアウトモジュールは、開発者が最終製品に使用されるElectric Impのハードウェアに容易に慣れて使用することができるLPC(Low-Pin-Count)開発ボードです。(画像提供:Murata Electronics)

imp005モジュールはピン数が多いだけでなく、より強力なARM Cortex-R4プロセッサを搭載しているため、imp005ブレークアウトボードは多少高度になっています(図4)。imp005ブレークアウトボードには、Ethernet、デバイスに電力を供給しホストに接続する標準USBインターフェース、フォトトランジスタも含まれます。

図4:imp005ブレークアウトボードは、USBやEthernetなどの高性能な接続オプションに加えて、ARM Cortex-R4マイクロコントローラを搭載するより強力なimp005へのアクセスを開発者に提供します。(画像提供:Murata Electronics)

BlinkUpを使ったElectric Impの設定

あらゆるIoTデバイスが直面する問題の1つは、ローカルのWi-Fi情報でデバイスをプログラムする方法です。Electric Impは、フォトトランジスタを使用してSSIDとパスワード情報をデバイスにプログラムするという独自の手法でこの問題を解決しました。

プラットフォームと最終製品のユーザーはElectric ImpのBlinkUpアプリケーションをモバイルデバイスにダウンロードして、ネットワーク情報をアプリケーションに入力します。入力を求められたら、モバイルデバイスをフォトトランジスタに押し当てます。その後、モバイルデバイスの画面は、Electric Impのハードウェアをプログラムするコマンドシーケンスを送ります。プログラミングが完了すると、開発を開始できます。

警告!ネットワーク情報がプログラムされているときは、モバイルデバイスの画面を見ないでください。ひどい頭痛やてんかん発作の原因になる可能性があります。

図5:BlinkUpアプリケーションを使用すると、開発者またはユーザーはWi-Fi SSIDを入力して、モバイルデバイスからフォトトランジスタへ一連の点滅を通して、簡単にその情報をElectric Impのモジュールに送信できます。これにより、BluetoothやUSBなど、追加の接続が不要になります。(画像提供:Electric Imp)

開発者がElectric Impモジュールをインターネットに接続すると、モジュールは一意のIDをImp Cloudに登録します。このIDはBlinkUpアプリケーションにもあります。この一意のIDは、モジュールを識別し、オンライン開発環境に接続するために使用されます。さらに、製品のファームウェアアップデートをプッシュし、デバイスを管理するためにも使用されます。開発環境にログインして、新しいソフトウェアアプリケーション(モデルとも呼ばれる)を作成し、モジュールIDをそのモデルに関連付けることにより、モジュールをクラウドに接続できます(図6)。

図6:クラウドを通してソフトウェアモデルにモジュールを接続するには、使用可能なImpモジュールのリストを確認して、既存のソフトウェアモデルまたは新しいモデルをデバイスに割り当てるだけです。(画像提供:Electric Imp)

モデルが作成されたら、開発者はオンライン開発環境にアクセスします。これにより、Electric Impモジュール用のソフトウェアと、そのモジュールと通信するためにクラウドで実行するコードを作成できるようになります。サーバおよびモジュールアプリケーションコードは、Squirrelというスクリプト言語で記述されます。Squirrelの表記法はC言語に類似しているため、ほとんどの組み込み開発者は自然に移行できます。

開発環境は3つの主要な部分に分かれます。1つ目はサーバ側コードで、エージェントコードとも呼ばれます。2つ目はデバイスコードで、スクリプトがコンパイルされImp Cloudによって管理されると、モジュールに実装されます。3つ目はログで、エージェントとデバイスの動作のモニタやデバッグに使用されます。

図7:Electric Impの開発環境は、開発者が単一のビューからデバイスのファームウェアとクラウドソフトウェアを同時に扱うことができる完全統合型の環境です。(画像提供:Electric Imp)

Blinky LEDプログラムで「Hello World」の実行

Electric Impモジュールでアプリケーションを稼働させるのは、とても簡単で明瞭です。オブジェクトは、高い抽象レベルからハードウェア機能に割り当てられます。これにより、Impのモジュールと基本となるマイクロコントローラがブラックボックスになります。

開発者の最初のステップは、端子を通して「Hello World」を出力するか、LEDを点滅させるかのいずれかです。LEDを点滅させるために必要なコードを見てみましょう。

最初に、開発者は開発環境にログインして、「Hello World」または「Blinky」モデルを作成し、それを対象のモジュールに割り当てる必要があります。他のアプリケーションと同じように、開発者はピンと変数を割り当て、設定します。このケースでは、LEDがピン5に接続されるとした場合、開発者はLEDを設定し状態変数を作成するコードを記述します(リスト1)。
 

// Create a global variable called 'led' and assign the 'pin' object to it

led <- hardware.pin5;

// Configure 'led' to be a digital output with a starting value of digital 0 (low, 0V)

led.configure(DIGITAL_OUT, 0);

// Create a global variable to store current state of 'led‘

state <- 0;

リスト1:Electric Impのモジュール用のソフトウェアは、既存のライブラリとSquirrelスクリプト言語を使用してシンプルに記述できます。このスクリプトは、LEDを設定して、状態変数を作成します。(コード提供:Electric Imp)

LEDを点滅させるシンプルなアプリケーション関数を作成します(リスト2)。
 

function blink()

{

// Invert the value of state:

// when state = 1, 1-1 = 0

// when state = 0, 1-0 = 1

state = 1 - state;

// Write current state to 'led' (which is pin9)

led.write(state);

// Schedule the imp to wakeup in 0.5 seconds and call blink() again

imp.wakeup(0.5, blink);

}

リスト2:LEDを点滅させる、またはハードウェアを制御するには、開発を容易にし、開発時間を劇的に削減できるライブラリのセットを使用します。この例では、シンプルな関数を使用して、LEDリソースにアクセスし、ImpOSを介して関数の実行を500ミリ秒遅らせています。(コード提供:Electric Imp)

これだけです!LEDを設定し、ハードウェア上でそのLEDを点滅させるために必要なコードはこれで全部です。LEDプログラムは数行のコードで記述でき、開発者はARMコアレジスタを1つも知る必要はありません。高レベルのAPIにアクセスするだけで、開発者は作業を開始できます。

Electric Impのモデルへの外部センサの統合

Electric Impのプラットフォームへの外部センサとコンポーネントの統合も比較的シンプルです。プラットフォームにより、開発者は、Cプログラム言語における#includeディレクティブに似た#requireディレクティブを使用して、開発済みのライブラリを含めることができます。開発済みで、開発者がすぐに利用できるライブラリにはいくつかのタイプがあります。このライブラリには以下が含まれます。

 ・ウェブサービス
 ・ユーティリティ
 ・ハードウェアドライバ

製品開発者は、リレー、加速度計、地磁気センサなどのデバイスをElectric Impのモジュールに接続し、それらのコンポーネント用にすでに作成されているライブラリを使用して設計をジャンプスタートすることができます。ライブラリは、Electric Impの「開発センター」ウェブサイトから入手できます。

図8:Electric Impには、開発の開始時点からすぐに使用できる幅広いライブラリがあります。これらのライブラリは、開発時間を加速し、一般的なハードウェアデバイスやソフトウェアサービスへのアクセスを提供します。(画像提供:Electric Imp)

Electric ImpのIoTプラットフォームを使用するヒントとコツ

Electric Impなどのプラットフォームの使用に際して開発チームが検討する必要がある考慮事項がいくつかあります。まず、Electric Impのモジュールは、Wi-Fi無線とマイクロコントローラという2つのコンポーネントを1つのパッケージに統合しています。この統合により、コストとスペースを節約できます。次に、開発者は、製品用のコンポーネントを選択する際に、既存のハードウェアライブラリとドライバライブラリを確認する必要があります。既存のライブラリを利用することで、開発サイクルを加速できます。

最後に、開発者は、Electric Impのプラットフォームがインターネットに直接アクセスしないことを覚えておく必要があります。すべての通信は、最初にImp Cloudへのセキュアな接続を通して行われます。その後、エージェントを使用して、広範なウェブにメッセージを送信します。データ保管や分析など、開発者がクラウド側で使用できるサードパーティサービス用のライブラリもあります。可能な限り、ライブラリの既存のコードを活用しましょう。

結論

開発者が既存のテクノロジを使用し、IoTプラットフォームを利用すれば、IoTデバイスの開発は極めて迅速に完了できます。現在市場にあるいずれかのプラットフォームを活用することで、開発者は自分の専門技術に集中し、他の会社が扱うインフラから離れることができます。これまで見てきたように、Electric ImpのIoTプラットフォームは、さらに調査してみるだけの価値がある魅力的でユニークなソリューションです。

 

このページのコンテンツはDigi-Key社より提供されています。
英文でのオリジナルのコンテンツはDigi-Keyサイトでご確認いただけます。
   


Digi-Key社全製品 1個からマルツで購入できます

マルツ経由なら送料全国一律240円〜450円
3,000円以上のお買い上げで送料無料
学校・法人のお客様、校費支払い、請求書後払い承ります

※製品カテゴリー総一覧はこちら



定期購入・量産をご検討のODM、OEM、EMSのお客様へ【価格交渉OK】

毎月一定額をご購入されるお客様、量産部品として検討されるお客様に向けては、マルツ特別価格にてDigi-Key社製品を供給します。
条件に応じてマルツオンライン表示価格よりもお安い価格をご提示できる場合がございます。
是非一度、マルツに見積もりをご用命くださいませ。


ページトップへ