嘘。できなかったけど。
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番を使うとします。
これは、
- 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
まとめ
まあまあお手軽。落とし穴はいろいろありそうだけど。