いきなり結論ですが、ハマってます!これはめっちゃ面白い!
(Tiny joypad)
Attiny85というAVR系マイコンチップを使ったゲーム機の作例が、ここ数年で世界的にちょっとしたブームになっているのですが、私も作ってみました。
ゲーム機を作るというのは、なかなかハードルが高そうに思うのですが、かなり少ない部品点数と、かなり安い金額で「古典アーケードゲームのクローン」が作れてしまうのにはびっくり!
世界の先輩たちの開発力に、かなり感動します。
オリジナルのサイト
■ AVRマイコン ATtiny85を使った携帯ゲーム機
■ 有機ELを使った見やすい画面(なのに安い!画面パーツ500〜600円)
■ 総金額2000円程度でできる!
■ 電子工作の技術レベルでは初心者レベルでOK。
■ スイッチ・液晶・ブザー・電池ケースくらいしか使わない。あとはワンチップ。
■ インベーダーゲームほか、多数の古典アーケードゲームが移植されている。
■ マイコン入門に最適。Arduinoと高い互換性。
==========
<1> 基盤とパーツの入手
秋月電子等で大半は入手できます。C型などのベーシックなユニバーサル基板にも組めます。
プリント済基板(PCB)も販売されています。今回はピコソフトさんの互換基板を使ってみました。
互換基板 ORANGE-mono1
http://www.picosoft.co.jp/ORANGE-mono1/index.html
自作しても難易度は低いのですが、基板のせいで動かないのか、チップへの書き込みミスで動かないのかわからないと困るので、まずはリファレンス機がてら基板を利用させていただきました。
2機目からはバンバン自作できると思います。また、別に、
工作魂さん
も互換基板を頒布なさっています。ヤフオクなどをチェック!
こちらは、いわゆるC型基板と同じサイズ。ピコソフトバージョンよりさらに小さいです。
工作魂さんは、さらにコンパクトなキットも作っておられます。
回路図は
https://www.tinyjoypad.com/tiny-joypad-shematic
にあります。
○ATtiny85-20PU×1 ○ ICソケット8ピン×1 ○タクトスイッチ×5
○0.96インチ128×64ドット有機ELディスプレイ(OLED)×1
○スライドスイッチ×1
○ 圧電スピーカ×1
○電池ソケット×1 ○電池CR2032×1
○抵抗10KΩ×1
○ 抵抗22KΩ×2
○抵抗33KΩ×2
○抵抗82〜91KΩ×2
○基板
が最小構成です。部品数も少ない!
<2> 書き込みハードとソフトの準備
書き込み方法はいくつかあります。Arduinoとブレッドボードで組んでもいいです。
私はUSBaspを使ってみました。要するにAVR書き込み器ですね。
左に写っているUSBに挿せる小さいのがUSBaspです。 10ピン <-> 6ピン変換を使っています。右側はブレッドボードです。
RESET○ 1 8 VCC
2 7 SCK
3 6 MISO
GND 4 5 MOSI
で配線してください。
プログラムを書き込むソフトはArduinoIDEです。
https://www.arduino.cc/en/software
私はLinux版64ビットと32ビットを使っています。
<3> ArduinoIDEの下準備とセッティング
ArduinoIDEをインストールしておきます。Windowsの場合は「arduino.exe」が実行ファイルとのこと。
Linuxの場合は圧縮ファイルを任意のフォルダに解凍すると「arduino」というシェルスクリプトがあるので、それをクリックするとそのまま動きます。
おなじフォルダに「install.sh」というスクリプトがあるのですが、それを実行するとデスクトップにアイコンができたり、メニューにArduinoIDEが入ったりして便利になります。
(ただ、リンクができるだけです)
今回、有機EL(I2C接続のもの)を使うので、そのドライバをプログラムの中に取り込んでおく必要があります。
※OLEDには4ピンのものと7ピン〜のものがあります。4pinがI2C通信で、pin数が多いのはSPI通信です。
そこで、
ssd1306xledというディスプレイ制御ライブラリがGithubにあるので、それを利用させてもらいます。
https://github.com/Defragster/ssd1306xled
「Code」のところからZIPファイルがダウンロードできます。
ArduinoIDEの面白いのは、ZIPファイルのままライブラリを取り込めるところで、
「スケッチ」→「ライブラリをインクルード」→「ZIP形式のライブラリをインクルード」から未解凍のまま取り込むことができます。
もうひとつ、ATtiny85のチップを取り扱うには、「ボードマネージャの追加」が必要です。
これは「ファイル」→「環境設定」の追加のボードマネージャのURLに次の文言を入力します。
”http://drazzy.com/package_drazzy.com_index.json”
これで、SpencKonde氏が公開しているGithubの設定ファイルを使えるようになります。
オリジナルは
https://github.com/SpenceKonde/ATTinyCore/
です。
「ツール」→「ボード」→「ボードマネージャ」と進むと、ATtinycoreを選択できます。
(上の写真ではすでにINSTALLEDになってます)
このとき、Linuxの32ビットだとエラーが出る場合があるので、
https://kotaro-yoshiie.blogspot.com/2021/11/arduino-ide-arduino-ide-1816-avrdude.html
の記事を参照して回避してくださいね。
さて、今回はここまで!次回はゲームソフトを選んで、チップに書き込みするところまでやります!
(続く)
https://github.com/wrebbitfroggy/TinyDriver-solution-for-Tinyjoypad
返信削除