ArduinoアーケードLEGOゲームボックス
コンポーネントと消耗品
> ![]() |
| × | 1 | |||
| × | 1 | ||||
![]() |
| × | 4 | |||
![]() |
| × | 1 |
必要なツールとマシン
> ![]() |
|
アプリとオンラインサービス
> ![]() |
|
このプロジェクトについて
子供がいる場合は、子供用に購入したレゴセットで行ったのと同じ問題に直面している可能性があります。彼らは集まって遊んでいますが、しばらくするとセットはレンガの単一の山に変わります。子供たちは成長し、あなたはこの山をどうしたらいいのかわかりません。
不要なレゴブロックをリサイクルして、アーケードゲームを作成することにしました。
このステップバイステップガイドは、ゲームを再現可能で非常に低コストにするための数か月の作業の結果です。ほとんど誰でもこのプロジェクトを繰り返すことができます!コードは、依存関係がなく、Arduinoボードでコンパイルされるように記述されています。そしてもちろん、ゲームは私たちの子供たちによって集中的にテストされています:-)
このゲームは、以前に公開された他の多くのゲームとどのように異なりますか?
まず、5つのゲームが組み込まれています:
- 記憶ゲーム(「サイモン曰く」のような、タッチミーゲームに似ています)
- リアクションゲーム(モグラたたきゲームに似ています)
- コンテスト/コンペティションゲーム(2〜4人用)
- メロディーゲーム(幼児や小さい子供向けのプッシュアンドプレイフリーモード)
- ウォーゲーム(大人2〜4人用)
第二に、それは(私たちの観点から)素晴らしいデザインを持っており、簡単に繰り返すことができます。
そして第三に、プラスチックをリサイクルできるので地球に優しいです。
このガイドの最後に、ビデオ形式をご希望の場合に備えて、ステップバイステップのビデオもあります。
ステップ1:パーツリスト <図>


このプロジェクトが気に入っても、不要なレゴブロックが山積みになっていない場合は、900個入りのレゴクラシック10704セットを購入するのが最も簡単です。
このプロジェクトを作成するために必要なアイテムのリストは次のとおりです。
- 1kg(2lb)の不要なレゴブロック(またはMega Bloksなどの別のブランドの同様のレンガ)
- レゴ(または他のブランドの類似品)用の25 x 25cmベースプレート。レゴベースには32x32ドットがあります。お持ちでない場合、基本料金は約3ドルです。オンラインで購入した場合の送料(検索用語「32 25ブロック」)
- 30 x 30 cmの透明なプレキシガラス片(厚さ5または6mm)
- 4 x大きなアーケードスタイルの60mmプッシュボタン(赤、緑、青、黄色をお勧めします)(オンラインストアの検索用語:「60mmアーケードボタン」)。これらは、このビルドの中で最も高価なコンポーネントであり、それぞれ約2ドルです。
- 半径16mmの瞬間押しボタン2個(白と黒をお勧めします)(検索用語:「16mm押しボタン」)
- 電源オン/オフロッカースイッチ27x21mmの取り付けサイズ(4ピンの透明な赤をお勧めします)(検索用語:「ロッカースイッチ16a」)
- Arduino Nano
- 1602LCDディスプレイとI2C接続モジュール
- 2 x 4オーム5Wスピーカー、サイズ30 x 70 mm(他の小さなスピーカーを使用できますが、CAD描画は30x70mmで行われます)
- 8 x 6cmのプロトタイプボードまたは830ピンのブレッドボード
- 2x18650充電式バッテリー(使用済みのラップトップバッテリーからリサイクルできます)
- ダブル18650バッテリーホルダー(検索用語:「ホルダー2 x 18650」)
- TP4056充電コントローラーと放電プロテクター
- 5Vステップアップコンバーター(最小の500mAで十分)
- 小さなもの:いくつかのワイヤー、Mini-USBケーブルまたはdiyプラグ、PCBブレークアウトのMicro-USBソケット、M3ボルト/ナット/ワッシャー、4xトップカバーネジ
- 抵抗器:6 x 100オーム、1 x 1k、3 x 10k
ステップ2:ボックスを作成する <図>



これは、子供に委任できるプロジェクトの最も簡単な部分です。
レゴ32x32ポイントのベースプレートを取り、リサイクル部品を使用して壁を敷きます。合計で約9つのレイヤーが必要です。ランダムな色のレンガの壁が主な焦点となるように、ベースにはライトグレーの色を選択しました。
同様のボックスはありません。レイヤーを作成するときは創造力を発揮してください。小さな部品でもリサイクルしてください-見た目はかっこいいです。不規則な形も見栄えがします。窓、車のフロントガラス、ドア、ボックスを追加します。
ボックスには、少なくとも1つのフルサイズのレゴドアが必要です。これは、ロッカースイッチを壁に取り付けるために必要です。
ステップ3:トップカバーを作成する <図>




