Real Tiny Arcade (Space Invader)作りました | SMD工房

SMD工房

SMD工房で作ったデジタルガジェットをお伝えします

いつもありがとうございます

SMD工房です

 

 

2019年のGWも終わりですね。

これまでの活動内容を報告していきたいです。

 

■編集履歴  

20190506 23:00 動画のリンクを貼りました

 

 

■作ったもの: Real Tiny Arcade (Space Invader) V1.0

 

 

<作成のきっかけ>

Tiny Arcade (Space Invader)をAmazonで購入したところ、昔のイメージと違う箇所があり、リアルではないと感じました。値段が値段だけに仕方のないことではあります。

だったら、自分で作りましょう!

LET'S MAKE!

 

 

<違和感1:液晶の黒浮き問題>
Tiny Arcadeは液晶で作られているため、"黒浮きが酷い"と感じました。

黒が灰色になっている画面は許せないです。液晶だから仕方ないんですけど・・・

昔のゲームセンターにあったSpace Invaderは”ブラウン管”で作られていたため、黒浮きは発生せず、黒は"真っ黒"だったのです

 

<違和感2:インベーダーのサイズ問題>
画面に対してインベーダーのサイズが大きすぎます。

液晶の解像度が低い為、リアルサイズだとインベーダーが潰れてしまうことから、苦肉の策でインベーダーのサイズを大きくしたのだと理解はできるのですが、何せ、違和感があります。

Space Invaderの雰囲気は出ているのですが、どうしても本物と違い過ぎると思ってしまいます。

Tiny Arcade(Space Invader)は、タイトーのライセンスを取得して製作しているのですが、コストダウンには勝てないということですね・・・

 

 

 

<黒浮き対策>有機EL(OLED)を使用します

液晶を使う限り、黒浮きから逃れられません。

そこでOLEDを使う事にしました。黒は"真っ黒"になります!

 

<解像度対策>本来の解像度(256×224を超えるもの)のOLEDを使用します

Dot by Dotで表示できれば本物と同じサイズにできます

 

 
 

<作成方針>

・基板サイズ:  Tiny Arcadeのケースを使用するため、ケースに入る基板を起こしました

・基板の形:    ディスプレイの台座に合わせ基板の形を決めました

・使用するマイコン: MIPI I/F搭載のマイコン

  高解像度OLEDはMIPI I/Fを使用するものが殆ど(DualSPI I/Fのものもありますが解像度が240×240と微妙に足りません)

  FPGAを使用することも考えましたがVRAMは外付けになってしまうため、全体として大きくなってしまいます。

 従って、今回はMIPI I/F搭載のマイコン(STM32)を使うことにしました

  ↓

 入手できるLQFPサイズで可能な限り小さいSTM32を選定したところ

  -F4 : 入手できないため不可です

  -F7 : 176pinが最小のため、基板に載りません。不可です

  -L4+: 100pinでRAMが640KBあり、VRAM確保には十分なサイズです

ということでSTM32L4+にしたのですが、Clock 120MHzでキャッシュも無いのでパフォーマンス的に若干の懸念もあります

 

 

 

<主な部品のコスト>

・OLED : 約5000円

・CPU : 約2000円

とても高額な材料費となりました。これだけでTiny Arcadeが3つくらい買えてしまいます

 

 

 

<失敗談>

OLEDを1枚割りました・・・・

完成直前、動作確認もし、あとは組み立てのみ!
と慢心している時に、最後の電池BOXをハメ込む際に、基板とケースの間にOLEDが挟まっているのを気づかず、圧力でパキッとやってしまいました

 

 

 

<感想>

・初STMでした。STM32CubeMXのソース生成は便利ですが、サンプルソースとの整合性が十分でないソースが生成されるので、混乱の元となりました。(とは言えR社の開発環境よりは実装が簡単に済みます)

・CPUが高性能で、DMAが半分転送終わった時に割り込みが入るなど、痒い所に手が届く機能が満載です

・とても素直な動きをするCPUと思いました。エラッタはあるようですが、今回は致命的な問題はありませんでした。(M社のCPUはエラッタなのかバグなのか解析に多大な時間を費やします)

 

 

 

<その他>

OLEDはダイヤモンド配列のため、実はDot by Dotが完全には表示できていません。解像度は320×320あるのですが、若干潰れて表示されるため、完璧とは言えないものの、雰囲気は本物そっくりになりました

 

 

 

<変更前: Tiny Arcadeの液晶画面>
背景が黒ではなく、かつ、インベーダのサイズが画面サイズと比べて大きすぎです

 

 

<変更後: OLEDの画面>

背景が黒いです。インベーダのサイズもオリジナルサイズです

 

 

<Tiny Arcadeのディスプレイの台座>

 

 

<作成した基板(裏)>上記Tiny Arcadeのディスプレイの台座の形を基に作りました

 

 

<作成した基板(表)>

 

 

<部品を実装した基板>手はんだです

 

 

<デバッグ中の画面1>

 

 

<デバッグ中の画面2>

 

 

<OLED割りました(涙)>高いのに・・・

 

 

<OLED ダイヤモンド配列 >Dot by Dotが完全には表示できていませんが、雰囲気は本物そっくりになりました

 

 

 

<Real Tiny Arcade 動画>