Агуулгын хүснэгт:

Whack-a-moLED !!: 7 алхам
Whack-a-moLED !!: 7 алхам

Видео: Whack-a-moLED !!: 7 алхам

Видео: Whack-a-moLED !!: 7 алхам
Видео: Whack-A-Mole | Cartoon-Box 22 2024, Долдугаар сарын
Anonim
Whack-a-moLED !!
Whack-a-moLED !!
Whack-a-moLED !!
Whack-a-moLED !!

Tinkercad төслүүд »

Энэ бол сонгодог Whack-a-Mole тоглоомын LED хувилбар юм.

Үндсэндээ 4 LED -ээс санамсаргүй LED нь нүхнээс гарах мэнгэний оронд асдаг бөгөөд тоглогч мэнгэ цохихын оронд джойстик ашиглан LED -ийг унтраадаг!

Хангамж

Arduino Uno/Nano эсвэл өөр хувилбарын самбар

4 LED ба харгалзах гүйдэл хязгаарлах эсэргүүцэл.

X, Y гаралттай Joystick модуль

Идэвхтэй дуугаралт (заавал биш)

Холбогч утас.. дибаг хийхэд хангалттай!

Алхам 1: Цахилгаан хэлхээг холбоно уу

Цахилгаан хэлхээг холбоно уу
Цахилгаан хэлхээг холбоно уу

Arduino Uno самбарыг джойстик модульд холбож, 2 аналог оролтын зүүг джойстикийн X Y гаралттай холбоно уу.

4 LED -ийг резистор ашиглан 4 дижитал эсвэл аналог гаралтын голтой холбоно.

Идэвхтэй Buzzer нь дижитал гаралтын зүүтэй холбогдоно

Алхам 2: Зүүг тохируулах код

int xVal = 0, yVal = 0, butVal = 0, xPin = A0, yPin = A1, joyPin = 13, butPin = 7, speakerPin = 9;

int leftLED = A2, rightLED = A3, topLED = A4, доодLED = A5;

int selectedLED = 0; // A2, A3, A4 эсвэл A5 -ийн аль нэг байж болно

хүчингүй тохиргоо () {

pinMode (xPin, INPUT);

pinMode (yPin, INPUT);

pinMode (leftLED, OUTPUT);

pinMode (rightLED, OUTPUT);

pinMode (topLED, OUTPUT); pinMode (доод LED, гаралт);

pinMode (joyPin, OUTPUT);

pinMode (buzzerPin, OUTPUT);

}

Алхам 3: Joystick Sensing код

void joystickSenseRoutine ()

{

xVal = analogRead (xPin); yVal = analogRead (yPin); butVal = digitalRead (butPin);

joyPin = mapXYtoPin (xVal, yVal, butVal);

analogWrite (сонгогдсон LED, 1024);

if (selectedLED! = leftLED) {analogWrite (leftLED, 0); } if (selectedLED! = rightLED) {analogWrite (rightLED, 0); }

if (selectedLED! = topLED) {analogWrite (topLED, 0); }

if (selectedLED! = bottomLED) {analogWrite (bottomLED, 0); }

if (joyPin == selectedLED) // Mole Whacked

{

analogWrite (сонгогдсон LED, 0);

//

// moLED цохих хөгжим/аяыг тоглуулахын тулд код нэмээрэй !!

//

}

}

int mapXYtoPin (int xVal, int yVal, int butVal) {if ((xVal <100) ба (yVal 400)) {буцах доод LED; }

else if ((xVal> 900) ба (yVal 400)) {return topLED; }

else if ((xVal 400) ба (yVal <100)) {return leftLED; }

else if ((xVal 400) ба (yVal> 900)) {return rightLED; }

өөр {буцах -1; }

}

Алхам 4: Үндсэн давталтын ердийн код

void loop () {

for (int i = 0; i <урт; i ++)

{

if (random (0, 100)> 90) {selectedLED = anaPinMap (санамсаргүй (2, 6));}

// Тоглоомын хөгжмийн кодыг энд нэмнэ үү

// *** *** ***

//

}

int anaPinMap (int randNum) {

if (randNum == 2) {буцах A2; }

else if (randNum == 3) {буцаах A3; }

else if (randNum == 4) {буцах A4; }

else if (randNum == 5) {буцах A5; }

}

Алхам 5: Туршаад үзэхэд бэлэн боллоо

Алхам 6: Прототипт зориулсан Arduino Nano хэрэгжилт

Image
Image

Талхтай самбар дээрх Arduino нано, LED, резистор, дуугаруулагчтай тусгай зориулалтын самбар, X-Y джойстик унтраалгатай ижил хэрэгжилтийг хийсэн.

Алхам 7: Хайртыгаа танилцуулах эцсийн багц болох Whack-a-MoLED прототип

Хайртай хүнээ танилцуулах эцсийн багц болох Whack-a-MoLED прототип!
Хайртай хүнээ танилцуулах эцсийн багц болох Whack-a-MoLED прототип!
Хайртай хүнээ танилцуулах эцсийн багц болох Whack-a-MoLED прототип!
Хайртай хүнээ танилцуулах эцсийн багц болох Whack-a-MoLED прототип!

Прототипийн хангамж:

Энгийн картон хайрцаг (хамгийн багадаа 4см x 6 см x 3 см), нэмэлт картон ширхэгийг дэмждэг.

Явах эд ангиудыг чимэглэх зориулалттай цаас (заавал биш)

Олон зориулалттай цавуу/цавуу

Мини талхны самбар (заавал биш)

Arduino нано

Жижиг бүх нийтийн ПХБ

Arduino наног тэжээх зориулалттай 9В батерей (Vin pin -тэй холбогдох).

SPDT унтраалга

Үлдсэн хангамж (LED, резистор, джойстик, дуугаралт, утас) дээрх алхам 1 -д тайлбарласан болно.

Зөвлөмж болгож буй: