ワークショップ「Intel IoT」。 Galileo Gen2-最初の知り合い

Intelは、開発者向けにいくつかのデバイスを製造しています。GalileoGalileo Gen2、およびEdison -Arduinoプラットフォームと互換性のある製品で、主な目的はモノのインターネット( IoT )の分野でソリューションを作成することです。



今日、Intel Galileo Gen2を紹介します。







パッケージバンドル



Intel Galileo Gen2は、Intelプラットフォームの主要な機能を調査するためのデバッグボードとして位置付けられており、エンドデバイスに組み込まれることを意図していません。 Intel Edisonは、完成したデバイスでの使用を目的としています(Gilileoの単純な移行-> Edisonが宣言されています)。



Galileo Gen2は、美しい(外部だけでなく内部も)パッケージに入っていますが、コンテンツのリストはかなり控えめです。







実際、内部にはIntel Galileo Gen2ボード自体、電源(12V 1.5A、さまざまなソケット用の5つの異なるアダプター)、および重要な安全情報(極細文字で印刷、ロシア語を除くすべての可能な言語での記録)を含む1つのリーフレットのみがあります。

ちなみに、この紙には、動作中にIntel Quark SoCが熱くなったり触れたりすることはお勧めできません。
キットにボードで動作するために必要なmicroUSBケーブルが含まれていないのは奇妙ですが、オタク-オタクの経済におけるそのような親切さで十分です。



外観



Intel Galileo Gen2ボードのサイズは124x72 mmです(コネクターはボードをわずかに超えて伸びます):





比較のための写真:Intel Galileo Gen 2、「ラズベリー」、およびクローンArduino Megaのコンパクトバージョン。



ボード上のメインコネクタ(左下隅から時計回り):









ボードの右側には、Arduinoシールドの特徴的な「櫛」も見ることができます(Arduino Uno R3に完全に対応)。 すべてのピンは、Arduinoボードの最高の伝統で慎重に署名されています。



UARTコネクターのすぐ下に、2つの位置(5Vおよび3.3V)に1つのジャンパー(IOREF)があります-接続されたシールドが機能する論理レベルのレベルを選択できます。 間違った電圧を選択すると、シールドとIntel Galileo I / Oポートの両方が損傷する可能性があります。



左側のSoCのすぐ下には、 RTCのバックアップバッテリー(3V)を接続するための2ピンコネクタがあります(「COIN」の記号)。 RTCはプロセッサに統合されています。



ボードの上部には、RESET(arduinoコンポーネントの再起動)とREBOOT(システム全体の再起動)の2つのボタンもあります。



Intel Galileo Gen2のアクティビティを示すために、5つのLEDがあります(すべてUSBホストコネクタの隣にあります)。





ボードを下から見てみましょう。







私が最初に目を引いたのは、ボードのほぼ全面のフラックス残渣です。 有名メーカーでそのようなものを見るのは奇妙です(そしてそのような魅力的なパッケージでさえ)。 さて、「速度には影響しません」。



ただし、ボードの底面には、可能な拡張機能(WiFiモジュール、モデムなど)用の本格的なmini-PCI Expressスロットがあります。 その隣には10ピンJTAGデバッグコネクタがあります。 オプションのPoEモジュールをそこに接続することも計画されています(対応する連絡先は「POWER OVER ETHERNET」によって署名されます)。



すでに何度も行われているため、ボードの主要な機能については説明しません。 たとえば、 会社のウェブサイトで情報を見つけることができます。



行こう!



このクラスの役員会は私にとって大きな目新しいものです。 それまでは、最初はさまざまなarduinoボードを使用し、次にMK atmegaをベースにしたデバイスを使用して非常に緊密に作業していました。



Intel Galileoは、(少なくとも、Intelマーケティング資料で宣言されているように)優れたLinuxシステム機能とシンプルなArduinoプロトタイピングを備えたボードとして位置付けられ、これら2つの「サブシステム」の相互作用を組織化する可能性もあります。 物事が実際にどのようになっているか見てみましょう。



私が慣れ親しんでいる部分、Arduinoから研究を始めます。 Macでのすべてのアクションについて説明します。



工場状態のボード(準備なし)は、Arduino環境での作業にすでに適しています(組み込みフラッシュストレージの8Mbには、この機能を提供するLinuxの軽量バージョンがあります)。



しかし、「先延ばしにするのはやめましょう-time化の時です」:メインキャリバーからスズメで掃引します(LEDを点滅させます)。 最初に必要なことは、お使いのOS用の特別なバージョンのArduino IDE( Galileo Software Downloadsで入手可能)をダウンロードしてインストールすることです。







最後に、ボード自体を接続できます。 微妙な違いがあります-電源を接続した後、システムが起動するまで少し(数秒)待つ必要があります。 同時に、2つの緑色のLED(USBホストコネクタの両側)がボード上で順番に点灯します-その後にのみmicroUSBケーブルを接続できます。



