ATtiny85で遊ぶ!その1-設定編

Arduinoを使っているとこんなことを思うことがあります。
「LED点灯だけにArduino使うのはオーバースペックだな。もっとピンの数少なくて小型のマイコンでも十分だな」と…
そんなArduinoよりピン数少なくて小型のマイコンの1つが、「ATtiny85」です。

そんなATtiny85で遊んでみようと思います!

今回は設定編ということで、ArduinoUNOを用いてATtiny85をArduino化して、Lチカスケッチを書き込むところまでやってみます!

目次

ATtiny85

ATtiny85はAtmelの小型AVRマイコンです。
AtmelのマイコンはArduinoに搭載している「ATmega328」などが有名どころです。

ATtiny85は8ピン(GPIOは6ピン)でプログラムメモリは8kBとATmega328の約1/4の容量です。
またこんなに小さいのにI2CもSPI通信も可能なようで、Arduinoでやっていたことの小型化にはもってこいのマイコンかなと思います。

ATtiny85にブートローダを焼き付ける

ブートローダと呼ばれるマイコン起動時に実行されるプログラムのようなものを焼き付けていきます。これをしておくことで、ATtiny85をArduino環境で使いやすくできます。焼き付けるという表現が正しいかはわかりませんが、ここではスケッチ書き込みと区別するために使っています。

以下のような構成でATtiny85にブートローダの焼き付け、スケッチの書き込みを行っていきます。

Arduinoを書き込み装置化する

まずはArduinoを書き込み装置化してきます。
といっても、スケッチ例(Examples)にある「11.ArduinoISP」スケッチを書き込むだけです。

注意点

先に書き込み用の回路を組んだ状態で、Arduinoにスケッチ書き込みをすると書き込みエラーが出ました。

下記の書き込み回路図を見ていただければわかりますが「リセットピン」がつながっていて、うまく認識できなかったためだと思います。

そのため、先に回路を組むときはArduinoのRESETからジャンプワイヤーを抜いた状態でスケッチ書き込みをしてください。

書き込み用の回路を組む

No.部品数量
1ATtiny851
2ArduinoUNO1
3ブレッドボード1
4LED3
5抵抗(470Ω_LED用)3
6電解コンデンサ(10μF)1
7ジャンプワイヤー必要な数
8USBケーブル(A-B)1

電解コンデンサがなくても問題なかった事例もあれば、ないとエラーが出た事例がありましたので、リセットピンのところにコンデンサを挟んでみてます。
LEDについては状態確認用のものなので、なくても問題ないようですが、せっかくなのでつけてみました!

ATtinyボードを追加する

ArduinoIDEにATtinyのボードを追加します。
まずは「File」→「Preferences(環境設定)」から「Additional boards manager URLs」に次のURLを入力します。

http://drazzy.com/package_drazzy.com_index.json

次に「BOARDS MANAGER」で「ATtiny」と検索して、「ATTinyCore by Spence Konde」をインストールします。

ブートローダの焼き付け

「Tools」から以下のように設定を行い、1番下の「Burn Bootloader」を実行します。

下のツイートにある動画のように、緑LEDがチカチカしていれば焼き付け処理が進んでいるようです。
何かエラーがあると赤LEDが点灯します。
処理成功時も、一瞬赤LEDは点灯しますがこれは問題ないようでした。

https://twitter.com/TaachimalKo/status/1531296977895321600

ATtiny85にLチカスケッチ書き込み

ブートローダの焼き付けができたので、Lチカスケッチを書き込んでしっかり動くか確認していきます。
スケッチを書き込む際は、ブートローダを焼き付けた時と同じ回路で行います。
その後、ATtiny85を下画像のLチカ回路をに差し替えて、動作確認します。

Lチカ回路

LEDを1個だけチカチカさせるだけだと味気ないなと思い、2個チカチカさせる回路にしてみました。

No.部品数量
1ATtiny851
2コイン電池(CR2032)1
3コイン電池ホルダー1
4LED2
5抵抗(330Ω:LEDが点灯できるもの)2
6ブレッドボード1
7ジャンプワイヤー必要な数

今回のスケッチ

ATtiny85に書き込むスケッチはLEDをチカチカさせたいだけなので、void loopの中身はけっこうテキトーです😅

//parts_1_DHT11
//
void setup() {
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
}
//LEDをチカチカさせたいだけなのでテキトーです。
void loop() {
  digitalWrite(3, HIGH);                        
  delay(1000);
  digitalWrite(3, LOW); 
  digitalWrite(4, HIGH); 
  delay(1000); 
  digitalWrite(3, LOW); 
  digitalWrite(4, LOW);  
  delay(1000); 
  digitalWrite(3, HIGH); 
  digitalWrite(4, HIGH); 
  delay(1000); 
  digitalWrite(3, LOW); 
  digitalWrite(4, LOW);  
  delay(1000);                   
}

スケッチを書き込む際は、ブートローダを焼き付けた時と同じ回路で書き込みます。
また、通常のスケッチ書き込みではなく、下画像の「Upload Using Programmer」で書き込み実行するようにします。

実践結果

無事にATtiny85でLチカさせることができました🎉

感想

ATtiny85をArduino環境で使えるようにするまでをやってみました。
情報収集しやすかったり、やりやすい方法がであるなどいろいろ環境が整っている中ではありますが、マイコン本体を扱ってみるとなんだか1段レベルアップできたような気がします😊

ちなみに今回組んでみた「書き込み回路」と「Lチカ回路」はArduinoシールド化してみました!

https://twitter.com/TaachimalKo/status/1533470636948893696

せっかくArduino環境で使えるようになったので、いろいろ遊んでみようと思います!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

趣味で楽しみながら電子工作やプログラミングをちょこちょこやってます!
ブログでは遊んでみたこと、やってみたこと&雑記を配信中です!
よろしくお願いします!!

コメント

コメントする

CAPTCHA


目次