Superb Garbages 2

千野純一(chinorin)のはてなダイアリーの続きです。

悲しい出来事(接触編)

  • 解説シリーズのフェイズなんですがショッキングな事件がありましたので聞いてくださいよ⋯。
  • ATtiny10っていうMCUがありまして、米粒AVRって呼ばれてたりするんですが、SOT-32-6っていう表面実装6本足パッケージがほんとにめっちゃちっちゃくて、足の幅は0.3mm、足と足の間隔は0.65mm0.95mmっていう⋯⋯米粒は言い過ぎだと思うけど、他にこれくらいの大きさのものって何があるだろう。とりあえずMINTIAの粒よりは小さい。
  • まー写真撮ってみるか。きっとインパクトのある絵ヅラになると思う。
左のが平成25年に製造された百円硬貨
  • 12MHzで動作する歴としたマイコンです。しかし記憶領域がプログラムメモリ1024バイト+RAM32バイトとかなり厳しく、非常に限られた用途でしか使えない感じではありますが、なぜかGPIO*1が4つしかないのにADC*2が4系統もあって⋯⋯⋯⋯えぇ? 使える足ぜんぶ使って4つの配線の電圧を計っても、それを記憶しておく領域もそんなにないし*3、どーすんだ?
  • まーとにかくこのATtiny10、用途はないかもしれないけど安い(3個で100円とか)し、記念に(?)いくつか買ってあったんですわ。SOT-23→DIP変換基板と一緒に。それでしばらく放ってありました。

 

  • でね、ようやく使い道が思いついたんですよね。おそらく、何の判断もしないでただクロックを出力し続けるとか、ただパルス波(PWM)を出力し続けるとか、そういうのに向いているはずだ。ちょうど2系統の波形を出したり止めたりする仕組みをどうしようか考えてたところで、1つのマイコンから2つ出すのがちょっとめんどくさくて躊躇してたんです。ATtiny10みたいなのがとにかく波形を出し続けてアナログスイッチかフォトカプラかなんかに出したり止めたりをやってもらえばいいのではないか。あ、いや、それくらいの単なるON/OFFならATtiny10自身でもできるか⋯。
    • あとは例えばこの前ATtiny13でやったようなロータリーエンコーダデコーダもATtiny10版を作っておくべきだなあ。ATtiny10のサイズであれば、大きめのロータリーエンコーダに貼り付けてボタン電池で動作とかも可能だと思う。問題はピン数で、必要なのが2入力2出力だからリセットを無効にすればぴったりなんだけど、それやると二度とプログラムが書けなくなる⋯⋯ということはないんだがちょっとめんどくさくなるからめんどくさいんだよなあ。他の方法だと、例えば2入力を分圧してanalogReadしてみるとか? それで速度出せるんかいなというか、それだとたぶん割り込みができねーな。出力をいじる方が現実的だろうか⋯。
  • まーそれはさておき。つーわけで意を決してATtiny10と変換基板を取り出して、自分を信じてやってやりましたさ。はんだづけを。そもそも表面実装部品というのはペーストはんだってやつをステンシル(テンプレートみたいなやつ)を使って基板上のランド*4にしっかり塗りつけ、その上にピンセットでうまいこと部品を置き、リフロー炉っていうオーブントースターみたいなのに入れて焼くのが本来のやり方なんだけど、そういう道具は何ひとつ持ってないのでここは男らしく堂々と手はんだでやってやるぜ。まさにジェンダーロールに基づいたハラスメントである。
  • もーね⋯⋯まずATtiny10そのものを基板上の定位置に置くのが一苦労なのよ。ちょっと力加減を間違えただけですぐどっか飛んでっちゃうしw そもそも肉眼じゃちゃんと位置が合ってるかどうか見えねーっていうのも問題で、サードハンドについてる拡大鏡とハンディ虫眼鏡みたいなのを併用していろんな角度から見たりして⋯⋯でもまあ、粘度の高いフラックス*5をあらかじめランド周辺に塗りたくっておくことで少し作業が楽になった感はある。
  • そんで位置が決まったら何らかの力ではさんで仮固定しておきたいんだけど、今回使ってる変換基板が厚さ0.1mmのフレキシブルみたいなやつなので、はさむ力が強すぎると基板がたわんだりして不都合がある。これは結局逆作用ピンセット(握ると開いて、離すと閉じるピンセット)で事なきを得た。⋯⋯が、これってもしかしたら、普通のユニバーサル基板を同じ大きさに切り出して、重ねて使うべきものだったのかもしれない。将来的に強度が足りるかどうかが心配ではある。
  • そうやって固定したつもりでもプルプル震える手ではんだごてを当てたらズレて、直して、またズレて直して、はんだの量多すぎて吸い取ったらズレて、とかやってたらもうこて先がボロボロになってしまった*6。まあへたくそなのですぐボロボロになってちょくちょく交換するんだけど*7、次で4本目かな? はんだごて買ったときについてきたやつがそろそろ全滅するので補充しなければならん。買うのはたぶん1本100円未満のセット品だが⋯⋯⋯⋯なんかこて先の値段もピンキリで、1万円以上するのとかもたまにあるんだが、あれってやっぱ違うのかね。細くて取り回しやすいのに熱容量がアホみたいにでかくて、どの部分にはんだをあてても素直に溶けて素直に濡れる、夢のようなこて先だったりするんだろうか。
  • そんなのもまあいい。できたので、とにかくなんか書いてみるテストをしよう。AVRというのはふつう、SPIという方式でプログラムを転送する。詳細は省くがとにかく転送用のプログラムを書き込んでArduino as ISPにしたArduino UNOの13番SCK*8、12番MISO*9、11番MOSI*10、10番/SS*11から線を引き出して⋯

    (すんません無断転載です。原本は画像左下URLの方でどうぞ)
  • それをそのまんま受け側のSCK、MISO、MOSI、/RESETに⋯⋯

    (すんません無断転載です。原本は画像右下URLの方でどうぞ)
  • ATtiny10にそんなものはねえぞ⋯。
  • 超長くなったのでつづく!(つづくのか⋯)

*1:GPIO: 普通にINPUTとOUTPUTができる足のこと。ATtiny10は6本足で、そのうちの1本はVcc(電源)で、1本はGNDで、残りがぜんぶGPIO。

*2:ADC: Analog to Digital Converter:HIGHとかLOWとかじゃなくて、電圧を数値として取得するやつ。ATtiny10のADCは8ビットだそうなので、0~255か。狭いな⋯。

*3:32バイトということは、int型の変数を4つ定義したらそれで満杯。

*4:ランド:はんだづけをするための露出した金属面。

*5:フラックス:はんだづけに必要な薬品。これがないとはんだが溶けなかったりとか色々な役割がある重要なもの。はんだの中に練り込まれているのが普通だが、へたくそにとってはそれだけでは足りないのでどんどん注ぎ足して使う。

*6:こて先を長い時間高温にしておくと酸化して黒くなり、不均等にかさが減って痩せてきて、そうなると復活剤みたいなのを使って修復しないとはんだを当てても溶けないというただ熱いだけの棒になる。これをこて先の「食われ」と言うらしい。

*7:本来は部品やランドの形状によってこて先を使い分けるんだそうだが、そのたびにこて先を交換してまた暖め直すのとか面倒すぎてやってられんわ。そのあたりもへたくそたる所以であろう。

*8:SCK: Serial ClocK

*9:MISO: Master In Slave Out

*10:MOSI: Master Out Slave In

*11:/SS: (負論理)Slave Selectなんだけど、これは受け側の負論理RESETに入れればOK。