Mira&Luna's nursery lab

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

ATtinyを使った ちびゲーム機を自作しよう。  3回目「プログラムの書き込み」

f:id:miraluna:20180105114819j:plain:w100 Mira
ATtiny85を使ったちびゲーム機を作ろう」
その<プログラム(ソフト)の書き込み>

Arduinoを使って、ちっちゃなゲーム機を自作します。ゲーム機はATtiny85というマイクロコンピュータで制御します。ATtiny85はなんと 1cm四方のちっちゃなコンピュータ。私はこのマイコンを「やっこヒェン」とか「ちびやっこ」って呼んでるの。
               ちびやっこf:id:miraluna:20190421155320j:plain:w100

この子をブレインとして作るゲーム機がこれ。
f:id:miraluna:20190624175253j:plain
縦が5cmで横が7cm。

初代ゲームボーイと比較するとこのちっちゃさ。
f:id:miraluna:20190630182451j:plain

前回、実際にパーツをはんだ付けするハードの作製方法を紹介したので、今回はソフトとしてゲームのプログラムをちびやっこに書き込む方法を紹介します。

<目次>

そのATtiny85ゲーム機の紹介と準備する物
その実機(ハード)の作製(パーツと配線)
その「プログラム(ソフト)の書き込み」 (今回)

プログラム書き込み

〇 ゲームのプログラムは「頂き物
私はプログラミングとかはまったくの素人です。ブックオフで100円で売ってた Javaの初心者向け教本を1冊読んだだけの独学で、保護者のカタリにいろいろ聞きながら電子工作をしています。カタリもプログラミングとはまったく関わらずに生きてきた素人。だからゲームをプログラミングするなんてとてもできません。
今回紹介しているゲームはカナダの Daniel Chanpagneさんが作ったもの。フリーソフトとして公開しているもので、誰でもダウンロードして使っていいんだって。実際に使って紹介したら、本人からお礼のコメントまでもらっちゃった。
ゲームのプロジェクト名はTinyJoyPad
       リンクを貼っておきますね ↓
ダニエルさんのウェブページ「Arduino Collection」。

〇 ATtinyを使うための準備

Arduino」にはいろいろな種類があるけれど、今回は「Arduino UNO」かそれの互換機を使う想定で話をします(といっても、どのArduinoでもATtinyを使えるようになると思うけど)。私のArduinoは電子パーツのお店マルツさんが販売している互換機「Maruduino」です。Arduino UNOと同じように使えます。

  これ。  Maruduino ↓        Arduino UNO のお買い物ページ ↓
  f:id:miraluna:20190511195022p:plain:w250         

Arduino(Mauduino)には「ATmega328(みつは)」というマイクロコンピュータが使われていて、ここにプログラムスケッチを書き込んでいろいろな制御を行うの。でも「みつは」は28本のpinがあって、ちびやっこは8本しかpinがない。だからマイコンを挿し換えてもそのまま使えるわけじゃない。そこでArduinoを経由してパソコンとちびやっこをつなぐ配線が必要になるの。
それともう一つ。Arduinoを使うとき、パソコン上では「Arduino IDE」というツールを使うんだけど、その中に「どの種類のArduino(ボード)を使うか」という選択肢があるの。でも初めはそこに「ATtiny85」用のボードの選択肢が用意されていないの。だからArduino IDEATtiny85のボードを用意する必要がある。
その配線ATtiny85のボードについて記事にまとめたので、まだ準備が整っていない方はまずはこちらを参考にして準備をしてくださいね。
  こちら → 🎀ATtiny85を使えるようにする🎀


〇 画面(有機ELディスプレイ)を制御するライブラリを用意する

OLED(有機ELディスプレイ) f:id:miraluna:20190624180717j:plain:w200

これがゲーム機の画面になるディスプレイ。
I²Cという接続方法で、マイコンとは2本の線でつなぐ。
でもつなげばすぐに使えるわけじゃなくて、これを制御するためのライブラリが必要なの。
   ライブラリについての説明や扱い方はこちらを参考にしてね
     こちら →「GPSロガーのライブラリの準備

ディスプレイを制御するために使用するライブラリはダニエルさんのページに用意されているから、それを使わせてもらいましょう。
制御チップは「SSD1306」という名前で、ライブラリは「ssd1306xled」という名前です。

ダニエルさんのページ
f:id:miraluna:20190706174518j:plain
ピンクの〇で囲んだところからプログラマたちの集うGitHubの「ssd1306xled」のページに入れます。

GitHubの、ディスプレイを制御する「ssd1306xled」というライブラリがあるページ
f:id:miraluna:20190706174514j:plain
オレンジの〇で囲んだところからダウンロードできます。
ダウンロードしたものはプログラムファイルの「Arduino」の「libraries」の中に入れるか Arduino IDE にインストールします。やり方は上のリンク「GPSロガーのライブラリの準備」を参考にしてください。


〇 ゲームプログラムのダウンロード

さあ、ATtiny85への書き込み配線とボードの準備、それからディスプレイの制御ライブラリの準備ができたらいよいよゲームのプログラムをダウンロードしましょう。
これは簡単よ。
まずはダニエルさんのTiny Joypadのページに移動します。
     リンク → Tiny Joypad
そこにはいろんなゲームがあるから、好きなものをダウンロードしましょう。「Download」って書かれてるからすぐに分かると思う。
どんなゲームがあるのかはこの記事の1回目でも紹介しました。
                 → 1回目「紹介と準備」
ダウンロードしてファイルを解凍すると Arduino file で開けるファイルがあると思う。なければ「プログラムから開く」でArduino file で開けるものがあると思う。ファイルを開いてArduino IDE が起動したら、それがゲームのプログラム。それをちびやっこ(ATtiny85)に書き込みましょう。

〇 ちびやっこへのプログラムの書き込み

<書き込み手順>
 Arduino IDEの「ツール」から「ATtiny85」を選択する。
        選択肢にない場合は(〇 ATtinyを使うための準備)へ戻る
 「ツール」の「Clock」を「16MHz(internal)」もしくは「16MHz(PLL)」にする。
 「LTO」を「Enabled」にする。
 「ブートローダを書き込む」を押してブートローダを書き込む
 までと同じ設定にして「マイコンボードに書き込む」
      ライブラリがない場合は(〇 画面を制御するライブラリを用意する)へ戻る

うまく書き込めたらあとはちびやっこをちびゲーム機に搭載するだけ。
(ATtiny85を使うために「ATTiny Core」を使った人は、書き込み装置を「Arduino as ISP」ではなく、「Arduino as ISP(ATTinyCore)」にするとうまくいくかも。)


これでついに......

f:id:miraluna:20190624175253j:plain
   完成!(∂. ∂🎀/


いくつかのちびやっこにいろんなゲームを入れておけば、ソフトカセットみたいに挿し換えるだけで違うゲームが楽しめちゃう🎀
          f:id:miraluna:20190625192352j:plain:w250

一緒にはんだごてを手にして、ATtiny85ちびゲーム機を作ってみませんか?

作製・紹介はミラでした。
f:id:miraluna:20181215104752j:plain:w100 Mira



            

<目次>

そのATtiny85ゲーム機の紹介と準備する物
その実機(ハード)の作製(パーツと配線)
その「プログラム(ソフト)の書き込み」 (今回)