Mục lục:

Whack-a-moLED !!: 7 bước
Whack-a-moLED !!: 7 bước

Video: Whack-a-moLED !!: 7 bước

Video: Whack-a-moLED !!: 7 bước
Video: Whack-A-Mole | Cartoon-Box 22 2024, Tháng bảy
Anonim
Đùng một cái !!
Đùng một cái !!
Đùng một cái !!
Đùng một cái !!

Dự án Tinkercad »

Đây là phiên bản đèn LED của Trò chơi Whack-a-Mole cổ điển.

Về cơ bản, một đèn LED ngẫu nhiên trong số 4 đèn LED sáng lên thay vì một nốt ruồi nhìn ra khỏi lỗ và người chơi sẽ tắt đèn LED bằng cần điều khiển thay vì đánh mạnh vào nốt ruồi!

Quân nhu

Arduino Uno / Nano hoặc bất kỳ bảng biến thể nào

4 đèn LED và điện trở hạn chế dòng điện tương ứng.

Mô-đun cần điều khiển với đầu ra X, Y

Bộ rung hoạt động (tùy chọn)

Dây nhảy.. đủ để gỡ lỗi!

Bước 1: Nối mạch

Kết nối mạch
Kết nối mạch

Kết nối bo mạch Arduino Uno với mô-đun cần điều khiển, kết nối 2 chân Đầu vào tương tự với đầu ra X Y của cần điều khiển.

4 đèn LED được kết nối bằng điện trở vào 4 chân đầu ra Digital hoặc Analog.

Active Buzzer được kết nối với chân đầu ra kỹ thuật số

Bước 2: Mã để thiết lập ghim

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

int leftLED = A2, rightLED = A3, topLED = A4, bottomLED = A5;

int selectLED = 0; // Có thể là một trong A2, A3, A4 hoặc A5

void setup () {

pinMode (xPin, INPUT);

pinMode (yPin, INPUT);

pinMode (leftLED, OUTPUT);

pinMode (rightLED, OUTPUT);

pinMode (topLED, OUTPUT); pinMode (bottomLED, OUTPUT);

pinMode (joyPin, OUTPUT);

pinMode (buzzerPin, OUTPUT);

}

Bước 3: Mã cho cảm biến cần điều khiển

void điều khiểnSenseRoutine ()

{

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

joyPin = mapXYtoPin (xVal, yVal, butVal);

analogWrite (đã chọnLED, 1024);

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

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

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

if (joyPin == selectLED) // Mole Whacked

{

analogWrite (đã chọnLED, 0);

//

// Thêm mã để phát nhạc / giai điệu để chơi moLED !!

//

}

}

int mapXYtoPin (int xVal, int yVal, int butVal) {if ((xVal <100) and (yVal 400)) {return bottomLED; }

else if ((xVal> 900) và (yVal 400)) {return topLED; }

else if ((xVal 400) và (yVal <100)) {return leftLED; }

else if ((xVal 400) và (yVal> 900)) {return rightLED; }

else {return -1; }

}

Bước 4: Mã quy trình vòng lặp chính

void loop () {

for (int i = 0; i <length; i ++)

{

if (random (0, 100)> 90) {selectLED = anaPinMap (random (2, 6));}

// Thêm mã cho nhạc trò chơi tại đây

// *** *** ***

//

}

int anaPinMap (int randNum) {

if (randNum == 2) {return A2; }

else if (randNum == 3) {return A3; }

else if (randNum == 4) {return A4; }

else if (randNum == 5) {return A5; }

}

Bước 5: Sẵn sàng dùng thử

Bước 6: Triển khai Arduino Nano cho Nguyên mẫu

Image
Image

Cách triển khai tương tự được thực hiện với Arduino nano trong breadboard, bảng được tạo tùy chỉnh với đèn LED, điện trở và bộ rung và công tắc cần điều khiển X-Y.

Bước 7: Nguyên mẫu Whack-a-MoLED được đóng gói cuối cùng để giới thiệu Người thân yêu của bạn

Nguyên mẫu Whack-a-MoLED được đóng gói cuối cùng để giới thiệu Người thân yêu của bạn!
Nguyên mẫu Whack-a-MoLED được đóng gói cuối cùng để giới thiệu Người thân yêu của bạn!
Nguyên mẫu Whack-a-MoLED được đóng gói cuối cùng để giới thiệu Người thân yêu của bạn!
Nguyên mẫu Whack-a-MoLED được đóng gói cuối cùng để giới thiệu Người thân yêu của bạn!

Nguồn cung cấp cho nguyên mẫu:

Hộp các tông đơn giản (Tối thiểu 4cmX6cmX3cm), hỗ trợ thêm các miếng bìa cứng.

Giấy trang trí để bọc khung xe (tùy chọn)

Keo / keo đa dụng

Breadboard mini (tùy chọn)

Arduino nano

PCB phổ thông nhỏ

Pin 9V để cấp nguồn cho Arduino nano (kết nối với chân Vin).

Công tắc SPDT

Phần còn lại của nguồn cung cấp (đèn LED, điện trở, cần điều khiển, còi, dây dẫn) như được mô tả trong bước 1 ở trên.

Đề xuất: