こちらの記事について、内容・翻訳・視点・長さなど、皆様のご意見をお送りください。今後の記事製作の参考にしたいと思います。
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
こちらの記事の感想をお聞かせください。
こちら(英文)のブログの翻訳記事になります
切手サイズのIoT向け開発プラットフォーム
Intel EdisonのプロトタイプがCES(米国のエレクトロニクス機器展示会「コンシューマー・エレクトロニクス・ショー」)で発表された時の衝撃は業界に大きな波紋を起こしました。Linuxが動くPentiumクラスのデュアルコアSoC、無線LAN、Bluetooth、をわずかSDカードサイズのボード上に搭載するというものだったからです。その後、実際に発売された製品では、SDカードサイズに収めることはかなわなかったものの、当初の宣言した以下のような機能を実現していました。。
-
デュアルコア Intel Atome 500MHz
-
Intel Quark マイクロコントローラー 100MHz(ViperOS RTOSを実行可能)
-
1GB RAM
-
4GB flash
-
WiFi & Bluetooth 4.0
-
70ピンのコネクタ(ヒロセ電機の「DF40C(2.0)-70DS」)
この記事ではArduino互換機能が追加されたEdison Kit for Arduinoを用いて解説していきます。
Intelの提供するMakerポータルやEdison Getting Started Guide for Linuxの内容に従って基本セッティングとテストを行いました。
ハードウェアのセットアップ
箱の中にはEdisonモジュールとArduinoベースボード、小さな袋が入っていました。このような開発ボードでは省略されがちな取り付け穴はベースボード上に設けられていました。
モジュールをベースボード上に固定した後、2本のUSBケーブルを用いてラップトップに接続しました。.
ボードを接続すると、「Edison」という名前のUSBストレージデバイスと新しいネットワークインターフェース「USB0」がラップトップ上で確認することが出来ます。
コンパイルとArudinoスケッチのダウンロード
EdisonとGalileoボードをサポートしている「Intel Edison of the Arduino IDE」をインストールして実行しましょう。これはAVRおよびARMベースのArduinoボードで使用されているオリジナルのArduino IDEと全く同じものです。
IDEをインストールし、サンプルをダウンロードしましょう。コンパイルして動作を確認する前に、正しいボードと正しいシリアルポート(Linuxを使用している場合は「ttyACM0」)を選択する必要がありました。
設定を完了すると、ボード上の2つ目のLEDが点灯し、On/Offを繰り返しました。
Linuxとネットワーク構成へのログイン
あなたは何故2本のUSB接続が必要なのか、何故OTG単独でマスストレージとネットワークインターフェースを同時に提供しないのかと疑問に思うかもしれません。それはUSB-UARTブリッジとコンソールを提供するために使用されるSoC上のUARTへと順番に接続されているからです。
Getting Started GuideのStep5は、Linuxユーティリティやスクリーン、UARTへの接続を使用するためにはWifiコンフィグを使用する必要があることを示しています。
バグがあるのか、cofigure_edisonコマンドは--setuo optionを実行できませんでした。しかし、-wifi optionが実行でき、オプションを指定せずにコマンドを実行することでセットアップを実行できました。
この時点でラップトップからEdisonにアクセスすることができますが、ガイドに記載されているWebページからのアクセスはできませんでした。Edison Yocto Linuxシステムはインストールされたソフトウェアを管理するためにOPKGと呼ばれるパッケージマネージャーを使用しています。故にインストールされているWebサーバーソフトウェアを特定することができればガイド通りに動作するかもしれない。
クイック検索を用いて探してみましたが、軽量なWebサーバーを作成するために使用されるlibwebsockets以外を見つけることができませんでした。しかし、ラップトップからエジソンにSSHで接続することができるので、必要に応じてWebサーバーをインストールするのは簡単なことでしょう。
もちろん、Edisonをネットワーク接続したい時に無線LAN環境がない、もしくは使いたくない場合、USBネットワークインターフェースもあることを忘れないでください。
(Re-)flashing
インストール済みのソフトウェアの新しいリリースがあった時、OPKGリポジトリ経由でアップグレードすることができます。しかし、デバイスを完全にリフラッシュすることでも可能です。方法は非常に簡単で、まず最新のYoctoシステムイメージをダウンロードし、EdisonでUSBストレージに抽出します。そしてコンソールから"reboot ota"を実行する。
正常に完了しない場合はハードウェア破損の恐れがあります。
LinuxカーネルとLinuxアプリケーションの構築
EdisonのLinuxシステムはYoctoシステムを利用して構築されています。モジュール形式でカスタムLinuxの作成やクロスコンパイルなどの便利な機能を利用することができます。カスタムカーネルとアプリケーションはこのシステムを利用して構築され、LinuxやWindows、Mac用のアプリケーションをEdison SDKを介して提供します
こちらのブログ(英文)にてオーディオ・ビデオキャプチャを可能にするための方法を紹介しています。
開発者向けオプション
Intelはより簡単にIoT向けアプリケーション作成が行えるように、様々なライブラリやプラグイン、サンプルを提供しています。それらは大まかに分けると3つのグループで構成されています。
・Arduino
・JavaScript
・C/C++
ライブラリとサンプルはArduino開発用のものが提供されています。
CチュートリアルにはIntel独自のIoTきっとと一緒に、人気のMQTTとZero MQメッセージングプラットフォームを使用するためのものが含まれています。サンプルはnode.js形式で提供されます。
まとめ
Edisonモジュールを実際に目にしたとき、想像以上の小ささに驚くことでしょう。小ささだけではなく、開発者が簡単に使用できるように構成やアップグレードなどのプロセスに細心の注意が払われています。
最初、YoctoとPokyよりもUbuntuやDebianなどのLinux環境の方が良かったのではないかと思う方もいると思います。しかし、Yocto環境によってオーダーメイドのシステム構築が可能であることを考えると、本当に理にかなった選択です。Linux財団の後援下にある開発作業グループや家電メーカーがYoctoを好むのはそういった理由があるからです。
Arduinoのようにキットはサイズも大きく、値段も高くなってしまいます。また、Arduino環境下でアプリケーションを作成すると最も効率的な埋め込みコードにならないこともあります。しかし非常に多くの人がArduinoプラットフォームに精通しています。それは初心者にとって非常に取っ付きやすいコンピューティングプラットフォームを持っているからです。
まずはArduinoシールドとブレッドボードを利用して、試作機を開発し、アプリケーションの検証を行うことをおすすめします。そしてその経験を生かしてマス市場向けの完全なカスタムAtomベースのボード作成へとステップアップしていきましょう。