ホーム > Arduino > Arafruit 32U4 breakout board+でArduino Leonardoのファームウエアを試す

Arafruit 32U4 breakout board+でArduino Leonardoのファームウエアを試す

2011年09月22日 morecat_lab

1.はじめに

先週NYCで開催されたOpen Hardware Summit新しいArduinoが発表されました。

その中でローエンドと位置づけられるArduino Leonardは、USBを内蔵したマイクロプロセッサであるATMega32U4を採用しています。まだ回路は公開させていませんが、USB周りは利用するピンが決まっていますので誰が設計しても変わりません。あとはピンの配置だけで、素直な作りが想定されます。

Arduino Leonardoの発売はまだ10月ですが、すでに公開されているArduino 1.0 RC1には、そのソフトウエアが含まれています。そこで、一足先にAdafruitの開発しているArafruit 32U4 breakout board+を使って、Leonardoの使い勝手を試してみました。

32U4 breakout board

2.準備

  • ソフトウエア:Arduino 1.0 RC1 リンクはこちら
  • ハードウエア:Arafruit 32U4 breakout board+ (実は32U4を使ったボードならほとんどオーケーかも)
  • ツール:ISPプログラマ (USBTinyISPを利用しましたが、ATMEL純正のAVRISPなども利用可能)
  • その他、LEDなど必要なハードウエア

3. ブートローダの書き込み

Arduino 1.0 RC1からISP経由でブートローダを書き込みます。書き込みは以下の手順になります。

  • 32U4にISPコネクタをハンダづけ。ライタに接続
  • Tools -> Board -> Arduino Leonardoを選択
  • Tools -> Programmer -> USBTinyISPを選択
  • Tools ->BurnBootloaderを選択
Burn Bootloader 'Arduino Leonard' to 32U4 breakout board

Burn Bootloader 'Arduino Leonard' to 32U4 breakout board

4. Blinkを試す

ファームウエアを書き込んだ32U4ボードをUSBにつなぐと、PCからはArduino Leonardoと認識されます。

あとは普通にIDEからスケッチの書き込みが出来ます。

ExamplesにあるBlinkを書き込んでみました。

Connect a LED to Pin13 (PC7) for blink example

Connect a LED to Pin13 (PC7) for blink example

実際のブリンクの確認にはD13(PC7)にLED+電流制限抵抗を接続することが必要です。また、上の写真は確認のためTxD, RxDにもLEDを接続しています。

5.Human Interface Device (マウス)を試す

Arduino Leonardoの最大の特徴は、マウスやキーボードなどのUSBデバイスを作成できることにあります。

そこで、ExamplesにあるJoystickMouseControlを試してみました。

必要なハードウエアの設定は次の通りです。

  • A1(PF6), A2(PF5)にボリュームを接続
  • D6(PD7)にタクトスイッチを接続
  • D5(PC6)に電流制限抵抗とLEDを接続
wires to run JoystickMouseControl example

wires to run JoystickMouseControl example

6.ピン配置について

ソースコード(hardware/arduino/variants/leonardo/pins_arduino.h)によると、ピン配置は次のようになっています。


// ATMEL ATMEGA32U4 / ARDUINO LEONARDO
//
// D0                 PD2                    RXD1/INT2
// D1                 PD3                    TXD1/INT3
// D2                 PD1        SDA         SDA/INT1
// D3#                PD0        PWM8/SCL    OC0B/SCL/INT0
// D4        A6       PD4        ADC8
// D5#                PC6        ???         OC3A/#OC4A
// D6#       A7       PD7       FastPWM      #OC4D/ADC10
// D7                 PE6                    INT6/AIN0
//
// D8                 PB4                    ADC11/PCINT4
// D9#       A8       PB5       PWM16        OC1A/#OC4B/ADC13/PCINT5
// D10#      A9       PB6       PWM16        OC1B/0c4B/ADC12/PCINT6
// D11#               PB7       PWM8/16      0C0A/OC1C/#RTS/PCINT7
// D12       A10      PD6                    T1/#OC4D/ADC9
// D13#               PC7       PWM10        CLK0/OC4A
//
//           A0        PF7                    ADC7
//           A1        PF6                    ADC6
//           A2        PF5                    ADC5
//           A3        PF4                    ADC4
//           A4        PF1                    ADC1
//           A5        PF0                    ADC0
//
// New pins D14..D17 to map SPI port to digitial pins
//
// D14                 PB0                    RXLED,SS/PCINT0
// D15                 PB1                    SCK,PCINT1
// D16                 PB2                    MOSI,PCINT2
// D17                 PB3                    MISO,PCINT3
//
// TXLED               PD5
// RXLED               PB0
// HWB                 PE2                    HWB

