Arduino Yun cheat sheet

Revision as of 14:36, 10 November 2015 by Nxhack (talk | contribs) (→‎はじめに)

Arduino Yún / Arduino Yun

はじめに

arduino Uno である程度なれたし、プロトタイプつくったので、そろそろ TCP/IP 喋る段階になって、Arduino Yun に挑戦してみた。

インターネットに接続して AWS 上にある time series database に計測データをストア。(いわゆる IoT ですかね 火暴)
AWS IoT なるものも触ってみたかったし。

Uno で足慣らししたし、結構簡単に Yun に移行できるかと思っていたら、なかなか結構大変(現在も学習中)なのでいろいろメモメモ。

SRL Arduino | Labs | Arduino Yún
LCC Arduino - ArduinoYun
ソフトは LLC を見た方がよさそう。(しかし分裂なんとかしてよ...)

私がスイッチサイエンス社から購入した Yun は製造は SRL 、Atheros AR9331 に組み込まれていたのが OpenWrt-Yun なので LCC 。

ということは、ソフトウェアは LCC を見た方が良いという思し召しか。

実際 github 上の動きをみても LCC のほうが好ましい。

SRL https://github.com/arduino-org
LCC https://github.com/arduino

導入

電源

Uno では(ACアダプターからの)DC入力ジャック(5.5mm/2.1mm Center Plus | 7~12V) があったが Yun には無い。

micro-USB から 5V 供給するのが推奨。Ethernet RJ45ジャックが PoE 対応なのでこれでも可。VIN pin に定電圧レギュレータの5Vをいれるのも可。

USB Serial

Yun は Arduino Leonardo(ATmega32u4)ベースに作られている。Uno のように USB 通信用のペリフェラル(ATmega16U2がUSBを受け持つ)をもっていない。そこで大きな使い勝手の差がある。

紐をほどくために Arduino Leonardo ガイドの日本語訳

Guide/ArduinoLeonardo – スイッチサイエンス

I/O

D0, D1 は AR9331 との Serial1 用に接続されている。Yun で外部割り込みで使えるのは D2/INT1 と D3/INI0 とのこと。D7/INT4 は AR9331 の ハンドシェイク用(予定)なので使わない。

I2C(TWI)の SDA/SCL が Uno は A4/A5。Yun は D2/D3 。

はい!終わった!INT1/INT0 の外部割り込みが使えない...
I2C使わないように、回路変えるか...
外部割り込みを他のpinで可能にする方法があるらしい。
Leonardo - using I2C and external interrupts
Pin Change Interrupt library for the Arduino
これをテストしてみる。
Uno ではうごいた。D2/D3 を避けるようにした。Yun はこれから検証する。

PINOUT DIAGRAM

これはありがたい。

THE UNOFFICIAL ARDUINO PINOUT DIAGRAM 本家

WiFi 設定

工場出荷状態なら、WiFi AP モードで Yun が起動するので、それに接続してごにょごにょ。SSID が WiFiの MACアドレスになっているので、もしフィルタリングをしてる場合はこれを使う。

ご参考 : 高木浩光@自宅の日記 - 無線LANのMACアドレス制限の無意味さがあまり理解されていない
Arduino YÚNのネットワーク機能を試してみる | ニフティIoTデザインセンターブログ
Arduino Yúnを使ってみよう (1) Yúnを設定する | スイッチサイエンス マガジン

注意:Windows の場合は Apple から Bonjour のドライバーをとってきてインストールしておく。

Yun 特有な開発

avrdude

USBシリアル経由でプログラムをアップロードするのにいろいろはまった。まだ調査中。

ケーブルに注意。micro-USBは充電用というのが紛れ込んでる可能性が高い。ハマる。

arduino-Makefile

avrdude のところでおかしくなる。調査する。

例の 1200bps でリセットするところでおかしい...

Console

ssh root@arduino.local 'telnet localhost 6571'
たぶん Uno で Serial ってかいてるところをすべて Console ってかいてやれば最初のハードルは越えられそう...

OpenWRT

Arduino - YunSysupgrade

link

Golang on OpenWrt · Akagi201