Arduino Leonardo に関する記事です。
Arduino LEONARDO は Arduino UNO の廉価版…というだけじゃないんだよ。
MCU は Atmel ATmega32U4 で、書き込めるスケッチの最大サイズは 28,672 バイト (約 28KB) です。
ボードサイズ | 普通 | 小さい | ||
書き込み装置 | あり | なし | あり | なし |
ATMega328P | Arduino Uno | Arduino Pro | Arduino Nano | Arduino Pro Mini Arduino Mini (05) |
ATMega32U4 | Arduino Leonardo | Arduino Leonardo (ピンソケット無し) |
Arduino Micro Da Vinci 32U*1 |
Pro Micro*2 |
*1 Strawberry Linux 社の製品で正式な Arduino ではない。 *2 SparkFun 社の製品で正式な Arduino ではない。
See Also:
Amazon で買えます。
私が購入したのは SainSmart 社が発売している互換ボードです。こちらも Amazon で買えます。
私は LCD + キーパッドシールド付きのものを選びました。LCD + キーパッドシールドは UNO でも使えます。この互換機は四本足の Micro USB コネクタを採用しているので強度面でも安心です。なお、私が購入した LEONARDO に付属していた MicroUSB ケーブルには HTC のタグが付いていました…何故?
See Also:
USB の形状を除けば、USB 側 ICSP ピンヘッダがないだけで、外観はほぼ UNO と同じです。
UNO と異なり、SPI 用のピンは D13~D10 ではありません。
また、SS ピンは TX RED に使われています。ICSP 端子を使えばピン互換にできます (SS は除く)。
LEONARDO | UNO | MEGA 2560 | |
SCK | ICSP 3 | D13 / ICSP 3 | D52 / ICSP 3 |
MISO | ICSP 1 | D12 / ICSP 1 | D50 / ICSP 1 |
MOSI | ICSP 4 | D11 / ICSP 4 | D51 / ICSP 4 |
SS | (TX LED) | D10 | D53 |
UNO と異なり、I2C 用のピンは A4 / A5 ではありません。
R3 で拡張された SCL / SDA ピンを使えばピン互換にできます。
I2C | LEONARDO | UNO | MEGA 2560 |
SCL | D3 / SCL | A5 / SCL | D21 / SCL |
SDA | D2 / SDA | A4 / SDA | D20 / SDA |
Arduino LEONARDO には Timer0 / Timer1 / Timer3 / Timer4 の 4 つのタイマーがあります。
Timer0 | Timer1 | Timer3 | Timer4 |
D3 / D11 | D5 / D9 / D10 | D5 / D9 / D10 | D6 / D13 |
Timer を使用する関数やライブラリを使用すると思わぬ落とし穴に遭遇する事があります。
See Also:
UNO のセットアップを参考にしてください。Arduino LEONARDO の VID は 2341、PID は 8036 です。
ボードでは Arduino Leonardo を選択します。
UNO のチュートリアルを参考にしてください。LEONARDO のチュートリアルもあるにはありますが、内容が少し古いです。UNO のチュートリアルをやってみて、うまく動かない時に参考にするのがいいと思います。
See Also:
「LEONARDO は UNO の廉価版というだけじゃない」 と書きましたが、LEONARDO (or ATMega32U4 搭載 Arduino) は自身を HID キーボードにする事ができ、専用の KEYBOARD ライブラリも用意されています。プッシュスイッチの片方を GND に、もう片方をデジタルピンの #8 に挿して以下のスケッチを実行してみましょう。
|
テキストエディタを開いた状態で、プッシュボタンを押してみると…
Object Pascal なコードが自動的に入力されます。仕事で嫌な事があっても [F5] キーを連打するスケッチを書かないようにしてくださいね。
See Also:
キーボード同様、LEONARDO (or ATMega32U4 搭載 Arduino) は自身を HID マウスにする事ができ、専用の MOUSE ライブラリも用意されています。変なスケッチを作ってしまって暴走状態になったら、慌てず騒がず USB ケーブルを抜きましょう…また挿したら暴走しますが (w
暴走状態に陥っても回避できるように、緊急停止用のボタンを用意するなりして対策を講じておきましょう。恐らく、現在のファームウェアではリセットボタンをダブルクリックすれば新しいスケッチを書き込む時間はあるかと思います。
以下のスケッチは LCD + キーパッドシールドを使った HID マウスです。上下左右のキーでマウスカーソルが移動し、SELECT ボタンでクリックします。
|
See Also:
Arduino IDE 1.66 以降であれば、 Arduino Joystick Library を使って LEONARDO (or ATMega32U4 搭載 Arduino) を HID ジョイスティックにする事もできます。
Ver.2 のライブラリと Arduboy で (デジタル) ジョイスティックを作ってみました。スケッチは以下のようになります。
|
スケッチの転送が終わると、コントロールパネルの [デバイスとプリンター] に "Arduino Leonardo" という名前のジョイスティックが現れます。
アイコンを右クリックして [ゲームコントローラーの設定] を選択します。
[状態] が OK になっていれば、とりあえずは HID ジョイスティックとして認識されています。
[プロパティ] ボタンを押せばボタンをテストできます。
適当なスイッチを接続し、ピン番号を任意に変更すれば、LEONARDO や Micro (Da Vinci 32U) でもジョイスティック化できます。最大で 32 ボタンのジョイスティックが作れるみたいですね。アナログジョイスティックのレバーを接続すれば、アナログジョイスティックも簡単に作れそうです。
See Also:
LEONARDO で新しくスケッチを書き込めなくなってしまう事がありますが、その解消法です。
現行の LEONARDO (を含む ATMega32U4 搭載 Arduino) のブートローダーは Caterina Bootloader と呼ばれているもので、リセットボタンを押すと 8 秒間だけブートローダーモードになり、この一瞬だけシリアルポートが出現します。
このタイミングで空のスケッチを書き込めば元に戻る事があります。なお、カテリーナ (Caterina) とはレオナルド (LEONARDO)・ダ・ヴィンチのお母さんの名前です (w
同じ ATMega32U4 搭載製品であっても Pro Micro には SparkFun オリジナルのブートローダーが書き込まれています。 Caterina の短所は、理屈上、ハードウェアリセットされてから 8 秒間はユーザープログラムが実行されないという事でした。
Pro Micro でブートローダーモードにするにはリセットボタンをダブルクリックします。
単にリセットボタンが押された場合にはハードウェアリセットされ、ユーザープログラムが即実行されます。
See Also:
間違ったボードを選択した状態で LEONARDO にスケッチを書き込んだり、容量を超えるユーザープログラムを転送したりすると、書き込んだユーザープログラムがブートローダー領域を破壊してしまう事があります。こうなってしまうとブートローダーモードが機能しません。 別の Arduino を使うか、USBasp 等を使ってブートローダーを書き込む必要があります。
ブートローダーを書き換えたら、ブートローダーモードにして空のスケッチを書き込んでみてください。
See Also:
ここにある情報が役に立って、「調べる手間が省けたからオマイに飯でもおごってやるよ」 というハートウォーミングな方がいらっしゃいましたら、下のボタンからどうぞ。