FrontPage

2013/04/27からのアクセス回数 9010

小さいながら便利屋ATmega32U4

飯田さんのブログ を見て、ATmega32U4なら小さくてブレッドボードで使うのに最適だと思ったので、 早速スイッチサイエンスからATmega32U4を購入しました。

このボードは、小さいながらリセットボタンやチェック用のLEDも付いているので とても重宝しています。

ATmega32U4.png

Arduino化

手元のArduino Duemilanoveを使って 飯田さんのブログ に従ってArduino化を試みました。

Arduino DuemilanoveをArduinoISPにする

以下手順でArduino DuemilanoveをArduinoISPにします。

  1. Arduino Duemilanoveを接続して、Arduino IDEを起動
  2. IDEからファイル>スケッチの例>ArduinoISPを選択
  3. ArduinoISPを書き込み

Arduino DuemilanoveとATmega32U4の接続

飯田さんのArduinoUnoだと問題なかったのかも知れませんが、書き込みで以下のエラーとなりました。

「avrdude: stk500_getsync(): not in sync: resp=0x15」

そこで、Googleで検索したところ、同じ事例があり、参考にさせて頂きました。

DiaryException

解決策として、ArdunoのAuto Reset機能を無効にするために、RESETピンと5Vピンの間に110Ωから124Ωの抵抗を挟めば良いことが分かりました。

手元の100Ωと64Ω2個で何とか実測124Ωとなり、これをブレッドボード配置しました。

接続は以下の通りです。

Arduino32U4
5VVCC
GNDGND
D10RST
D11B2
D12B3
D13B1
RESET-124Ω-5V

setting.png

Arudinoの書き込み

Arudinoの書き込みは、以下の手順で行いました。

  1. ツール>マイコンボード から Arduino Leonard を選択
  2. ツール>書き込み装置 から Arduino as ISP を選択
  3. ツール>ブートローダーを書き込み を選択

無事書き込みが終われば、Arudino化は完了です。

動作確認

ATmega32U4は、USB機器になるので、飯田さんの例にならってくるくる回るマウスを 書き込みます。

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);
}

Arduinoとのピンの対応

Arduinoのサンプルを動かすときにピンの接続対応が分かるように以下の対応表を作りました。

pinassign.png

コメント

選択肢 投票
おもしろかった 4  
そうでもない 0  
わかりずらい 0  

皆様のご意見、ご希望をお待ちしております。


(Input image string)

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
SmartDoc