トップカバーは5または6mmのプレキシグラス(透明なアクリルシート)で作られています。 CAD図面をダウンロードし、USBスティックに置いて、最寄りのCNCショップに行くだけです。彼らがあなたに代わって製図します。 CAD図面には、ロッカースイッチ取り付けプレートも含まれています(写真を参照)。
トッププレートの仕上げを行う必要があります。サンドペーパーと木製のブロックでエッジの面取りを行います。また、スピーカーと1602ディスプレイを取り付けるための穴を開けます。 1602ディスプレイには、アクリルシートのLCDウィンドウの側面に小さな三角形をフライス加工する必要もあります(写真を参照)。回転工具(ドレメル)と小さなルータービットを使用して、これを半分の深さで行いました。
top-template2.dxf
ステップ4:すべてのコンポーネントをトップカバーに追加する <図>



大きな4つのアーケードボタン、2つのゲーム変更/選択ボタン、2つのスピーカー、および1602 LCD + I2Cモジュールを取り付けます。すべてが背面のM3ネジ+ M3ワッシャーとナットで固定されています。
アーケードボタンを取り付ける前に、LEDライトホルダーを取り外してください。それらを少し変更する必要があります-次のステップを参照してください。
ステップ5:アーケードボタンのLEDを改造する <図>



これらのアーケードボタンは、12Vで動作するように設計されています。これらは、このプロジェクトのデフォルト電圧である5Vで動作しますが、暗すぎます。そこで、アーケードボタンからLEDソケットを取り外し、LEDホルダーを引き出し、抵抗器付きのLEDを取り外しました。 460オームの抵抗器ははんだ除去して100オームに交換する必要があります。完了したら、すべてを組み立て直し、ホルダー付きのLEDをボタンに取り付けました。
ステップ6 :(オプション)コントロールボタンのラベル
2つのコントロールボタンのラベルに気づいたかもしれません。ビルドの最初のバージョンにはそれらがありませんでしたが、2回目のビルドを繰り返したときに追加することにしました。
どちらのボタンも、ゲームの状態に応じて複数の機能を備えています。白いボタンは、選択したゲームを開始するか、一部のゲーム中に選択を確認します。黒のボタンは、選択したゲームを変更するか、ゲーム中に終了します。
<図>
丸いラベルを作成するには、薄いアルミニウムシート(最大1mmの厚さ)、ホールソードリルビット、段付きドリルビット、レターパンチが必要です(写真を参照)。まず、ホールソーを使用して円を切ります。次に、段付きビットで内径を拡大し、レターパンチを使用してラベルを作成します。文字をより見やすくするには、永続的な黒のマーカー(シャーピー)を使用します。
ステップ7:ブレイクアウトボードを作成する
ここには2つのオプションがあります。ブレッドボードを使用してArduinoをブレッドボードにケーブルで配線するか、LCDパネルの背面に小さなブレイクアウトを取り付けます。
<図>
最初のビルドでは、ブレッドボードを使用しました(写真を参照)。 2番目のビルドでは、ブレイクアウトボードの作成により多くの時間を費やすことにしました。機能は変わりませんが、配線が少なくなり、ブレイクアウトはLCDパネルの下に隠れています。
ブレイクアウトボードを使用する場合は、8x6のプロトタイプボードを取り、写真のようにカットします。大きい部分はブレイクアウトに使用され、小さい部分は電源の作成に使用されます。
<図>
このプロトボードにArduinoNanoをはんだ付けします。
ステップ8:接続の配線 <図>

図に従って、いくつかのケーブルを準備し、セットアップ、スイッチ、および接続をNanoに配線します。
<図>
イーサネットツイストペアケーブルを使い始めて以来、プロジェクトの配線をどこから調達するかという頭痛の種を忘れていました。それらは異なる色であり、マルチコアであるため、簡単に壊れることはありません。それらを扱うときに注意する必要があるのは、絶縁体を焦がさないようにはんだ付けを非常に高速にする必要があるということだけです。
<図>
スピーカーへの接続用に100オームの抵抗がどのように配線されているかに注目してください。
接続に関する注意事項:
- Nanoでは内部プルアップ抵抗が使用されているため、黒/白のコントロールボタンはピンD2 / 3から直接アースに接続されています。
- A4 / 5はI2CSDA / SCLピンに接続されています。これは、LCDI2Cモジュールに必要です。
- これらのピンはPWM対応であるため、スピーカーはD10 / 11に接続する必要があります。
- すべてのアース線を簡単に接続できるように、アース線として小さな銅線を追加することをお勧めします(約5本あります)。

ステップ9:ボタンの配線 <図>

