Mira&Luna's nursery lab

旅乙女と発明娘の子供部屋

ATtiny202を使えるようにする。

f:id:miraluna:20200610180017j:plain:w100 Mira

Arduinoを使って"ちびちびマイコン"「ATtiny202」に書き込みができるようにします。

🍎とっても素敵なマイコン見つけた🥕
あのちっちゃくて安いATtiny13Aよりもっと小さくてもっと安いマイコン
つまり1cm四方よりちっちゃくて、50円より安いコンピュータ(マイクロコントローラ)。秋月電子通商さんで去年の秋から売り出されてたみたいです🍓🍰

   目次
 🌈 0.ATtiny202はこんな子
 🌌 1.ATtiny202を 8pinDIP化
 🍎 2.Arduino IDEにボードを加える
 🐟 3.書込装置を手に入れる
 🍄 4.UPDI配線をする
 🐤 5.ブートローダとプログラムを書き込む

◆ 40円マイコン「ATtiny202」
f:id:miraluna:20210207173718j:plain
この子がATtiny202。なんてちっちゃいの🐭
こんなにおちびさんでもちゃんとしたコンピュータ(マイクロコントローラ)。プログラムを書き込んで、LEDとか、センサとか、モータなんかを制御できる。ゲームを作ることだってできちゃうの。

今までも瞳子とうこ(ATtiny13A)やちびやっこ(ATtiny85)のような1cm四方のマイクロコントローラなら扱ってきたけれど、ここまでミニマムな子は私使ったことがない。

◆ ATtiny13やATtiny85の大きさはこれくらい
f:id:miraluna:20190421155320j:plain:w300 写真は「ちびやっこ」

この子のすごいところは小さいことだけじゃなくて、性能も優れているところ。
瞳子と比べてみると、

         ATtiny13A>     <ATtiny202
アサイズ     8bit              8bit
クロック      20MHz            20MHz
プログラムメモリ  1kB              2kB
EEPROM      64B              64B
RAM        64B              128B

プログラムメモリとRAMが瞳子の2倍。
特に小さなマイコンではプログラムの容量である"プログラムメモリ"の大きさって大切なポイント。これが2倍になると、マイコンのできることの幅はぐんと広がります。さらにATtiny202では、I²CやSPIといった形式の通信が可能。これはどちらも私がミニゲーム機を自作したときにディスプレイの接続でお世話になった通信方法ね。

関連記事 🍎画像がリンクになっています。

ATtiny13Aを使う         ATtiny85を使う
ちびゲーム機(TinyJoypad)自作  Arduboy互換機自作


こんなにもATtiny13Aよりも性能が向上しているんだけど、
ATtiny202マイコン、実は...... 40円💰 (2021年2月現在 秋月電子通商さんで)
驚きの安さ🍇 40円で2kBは優良コストパフォーマンス。


それではATtiny202の使い方を説明していきますね🐤
Arduino開発環境(と、はんだ付け環境)が必要です)


.下準備。ATiny202を "8pin DIP"化。
ATtiny202はSOP(Small Outline Package)という平べったい表面実装の形をしてる。このままだとブレッドボードに挿したりできないので、私には扱いにくい。そこで瞳子やちびやっこと同じ8pin DIP(Dual In-line Package)の形に変身させます。そうすると大きさが1cm四方になっちゃうんだけどね。小さくある必要性がないうちは、8pinDIPがいいの。

◆ DIP化基板を用意
f:id:miraluna:20210207173151j:plain:w300
さあ、楽しいはんだ付けの時間です。

◆ ヒートクリップや自作のツールクリッパーを使って固定
f:id:miraluna:20210207173511j:plain:w300
私ははんだごてではんだ付けするの好きですが、へたっぴです。特にこんなにちっちゃいのは。
できるかぎり作業しやすいように固定して一生懸命がんばりました。
そして、じゃーん。
f:id:miraluna:20210207173528j:plain
f:id:miraluna:20210207173412j:plain:w290 f:id:miraluna:20210207173307j:plain:w290
f:id:miraluna:20200211155724j:plain:w100 ほら見て、やればできる🍎
これでSOP型のATtiny202がDIP型になって扱いやすくなりました。


Arduino IDE(開発環境)のボードにATtiny202(とその他たくさんのATtinyシリーズ)を加える。

Arduino IDE (Arduino 開発環境)でマイコンにプログラムを書き込むとき、Arduino UNO や Arduino Leonard、ATmega328のようにマイコンやボードの種類を選択することになります。でもArduino IDE には、初めATtiny202という選択肢はないの。そこでArduino IDEのボードにATtiny202を準備します。

まずGitHubというプログラマーギルドみたいなサイトから「megaTinyCore」というプログラムをいただきます。作製者はSpenceKondeさん。オープンソースなので自由に使っていいものよ。Thank you for your "megaTinyCore".
◆ megaTinyCoreのページ リンク→🥕ここよ🥕
f:id:miraluna:20210207173850p:plain
f:id:miraluna:20210207173856p:plain
megaTinyCoreのページに入って少しスクロールすると、「installation」の文字リンクがあるのでクリックします。
すると ↓ このページに行くので、ピンク色で囲んだURLをコピーします。
f:id:miraluna:20210207173901p:plain
GitHubへ行かなくても、↓ これをコピーしても構いません。同じものです。

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

(このURLは「ATtinyCore」をボードに加えるときと同じものなので、すでにATtinyCoreを加えた方はコピーしなくてO.K.よ。)

コピーした状態でArduino IDEを開いたら、以下の手順でATtiny202のボードを加えます

.「ファイル」→「環境設定」へ進み、
  「追加のボードマネージャのURL」にコピーを貼って「OK」を押します。

