工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

ピクセルチェイサーゲーム

コンポーネントと消耗品

>
Arduino Nano R3
× 1
Adafruit NeoPixelリング:WS2812 5050 RGB LED
× 1
ソルダーレスブレッドボードハーフサイズ
× 1
抵抗10kオーム
× 1
SparkFunプッシュボタンスイッチ12mm
× 1
ジャンパー線(汎用)
× 1

アプリとオンラインサービス

>
Arduino IDE

このプロジェクトについて

私はかつてゲーム開発者でしたが、モバイルゲーム開発の聖杯の1つは、究極の「ワンタップ」ゲームを作ることです。

マイクロコントローラー、ボタン、および何らかの形の視覚的フィードバックを使用して、すばらしいワンクリックの「物理」ゲームを作成できるかどうかを確認したかったのです。

PIXEL CHASERのご紹介!

かなり簡単なビルドなので、すぐに始めましょう!

どの部品が必要ですか?

<図>

次のものが必要です:

  • Arduino Nano(または2つの使用可能なIOピンを備えた任意のマイクロコントローラー)
  • RGB「NeoPixel」リングまたはストリップ
  • モーメンタリボタン
  • 10k抵抗
  • ブレッドボード
  • ワイヤー

ステップ1

ブレッドボードの一方の端にNanoを配置し、端にUSBコネクタを配置します。

<図>

ステップ2

ブレッドボードのもう一方の端、できるだけ端に近づけて、簡単にアクセスできるようにボタンを配置します。

<図>

ステップ3

ボタンの片側とブレッドボードのGNDレールの間に10kの抵抗を追加します。これは、ボタンのデフォルトのLOW状態になります。マイクロコントローラやその他のコンポーネントに損傷を与える可能性があるため、ボタンを押したときにVCCとGNDが短絡しないように抵抗を使用しています。

<図>

ステップ4

ボタンの反対側からのジャンパー線をVCCレールに接続します。ボタンを押すと、ボタンが高くなります。

<図>

ステップ5

ボタンのGND側からNanoのD3にジャンパー線を接続します。 D3を読んで、ボタンの状態を判断します。

<図>

ステップ6

RGBストリップ/リングをブレッドボードに配線します。 NanoのVCCワイヤをVCC電源レールに接続し、GNDワイヤをGND電源レールに接続し、DI(データ入力)ワイヤをD4に接続します。 D4でピクセルを制御します。

<図>

ステップ7

Nanoの5VピンからVCC電源レールにジャンパー線を接続してから、NanoのGNDピンからGND電源レールにジャンパー線を接続します。

<図>

ステップ8

コードをアップロードして再生してください!

<図>

このプロジェクトを楽しんでいただけたでしょうか。

このような楽しいプロジェクトは、私のYouTubeチャンネルで見つけることができます。

フォローミー:

http://twitter.com/unexpectedmaker

https://www.facebook.com/unexpectedmaker/

https://www.instagram.com/unexpectedmaker/

https://www.patreon.com/unexpectedmaker

https://www.tindie.com/stores/seonr/

コード

  • ピクセルチェイサーゲーム-Arduinoコード
