2014年10月28日火曜日

[エレコン]Arduino IDEとLeonardoでAVRマイコンに書き込み


こんにちは。
この度、AVRマイコン(ATMEGA328P,ATtiny2313,ATtiny13A)を買ったり買ってもらったりして、どのように使っていこうか考えていました。

【ことのいきさつ】
Arduinoを使って書き込む方法があると知る
KosakaLab
  探すとここに行き当たる。丁寧な解説つきでとてもありがたい。
  でもどこの説明もArduino UNOでやってる。

僕のArduino UNOは現在故障中で使えない
 スイッチサイエンスの永久保障
  Arduino UNO R3の永久保障の内容が最強。みんなここで買うべきっしょ。
(はやく直してもらえばいいのに)

Arduino Leonardoは元気に使える
  Arduino LeonardoはUNOとほぼ同等なボード。
使ってる人はUNOより少ない。ちょっと安い。

Arduino Leonardoでやってるページを見つける
 G2SS Diary: LeonardoでAttiny85にスケッチを書き込んでみた http://g2ss.blogspot.jp/2013/01/leonardoattiny85.html
  できないことはないけど、一手間必要なんだなと知る。

Arduino Leonardoでやる詳細のページも見つける
 Arduino Leonardo as ISP
  英語だけど絵がいっぱいで一番くわしくわかりやすい

できた!

というわけで僕もG2SS Diaryさん同様、やり方の手順を公開します。

0. 準備 用意するもの

・Arduino Leonardo USBケーブル
・AVRマイコン(上記3つで動作を確認)
・ブレッドボードとジャンパ線
・確認用LEDと抵抗

・パソコン(OSはMacOSX、Windows7で確認)
・Arduino IDE1.0.6 (1.5.8 BETAではうまくいかない)

1. Leonardoを書き込み装置にしよう

[ファイル]->[スケッチの例]->[Arduino ISP] を開く。
  内容を書き換える。(SS->10 , 9->13)
  [Arduino ISP Leonardo]とか別名で保存しておくといい。

  
  hardware.zipをダウンロード&解凍&[Arduino]ディレクトリの中に置いておく。
   (http://make.kosakalab.com/arduino/use/source/hardware.zip)
  Arduino IDEを再起動して[ツール]->[マイコンボード]でなにやらたくさん出てきたらオッケー。


  [hardware]ディレクトリの中に[leofix]というディレクトリをつくります。
  [leofix]ディレクトリの中に[programmers.txt]というテキストファイルをつくります。
  テキストファイルには以下の4行を書いておく。
arduinoispleo.name=Arduino as ISP (Leonardo)
arduinoispleo.communication=serial
arduinoispleo.protocol=arduino
arduinoispleo.speed=19200

再起動すると[ツール]->[書き込み装置]に[Arduino as ISP (Leonardo)]がある。



2. マイコンと配線しよう

  Arduino Leonardo側 <ーーー> マイコン
        SCK      <-->    SCK
        MISO    <-->    MISO
        MOSI    <-->    MOSI
        10     <-->   RESET
        5V     <-->   VCC
        GND    <-->   GND
        0(RX1)   <-->   RX (必要ないかも)
        1(TX1)   <-->   TX (必要ないかも)
(参考画像)


3. Arduino IDEをつかって書き込もう

 まず、前述のArduinoISPLeonardoをLeonardoに書き込む
 設定は マイコンボード:Arduino Leonardo
     ポート:Leonardoを認識してるポート
     書き込み装置:AVRISP mkII
 
 次に、前述のLEDチカチカスケッチをマイコンに書き込む
 設定は マイコンボード:ATtiny2313 (internal 8MHz clock) <-- 自分の使うマイコン
     ポート:Leonardoを認識してるポート
     書き込み装置:Arduino as ISP (Leonardo)

 LEDチカチカスケッチ
 void setup( ) {
   pinMode(2, OUTPUT);
 }
 void loop( ) {
  digitalWrite(2, HIGH);
    delay(125);
    digitalWrite(2, LOW);
    delay(125);
  }
ピンで2番を指定しているので、RXD,TXD,の隣くらいのピンにLEDを刺しておくと光る


という感じで僕はできました。
Arduinoの関数とかがどの程度使えるのか分からないので、今後検証していきたいと思います。

以上、Arduino IDEとLeonardoでマイコンに書き込みしてみようのコーナーでした。












0 件のコメント:

コメントを投稿