今回,なぜ
Leonardo を買ってみたか,というと,
Adafruit 社の
Ultimate GPS unit
という
GPS unit をネットで見つけたから,だった。
(もともとはバイクのナビの音声をヘルメットで聞くための Bluetooth インターコムの充電池(リチウムポリマー電池)が不調で,
リチウムポリマー電池を探していた時に見つけた,のだが…)
この
GPS unit は,
GlobalTop 社の
GPS unit である
PA6H を使っており,
中心部には
MediaTek 社の
MT3339 チップセットが搭載されている。
これは昨年から使っている
Transystem 社の
TripMate 850 の心臓部よりも新しいチップセットみたいなので,
俄然興味が湧いて,使ってみたくなってしまった。
当初,
GPS のログを記録するだけの機能があればいいと思って,
OpenLog を使った簡易 GPS ロガー を考えて,実際に作ってみた。
そこでは,
SparkFun 社の
OpenLog というのを使って,
GPS unit が吐き出すテキスト形式のログを単純に
microSD カードに記録する,というものだった。
それなりに小さく作れたし,
850 mAh の容量をもつ
LiPo 電池(リチウムポリマー電池)を使えば
18 時間程度は持続するので
GPS ロガーとしてはいい感じにできたのだが,
GPS unit の設定等をいじることができなかった。
そこで,折角なので
microcontroller を使って制御したみたい,と考えた。
ネットでまず訪れたのが
Swich Science という国内の販売会社。
実は
Adafruit 社の
Ultimate GPS unit もここから通販で買ったのだが…。
そこではいろいろと売っているが,どうも
Arduino というやつが簡単に使えていいみたい,ということがわかってきた。
ただ,
Arduino は主に 8 bit なので,クロックも遅いし,プログラムを記憶する領域も 32 kB 程度しかないので,かなり非力な感じがした。
しかし,もっとパワーがあってクロックも速いとなると,32 bit の
microcontroller になるのだが,
32 bit の
microcontroller で小さくてプログラムが容易,という製品がわからなかったし
(チップメーカー製の
IDE もあるみたいだが,まだちゃんと調べてられていない),
まずは簡単なやつからがいいと考えて,とりあえず
Arduino を使ってみることにした。
Arduino という新しいキーワードがわかったので,今度は
Arduino で調べてみた。
まずは wikipedia で
Arduino について調べてみた(いきなり wikipedia を見に行くのは良くない,と情報を扱う友人が書いていたが…)。
それから,オリジナルの
Arduino プロジェクトのサイトも見に行った。
そこで上記の性能を知ったのだが,
Arduino と言ってもいろいろなバージョンがあるということがわかってきた。
メインの
microcontroller チップが違うとか,作動電圧が違うとか,プログラムの転送方法が違うとか,などで,幾つかの種類があった。
主なものは,まずは
Arduino Uno。オリジナルの
Arduino の正当な後継機種,っぽい感じのもの。
また,
microcontroller を 32 bit のチップに変更した
Arduino Due が今後のメインとなりそうな気がしている。
他には,USB 通信可能な
microcontroller を載せた
Arduino Leonardo や,
バッテリー駆動ができる
Arduino Pro,基板を大きくしてピンの数を増やした
Arduino MEGA などがある。
しかし,私が気になったのは,どちらかと言うと小さく作ってある
Arduino Nano や
Arduino Mini,
Arduino Fio だった。
折角なので小さい方がいいなぁ,と感じたのだった。
しかし,機能的には
USB native な
Arduino Leonardo が気になった。
Arduino Leonardo が Arduino Nano とかみたいに小さくなっているといいのに,と思っていたが,それがラインアップにはなかった
(現在は
Arduino Micro が発売されたが,調べていたのは発売の2ヶ月ほど前だった)。
とりあえずは
Arduino Leonardo か
Arduino Fio かなぁ?と思いながら,通販サイトで値段などを調べてみた。
国内のサイトだと,
Swich Science 以外にも,
共立エレショップや
ストロベリーLinux という通販サイトが見つかった。
海外だと,
SparkFunや,
Adafruit という所も見つかった(もっとあったけど省略)。
特に,
SparkFun や
Adafruit はオリジナルのボード等を作っていて,
売っているものを見てると結構楽しくなってしまった。
国内のサイトでも
ストロベリーLinux は結構オリジナルの製品を作っているみたいだった。
その
Strawberry Linux 社の製品を見ていると,
ダ・ヴィンチ32U with Arduino Bootloader が目に止まった。
チップは
ATMEL 社の
ATmega32u4 で,構成が
Arduino Leonardo っぽいのに,大きさは
Arduino Nano 程度に小さそう。
それになんと言っても値段が安い。通販で 1,260 円だった(配送料は別途必要だが…)。
Arduino Leonardo でも 2,500 円程度するので,ほぼ半額という安さ。
おまけにとっても小さくて場所を取らなさそう。
また,最新バージョンだと,
Arduino の
IDE でプログラムしたものを
Arduino Leonardo のように書き込める。
1個気になった
Arduino との違いは,5 V 駆動なのだが,3.3 V の出力がない,という点。
まぁ,それはおいおい考えればいい,として,早速一つ注文してみた。
買ってみた第一印象は,小さい,ということだった。
下記の一枚目の写真の右上のものが
Da Vinci 32u なのだが,すぐ下にある SparkFun 社の
microSD カードシールドと比べるととても小さい。
実は,この SparkFun 社の
microSD カードシールドは
Arduino Uno とほぼ同じ大きさの基板となっている。
従って,
Arduino Uno よりもずっと小さいことがわかる。
届いた時にはピンはハンダ付けされていないので,そのハンダ付けの手間は必要。
でも,やっぱり安くて小さくてなかなか良い感じの製品だと思う。
Da Vinci 32u で
Arduino の
IDE を使うには,ボードの定義ファイルを
Arduino IDE の適当な場所に置かないといけない。
windows の場合には,デバイスドライバーの INF ファイルがさらに必要。
その辺りは
ダ・ヴィンチ32U with Arduino Bootloader のページにある。
使う際の注意点は,
・board name には Da Vinci 32U を指定(現れなければ,boards.txt の置き換えが必要) |
・書き込み装置は,この場合は無関係(初期設定のままでよい) |
・USB でホストコンピューターのシリアルモニターに表示させたい時は,「Serial」に書き出す。 |
・Tx, Rx (Pin 7, Pin 6) を使ったシリアル通信は,「Serial1」を使う。 |
・私の環境では COM7 のデバイスとして認識されたのだが,
Arduino IDE のツールのシリアルポートから COM7 が消えたら Da Vinci 32u をリセットすると現れる時があった。 |
・Mac OS-X の場合,/dev/tty.usb.... というポートだった。 |
・スケッチの書込みに失敗したら,Da Vinci 32u のリセットボタンを押してすぐにスケッチを書き込んでみるとよい。
スケッチの書込み時に Da Vinci 32u の赤い LED が明滅したら書き込めてるはず。
スケッチの書込み時に,USB 接続を一度切り離して繋ぎ直すので,ピロン,ポロン,ピロン,みたいに音がする。 |
・最大容量 28,672 バイトだが,22,000 バイト程度を越えるか,
あるいは,ずっと処理を続けるスケッチが書き込まれている状況だと,
新たなスケッチの書き込みに失敗することがあった。
→ そんな時は,IDE で書き込みを選んだ後,進捗バーが 80% ぐらいになった時に
Da Vinci 32u のリセットスイッチを押すと書き込めた。 |
|
などがある。
今後さらに気づいたら追加しておこう。
Da Vinci 32u と
Arduino Leonardo とのピン配置の比較表を載せておこう。
・
Da Vinci 32u と Arduino Leonardo のピン配置
以下の写真は,いろいろなテストをした時の写真。それぞれについては別に書こうと思っている。