「ATtiny85を使ったゲーム機を作ろう」
その2<実機の作製(パーツと配線)>
Arduinoを使ったゲーム機作成の紹介です。ゲーム機の制御には「ちびやっこ」ことATtiny85という1cm四方のマイクロコンピュータを使います。
プログラムはDaniel Champagneさん作成のフリーソフト「Tiny Joy Pad」をそのまま使います。
◆ ちびゲーム機(5cm x 7cm)
今回は実機(ハードウェア)の作り方について紹介していきます。
<目次>
その1 「Attiny85ゲーム機の紹介と準備する物」
その2 「実機の作製(パーツと配線)」 (今回)
その3 「プログラム(ソフト)の書き込み」
その4 「作り方の動画」
「実機の作製」
〇 パーツ
・ちびやっこ「ATtiny85」
Atmel社のAVRマイコン。マイクロコンピュータのATtiny85。
このゲーム機ではゲームのプログラムをこの中にすべて書き込んで動作させるの。ダニエルさんのプログラムは、このちびやっこのメモリをだいたい95~99%くらい使用しているの。性能をめいっぱいまで引き出しているのね。
プログラムメモリは 8KB。512BのEEPROMも内蔵しているわ。速度は水晶発振器を外付けすれば20MHzまで出るんだけど、内蔵クロックでも16.5MHzまで可能なの。このプログラムは内蔵16MHzで動くようにつくられてる。
2019.7月現在、秋月電子さんで 130円。
・有機ELディスプレイ
これは 128x64 ドットのディスプレイ。
☆ I²C 接続
☆ 制御チップ[SSD1306]
のものを使います。画面がとってもきれいです。
・基板
ベースとなる基板です。25x15 くらいのものがちょうどいいと思う。
私はサンハヤトさんの「ICB-288U」というものを使いました(上の写真のものとは違います)。1列に並んだ穴がライン状につながっている部分が2本あるので、それを3.3vにつながるライン(パワーソース)とGNDにつながるラインとして利用したの。
・タクトスイッチ
カラフルだと楽しい。
押したときだけ接続するタイプを使います。一般的なものね。
・ICソケット(8pin)
きっと、ちびやっこを何回も抜き挿しするでしょうから、丸ピンのものがいいと思います。
・スイッチ
電源スイッチ用。
汎用的なものでいいわね。好みのものを。
・電解コンデンサ
これは動作安定のためのもの。なくても動作します。「Tiny Joy Pad」の説明書きにも出てこない。私はよく使うので、今回も回路に入れておきました。使ったのは「47μF」。電源近くの+極とー極に接続します。コンデンサには極があるので注意。白い「マイナス帯」がある足がマイナス極よ。
・ブザー
ゲームの音を出すパーツ。圧電スピーカーと電子ブザーの違いはよくわからないけど、上の写真はたぶん圧電スピーカー。で、私が実際に使ったのはたぶん電子ブザー。極性があったもの。たぶん、たぶんね。
・コイン電池ソケットとコイン電池
マイコンやディスプレイは 3.3v動作のものが多いから回路図も 3.3vで描いたんだけど、実際の電源には 3.0vのコイン電池「CR2032」を使いました。ちびやっこの動作電圧は 2.7v~5.5v。ELディスプレイの動作電圧は 3.0v~5.5v。問題ないわね。
・各種抵抗器
10KΩ x 1本。
22KΩ x 2本。(10KΩで代用)
33KΩ x 2本。(10KΩで代用)
88KΩ x 2本。(47KΩで代用)
「代用」というのは、私の手元に22K、33K、88Kの抵抗がなかったのでそれで代用したものです。「ピンボール」のゲームではうまく動作しなかったので(他のゲームは問題なかったけど)、正しい値の抵抗を用意したほうがいいと思います。
・導線
ビニル導線、電子ワイヤ、ポリウレタン銅線、すずメッキ線などなどお好きなものを。
おすすめは「ポリウレタン銅線」。
他にも電源用LEDなんかを付けてもいいかも。
〇 配線
それではいよいよはんだごてを手に取って、パーツを組み立てていきましょう。
この図のように配線しましょう。(∂_∂🎀/
「3.3vへ」や「GNDへ」は、赤い〇で囲んだ「3.3v」と「GND」につながります。タクトスイッチの「上下左右」の文字はそれぞれコントローラーの「上下左右ボタン」を意味しています。
3.3vと書きましたが、実際には 3.0vで動作します。
<8Pinで10本の配線を制御する発明>
ゲーム機はブレインであるちびやっこが制御するんだけど、ちびやっこが制御しなくちゃいけないパーツと配線の本数はたくさんある。まずちびやっこ自身の電源に+とーで2本。有機ELディスプレイは I²C接続だから2本。ブザーで1本。操作ボタンが上下左右とAボタンで合計5本。全部合わせると少なくとも10本はPinが必要になる。でもちびやっこには8Pinしかない。これじゃ制御しきれないよ~。
そこで(∂_∂🎀/ この「Tiny Joy Pad」ではある工夫をして10本必要なPinを8本で制御しているの。その工夫はタクトスイッチにつながる1Pinと2Pinにある。このPinはそれぞれ異なる値の抵抗器を介して2つのタクトスイッチにつながっているんだけど、プログラムを読んでみるとアナログの値を読み取っている。つまり抵抗の値を変えることで、どちらのタクトスイッチを押したかを読み取れるようにしてあるというわけ。1つのPinにつないだ2つのボタンを見分けられるわけね。この工夫のおかげで10本必要なPinを8本で制御することができるの。
発明的工夫よね。これって偉業だわ。
それでは基板にパーツを配置してみましょう。ゲームをするときにボタンを押しやすいように配置しましょうね。
◆ 私はこんなふうに配置しました。
◆ 裏
相も変わらずですが......はんだづけ へたっぴです。
裏の配線をほんのちょっと解説しますね。
この基板の中央には穴同士を連結させたラインがあって、それを+3vのパワーソースラインと、GNDラインとしました。スイッチや電解コンデンサをはさんで、電池ボックスの+とーにつながっています。
そこから時計回りに回路を流していきました。右上には回路の中心であるちびやっこがいます。ちびやっこからディスプレイやブザー、各種ボタンにつながります。ボタンへは回路図に描いた値の抵抗器を介します。
青いビニル導線はみんなボタンからGNDへ帰ってくる線です。オレンジと紫の線がブザーにつながっていて、左下の2本の緑の線がAボタン(勝手に私がAボタンと呼んでる)につながっています。
これで実機の完成(∂.<🎀/
次回はちびやっこにダニエルさんの書いた「TinyJoyPad」のプログラムを書き込む方法を紹介します。
🎀つづく🎀
<目次>
その1 「Attiny85ゲーム機の紹介と準備する物」
その2 「実機の作製(パーツと配線)」 (今回)
その3 「プログラム(ソフト)の書き込み」
その4 「作り方の動画」
🎀Miraの部屋🎀