Intel Edisonでmraa(Python)を使ってLチカした

嘘。できなかったけど。

Intel Edisonを買った。で、mraaを使ってLチカしようとしたのでそのメモ。

Intel Edison Breakout Board Kit - スイッチサイエンス

初期化からWifiにつなぐまで

買った当初(11月頭)はこの辺のやり方がドキュメント読んでもよくわからなくて混乱してたんですが、今はEdison Labというページができていて、 そこのドキュメントが超わかりやすいです。これ見てやれば間違いなし。

「Getting Started」の前に「初期化とファームアップデート」をやらないといけない点に注意。 ファームウェアが古いと、手順に出てくるconfigure_edison --setupを打っても「そんなオプション知らないっす!」みたいなエラーがでます。

Lチカしてみる

さっそくLチカしてみます。

ピン配置

mraa/edison.md at master · intel-iot-devkit/mraa · GitHubを読んで、 どこのGPIOを使うか考えます。ここでは仮に、8番を使うとします。

f:id:yutannihilation:20141202015016p:plain

これは、

  • mraaだと8を指定する
  • 物理的にはJ17列の9番目にある
  • LinuxのGPIO sysfsから操作するときは/sys/class/gpio/gpio28らへん

ということを意味します。

Python

で、Pythonやってみると…

root@edithon1:~# python
Python 2.7.3 (default, Oct  9 2014, 11:20:30)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import mraa
Failed to write to export
Intel Edison Failed to initialise Arduino board TriState,                         check i2c devices! FATAL
Failed to write to export
Intel Edison Failed to initialise Arduino board TriState,                         check i2c devices! FATAL

なんと失敗します! Arduino boardってなに? 使ってるのBreakout boardですけど??

パッケージのアップデート

調べると、どうもmraaのアップデートが必要らしいです。(参考:IntelEdisonOpkgFeeds – スイッチサイエンス

# dd of=/etc/opkg/myfeeds.conf <<EOF
src intel-iotdk http://iotdk.intel.com/repos/1.1/intelgalactic
src all http://iotdk.intel.com/repos/1.1/iotdk/all
src i586 http://iotdk.intel.com/repos/1.1/iotdk/i586
src x86 http://iotdk.intel.com/repos/1.1/iotdk/x86
EOF

# opkg update
# opkg upgrade

これでmraaがうまく動くようになります。

もいちどPython

(参考:mraa/blink-io8.py at master · intel-iot-devkit/mraa · GitHub

これでどうだ!

>>> import mraa
>>> x = mraa.Gpio(8)
>>> x.dir(mraa.DIR_OUT)
0
>>> x.write(1)

…なぜかLEDはちっとも光りません。

LEDが光らないのは

なんでかなーと思って調べてみたら、GPIOに直接つなげば光るだろうと軽い気持ちでGPIOに直にLEDを挿してたのが敗因でした。 edisonのGPIOは1.8Vとのこと。LEDを光らせるには3Vくらい必要なので、電圧足りない…

なんというオチ!

よい子は真似しないでね!

Arduino感覚でLEDを直接GPIOにつなぐのは危険です。危険ですっていうか動かないし。(あともっと言えばArduinoも直接つないでいいのかといえばあんまよくないと思う)

↓まじめにこういうやつ作りましょう。

Intel Edison と ruby で Lチカ - Qiita

まとめ

まあまあお手軽。落とし穴はいろいろありそうだけど。