Arduino IDEでは、ボード(この環境ではIntel Galileo、Intel Galileo Gen2、およびIntel Edisonオプションが利用可能です)と、ボードを接続した後に表示されるポートを選択する必要があります。 Macの場合、ポートアドレスは/dev/cu.usbmodemXXXXXです。XXXXXはfd121のようになります。



もちろん、初めてファームウェアバージョンを確認し、必要に応じて更新することをお勧めします。 私の取締役会はそのような更新を受け取りました:









ファームウェアの更新には約5分かかります。



これでボードは完全に動作可能になりました。 最初の実験として、MKの「Hello World!」をダウンロードします-Blinkの例です。 通常、「ダウンロード」ボタンを押すと、しばらくするとUSBコネクタの緑色のLEDが激しく点滅し始めます。



できた! 最初のスケッチはすでに機能しています。 システムを再起動すると、再び動作を開始します。 したがって、ボードのArduino機能をすぐに使用できます。 Arduino IDEにはすべての基本的な例が含まれており、ボードとそのプログラミングの機能をすぐに理解できるようにするための基本的なライブラリ(および独自のサンプル)が含まれています。 実際、これで異常なものはまだ発見されていません-すべてが期待通りに機能します(「光を点滅させる」ことは単純すぎて平凡ですが)。



興味深いことに、arduinoコンポーネントを使用すると、イーサネットポート(同じ名前の標準適合ライブラリを使用)とSDカードを操作できます。 この場合、シールドの接続にピンは使用されません。



Intelは、事実上すべてのarduinoシールドと互換性があると主張しています。



もちろん、すべてのシールドをチェックするわけではありません(特にそのようなドキュメントがあるため-EMシールドが手に入りました。 このモジュールには、一般的な液晶ディスプレイ(Nokia 5510と同様)、2つのボタン(1つのアナログピンに接続)、電流センサーを接続するための3つのコネクタ(アナログピンにも接続)、および人気のnRF24l01 +トランシーバーを接続するためのインターフェイス(ハードウェアベースのSPIがArduinoで使用されます)が含まれます。 エクスプレステストの目的は、「準備された」IDEの一部ではない既製のライブラリからいくつかの例を実行しようとすることです。



わかりやすくするために、ディスプレイから始めました。 また、LCD5110_Graphライブラリは (予想どおり)「起動」しませんでした...主なコンパイルエラー:レジスタを直接操作します。 ただし、digitalWrite()などで対応するコードを書き換えると -ディスプレイに命が吹き込まれます。 実際、KDPVはこれらの実験中に正確に作成されました。



タイマーを操作するときに、同様の問題(コンパイルされていない、機能しない)が現れました。 割り込みの処理中にも問題が見つかりました-割り込み(割り込み)は処理されますが、「変更時」のみです(通常のArduinoでは、割り込みを「前面」、「拒否」、「変更時」に設定できます)。



おそらく今後の研究で明らかになるいくつかの他の機能があります。 この投稿を書いているときに、ここでそのようなドキュメントを見つけました-それは関連する制限を説明しています。 すでに知られている「熊手」の上を歩かないように、事前にそれらを研究することをお勧めします。 各ピンからの大幅に低い電流に特に注意を払う必要があります:16mA @ 5Vまたは8mA@3.3V(従来のArduinoでは-50mA @ 5V)。 つまり、その場合は簡単にピンを焼き切れます-注意してください。



また、Intel Galileoが「標準」機能(digitalWrite()など)を実行する速度がどれだけ速いかについても非常に興味深いものでした。 これを行うために、まばたきスケッチを取り、ループ()ループから遅延を削除し、1つのスケッチをarduino(atmega328p)にアップロードし、同様のスケッチをGalileoにアップロードしました。 オシロスコープを接続すると、次のことがわかりました。









最初のチャネル(青)はArduino、2番目(黄色)はIntel Galileoです。



Intelボードは約4倍高速で動作することがわかりました(385kHz、Arduinoの116kHz)。



警告にもかかわらず、私は最後の実験中にSoCに触れました...そしてほとんど指を火傷しました。




システムのホットな「心臓部」は、 Intel Quark SoC X1000と2つのメモリチップ(DDR3、256Mb)です。



今日は以上です



Intelのボード(Arduinoコンポーネントのみを考慮する場合)-Arduinoと同じ低入力レベルを提供していると言えます(ただし、ボードのコストは大幅に高くなっています)。 しかし、これは可能性の半分でもありません!



Intel Galileoでは、完全に機能するバージョンのLinux(Yocto)を実行できますが、ボードは通常のLinuxコンピューターとして使用できます。 そして、「linux-computer」と「arduino-device」の相互作用を整理して、より機能的に高度なことを実現しました。



「ワークショップ」の次の部分では、これらの機会を強調してみます。 継続するには...



ワークショップの第2部」: Galileo Gen2-Linux&Arduino



All Articles