日経ソフトウエア2021年9月号(ゲームボーイ特集完結編)

雑誌「日経ソフトウエア2021年9月号」で2件ほど記事を書かせて頂きました。1つは特集記事「ゲームボーイで動くゲームを作ろう 第2部」。もう一つは新連載の「IoT時代の電子工作」です。普段、日経ソフトウエアは24日あたりに発売するのですが、今回は20日発売のようです。

f:id:nicotakuya:20210617030247j:plain

自作したゲームボーイ用カートリッジ

ゲームボーイ特集は全16ページです。前回はGBDKを使って、ボタン入力のプログラムを作成しました。今回はパズルゲームを作り、さらに自作のカートリッジ基板に書き込んで実機で動かす方法まで紹介しています。上の写真は読者プレゼント用のカートリッジです。初代ゲームボーイスーパーゲームボーイで動作チェックしました。

 


www.youtube.com

 

f:id:nicotakuya:20210721195052j:plain

読者プレゼントがゲームボーイのカートリッジ

巻末の読者プレゼントのページです。

 

f:id:nicotakuya:20210721195012j:plain

最新号、日経ソフトウエア2021年9月号

ちなみに雑誌の表紙にどこにも「ゲームボーイ」と書かれていませんが、ちゃんと載ってます。間違って別の号を買ってしまわないようにご注意ください。


掲載しているプログラムは雑誌の公式ページで配布しています。

基板のCADデータは筆者の個人サイトで公開しています。 

sites.google.com

 

(追記)誤植のお詫びと訂正

nicotakuya.hatenablog.com

トラ技Jr.のAI関連のWeb記事

トラ技Jr.で「Jetson AI Specialist」のWeb記事を書かせて頂きました。これで「Jetson AI Specialist」に認定してもらいました。

 

toragijr.cqpub.co.jp

 

f:id:nicotakuya:20210714151337j:plain

100円玉を数える装置

提出課題として、100円玉を数える装置を作りました。骨組みの部分にはLEGO education SPIKEを使ってみました。

 

PCエンジン用ゲームパッド・モジュールの自作

f:id:nicotakuya:20210622120632j:plain

PCエンジンゲームパッド・モジュール

 (miniではない)PCエンジン用のゲームパッドを自作してみました。ゲームパッドの形状をしていないので、正確にはゲームパッド・モジュールです。

PCエンジンゲームパッドは中古で2000円くらいで売っているので、自作のメリットはないと思いますが、作りたかったので作ってみました。

 

f:id:nicotakuya:20210622120856j:plain

純正ゲームパッド

まず最初に仕組みを調べるため、純正のゲームパッドを分解します。

この時代の製品はメンテしやすいので助かります。

 

f:id:nicotakuya:20210621124724j:plain

内部。基板の部品面(ボタンの反対側)

内部の様子です。メガドライブと同じ「74HC157」が入ってました。発売したのはメガドラより先ですが。

基板の左側に「74HC163」と書かれた空白部分があります。これは気になる。

 

f:id:nicotakuya:20210622120101p:plain

基板のハンダ面(ボタン側)

見たところ、74HC163を付けると、ボタンの連射機能が追加されるようです。なんという親切設計。信号が衝突するので、J701/J702を外す必要があります。あと、速度設定用のスライドスイッチも必要ですね。

f:id:nicotakuya:20210622230131p:plain

回路図

仕組みがわかったので、回路図に書き写してみました。

回路はXHE-3によく似てます。こちらの場合は「~ST」端子が、7番ピンにつながっています。

XHE-3の場合は「~ST」がLowに落ちっぱなしで、7番ピンがDsub9pinの8番ピン(COMMON)につながっている点が違います。

 

f:id:nicotakuya:20210622120028p:plain

CADデータ

基板のCADデータを作ってみました。ボタンを付けず、入力用の端子を出すだけにします。基板の右側にはピンソケットと集合抵抗が付きます。

端子をGNDにつなぐとボタンがオンの状態になります。

「U」「D」「L」「R」が上/下/左/右ボタンです。1、2が Iボタンや IIボタン。

「セ」がSELECT、「ラ」がRUNボタンです。

「G」がGND、「V」がVCC(+5V)です。 

 

f:id:nicotakuya:20210620141144j:plain

プリント基板

プリント基板ができました。

 

f:id:nicotakuya:20210622120503j:plain

完成

組み立てるとこんな感じ。

74HC157は千石電商の地下で売ってます。8pinのミニDINプラグも千石電商で売ってます。

 

f:id:nicotakuya:20210622120632j:plain

コネクタが挿しにくい

ここで問題発生。 ミニDINプラグが太すぎて根本まで入りません。PCエンジン側の穴が小さいです。

