(ARDUINO自作)ARDUINO ISPで、ATtiny85をプログラムする [arduino]
ArduinoをArduino ISPを使って簡単に自作出来るようになりました。
実は、この環境、ちょっとした追加でATtiny45やATtiny85に対応させることが出来ます。
(参考にしたのはこちらです「High-Low Tech – Programming an ATtiny w/ Arduino」)
■必要なもの
※今回は168Pにブートローダが書き込める環境に、追加するものだけを説明します。
(1)ATtiny45、ATtiny85に対応するための設定ファイル
参考URLの中段にある、「Download: attiny45_85.zip」で入手出来ます。
これだけです。
■環境を構築
(1)attiny45_85.zipを解凍します。
※解凍すると以下の二つのフォルダが出てきます。
(a):__MACOSX
(b):attiny45_85
実際に必要なものは、(b)の「attiny45_85」だけです。
※これにはArduino ISPで作成したプログラムを、ATtiny45やATtiny85に転送するための各種ファイルが含まれています。
(2)出てきた「attiny45_85」をArduinoのスケッチフォルダ(自分の作ったスケッチが保存されるフォルダ)の中にある「hardware」に移動します。(このフォルダは前回のArduino自作のためにすでに作ってあるはずです)
これで完了です!
(なお(a)はMACのOS用のファイルなので、Arduinoには関係ありません)
■配線
ArduinoとATtinyを、下の図のように配線してください。
※ただし、ここの配線図にも載っていないのですが、オートリセット機能を無効にするため、5Vの電源を110Ω~124Ωの抵抗に通したのをRESET端子に通してください。
これがないとまったく書き込めません。
とりあえずこんな感じになります。
■スケッチの作成
ピンの配置は以下の通りです。
使えるコマンドなどはさすがにピンが少ないので以下のものに限られてしまいます。
pinMode()
digitalWrite()
digitalRead()
analogRead()
analogWrite()
shiftOut()
pulseIn()
millis()
micros()
delay()
delayMicroseconds()
これらを使ってスケッチを作成しましょう。
■動作テスト
せっかくブレッドボードにLEDも配置しましたので、テストをしましょう。
スケッチのブリンクを13番ピンではなく、0番ピンに変更します。
------------------------------------------------------------------
void setup() {
pinMode(0, OUTPUT);
}
void loop() {
digitalWrite(0, HIGH); // set the LED on
delay(1000); // wait for a second
digitalWrite(0, LOW); // set the LED off
delay(1000); // wait for a second
}
------------------------------------------------------------------
■<注意>
(1)COMポートはArduino ISPのポート番号に設定してください。
(2)ボードの選択を「ATtiny45 (w/ Arduino as ISP)」や「ATtiny85 (w/ Arduino as ISP)」に使うチップに応じて変更します。これでないと、Arduino ISP経由でコンパイルしたスケッチを転送できません。
※転送時に以下のようなエラーメッセージが出ますが問題なく転送されています。気にしないでください。
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85
■完成
うまくいけば、ATtinyがきちんと動作するはずです。
■ATtiny85は「スイッチサイエンス」でも購入することが出来ます。
実は、この環境、ちょっとした追加でATtiny45やATtiny85に対応させることが出来ます。
(参考にしたのはこちらです「High-Low Tech – Programming an ATtiny w/ Arduino」)
■必要なもの
※今回は168Pにブートローダが書き込める環境に、追加するものだけを説明します。
(1)ATtiny45、ATtiny85に対応するための設定ファイル
参考URLの中段にある、「Download: attiny45_85.zip」で入手出来ます。
これだけです。
■環境を構築
(1)attiny45_85.zipを解凍します。
※解凍すると以下の二つのフォルダが出てきます。
(a):__MACOSX
(b):attiny45_85
実際に必要なものは、(b)の「attiny45_85」だけです。
※これにはArduino ISPで作成したプログラムを、ATtiny45やATtiny85に転送するための各種ファイルが含まれています。
(2)出てきた「attiny45_85」をArduinoのスケッチフォルダ(自分の作ったスケッチが保存されるフォルダ)の中にある「hardware」に移動します。(このフォルダは前回のArduino自作のためにすでに作ってあるはずです)
これで完了です!
(なお(a)はMACのOS用のファイルなので、Arduinoには関係ありません)
■配線
ArduinoとATtinyを、下の図のように配線してください。
※ただし、ここの配線図にも載っていないのですが、オートリセット機能を無効にするため、5Vの電源を110Ω~124Ωの抵抗に通したのをRESET端子に通してください。
これがないとまったく書き込めません。
とりあえずこんな感じになります。
■スケッチの作成
ピンの配置は以下の通りです。
使えるコマンドなどはさすがにピンが少ないので以下のものに限られてしまいます。
pinMode()
digitalWrite()
digitalRead()
analogRead()
analogWrite()
shiftOut()
pulseIn()
millis()
micros()
delay()
delayMicroseconds()
これらを使ってスケッチを作成しましょう。
■動作テスト
せっかくブレッドボードにLEDも配置しましたので、テストをしましょう。
スケッチのブリンクを13番ピンではなく、0番ピンに変更します。
------------------------------------------------------------------
void setup() {
pinMode(0, OUTPUT);
}
void loop() {
digitalWrite(0, HIGH); // set the LED on
delay(1000); // wait for a second
digitalWrite(0, LOW); // set the LED off
delay(1000); // wait for a second
}
------------------------------------------------------------------
■<注意>
(1)COMポートはArduino ISPのポート番号に設定してください。
(2)ボードの選択を「ATtiny45 (w/ Arduino as ISP)」や「ATtiny85 (w/ Arduino as ISP)」に使うチップに応じて変更します。これでないと、Arduino ISP経由でコンパイルしたスケッチを転送できません。
※転送時に以下のようなエラーメッセージが出ますが問題なく転送されています。気にしないでください。
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85
■完成
うまくいけば、ATtinyがきちんと動作するはずです。
■ATtiny85は「スイッチサイエンス」でも購入することが出来ます。
2011-11-29 21:47
nice!(0)
コメント(4)
トラックバック(0)
私は、Unoを書き込み機として Tiny Arduinoを作りたいのですが、
IDEが、Arduuno 1.0になってしまい、うまくいきませn。
以下のサイトを参考にしているのですが、
なにかご意見頂けないでしょうか?
参考URL
http://hlt.media.mit.edu/?p=1695
by Shoo (2012-01-24 14:46)
Shooさん
(1)ATtiny85のピンがきちんとブレッドボードに刺さっているかを確認してください。
(2)念のため、UNOのリセットボタンを押して、リセットしてみてください。何らかのエラーが起きている場合など、このUNO側のリセットボタンを押すことで正常に動作するようになることがあります。
のちほど、私の方でもUNOで検証した報告を載せます。
(^^)
by dayan (2012-01-26 00:50)
Arduino Unoのブートローダーの問題でした。
Optibootのブートローダーを
Optifixに変更することで、ArduinoISPを使えるようになりました。
Optifixへの変更方法は、以下のように試してみました。
http://banana-lab.ddo.jp/index.php?Uno
by Shoo (2012-02-06 16:56)
>Shooさん
ありがとうございます!
バグがあったとは……(^^;;;
by dayan (2012-02-10 00:11)