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 LPDDR3
Flash 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 Arduino
GPIO=3.3V or 5V
• SparkFun Blocks for Intel Edison
GPIO=1.8V
慣れた人向け / 実装用
• スイッチサイエンス版Eaglet
GPIO=3.3V
• Intel Edison Breakout Board Kit
GPIO=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/export
echo out > /sys/class/gpio/gpio128/direction
echo 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スクリプトのリモート実行
• コミュニティサイトに成功報告があったので確認

Getting started with edison