Mira&Luna's nursery lab

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

太陽🌞の匂い🌷

f:id:miraluna:20201222191748j:plain:w200 Mira & Luna


太陽匂い
f:id:miraluna:20210217184929j:plain
f:id:miraluna:20210217184936j:plain
f:id:miraluna:20210217184944j:plain
f:id:miraluna:20210217184949j:plain
f:id:miraluna:20210217184954j:plain
f:id:miraluna:20210217185001j:plain

これ、ときどきやってるよね、ミラ。
f:id:miraluna:20210106121715j:plain:w70:left
ルナ

うん。
干したてのタオルとか布団の匂い、大好き。
f:id:miraluna:20210106121720j:plain:w70:left
ミラ

ルナ)私も好き。ふかふかで柔らかくていい匂いだよね。
ミラ)冬はなかなかふっくらした感じにならなかったけど。
ルナ)最近、春めいてきたね。今日は洗濯物がふかふかになりそう。
ミラ)ちょっと庭に行ってくる。太陽の匂いをかぎに。

🌼 🌼 🌼 🌼 🌼 🌼 🌼 🌼 🌼 🌼 🌼 🌼 🌼 🌼 🌼 🌼 

ルナ)どうだった?
ミラふかふかになってた~💗
f:id:miraluna:20191028182934j:plain

ATtiny202のための書き込みシールドの作製🐟

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

ちびちびマイコンATtiny202。
2kBのメモリで 40円🥕
f:id:miraluna:20210207172637j:plain:w280 価格は2021.2月現在 秋月電子通商さんにて。
あだ名はふたまるに決定🍓(ふた丸・二丸)

前回の記事でこの子にプログラムスケッチを書き込めるようになったので、今回は書き込み用のシールドを作ります。

🍰ATtiny202 書き込み方法の記事 ↓ ☕
miraluna.hatenablog.com

🐢 ATtiny202(ふたまる)用の書き込みシールドを作ろう 🐎

🍓 ふたまるはATtinyの新シリーズ
Arduinoマイコンである"みつは(ATmega328)"を開発したAtmel社はMicrochip Technology社に買収されました。ふたまる(ATtiny202)は、買収後に新しく開発された新シリーズ。
新しいTinyシリーズには"0シリーズ"と"1シリーズ"があって、1シリーズは0シリーズの上位互換のような位置づけみたい。0シリーズはよりコストを下げた"汎用型"と言えるんじゃないかな。

🍓 新しい型番表記
新Tinyシリーズは型番表記も新しくしたみたい。
例えば「ATtiny1614」という型番だったら......。
まず「ATtiny」はAVRマイコンのTinyシリーズを表してる。
次の「16」がフラッシュメモリの容量を表してる。
  2なら2kB、32なら32kB。だから16は16kBね。
次の「1」は1か0で、1シリーズか 0シリーズかを表してる。
最後の「4」はpinの本数。
  2なら8pin、4なら14pin、6なら20pin、7なら24pinを表すそうです。

◆ ATtiny202 ピン配置図
f:id:miraluna:20210207173044p:plain
上の図はふたまるのデータシートに描かれているピンの配置図です。

🍓 書き込み方式の変更
"ちびやっこ"こと「ATtiny85」や、"瞳子(とうこ)"こと「ATtiny13」は、SCKとMISOとMOSIという3本の通信線をArduinoと配線するSPIという方式でプログラムの書き込みを行っていたの。
でも新しいTinyシリーズの書き込み方式はUPDIという方式に替わって、なんと1本の通信線で書き込みができるようになったんですよ。

🍓 UPDI 配線方法
ピン配置図でいうと、ふたまる右側の上から3番目のピン"6ピン"に、UPDIとありますよね。これがArduinoを書込み装置としたときの通信線です。
通信線は1本なんだけど、書き込みのために実際に配線するのは、

  <Arduino>     <ATtiny202>
   5v     -    Vcc
   GND    -    GND
   D6  - 4.7kΩ -  UPDI (6pin)
ArduinoのResetとGNDの間に10μFの電解コンデンサ

これだけの配線が必要です。(コンデンサはなくても書き込めると思う。)
慣れてしまえば大変な配線ではないんだけど、コンデンサや抵抗器も取り付けた状態のシールドを作っちゃえば楽よね。
そんなわけで今回は、ふたまる用の書き込みシールドを作りました。

◆ ふたまる用書込みシールド
f:id:miraluna:20210211132316j:plain
f:id:miraluna:20210211132149j:plain:w290 f:id:miraluna:20210211131752j:plain:w290

🍓 書き込みシールドのパーツ
8x6ホールのちっちゃな基板に「10μF電解コンデンサ」「4.7kΩ抵抗器」「8pinソケット(丸ピン)」「ピンヘッダ」を前述の配線ではんだ付けしました。
ArduinoのD6ピンは他のピンたちと反対側にあるので、ジャンパーワイヤを使いました。
シールド基板の大きさ 2.35cmx1.8cm。

◆ Arduinoにシールド装着
f:id:miraluna:20210211131331j:plain
f:id:miraluna:20210211131544j:plain:w290 f:id:miraluna:20210211131432j:plain:w290

🍓 Arduinoへ装着
こんなふうにArduinoに装着します。裏にはコンデンサや配線があるから、Arduinoのボード上に載ったみつは(ATmega328P)と干渉しないように外側へ出るような装着の仕方。オレンジの線は、ボードの反対側にあるD6ピンへと接続します。
ATtiny13・85やATmega328のシールドを作ったときは丸ピンソケットがなかったから平ピンソケットを使ったけど、今回は丸ピンソケットを使いました。これから何度も抜き差しするだろうから。

◆ スケッチを書き込んでLチカしよう。
f:id:miraluna:20210207173834j:plain

🍓 シールドを使って書き込み&Lチカ
作製した書き込みシールドをArduinoに装着して、新しいふたまるにブートローダの書き込み。
うん、うまくいった。
次にLEDをチカチカさせるLチカプログラムを書き込み。
やった。うまくいった。

f:id:miraluna:20200516143652j:plain:w200 ぴーすV
これでいつでもふたまることATtiny202にスケッチを書き込むことができるようになりました。これからよろしくね、ふたまる🐢



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

🐢ふたまる   🍀みつはたち  🌻ちびやっこ  🌼瞳子
      

🌳ブートローダ  🌟Tinyシールド   🌌megaシールド
      

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 🐎白光さんのはんだごて 🦑ヒートクリップ