概要
Arduino Leonardoは、ATmega32u4(データシート)をベースにしたマイクロコントローラボードです。
20本のデジタル入出力端子(うち7本はPWM出力、12本はアナログ入力)、16MHzの水晶発振器、マイクロUSB接続端子、電源ジャック、ICSPヘッダー、リセットボタンを備えています。
USBケーブルでコンピュータに接続したり、AC-DCアダプタや電池で電源を供給するだけで、マイコンすべての動作をさせることができます。。
LeonardoはATmega32u4にもともとあるUSB通信機能を使用するため、PCとの接続に通信用の別の部品を使う必要がありません。
この機能では、接続されたコンピュータからLeonardoは仮想的な(CDC)シリアル/COMポートとなり、さらにマウスとキーボードとしても見えるようになります。
また、ボードの動作にも影響があります。これらについては、「はじめに」で詳しく説明しています。
関連ボード
- Arduino Leonardo with Headers
- Arduino Micro
技術スペック
MICROCONTROLLER | ATmega32u4 |
OPERATING VOLTAGE | 5V |
INPUT VOLTAGE (RECOMMENDED) | 7-12V |
INPUT VOLTAGE (LIMITS) | 6-20V |
DIGITAL I/O PINS | 20 |
PWM CHANNELS | 7 |
ANALOG INPUT CHANNELS | 12 |
DC CURRENT PER I/O PIN | 40 mA |
DC CURRENT FOR 3.3V PIN | 50 mA |
FLASH MEMORY | 32 KB (ATmega32u4) of which 4 KB used by bootloader |
SRAM | 2.5 KB (ATmega32u4) |
EEPROM | 1 KB (ATmega32u4) |
CLOCK SPEED | 16 MHz |
LENGH | 68.6 mm |
WIDTH | 53.3 mm |
WEIGHT | 20 g |
ドキュメント
OSH: 回路図
Arduino Leonardoはオープンソースのハードウェアです。以下をクリックし公式サイトよりファイルをダウンロードし自分のボードを作ることができます。
▶電子回路[EAGLE FILE ZIP]
▶電子回路[PDF]
▶ATmega32U4 DataSheet
Pinout Diagram
▶pinout diagramのダウンロードはこちらをクリック (PDF)
電源について
Arduino Leonardoの電源は、マイクロUSB接続または外部電源から取ることができます。
電源は自動的に選択されます。
外部電源(USB以外)には、AC-DCアダプター(ウォールワート)またはバッテリーを使用します。
アダプターは、2.1mmのセンターポジティブプラグをボードの電源ジャックに差し込んで接続し電池のリード線は、POWERコネクタのGndおよびVinピンヘッダに挿入できます。
電源端子
VIN | 外部電源を使用しているときのArduinoボードへの入力電圧です。 このピンから電圧を供給することができます。 電源ジャックから電圧を供給する場合はこのピンからに接続します。 |
5V | マイクロコントローラーやボード上の他のコンポーネントに電源を供給するための安定化電源です。 オンボードのレギュレータを介してVINから供給されるか、USBまたは他の5V安定化電源から供給されます。 |
3V3 | オンボードのレギュレーターによって生成される3.3V電源です。 最大消費電流は50mAです。 |
GND | グラウンド端子 |
IOREF | ボードのi/oピンが動作する電圧(すなわちボードのVCC)です。 Leonardoでは5Vです。 |
メモリ
ATmega32u4は、FLASHメモリに32KB(うち4KBはブートローダに使用)、SRAMに2.5KBと1KBのEEPROM(EEPROMライブラリで読み書き可能)を搭載しています。
入力と出力
Leonardoの20本のデジタルI/Oピンは、pinMode()、digitalWrite()、digitalRead()関数を使用しれ入力または出力として使用できます。
これらのピンはすべて5ボルトで動作します。
各ピンは、最大40mAまでとし、20〜50kΩの内部プルアップ抵抗(デフォルトでは切断されている)を備えています。
その他の特殊な機能を持つピン
Serial | (0)(1) TTLレベルでのシリアルデータの受信(RX)および送信(TX)に使用されます。 Leonardoでは、SerialClassはUSB(CDC)通信を参照しています。 Serial1を使います。 |
外部割込みピン | (3)INT0,(2)INT1,(0)INT2,(1)INT3,(7)INT4 LOW 、HIGH または LWO立下り、HIGH立ち上がりの変化で割り込みをトリガするように設定できます。 詳細はattachInterrupt()関数をご参照ください。 |
PWM | (3)(5)(6)(9)(10)(11)(13) analogWrite()関数で8ビットのPWM出力として使用できます。 |
SPI | ICSPヘッダー上にあります。 UnoのようにデジタルI/Oピンには接続されておらず、ICSPコネクタでのみ利用可能です。SPIライブラリを用いたSPI通信に使用することができます。 |
LED | (13)デジタル端子13で駆動するLEDを内蔵しています。ピンがHIGH値のときにはLEDが点灯し、ピンがLOWのときには消灯します。 |
TWI | (2)SDA,(3)SCL Wireライブラリを使ったTWI通信に使用することができます。 |
Analog | A0~A5,A6〜A11(デジタルピン4、6、8、9、10、12上) Leonardoには、A0〜A11と書かれた12個のアナログ入力があり、これらはすべてデジタルI/Oとしても使用できます。ピンA0~A5はUnoと同じ位置にあり、入力A6~A11はそれぞれデジタルI/Oピン4、6、8、9、10、12にあります。 10ビットの分解能(0~1023)を0~5Vまでで測定します。 AREFピンとanalogReference()関数を使用して、範囲の上限を変更することができます。 |
AREF | ナログ入力の基準電圧です。analogReference()で使用します。 |
RESET | LOWにすると、マイクロコントローラーがリセットされます。通常、ボード上のリセットボタンをブロックするシールドにリセットボタンを追加するために使用します。 |
通信機能
Leonardoには、コンピュータや他のArduino、その他のマイクロコントローラと通信するためのさまざまな機能が搭載されています。
ATmega32U4はUART TTL (5V) シリアル通信を提供し、デジタルピン0 (RX) および1 (TX) で利用可能です。
32U4は、USB経由でのシリアル(CDC)通信も可能で、コンピュータ上のソフトウェアに仮想COMポートとして表示されます。このチップは、標準的なUSB COMドライバーを使用して、フルスピードのUSB 2.0デバイスとしても動作します。Windowsでは、.infファイルが必要です。
Arduinoソフトウェアにはシリアルモニターが含まれており、簡単なテキストデータをArduinoボードとの間で送受信することができます。コンピュータとのUSB接続でデータが送信されているときは、ボードのRXとTXのLEDが点滅します(ただし、ピン0と1のシリアル通信では点滅しません)。
SoftwareSerialライブラリを使えば、Leonardoのどのデジタルピンでもシリアル通信が可能です。
ATmega32U4は、I2C(TWI)やSPI通信もサポートしています。
Arduinoソフトウェアには、I2Cバスの使用を簡略化するWireライブラリが含まれています。
詳細はマニュアルを参照してください。
SPI通信には、SPIライブラリを使用します。
Leonardoは、一般的なキーボードとマウスとして表示され、キーボードクラスとマウスクラスを使用してこれらの入力デバイスを制御するようにプログラムすることができます。
プログラミング
Arduino Leonardoは、(Arduino Software (IDE))でプログラミングすることができます。
IDEで開発を行う場合、メニューの「ツール」→「ボード」から「Arduino Leonardo」を選択します(ボードに搭載されているマイクロコントローラーに合わせてください)。
Arduino Leonardoに搭載されているATmega32U4には、ブートローダーがあらかじめ組み込まれており、外部のハードウェアプログラマーを使用せずにあなたが作った新しいソースコードをUSBを通して簡単にアップロードすることができます。
プログラムの書き込みは、オリジナルのAVR109プロトコルを使用して通信します。
もちろん、ブートローダーを使用せず、Arduino ISPなどを使ってICSP(In-Circuit Serial Programming)ヘッダーからマイコンのネイティブコードでプログラミングすることもできます。
ソフトウェアによる自動リセットとブートローダの起動
Leonardoは、アップロード前に物理的にリセットボタンを押すのではなく、接続されたコンピューター上で動作するソフトウェアによってリセットできるように設計されています。
リセットは、Leonardoの仮想(CDC)シリアル/COMポートが1200ボーで開かれ、その後閉じられたときに発生します。
このとき、プロセッサがリセットされ、コンピュータとのUSB接続が解除されます(つまり、仮想シリアル/COMポートが消滅します)。
プロセッサがリセットされた後、ブートローダが開始され、約8秒間アクティブになります。
ブートローダは、Leonardoのリセットボタンを押しても起動できます。
なお、ボードの最初の電源投入時には、ブートローダを起動するのではなく、ユーザースケッチがあれば、それに直接ジャンプします。
Leonardoがリセットを処理するため、アップロードする前にArduinoソフトウェアがリセットを開始するのを試みるのが最善です。ソフトウェアがボードをリセットできない場合は、ボードのリセットボタンを押してブートローダを起動することができます。
USB過電流保護
Leonardoには、コンピュータのUSBポートを短絡や過電流から保護するリセット可能なポリヒューズが搭載されています。
ほとんどのコンピュータは独自の内部保護機能を備えていますが、ヒューズは追加の保護層を提供します。
USBポートに500mA以上の電流が流れた場合、ショートや過負荷が解消されるまで、ヒューズが自動的に接続を遮断します。
物理的特性
Leonardo PCBの最大の長さと幅はそれぞれ2.7インチと2.1インチで、USBコネクタと電源ジャックは前者の寸法よりも大きくなっています。
4つのネジ穴があるので、基板を表面やケースに取り付けることができます。デジタルピン7と8の間隔は160ミル(0.16インチ)で、他のピンの間隔100ミルの偶数倍ではないことに注意してください。