.「ツール」→「ボード」→「ボードマネージャ」と進み、
  SpenceKondeさんの「megaTinycore」を見つけてインストールします。

Arduino IDEを閉じて、開き直します。

これでボードにmegaTinyCoreが加わり、その中にATtiny202が入っているはずよ🐔
f:id:miraluna:20210207173056p:plain



Tea Time 🍹
f:id:miraluna:20200223224106j:plain:w500
Mira & Luna's nursery lab



.書き込みインターフェイスをダウンロードする。
ATtiny85やATmega328は Arduino IDEにボードを加えれば配線して書き込むことができた。でも今回はそう簡単にはいかないみたい。
ボードでATtiny202を選択してみると、今までAVRマイコンの「書込装置」に使っていた「Arduino as ISP」がない。調べてみるとAVRマイコン(旧Atmel社,現Microchip Technology社のマイクロコントローラのこと)の新しいATtinyシリーズは書き込み方式が今までのものとは違うんだって。「UPDI」っていう方式らしい。
UPDI方式の「書込装置」となる書き込みインターフェイスが必要になるみたいなんだけど、なんとそれもSpenceKondeさんがGitHubのサイトに用意してくれていたの。「jtag2updi」というものよ。なんて親切な方なのかしら。Thank you for your "jtag2updi".

◆ GitHubの「jtag2updi」のページ リンク→🍅ここですよー🍅
f:id:miraluna:20210207173736p:plain

以下の手順でArduinoを書込装置に変身させます。

.リンク先のページにあるCodeと書かれた緑のボックスからプログラムをダウンロードします。私はzipファイルをダウンロードして、展開しました。

.中にはArduinoのマークがアイコンになった INOファイルとその仲間たちが入っています。それらが入っているフォルダを INOファイルと同じ名前「jtag2updi」にします。そうしないとArduino IDEがファイルを開けません。

.次にその INOファイルを開いて(Arduino IDEを起動して)「jtag2updi」プログラムをArduinoに書き込みます

これでArduinoが書込装置"jtag2updi"になりました。


.配線をする。
UPDI方式の配線はとっても簡単🐤 電源とGNDの他に、たった1本通信用に配線するだけ。

◆ ATtiny202 pin配置図
f:id:miraluna:20210207173044p:plain
(ATtiny202/402データシートより)
上のピン配置図を見てみると、6pinのところに"UPDI"と書かれています。

◆ ATtiny202書き込み用配線図
f:id:miraluna:20210207172927j:plain

上の写真が配線した画像。解説しますね。

   <Arduino>     <経由パーツ>      <ATtiny202>
.   5v                     VCC (1pin)
.   GND                    GND (8pin)
.   D6        4.7kΩ (抵抗器)       UPDI (6pin)

経由パーツの抵抗器(4.7kΩ)は、D6から4.7kΩを通ってUPDIに直列でつなぎます。
その他にArduinoの「RESET」と「GND」に10μFの電解コンデンサを入れたほうが良いという情報もあります。私もコンデンサを入れました。
コンデンサをつなぐときには極性(向き)に注意しましょう。白いマイナス帯が描かれた側がGND側です。

f:id:miraluna:20210207173028j:plain



.いよいよ ATtiny202にブートローダとプログラムを書き込みます。
ブートローダというのはマイコンにプログラム(スケッチ)を書き込むために必要な、書き込み用プログラムのようなもの。これは新しいマイコンに一度だけ書き込めばいいの。

以下の手順と設定で ATtiny202にブートローダとスケッチを書き込みます。

Arduino IDEを起動して「ツール」→「ボード」→「megaTinyCore」→ 「ATtiny412/402/212/202」のボードを選択します。

.様々な設定が出てくるので、「Chip」を「ATtiny202」にします。
 その他の設定は、用途や好みに合わせて。私は今回、
 Clock → 16MHz Internal
 BOD level → 4.2V
 BOD Mode → Enabled/Enabled
 にして、他は初期設定のままです。
     正直言うと、それぞれの設定の内容がよく分からないの。ごめんなさいね。

.「書込装置」を「jtag2updi」にして、「ブートローダを書き込む」を押します。
 これでブートローダの書き込みは完了。

.プログラムスケッチを書き込むには、設定をそのままにして
 「マイコンボードに書き込む」を押す。
 うまくいったら、これでスケッチの書き込みが完了です。


   f:id:miraluna:20191015184112j:plain:w100 たー🍎(∂. <🎀/

◆ Lチカできた。
f:id:miraluna:20210207173834j:plain
ATtiny202にLEDをチカチカさせるプログラムを書き込んで、見事"Lチカ"させることができました。やったね。

◆ かわいい🐤 「ATtiny202」たち
f:id:miraluna:20210207173620j:plain

40円のちびちびマイクロコントローラ「ATtiny202」。
使えるようになりました。
容量が2kBあるから、いろいろな場面で活躍してくれそう。これからこの子を使ってどんな電子工作をしていこうかな。

f:id:miraluna:20180105114819j:plain:w300 あだ名は何にしよう?
       Mira



<その他の ATtinyATmega の記事> ↓
miraluna.hatenablog.com
ATtiny202🐢のあだ名決定&書き込みシールドの作製> ↓
miraluna.hatenablog.com


<今回使ったパーツ道具
f:id:miraluna:20210207173151j:plain:w200  秋月電子通商さんのHP
リンク →   「ATtiny202」   「DIP化基板」   「リードフレーム


🌌ポリウレタン銅線 🌈Arduino UNO 🐎白光さんのはんだごて 🦑ヒートクリップ