概要
PhantomOX は、4手目を置くと1手目が消える三目並べです。
名刺基板 & 完成図
私と名刺交換する時に「基板名刺ありますか?」と聞くと入手できます。
(リアルのものづくりイベントに参加する際はX(@SukekeLab)で告知する予定です。)
プレイ動画
遊び方
このゲームは、○のプレイヤーと×のプレイヤーに分かれて、各々の記号を3つ並べた方が勝つゲームです。 4手目を置くと、1手目に置いた手が消えるので、記憶力も求められる難しさがあります。 勝敗は「最新の3手」が縦or横or斜めに3つ並んだ時です。
- ゲームの開始
電源を入れると、2人プレイモードで起動します。
- モード選択
本ゲームは4つの遊び方があります。
- 2人プレイモード
- 1人プレイモード VS CPU(Easy)
- 1人プレイモード VS CPU(Medium)
- 1人プレイモード VS CPU(Hard)
電源ON後、デフォルトでは2人プレイモードになっていますが、 下図のボタンを同時押しすることでモード切り替えができます。
たとえば1人プレイモード VS CPU (Hard)で遊ぶ場合は⑥と⑨の位置にあるボタンを同時押しします。
- プレイ開始
遊びたいモードに切り替えた後は、あなた(1P)の手番なので、好きなボタンを押しましょう。
1人プレイの場合、あなたが赤LED、CPUが緑LEDです。 あなたがボタンを押した後、すぐにCPUのターンが実行されるので、テンポ良くゲームを進められます。
2人プレイの場合、先行が赤LED、後攻が緑LEDです。
CPU(Hard)に満足できなくなった上級者の方は、2人プレイを1人で遊ぶのもおもしろいです。
- ゲーム終了
最新の3手で縦or横or斜めに3目並んだ方の勝利です。
3手並んだ部分を点滅する勝利アニメーションが流れた後、初期化され、もう一度遊べる状態になります。
さあ、カチカチしたボタンの感触を楽しみながら、上達を目指しましょう!
補足1: ゲーム途中でのリセット方法
①と②のボタンを同時押しでリセットできます。
必要な部品
全て秋月電子通商で購入可能です。
合計672円。
※電子部品は10個セットや100個セットでのセット販売が多いですが、下表は1セットの価格ではなく、部品1個あたりの価格で記載しています。
※2025/9/4時点の情報です。
No. | 部品 | 画像 | 単価[円] | 個数[個] |
---|---|---|---|---|
1 | STM32マイコン STM32C011F4P6 | ![]() | 80 | 1 |
2 | 5mm赤色LED OSR5JA5E34B | ![]() | 10 | 9 |
3 | 5mm緑色LED OSG8HA5E34B | ![]() | 10 | 9 |
4 | 黒色タクトスイッチ DTS-63-N-V-BLK | ![]() | 15 | 9 |
5 | 330Ω抵抗 CF25J330RB | ![]() | 1.8 | 9 |
6 | 22Ω抵抗 CF25J22RB | ![]() | 1 | 9 |
7 | ボタン電池基板取付用ホルダー CR2032用 CH25-2032LF | ![]() | 100 | 1 |
8 | 分割ロングピンソケット FHU-1x42SG | ![]() | 1.9 | 6 |
9 | スライドスイッチ 6011S1M1RE-G | ![]() | 100 | 1 |
10 | ボタン電池 CR2032 | ![]() | 40 | 1 |
その他、実装に必要になる道具
flash-memoryのページと同様です。
代用できるものがなければ購入してください。
組み立て方法
- 部品の準備: 上記部品リストを参考に、必要な部品を揃えます。
- はんだ付け: 背の低い部品からはんだ付けしていきます。
- STM32マイコン ※はんだ付けが難しいので下記手順でのはんだ付けがおすすめです。
- スタンドルーペを使用して基板上のマイコン設置用のランド(マイコンの各ピンが載る銀色の部分)を確認します。
- 基板上のマイコン設置用のランドにφ0.3mmのはんだをあらかじめ少し付けます。
- STM32マイコンをピンセットで基板上のマイコン設置用ランドの上に固定しながら、350度に加熱したはんだごてでマイコンのピンを上から押し当ててはんだ付けします。
- ※1 マスキングテープでの固定だとマイコンの片側しか見えず失敗しやすいため、ピンセットでズレがないか確認しながらはんだ付けするのがおすすめです。
- ※2 はんだ付けするピンは4つ角を対角線上に順番に止め、固定されていることを確認してから残りのピンを1ピンずつはんだ付けします。
- 抵抗(22Ω、330Ω)
- タクトスイッチ
- スライドスイッチ
- ピンソケット
- LED(赤、黄緑)
- ボタン電池ホルダー
- STM32マイコン ※はんだ付けが難しいので下記手順でのはんだ付けがおすすめです。
- 動作確認:
- STM32CubeProgrammerでSTLINKを経由してマイコンに接続できるかどうかで、マイコンのはんだ付けが正常に行えているか判定します。 詳細はflash-memoryのページと同様です。
プログラムの書き込み方法
-
書き込み環境の準備:
- STM32CubeProgrammerの画面右上の[接続]ボタンを押して、STM32CubeProgrammerからSTLINK経由でマイコンに接続します。(先ほどの動作確認でここまでは完了しているはずです。)
-
ビルドファイルのダウンロード:
- PhantomOX.elfをダウンロードし、適当なフォルダに格納してください。
-
ビルドファイルの書き込み:
- STM32CubeProgrammerの[消去&プログラミング]タブの[ダウンロード]欄で、先ほどダウンロードしたビルドファイルのパスを指定し、[プログラミング検証]にチェックを入れ、[プログラミングの開始]を押すと、マイコンにプログラムが書き込まれます。正常に完了するとログに「ダウンロードが正常に検証されました」と表示されます。
※↓flash-memoryのページの画像を引用しています。ファイルパスはPhantomOX.elfが参照されるようにしてください。
-
動作確認:
- STLINKと接続されているジャンパワイヤ―を基板から取り外し、電源を入れ直してください。正常にプレイできるようになっています。
以降は名刺基板を自作したい方向けの情報です。
(参考)開発情報
開発に使用した主なツール
- CADソフト KiCad Version 9.0
- 統合開発環境 (IDE) VSCode:1.100.2
- STM32用プロジェクトビルダー STM32CubeMX(コンパイラのCmakeを含む):6.14.0
- VS Code連携ツールキット STM32CubeCLT:1.18.0
- デバッガ/プログラマ STLINK-V3MINIE
- VSCodeのSTM32開発用拡張機能 STM32 VS code extension:2.1.1
- マイコンの生存確認・実装不良の確認・プログラム書き込みツール STM32CubeProgrammer:2.19.0
- 通電確認ツール/3V電源 ANALOG DISCOVERY2
STM32CubeIDEではなくVSCodeで開発すると、Github Copilotが利用できるのでおすすめです。
特徴
- コンパクトな名刺サイズ(H91mm*W55mm)
- 入手性の高い20ピンSTM32マイコンで実現するためのピン数節約技術
- 行,列の走査による入力確認
- 行,列の走査によるLED点灯
- ボタン電池で駆動するLED制御
- 3Vのボタン電池で駆動できるLED(赤,黄緑)を使用
- フルカラーLEDは青と緑のLEDがボタン電池での駆動に不向きなので利用せず
- 秋月電子通商で入手可能な部品のみで構成
回路図
[右クリック]⇒[新しいタブで画像を開く]で拡大して閲覧できます。
PCBレイアウト
今回もパーツが名刺サイズに収まってホッとしました(笑)
制約があるからこそ楽しい工作になっています。
flash-memoryのページの時もそうでしたが、やはり自動配線だと本作品で使用しているマイコンのGND配線が細すぎて引かれなかったので、手動での配線が必要になりました。
3Dプレビュー
部品が綺麗に並んでいると、芸術感が出ますね。
4手目が消える3目並べを遊びたいだけなら、既存のスマホアプリがおすすめです。
この作品は電子工作やソフトウェア開発に興味を持つきっかけとしておすすめです。
手作業での作りやすさを重視して表面実装型のLEDは使ってなかったのですが、STM32マイコンが既にだいぶ小さいので、今度、表面実装型のLEDを使う作品も作ってみようと思います^^