2013年12月1日日曜日

UDOOのArduino DueでLED点灯

i.MX6とArduino Dueが一体になったUDOOが家にやってきたわけですが、2つのパートがどのように連携できるか探るために、まずはAuruino DueでLチカから試してみたいと思います。一応、初めて使うことになるので、必要なツールのインストールとかも含めてメモっておきます。

UDOO上のArduino IDEを使ってみる

まずは点灯するLEDを接続しておきます。適当なLEDを持ってきて、アノード(長い方のリード)をGPIO13ピンに、カソード(短い方のリード)を隣のGNDに接続します。公式サイトのチュートリアルだと電流制限抵抗なしで繋いでますが、私は心配なので一応470Ωをはさんでおきました。

公式で配布しているLinaro Ubuntu 12.04 LTSのSDカードイメージを使っている場合、プリインストールされたArdiono IDEが利用可能です。起動するとデスクトップにアイコンがあるので、ダブルクリックして起動します。
gnome-screenshotをインストールするとスクリーンキャプチャできます
で、LED点灯のための下記コードを記述します。
VerifyしてUpload。とりあえずLEDの点灯を確認できるわけですが。

何でしょう、Arduino IDEでのコンパイル、めっちゃ重い!たったこれだけのコードなのに、1分くらいはかかってるように感じます。PCと比べると、組み込み向けのCortex-A9での使用感はこんなもんでしょうか。。さすがにこれだと作業性が悪いので、PCのArduino IDEから扱えるようにしたいと思います。

Arduino IDE 1.5 インストール & パッチ当て

まず、Arduino IDEは1.5以降のバージョンである必要があるそうです。ここから1.5.5 BETAをダウンロードします。インストーラを使うか、ZIP版を任意のフォルダに展開するかしてインストールしたら、次にパッチ当てをします。UDOOのArduino Dueパートを担うAtmel Sam3Xを書き換えるためにはERASE信号とRESET信号が必要なのですが、通常のArduinoボードと違ってUDOOにはこれが実装されていないらしく、Arduino IDEにパッチを当てることでこれに対応するそうです。環境に合わせて、ここにおいてあるパッチをダウンロードしてきて展開し、中身をArduino IDEのインストールディレクトリの所定の場所に上書きコピーします。Windowsであれば、<arduino-1.5.5のインストール場所>\hardware\tools\の下にbossac.exeを上書きコピー、同梱のcygwin1.dllも一緒にコピーします。

シリアルドライバのインストール

それから、UDOOのUSBコネクタ(CN6)にシリアル接続するためのPC側のドライバをインストールしておきます。ここからOSに合わせたZipファイルをダウンロードし、展開してインストーラを実行します。その上でPCとUDOOのCN6をマイクロUSBケーブルで接続すると、ドライバが自動インストールされ、COMポートとして認識されます。


コード記述、実行

PCにインストールしたArduino IDE 1.5.5で、コードを記述しVerify、Uploadします。このとき、USB接続したUARTのラインがi.MX6ではなくSAM3Xにつながるよう、J18のジャンパは外しておく必要があります。これでPCからもArduino Dueに書き込みできるはずですが、電源を切っても先ほどのプログラムがフラッシュに残っていて、再起動時にそのまま実行されるので、同じコードだと変化がわからないかも知れません。その場合はdigitalWrite()する値をLOWに変えるとか、コードを少し変えてみるといいです。私は、LED点滅するよう下記のコードで試しました。



参考情報

Getting started with Arduino-IDE on UDOO - udoo.org
Get the Arduino-IDE ready to program UDOO - udoo.org
UDOO programming the embedded Arduino microcontroller - elinux.org

0 件のコメント:

コメントを投稿