すべてのアーケードボタンは、一連の抵抗を介して単一のピンA1に接続されています。 A1は内部アナログプルアップとして設定されています。これは、ボタンに出て行くワイヤーの数を節約するのに役立ったArduinoのあまり知られていない機能の1つです。
したがって、セットアップは次のようになります。A1から1k抵抗を介した最初のボタンまで。 button1からbutton2まで10kまで。 button2からbutton3から10kまで、およびbutton3からbutton4から10kまで。 「閉じる」状態の各ボタンは、地面に短絡します。 LEDの各ボタンにはすでにアースが付いているため、各スイッチの2番目のピンはLEDからアースに接続されています。配線を理解するために図を見てください。
<図>
その時点で、Mini-USBケーブルをArduino Nanoに接続すると、スケッチをアップロードした後にゲームをプレイできるようになります。必要なのは、ゲームをポータブルにするための電源だけです。
ステップ10:バッテリーの取り付け <図>

使用済みのラップトップバッテリーからリサイクルされた18650セルを2つ使用しました。これらは、高負荷のアプリケーションには使用したくない低容量(約600mAh)のものです。デバイスは実際にはそれほど多くの電力を使用しないため、ゲームを数日間実行するにはこれで十分です。
バッテリーはダブル18650バッテリーホルダーに取り付けられており、電源に簡単に取り付けるためのコネクタがあります。
ステップ11:USBソケットエクステンダーの取り付け <図>

ゲームは、分解せずにファームウェアを再充電およびアップグレードできる必要があります。そこで、ブロックの1つにドリルで穴を開けて、Micro-USBコネクタを非表示にしました。
<図>
USBをレンガの壁からArduinoNanoまで延長するために、Mini-USBケーブルを取り、USB-Aの端(大きなUSBコネクタ)を切り取り、ワイヤーを剥ぎ取りました。私の場合、赤/黒は電源で、白/緑はD +/-接続でした。
<図>
D +/-はMicro-USBブレイクアウトにはんだ付けする必要があります。 5Vとアース(赤/黒)は電源を通過する必要があります。
NanoがMini-USBを使用しているのに、なぜMicro-USBブレイクアウトが選ばれたのですか?Micro-USBは家庭のいたるところにあり、電話やその他のデバイスの充電に使用されているからです。したがって、ゲームを充電し、電話ケーブルでファームウェアをアップグレードすることができます:-)
ステップ12:電源を作る <図>

小さいプロトタイプボードを取り、TP4056バッテリー充電器と保護モジュール、さらに5Vブースターをはんだ付けしました。
<図>

TP4056への入力はMicro-USBソケットから行われます。バッテリーケーブルは、B +/-とマークされたTP4056ピンに接続されています。 OUT +/-とマークされたピンはロッカースイッチに入ります。ロッカースイッチから+/-接続は5Vブースターモジュールに入り、ブースター出力からは剥がされたUSBケーブルからの赤/黒のワイヤーが接続されます。
配線を理解するために図を見てください。
ステップ13:マイクロUSBブレイクアウトのエポキシ <図>

レゴブロックのMicro-USBブレイクアウトを固定するためにエポキシを使用しました。硬化後、ソケットは携帯電話にあるものよりも頑丈になるため、子供たちはゲームを充電でき、壊れることはありません。
この部分には速硬化性エポキシを使用することをお勧めします。お持ちでない場合は、樹脂に硬化剤をもう少し加えて、しばらく置いておきます。
ステップ14:ロッカースイッチを取り付け、パワーハーネスを接続する <図>

このスイッチは巨大です。 250Vの主電源電圧用に設計されています。しかし、見栄えがよく、標準のレゴシティのドアに完全にフィットするため、私はまだこのモデルを使用しました。そこで、スイッチを取り付けプレートに挿入し、2本のネジを使用してプレートをレンガの壁に固定しました(壁は事前に穴あけされています)。
<図>

また、ハーネスと、レゴブロックにエポキシ樹脂で接着されたMicro-USBブレイクアウトを最終的に取り付けることができました。コンポーネントをベースに取り付けるために追加のブリックがどのように使用されたかに注意してください。
ステップ15:ふたを閉じる <図>

上部カバーに固定されているArduinoNanoにMini-USBケーブルを挿入し、蓋を閉じます。
壁に4つの穴を事前に開け、4本のネジを使用して上部をボックスに固定しました。
ステップ16:コード <図>

