ゲーム機を「買う」のではなく「作る」ことにしました。
作ったきっかけ
小学生の頃、豆電球とアルミホイルで「物理的なゲーム」を作ろうとして撃沈しました。
結局その後はプログラミング(Visual Basic)に夢中になりました。
うん十年後の今、子ども(4 歳)が家の中の古いゲーム機を見つけて「ゲームやりたい!」と言うようになりました。
ただ、この年齢でゲームをやるのは心配だし...でも何も無いのも寂しい。
そこで思い出したのが Raspberry Pi です。
さらに「知識不足は生成 AI にフォローしてもらえばいい」と思いつき、ChatGPT に壁打ちしまくった結果...
「これならいけそう!」となり、ゲーム機づくりがスタートしました。
完成したもの
正面から見るとこんな感じ。シンプルですがそれなりに整っています。
フタを開けると…正直「頑張りました」としか言えません。
使用した主な部品
部品は 「接続しやすいこと」「サイズ感が合うこと」 を基準に ChatGPT と一緒に選定しました。
購入先は マルツオンライン です。
| 部品 | 型番 |
|---|---|
| コンピュータ | Raspberry Pi Pico 2 WH |
| ディスプレイ(ゲーム画面) | Adafruit 902 (HT16K33 8x8 LED マトリクス) |
| ディスプレイ(数字表示) | Adafruit 5599 (HT16K33 4 桁 7 セグ LED) |
| ボタン | NKK スイッチズ LP01-15CCKNS1M / LP01-15CCKNS1R |
| ロータリーエンコーダー | アルプスアルパイン EC12E1220406 |
| ケース | タカチ電機工業 SW100B |
特に表示については HT16K33 を利用することで少ない配線が実現できるので、物理的な作業が苦手な自分にはとても相性が良かったです。
ソフトウェアと配線
コードは GitHub に公開しています:
CircuitPython (バージョン: 9.2.8) を使用しました。
ピンと接続部品の対応はこんな感じです(GND は省略):
- Adafruit 902
- GP17 (SCL)
- GP16 (SDA)
- 3V3_OUT (VCC)
- Adafruit 5599
- GP15 (SCL)
- GP14 (SDA)
- 3V3_OUT (VCC)
- LP01-15CCKNS1M
- GP18 (N.O.)
- LP01-15CCKNS1R
- GP19 (N.O.)
- EC12E1220406
- GP10 (A)
- GP11 (B)
ゲーム内容の紹介
2025/09/06 時点で以下を実装済みです。
- ボールが跳ねるだけ(ゲーム未満…)
- 落ちてくるドットを避ける
- ブロック崩しっぽいもの
工夫したポイント & 学び
ケース加工は「ドリル+ニッパー+ヤスリ」
最初はプラスチックカッターで挑戦したものの、傷だらけになり失敗しました。
ケースを買い直し、最終的には「穴をドリルで開ける → ニッパーで切る → ヤスリで整える」に落ち着きました。
ヤスリが筋トレレベルに大変でした…。
まずはブレッドボードで検証
いきなりケース組み込み始めると、いざ動かしたときに直すのが大変になります。
ブレッドボードで動作確認して動画に残しておくと、配線トラブルの切り分けが速くなります。
生成 AI の使いどころ
- 部品選定の壁打ち
- CircuitPython を利用したサンプル生成
- 配線方法の確認
特に「どの部品を選べば無理なく動くか」は AI に聞きいて調べてを繰り返しました。
ソフトウェア管理
-
uvでライブラリを固定 - 独自に用意した PowerShell スクリプトでコード & 必要ライブラリをラズパイに一発コピー
小さな工夫ですが、再現性がぐっと上がります。
画面チラつき防止の工夫
最初は毎フレーム LED マトリクスを強制更新していたのですが、目に見えてチラつきました。
そこで「前回の状態から変化があったときだけ更新」するように変更。
これで安定した表示になり、目にも優しいゲーム画面になりました。
まとめ
まだ子どもには解禁していませんが、親戚の子にはブレッドボード段階から遊んでもらえました。
「LED マトリクスでもここまで遊べる!」と実感しています。
将来的に子どもがプログラミングに興味を持つきっかけになれば嬉しいし、この記事が「Raspberry Pi Pico で何か作ってみようかな」というきっかけになれば幸いです。




