こんにちは。
この度、AVRマイコン(ATMEGA328P,ATtiny2313,ATtiny13A)を買ったり買ってもらったりして、どのように使っていこうか考えていました。
【ことのいきさつ】
Arduinoを使って書き込む方法があると知る
KosakaLab
探すとここに行き当たる。丁寧な解説つきでとてもありがたい。
でもどこの説明もArduino UNOでやってる。
僕のArduino UNOは現在故障中で使えない
スイッチサイエンスの永久保障
Arduino UNO R3の永久保障の内容が最強。みんなここで買うべきっしょ。
(はやく直してもらえばいいのに)
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 (必要ないかも)
まず、前述のArduinoISPLeonardoをLeonardoに書き込む
設定は マイコンボード:Arduino Leonardo
ポート:Leonardoを認識してるポート
書き込み装置:AVRISP mkII
次に、前述のLEDチカチカスケッチをマイコンに書き込む
設定は マイコンボード:ATtiny2313 (internal 8MHz clock) <-- 自分の使うマイコン
ポート:Leonardoを認識してるポート
書き込み装置:Arduino as ISP (Leonardo)
LEDチカチカスケッチ
void setup( ) {ピンで2番を指定しているので、RXD,TXD,の隣くらいのピンにLEDを刺しておくと光る
pinMode(2, OUTPUT);
}
void loop( ) {
digitalWrite(2, HIGH);
delay(125);
digitalWrite(2, LOW);
delay(125);
}
という感じで僕はできました。
Arduinoの関数とかがどの程度使えるのか分からないので、今後検証していきたいと思います。
以上、Arduino IDEとLeonardoでマイコンに書き込みしてみようのコーナーでした。