ゲームの最初のバージョンは私が作成し、続いて友人のAlexからの新しい4つのバージョンが作成され、さらに4つのゲームが追加され、コードが完全にクリーンアップされました。また、サウンドにはReybozの作業を使用しました。このコードを使用して生成されるサウンドのレベルは、ArduinoのToneライブラリを使用してデフォルトで提供されるものと比較して驚くべきものです。
前述のように、コードは子供たちによる広範なQAテストの後、数か月間最適化されており、現在、バージョン4をGitHubにアップロードしています。
ソースコードの最新バージョン:https://github.com/LenkaDesign/Arduino-Arcade-Lego-Games-Box
1602 I2C LCDライブラリ(Arduino IDEライブラリマネージャ内で利用可能)をインストールしてから、コードをアップロードするだけです。
まず、 button-calibration.ino をアップロードします そして、各アーケードボタンが生み出す価値を一枚の紙に記録します。このスクリプトはEEPROMも消去して、トップスコアをリセットします。
その後、 Game-Settings.h で変更します 調整してメインの Lego-Games-Box.ino をアップロードしたボタンの値 ファイルを作成すると、再生を開始できます(上記の回路図に従ってすべてを接続した場合)。
注 :子供向けのこのゲームを作成している場合は、 Game-settings.h で削除してください String GameTitle [] ={"Memory Game"、 "Reaction Game"、 "Tournament Game"、 "Melody Game"、 "Nuclear WarGame"}からの最後のエントリ}; この最後のエントリには、各プレイヤーが敵を選択し、子供にとって敵対的すぎる可能性があるというルールがあります。
ステップ17:詳細なハウツービデオ
手順を読むよりもビデオを見る方が簡単な場合は、このビルドのビデオバージョンをご覧ください。
ステップ18:ゲームのルール
現在、5つのゲームが実装されています。このボックスを使用して作成できるゲームについてさらにアイデアがある場合は、コメントでお知らせください。ルールと遊び方を説明する各ゲームについて簡単に説明します。
側面のロッカースイッチを切り替えて、レゴアーケードゲームボックスをオンにします。すべてのゲームには、マリオのノスタルジックなゲームのサウンドが付属しています。起動時に、マリオゲームの起動メロディーが聞こえるはずです。
開始すると、現在選択されているゲームがLCDディスプレイに表示されます。ゲームを変更するには、黒いボタンを押します。
プレイしたいゲームが決まったら、白いボタンを押すだけで開始できます。
すでに実行中のゲームを終了する場合は、黒いボタンを押す必要があります。
起動時に赤いボタンを押すと、サウンドをオフにすることができます(ナイトモード)。 。
記憶ゲーム (「サイモン曰く」のような、タッチミーゲームに似ています)
ルールはよく知られており、シンプルです。ゲームはあなたに一連の音符/ライトを示し、あなたはそれを繰り返す必要があります。シーケンスにもう1つのトーン/ライトが追加されるたび。長く生き残るほど、記憶力が向上します。子供と大人の短期記憶を訓練するのに最適です。
リアクションゲーム (モグラたたきゲームに似ています)
点灯する各ボタンを押すのに十分な速さである必要があります。長くプレイするほど、ボタンの点灯が速くなります。これは子供と大人の反応を訓練するのに最適です。
コンテスト/コンペティションゲーム (2〜4人用)
あなたは5ラウンド与えられます。信号が出された後、誰もが彼のボタンを本当に速く押す必要があります(マリオからのコインチューン)。最初にボタンを押した人がラウンドに勝ちます。勝ち数は5ラウンドの終わりに計算され、勝者が発表されます。
メロディーゲーム (幼児および小さい幼児向けのプッシュアンドプレイフリーモード)
これは幼児に最適です-ボタンを押し続けると交互に曲が再生されます.1歳の子供が本当に遊びたいのですが、方法がわからないことが子供たちとの最初のテストの後でわかりました。このゲームのルールは-ルールなし。どのボタンを押すと音が鳴ります。
ウォーゲーム (大人2〜4人用)
このゲームボックスの結果として生じるバージョンをプログラムした私の友人のアレックスは、誰がより大きな核ボタンを持っているかについてのトランプ/キム危機の間にこのゲームのアイデアを思いつきました。ルールには説明のために別のビデオが必要です(こことここにあります)が、簡単に言えば、最初にプレーヤーの数を選択し、各ラウンド中に各人が敵を選択します。全員が敵を選択すると、ミサイルが飛行を開始します。敵に選ばれた人は、ボタンを押して交差点ミサイルを送り、国を救うために少し時間があります。ラウンドは、国が1つだけ残るまで続きます。
ステップ19:最終結果
私たちは子供たちのためにゲームを作るために時間を費やした3人の友人です。これらの手順を使用して独自のバージョンを作成できるように、ゲームを気に入っていただければ幸いです。質問や提案がある場合は、コメントに投稿してください。
高解像度の最終写真:
<図>
コード
Github
https://github.com/LenkaDesign/Arduino-Arcade-Lego-Games-Boxhttps://github.com/LenkaDesign/Arduino-Arcade-Lego-Games-Box カスタムパーツとエンクロージャー
top-template2_Ku502q1zeA.dxf 回路図



製造プロセス