しかたないので、プラグの外側のチューブを完全にハメ込まない状態で差し込んでます。

 

f:id:nicotakuya:20210622170329j:plain

PCエンジン用の自作プログラム

ボタンの動作チェックをしないといけないので、PCエンジン用のソフトを自作しました。

ボタンを押すと、それに対応するビットが0→1になります。GitHubで公開中。

https://github.com/nicotakuya/PCE_padtest

 

 

f:id:nicotakuya:20210623134821j:plain

フラッシュメモリに書き込み

ビルドしたら、ROMイメージを自作のメモリカードフラッシュメモリ)に書き込みます。

 

f:id:nicotakuya:20210623120254j:plain

テスト中の様子

PCエンジンの実機で動作テストしている様子です。

この場合、上ボタンの端子をGNDにつないでいるので、「UP」の項目が「1」になってます。

 

f:id:nicotakuya:20210623230503j:plain

ゲームボタンとレバーを接続

ゲーム用のボタンとレバーを付けるとこうなります。使いまわしなので、6ボタンになってますが、つながってるのは2ボタンだけです。

 

f:id:nicotakuya:20210624084945j:plain

XE-1 PROを接続

(2021/6/24追記)
アタリ仕様ジョイスティック(XE-1 PRO)を接続した例です。

  

sites.google.com

 

ガラスエポキシ基板の切断

f:id:nicotakuya:20210620141552j:plain

P板.com で複数の基板を一度に作ると、面付け作業と基板のカット代で5000円くらい値上がりしてしまいます。それを回避すべく、1枚の基板として作って自分で切断するという方法を試してみました。

上の写真では4枚の基板を1枚にまとめてみました。切断することを考えて、外形をデザインします。すき間を入れてます。

製造のルールにより、基板の両サイドでつなぎ目を5mm以上残す必要があります。

 

f:id:nicotakuya:20210620141959j:plain

紙フェノール基板だったらカッターで傷付けてから折るだけです。

しかし、ガラスエポキシ基板だと、その方法では切れません。

最初にミニルーター用の丸のこ(電動ドリル/ドライバーに装着)で切断を試みましたが、刃が木工用だったので、基板にちょっと傷が付くだけでした。ガリガリと騒音を出しまくって近所迷惑です。

 

f:id:nicotakuya:20210620161541j:plain

1.5mmのドリルで穴を空けてから折ってみました。一応、4枚のうち3枚だけ分離できましたが、バリが残ってます。折る時に粘りがあって、切断面が白くなります。

 

f:id:nicotakuya:20210621092632j:plain

そこで使ってみたのがダイヤモンドカッター。これは13年前にダイソーで売っていたものです。昔のダイソーはミニルーターやハンダこてまで売ってました。

 

f:id:nicotakuya:20210621093124j:plain

本当に切れるのか半信半疑でしたが、問題なく切れますね。あっという間に基板が粉だらけになります。ディスクの側面を当てて、ヤスリがけもできます。最初からこれでやればよかった。

切った時に出る粉はガラス繊維で、肺に入ると有害です。マスクして作業した方がいいです。

 

f:id:nicotakuya:20210620141801j:plain

最終的にこうなりました。バリもなくなりました。
これで、製造コストを5000円ほど節約することができました

 

 (2024/04/11追記)

久々にダイヤモンドカッターを発見したので買ってみました。

軸と刃が別々だったものがセットになっていますので、実質半額です。

 

WonderWitch用の通信ケーブルの自作(update)

nicotakuya.hatenablog.com

前回の続きです。

WonderWitch用通信ケーブルを自作します。

f:id:nicotakuya:20210620141015j:plain

プリント基板化

前回はブレッドボードの回路でしたが、それをプリント基板にしてみました。形状が正確な四角形じゃなくて、ガタガタですが、気にしないでください。

 

f:id:nicotakuya:20210621001723p:plain

回路図を修正

回路図をちょっとだけ直しました。TXDに付いていた抵抗を取り去りました。

あと、プルダウン抵抗を追加しました。スワン側にケーブルが差さっていない時、USB側のRXDにゴミデータを流さないためのものです。

 

f:id:nicotakuya:20210621000849p:plain

CADデータ

基板のCADデータです。

シンプルなので、ユニバーサル基板でも作れます。

 

f:id:nicotakuya:20210620161601j:plain

組み立て完成

完成すると、こんな感じ。

ワンダースワンは3.3Vで動くので、USBシリアルのI/Oは3.3Vモードに設定します。

 

f:id:nicotakuya:20210620234754j:plain

通信中

動作中の様子です。

問題なくTransMagicが動きました。