部品の選定、基板の設計をすべて自分で行った携帯ゲーム機、HACHIBAR(はちばー)を紹介します。
<投稿者:inajob>
社会人になってから電子工作を始めました。ここ最近RakuChordという電子楽器を通販しています。(現在は売り切れ中)自宅に激安の3Dプリンタがあります。
これは何?
HACHIBAR(はちばー)はモバイルゲーム機です。
- 4cm×10cmくらいのサイズ 厚さは2cm程度
- 8×16のドットマトリクスLED
- 十字キーとA,Bボタン
- スピーカー
- CR2032による動作
- Arduinoと同じATmega328
- USB書き込み
初回の作成で、まだまだ問題も多いのですが、もう少しうまく改良出来たら販売もしてみたいと考えています。
実際に動作しているところ
HACHIBAR 書き込みが安定してきたのでトライアンドエラーしやすくなった。
— ina_ani (@ina_ani) 2019年6月19日
横スクロールで文字表示 pic.twitter.com/C02z6jLIQ5
基板設計
実はこのHACHIBARの設計のほとんどは ikkeiさんの「ちっちゃいーの」を参考にしています。もっと歴史をさかのぼると、Charlieplexingという少ないI/Oピンで多くのLEDを駆動させる方式が元となっています。(興味のある人はぜひ調べてみてください)
基板はFusionPCBの$7.9基板サービス(10cm×10cmの基板5枚を送料込みで$7.9で作ってくれる)を利用しようと決めていたので、10cm×10cmの大きさに収めようと考えました。一通り部品を選定し並べてみたところ、なんとか10cm×10cmに3枚並べられるサイズとなったので、いわゆる「面付け基板」としました。おかげで$7.9(送料込み)で15枚の基板を作成できました。
部品選定
小型化と、回路設計を簡単にするために、ほぼ部品を表面実装パッケージとしました。特にこだわった部品について紹介すると・・
シリアル変換IC「CH340E」
一般的に安いUSBシリアル変換ICとしてよく使われるのは「CH340G」ですが、あえて今回「CH340E」を選んだのは、パッケージの小ささと、周辺部品の少なさが理由です。(はんだ付けの際に小さすぎて泣くことになるわけですが、、)
ドットマトリクスLED
普通のものより一回り小さい2cm×2cmのもの(とてもかわいい)
タクトスイッチ
ゲーム機によさそうな静音タクトスイッチ
マイクロUSB端子
もげにくそうなスルーホール端子のあるやつ
といった具合です。今回は無謀にも部品が手元にない状態で設計を行ったので、基板と合わせてAliExpressで部品を購入しました。すべてが手元にそろうのに3~4週間ほどかかるくらいかかるので、気長に待ちます。
組み立て
まぁはんだ付けするだけなのですが、USBシリアルICの「CH340E」とマイクロUSB端子はピッチが狭いため難しかったです。また、ここで残念なバグもたくさん発見しました。
CH340Eの電源ピンが電源につながっていない(致命的!!)
CH340Eの電源ピンからジャンパして無理やり電源とつなぎ動作を確認しました。
LEDをつけるとCH340Eが動かなくなる(致命的!)
ICの近くのおまじないコンデンサに並列させて10uFの電解コンデンサを取り付けることで安定しました。
ハードウェアのバグは、作ってしまったものに関しては、もうどうしようもないのでとにかく悲しいです。まぁ回避策があるだけマシですが。
ケースの作成
ケースがないと持ちにくいのでFusion360をつかってちゃちゃっとケースを作成します。家に3Dプリンタがあるので、印刷を指示して寝てれば朝になれば完成です。
ソフトウェア開発
とりあえず、文字を表示するソフトを書いて動作を確認します。今回Charlieplexingで配線しているため、制御は少しややこしくなります。ややこしい部分を関数に逃がすことで、比較的簡単にゲームが作れるように工夫が必要でした。
最後に
「自分でゲーム機を作る」というのは非常に楽しいです!「作るってどのレベルから?」という話にもなるのですが、HACHIBARのようにハードウェアから自分で設計することで、ゲーム機としてのすべての部分を自分でデザインすることができます。
「でもお高いんでしょ?」と思われるかもしれませんが、今回のHACHIBARの製作費は原価だと15枚で5000円もしません。(もちろん時間は無限にかかりますが・・)ぜひ皆さん自分で設計したゲーム機で自分のゲームを作って遊ぶという究極の体験に足を踏み入れてみませんか?
<投稿者:inajob>
社会人になってから電子工作を始めました。ここ最近RakuChordという電子楽器を通販しています。(現在は売り切れ中)自宅に激安の3Dプリンタがあります。