2021年11月27日土曜日

Tinyjoypad を作ろう!01 ゲーム系電子工作の決定版!

 

 いきなり結論ですが、ハマってます!これはめっちゃ面白い!

 

(Tiny joypad)


 Attiny85というAVR系マイコンチップを使ったゲーム機の作例が、ここ数年で世界的にちょっとしたブームになっているのですが、私も作ってみました。

 

 ゲーム機を作るというのは、なかなかハードルが高そうに思うのですが、かなり少ない部品点数と、かなり安い金額で「古典アーケードゲームのクローン」が作れてしまうのにはびっくり!

 世界の先輩たちの開発力に、かなり感動します。


オリジナルのサイト

https://www.tinyjoypad.com/


■ AVRマイコン ATtiny85を使った携帯ゲーム機

■ 有機ELを使った見やすい画面(なのに安い!画面パーツ500〜600円)

■ 総金額2000円程度でできる!

■ 電子工作の技術レベルでは初心者レベルでOK。

■ スイッチ・液晶・ブザー・電池ケースくらいしか使わない。あとはワンチップ。

■ インベーダーゲームほか、多数の古典アーケードゲームが移植されている。

■ マイコン入門に最適。Arduinoと高い互換性。


==========

 

<1> 基盤とパーツの入手

 秋月電子等で大半は入手できます。C型などのベーシックなユニバーサル基板にも組めます。

  プリント済基板(PCB)も販売されています。今回はピコソフトさんの互換基板を使ってみました。

 

互換基板 ORANGE-mono1

http://www.picosoft.co.jp/ORANGE-mono1/index.html 

  自作しても難易度は低いのですが、基板のせいで動かないのか、チップへの書き込みミスで動かないのかわからないと困るので、まずはリファレンス機がてら基板を利用させていただきました。

 2機目からはバンバン自作できると思います。また、別に、


工作魂さん

https://twitter.com/porokin


も互換基板を頒布なさっています。ヤフオクなどをチェック!

 

 こちらは、いわゆる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
 

の記事を参照して回避してくださいね。



 さて、今回はここまで!次回はゲームソフトを選んで、チップに書き込みするところまでやります!


(続く)



0 件のコメント:

コメントを投稿