ピクセルチェイサーゲーム-Arduinoコード Arduino
このコードをArduinoに追加し、ビルド手順に従ってください!
 / * ---------------------------------- -----------------------------------------ピクセルチェイサーゲーム-v1.0.0-24 / 03 / 2019.AUTHOR / LICENSE:Created by Seon Rozenblum [email protected] 2016 License:GNU GPL v3 http://www.gnu.org/licenses/gpl-3.0.htmlLINKS:Blog:unexpectedmaker.comYOUTUBE:youtube .com / c / unexpectedmakerDISCLAIMER:このソフトウェアは「現状有姿」で提供され、技術サポートはなく、明示または黙示を問わず、あらゆる目的での有用性について保証されません。目的:このコントローラーは、リフローマスターで実行されるソフトウェアです。予期しないメーカーによって製造されたトースターオーブンコントローラーHISTORY:24/03/2019 v1.0.0-初期リリース注:これは進行中の作業です...------------------- -------------------------------------------------- ------ * ///これらのライブラリはライブラリマネージャーからインストールする必要があります#include  #include "OneButton.h "//ストリップが接続されているGPIOは何ですか#definePIXELPIN 4 //ストリップ内のNeoPixelsの数#defineNUMPIXELS 24 //ボタンが接続されているGPIOは何ですか?#define BUTTON_TAP 3 //デフォルトのlowOneButtonを使用してボタンを初期化しますbuttonTAP(BUTTON_TAP、false); //ピクセルストリップを初期化Adafruit_NeoPixelpixels =Adafruit_NeoPixel(NUMPIXELS、PIXELPIN、NEO_GRB + NEO_KHZ800); //一連の変数intplayerIndex =-1; int playerIndexTrail =-1; int playerDirection =1; float nextMove =0; float currentPlayerSpeed =150; unsigned long countdown =0; intenemyIndex =-1; int coinIndex =-1; int score =0; int bestScore =0; int lastScore =0; bool gameOver =false; void setup() {//ボタンピンを入力pinMode(BUTTON_TAP、INPUT);にします//クリック関数をボタンにアタッチしますbuttonTAP.attachClick(singleClick); buttonTAP.attachLongPressStart(longClick); //ストリップを初期化し、明るさを20%pixels.begin();に設定します。 pixel.setBrightness(20); //プレーヤーが表示されて移動を開始する前に2秒のカウントダウンを設定しますcountdown =millis()+ 2000;} void loop(){//すべてのサイクルでボタンの状態をチェックする必要がありますbuttonTAP.tick(); //ゲームがゲームオーバー状態の場合、(gameOver)return;の場合はループを早期に終了します。 //レベルのピクセル表示状態を設定します//これは敵の位置とコインの位置を設定しますSetLevel(); //プレーヤーの準備が整うまで1秒待ちますif(countdown> millis()){pixels.show();戻る; } //すべてのプレーヤーの表示、移動、およびゲームロジックはここにありますDisplayPlayer(); //これにより、更新されたピクセルカラーがハードウェアに送信されます。 pixel.show();} //レベルをクリアし、すべてのピクセルをblackvoid ClearLevel(){for(int i =0; i  =0)pixels.setPixelColor(playerIndexTrail、pixels.Color(0、0、0)); if(playerIndex> =0){pixels.setPixelColor(playerIndex、pixels.Color(0、100、0)); playerIndexTrail =playerIndex; } //プレーヤーを現在の方向に移動しますplayerIndex + =playerDirection; //プレーヤーをストリップの端でラップしますif(playerIndex <0)playerIndex =NUM​​PIXELS-1; else if(playerIndex ==NUM​​PIXELS)playerIndex =0; pixel.setPixelColor(playerIndex、pixels.Color(0、255、0)); //プレーヤーはコインを打ちましたか? //もしそうなら、スコアを上げ、コインと敵の位置をリセットし、レベルをクリアします//次のループSetLevel()は敵とコインをリセットします//コインがヒットするたびにプレイヤーの速度も上がりますif(playerIndex ==coinIndex) {enemyIndex =-1; coinIndex =-1;スコア++; currentPlayerSpeed =Constraint(currentPlayerSpeed-10、50、150); ClearLevel(); pixel.setPixelColor(playerIndex、pixels.Color(0、255、0)); } //プレイヤーは敵を攻撃しましたか? //最後/最高のスコアを設定し、ゲームオーバーを呼び出しますif(playerIndex ==enemyIndex){lastScore =score; if(スコア> =bestScore)bestScore =スコア;ゲームオーバー(); gameOver =true;敵のインデックス=-1; coinIndex =-1; playerIndex =-1; }}} //シングルボタンclickvoidsingleClick(){//プレーヤーが表示されるまで入力なしif(countdown> millis())return; //プレーヤーの方向を切り替えますplayerDirection =-playerDirection;} //長いボタンclickvoidlongClick(){//ゲームオーバー状態を切り替えます//ゲームオーバーの場合はゲームを開始し、そうでない場合は進行中のゲームをキャンセルしますgameOver =!gameOver; if(gameOver){enemyIndex =-1; coinIndex =-1; playerIndex =-1; currentPlayerSpeed =150; ClearLevel(); } else {ClearLevel();スコア=0; currentPlayerSpeed =150;カウントダウン=ミリ秒()+ 2000; }} 

製造プロセス

  1. MPU-6050を搭載したArduinoジャイロスコープゲーム
  2. Arduino Digital Dice
  3. ArduinoPongゲーム-OLEDディスプレイ
  4. DIY 37LEDルーレットゲーム
  5. Arduinoゲームコントローラー
  6. Arduinoタッチブレイクアウトゲーム
  7. 自家製16x8マトリックス上のArduinoNanoTetr​​isゲーム
  8. Arduinoの反発電磁浮上
  9. arduinoを使用した自動恐竜ゲーム
  10. Alexaによってアクティブ化されたArduinoホームコントローラー
  11. NeoMatrix Arduino Pong