Transcript

Getting Started with Edison

@第11回まどべんよっかいち2015/1/24青木 宣明(@kumar0001)

INTEL Edisonとは?

Edisonとは?

Intelが2014年9月に発売した超小型コンピュータ

• SDカードとほぼ同じ大きさ

ウェアラブルデバイスにも使える大きさ

機能

プロセッサー ・Intel Atom Processor Z34xx (500MHz) (2コア,2スレッド)・Intel Quark 100MHz

メモリ RAM: 1GB LPDDR3Flash ROM: 4GB eMMC0

通信 Wi-Fi (IEEE 802.11a/b/g/n)Bluetooth 4.0 + 2.1EDR

外部入出力 ヒロセ電機 DF40コネクタ (70ピン)・SDカード×1 ・SPI×1 ・USB(OTG対応)・UART×2 ・I2S×1・I2C×2 ・GPIO×14 (4個はPWM)

電源(入力) DC 3.3V ~ 4.5V

大きさ 35.5mm×25mm×3.9mm

Edisonの本体

外部入出力・電源の端子(70ピン)

もちろん技適を通ってます

Wi-Fiアンテナ

Edisonへの配線

15mm/35ピン

入出力・電源コネクタのピン間隔が非常に狭く、ここから配線するのは非常に困難

通常はEdison本体を取り付けて信号線を取り出すボードを利用する

Edisonのボード一覧

2015/1時点で入手可能なボード

• Intel純正

Edison Board for Arduino

Intel Edison Breakout Board Kit

• SparkFun

Intel Edison Block

•スイッチサイエンス

スイッチサイエンス版Eaglet(MFT版)

•秋月電子通商

Edison 2.54mmピッチ変換基板

Edisonのボード①

Intel Edison Board for Arduino

Arduinoのシールドを装着可能

(5V/3.3V)

micro SDスロット

USB OTG

PGのDL給電

PCとのシリアル通信

Power/Resetなどのボタン

DV 7-17V

Edisonのボード②

Intel Edison Breakout Board

PGのDL給電

PCとのシリアル通信

2.54mmピッチスルーホール

(信号線はここから)

Edisonのボード③

SparkFun Blocks for Intel Edison

https://learn.sparkfun.com/tutorials/general-guide-to-sparkfun-blocks-for-intel-edison

機能ごとのボードを積み重ねる

Baseブロック

UARTブロック

Edisonのボード④

スイッチサイエンス版Eaglet (MFTバージョン)

Edisonのボード⑤

秋月電子通商 Edison 2.54mmピッチ変換基板

Edisonのコネクタを2.54mm×32ピン(2列)に変換

キットなのではんだ付けは自分で

ボード比較

初めて人向け / 検証用• Intel Edison Board for ArduinoGPIO=3.3V or 5V

• SparkFun Blocks for Intel EdisonGPIO=1.8V

慣れた人向け / 実装用• スイッチサイエンス版EagletGPIO=3.3V

• Intel Edison Breakout Board KitGPIO=1.8V

• Edison 2.54mmピッチ変換基板GPIO=1.8V

まずはこれから

プログラム開発

プログラミング言語

開発環境

プログラミング言語

Arduinoスケッチ

• EdisonにUSB接続したPCでビルド・実行

C/C++, Python, JavaScript(node.js)

• MRAAライブラリで制御

•ビルド・実行はローカルもしくはリモートで

シェルスクリプト

• sysfsを使ってGPIOを制御

開発環境

Arduino IDE

•スケッチ

Intel IoT Devkit

• Eclipseベース

• C++

Intel XDK IoT Edition

• JavaScript (node.js)

Arduino IDE

Intel IoT Devkit

Intel XDK IoT Edition

デモ

GPIO (Lチカ)

I2C

UART(シリアル通信)

クラウドとのHTTP通信 (Wi-Fi)

Bluetooth

今日はここまで

プログラムの例①

GPIO - Lチカ

• 0 / 1の入出力

スイッチとかLEDの点灯などに使える

•基本は以下の3点

GPIOのポートを開く

ポートの入出力の方向を設定する

ポートをON/OFFする

echo 128 > /sys/class/gpio/exportecho out > /sys/class/gpio/gpio128/directionecho 1 > /sys/class/gpio/gpio128/value

プログラムの例①

GPIO - Lチカ

• Arduino IDEでの実行

• C言語でのリモート実行

• node.jsでのリモート実行

• sysfsでの制御 https://github.com/intel-iot-

devkit/mraa/blob/master/docs/edison.md#intelr-breakout-board

Aruduinoの13番⇒GPIO128

プログラムの例②

I2C

• ADT7410(温度センサー)の例

プログラムの例②

I2C

• I2Cはバスとアドレスで指定

•処理は以下の通り

① MRAAの初期化

② I2Cの初期化 (バスを指定)

③ I2Cアドレスを指定

④ 値の入出力 (データサイズを指定)

mraa_init();mraa_i2c_context i2c = mraa_i2c_init(6);mraa_i2c_address(i2c, 0x48);uint8_t data[2];int count = mraa_i2c_read(i2c, data, 2);

まとめ

まとめ

Edisonの概要

• SDカードとほぼ同じ大きさ

• GPIO/I2C/UARTなどの外部入出力

• Wi-Fi, Bluetoothの通信

開発環境・言語

• C/C++, Python, node.jsが利用可能

• PCからのリモートデバッグが可能

• MRAAライブラリでハードウェアを制御

Edisonのメリット・デメリット

メリット

• Edison単体でBluetooth / Wi-Fi通信を使ったガジェッ

トを作成できる

• Intel Atom搭載のLinux PC

デメリット

•映像・音声出力端子がない

•電源ONからOS起動完了までのタイムラグ

今後の課題

公式Linuxイメージのカスタマイズ

• Rootパーティションサイズを増やしてmonoを導入

monoを使ったC#プログラミング

• GPIO/I2C/UARTなどを使うクラスライブラリを作成

Pythonスクリプトのリモート実行

• コミュニティサイトに成功報告があったので確認