はじめに
- 前からずっと気になってたが、いつも在庫切れだったATtiny13Aをゲットした。
- Raspberry Pi、Arduino UNO/Nano、ESP8266/32、M5Stackと一通り使い、気になっていたのがこの8ピンの小さいマイコン。
- 普段Arduinoとして使ってるのは、ATmega(ATmega328とか)で、こっちはちっちゃくて省電力なATtiny。
- ボタン電池で駆動でき、Arduinoでも開発できると言うことなので、とりあえずLチカまでやってみた。
- 最終的にこんなにシンプルな構成で回路が組めたので、忘れない内にメモしておく。
ATtiny13A-PU
- Atmel社製の1個85円の超安価な8bitマイコン。
- 電源電圧:1.8~5.5V。
- GPIO:6個
- ADC, PWMが使える。
- 現在、秋月で1個85円。
- CR2032のボタン電池で動かせるので、用途を絞ればかなりコンパクトに作れる。
- AVRはPICと比較されるみたいだが、PICみたいに専用のライターが無くても、Arduinoをライターにして書き込むことが出来る。
- (ちなみに、PICはまだ使った事がない。。。)
開発環境
- MacOSX Catalina
- Arduino IDE 1.8.15
書き込み環境の構築
- 最初にArduinoを書込みデバイスにする。
- 今回はどの家庭にも必ず1つはあるArduino Unoを使用する。
- Arduino IDEを起動
- ボードはArduino Unoを選択。
-
スケッチ例 --> 11. ArduinoISP --> ArduinoISP
を開いて書き込む。- これで手持ちのArduino Unoがライターになった。
これでライターの準備は完了。
次はATTiny13のプログラムを用意していく。
ATTiny13用のボード設定
ボードマネージャへの追加
- 引き続き、Arduino IDEで以下のURLを「追加のボードマネージャのURL」に追加。
https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json
- ここで注意。
- 最初、ググって見つけた別のライブラリを使ったところ、古いArduinoでしか使えない物だったらしく、一応書き込めるが
delay();
が指定した時間以上の動きだったり、期待通りに動かなかった。 - こっちのライブラリは素直で特に問題も無く使用できたので、
Arduino IDE 1.8.15
あたりを使う場合はこちらが良い。
- 最初、ググって見つけた別のライブラリを使ったところ、古いArduinoでしか使えない物だったらしく、一応書き込めるが
-
ツール -> ボード --> ボードマネージャ
を開き、attiny
で検索。- MicroCoreが出てくるのでこれをインストールする。
-
ツール -> ボード --> MicroCore --> ATtiny13
を選択。
配線
Arduinoとの接続はこんな感じ。
Arduino Uno | ATtiny13 |
---|---|
5V | 8:VCC |
GND | 4:GND |
D10 | 1:PB5 |
D11 | 5:PB0 |
D12 | 6:PB1 |
D13 | 7:PB2 |
また、ATtiny13の1,4ピンに10uFのコンデンサを入れておく。
コード
blink.c
#define PIN 3
#define DTIME 1000
#define DTIME2 100
void setup() {
pinMode(PIN, OUTPUT);
}
void loop() {
digitalWrite(PIN, HIGH);
delay(DTIME);
digitalWrite(PIN, LOW);
delay(DTIME);
digitalWrite(PIN, HIGH);
delay(DTIME2);
digitalWrite(PIN, LOW);
delay(DTIME2);
digitalWrite(PIN, HIGH);
delay(DTIME2);
digitalWrite(PIN, LOW);
delay(DTIME2);
digitalWrite(PIN, HIGH);
delay(DTIME2);
digitalWrite(PIN, LOW);
delay(DTIME);
}
書込み
-
ツール --> 書込装置 -> Arduino as ISP
を選択。-
AVR ISP
じゃないので注意。
-
- 書き込みは1秒前後でサクッと終わる。
- 自分の場合、3回中、2回は書き込みに失敗するので、何度かリトライする必要がある。
- もしかして
RESET/GND
に電解コンデンサ挟んでるせいかも?
動作確認(Lチカ)
-
PB3/GND
に抵抗とLEDをつないでLチカ。 - 電源はCR2032を使用。
ATtiny13でボタン電池からLチカできた。
— Nabeshin (@desmoquattro996) June 9, 2021
現行のArduino IDEだと、以下のボードマネージャー使うと良いらしい。
小さくて良いなコレ。https://t.co/aNKwVJlFsZ pic.twitter.com/diNCtrDaYy
まとめ
- 初めて使ったけど、ATtinyお手軽コンパクトでなかなか良い。
- 用途を限定すれば、ボタン電池で小さいおもちゃが作れちゃう。
- PWMとかADCとか使えるので、後で試したい。
- 実はこのATtiny、米粒AVRと呼ばれるATtiny10なんてのがあるらしい。
- 次回秋月で買い物する時はぜひこれ買っとこう。