2013/04/06

ATmega32U4ボード



ずっと前に買っていた、スイッチサイエンスさんのボードをいじってみました。

        スイッチサイエンス:ATmega32U4搭載マイコンボード

このボードは、ArduinoUnoで使っているATmega328Pではなく、ATmega32U4を使用しており、USBと直結できます。Leonardoとほぼ同じですね。

Leonardoでは、キーボードやマウスのふりを出来る機能があるので、例えばオリジナルのキーボードやマウスを作ってみたり、一連のキー入力を一発で入力するガジェットなどがサクッと作れます。

ただ、こちらのボードは購入した時は、DFUブートローダーというライタが無くてもプログラムが書き込めるようになっており、ArduinoIDEからは使えない状態です。(詳しくはこちら

そこで、ArduinoUnoを使って、ボードにLeonardoのファームを書き込みたいと思います。

1.ArduinoUnoをPCにつなぐ
2.IDEからファイル>スケッチの例>ArduinoISPを選択
3.ArduinoISPを書き込み

4.ArdunoUnoとATmega32U4搭載マイコンボードを接続する。

      Uno  -  32U4
      --------------
      5V  - VCC
      GND - GND
      10  -  RST
      11  -  B2
      12  -  B3
      13  -  B1

5.ツール>マイコンボード から Arduino Leonard を選択
6.ツール>書き込み装置 から Arduino as ISP を選択

7.ツール>ブートローダーを書き込み を選択
  UnoのLEDがチカチカして、書き込みが実行されます。
  『ブートローダーの書き込みが完了しました』のメッセージが出れば成功です。

8.接続している線を外す

9.ATmega32U4搭載マイコンボードとPCをUSBケーブルを繋げは、
  無事ArduinoLeonardが検出されると思いますが、ドライバをインストールしないと使えません。

  ドライバはarduino-1.0.4\driversの中にあります。

さっそく、マウスポインタをぐるぐるさせるプログラムを書き込んでみましょう。
-----------------------------------------------------------

int phase = 0;
int full = 100;
int radius = 100;
int delay_msec = 2;

int x = radius;
int y = 0;

void setup() {
}

void loop() {
  ++phase;
  phase %= full;

  double th = 3.141592 * 2 * phase / full;
  int xx = radius * cos(th);
  int yy = radius * sin(th);
  Mouse.move(xx - x, yy - y, 0);
  x = xx;
  y = yy;
  delay(delay_msec);
}



-----------------------------------------------------------

上記をIDEから書き込むと…マウスポインタがぐるぐる回って PCが使えねぇ!!(笑)

というわけで、とにかく小さくて使いやすいです。キーボードやマウスのふりが出来るのも使い道をあれこれ考えてしまいますね。

3 件のコメント:

  1. ちょっと手こずりましたが、無事Arduino化できました。

    返信削除
  2. お疲れ様でした!小さいボードはそれだけで楽しいですよね!

    返信削除
  3. このコメントは投稿者によって削除されました。

    返信削除