EOF

カテゴリー: Arduino タグ:
  1. Anonymous
    2011年10月06日 2011年10月06日 | #1

    Thanks for documenting your findings! I’d like to make my own tiny Leonardo variant and I was having a little trouble finding pin mappings considering the schematic wasn’t published yet. Take care!

  2. 2011年10月21日 2011年10月21日 | #2

    How can I use Arduino Duemilanove or USBasp programmer instead of USBtinyISP to burn the boot-loader of Arduino Leonardo on to ATmega32U4 chip? Thanks

    “アルドゥイーノDuemilanove”または代わりにUSBtinyISPのUSBaspのプログラマを使用するには?ATmega32U4チップへのArduinoのレオナルドのブートローダーを書き込むためにそれを使用するには?
    感謝

  3. 2011年10月21日 2011年10月21日 | #3

    Find a configuration file located at “hardware/arduino/programmers.txt” in arduino IDE.
    Add an entry for Usbasp described below;
    —-
    usbasp.name=Usbasp
    usbasp.protocol=usbasp
    —-
    Now, you can choose Usbasp in Arduino IDE.

    -Yoshi

  4. 2011年10月23日 2011年10月23日 | #4

    Thanks for that awesome posting. Useful, and it saved MUCH time! :-)

  5. Bhags
    2011年10月24日 2011年10月24日 | #5

    Thanks for USBasp tips.

    I have made my own ATmega32U4 board and downloaded Arduino L30N4RD0 bootable to it.
    When I connect the board to PC, it request driver/software for Arduino L30N4RD0 bootable!
    Where can I find the it?

    私は自分のATmega32U4ボードを行っています。とそれへのブート可能なArduinoのL30N4RD0をダウンロード。
    私はボードをPCに接続すると、それはドライバ/ブート可能なArduinoのL30N4RD0のソフトウェアを要求する!
    それはどこで見つけることができますか?

    [IMG]http://i53.tinypic.com/10nam3b.jpg[/IMG]
    http://tinypic.com/r/10nam3b/7

  6. 2011年10月24日 2011年10月24日 | #6

    Although I didn’t try myself, the driver for Windows seems to be in Arduino 1.0 RC1 package. Find the file named “Arduino Leonardo.inf” in drivers folder.

    -Yoshi

  7. Bhags
    2011年10月24日 2011年10月24日 | #7

    Thanks a lot!
    Yoshi あなたは天才です!

    The custom made ATmega32U4 board is detected as Arduino L30N4RD0!
    But when I try to upload the program: It uploads only about 90% and doesn’t reach 100%.
    Why? (HWB pin set to ground via 100 Ohm resistor)
    Also if I connect USBasp I can program the board through it but I want to program directly through Arduino L30N4RD0.

  8. Bhags
    2011年10月24日 2011年10月24日 | #8

    ここでの写真です

    http://i54.tinypic.com/257d89d.jpg

  9. Bhags
    2011年10月24日 2011年10月24日 | #9

    After it stuck there for a minute, Ihave pressed RESET and ここでの写真です
    http://i56.tinypic.com/2v809ab.jpg
    got this error:
    avrdude: ser_send(): write error: sorry no info avail ??

  10. Bhags
    2011年10月25日 2011年10月25日 | #10

    こんにちはヨッシー
    私は問題を修正しました。それは、HWBに関係しています。それは滑らかなwithArduino L30N4RD0のソフトウェアを動作します!

    ご協力いただきありがとうございます。

  11. 2011年10月26日 2011年10月26日 | #11

    Bhags-san
    I’m grad to hear you had succeeded. Enjoy your new toy. -Yoshi

  12. 2011年11月15日 2011年11月15日 | #12

    Thanks :-)
    Do you know if Arduino Leonardo supports USB serial?
    For example Teensy supports upto 12Mbits/sec
    http://www.pjrc.com/teensy/td_serial.html

    I’ve tried with Leonardo and I’m getting only 690Kbits/sec! Too slow.. :-( (

  13. Sandro
    2012年02月25日 2012年02月25日 | #13

    @Bhags

    Bhags :
    こんにちはヨッシー
    私は問題を修正しました。それは、HWBに関係しています。それは滑らかなwithArduino L30N4RD0のソフトウェアを動作します!
    ご協力いただきありがとうございます。

    I have the same problem, what is the solution?. I don’ t understand about HWB.

コメントは受け付けていません。