Mục lục:

Bộ điều khiển trò chơi Arduino có đèn phản ứng với trò chơi thống nhất của bạn :: 24 bước
Bộ điều khiển trò chơi Arduino có đèn phản ứng với trò chơi thống nhất của bạn :: 24 bước

Video: Bộ điều khiển trò chơi Arduino có đèn phản ứng với trò chơi thống nhất của bạn :: 24 bước

Video: Bộ điều khiển trò chơi Arduino có đèn phản ứng với trò chơi thống nhất của bạn :: 24 bước
Video: [Arduino basic #2] Đèn LED và breadboard 2024, Tháng bảy
Anonim
Bộ điều khiển trò chơi Arduino có đèn đáp ứng với trò chơi thống nhất của bạn
Bộ điều khiển trò chơi Arduino có đèn đáp ứng với trò chơi thống nhất của bạn

Trước hết, tôi đã viết điều này thành chữ. Đây là lần đầu tiên tôi sử dụng có thể hướng dẫn nên bất cứ khi nào tôi nói: hãy viết mã ra như vậy để biết rằng tôi đang đề cập đến hình ảnh ở đầu bước đó.

Trong dự án này, tôi sử dụng 2 arduino để chạy 2 bit mã riêng biệt vì tôi đã gặp một số khó khăn khi nó hoạt động chỉ với một

Đây là Uno và Leonardo

tổng cộng đây là những gì bạn sẽ cần để hỗ trợ dự án này.

· 7 nút nhấn

· 23 dây nhảy

· 1 arduino Leonardo + cáp usb

· 4 điện trở · 4 đèn led

· 1 cáp arduino una + usb

· 2 bảng bánh mì

Bước 1: Kết nối các nút điều khiển với Arduino

Kết nối các nút điều khiển với Arduino
Kết nối các nút điều khiển với Arduino

Những gì bạn cần để kết nối phần này:

· 7 nút nhấn

· 14 dây nhảy

· 1 arduino Leonardo + cáp usb

· Breadboard

Các nút khá đơn giản để kết nối nhưng có thể nhanh chóng lộn xộn để hiển thị dưới dạng hình ảnh.

· Đầu tiên, bạn đặt các nút ấn vào các vị trí mà tôi đã đánh dấu trên hình trên.

· Thứ hai, bạn muốn nối một jumper từ khe cắm trên mặt đất trên arduino Leonardo vào hàng trừ của breadboard.

· Bây giờ bạn nối jumper từ bất kỳ đâu trên hàng trừ đến hàng thẳng hàng với chốt bên phải của nút nhấn. điều này sẽ cung cấp năng lượng cho nó.

· Tiếp theo, bạn muốn nối dây jumper từ một hàng thẳng hàng với chốt bên trái của nút nhấn vào các khe cắm đầu vào kỹ thuật số của Leonardo. Đối với các nút ở đây, tôi đã sử dụng khe 2 - 3 - 4 - 5 - 6 - 7 - 8

Tôi chỉ hiển thị dây đi vào đầu vào 8 trên hình ảnh vì nó trở thành một bức tranh rất lộn xộn để cho bạn thấy tất cả các dây chéo nhau.

Bước 2: Mã hóa Arduino Leonardo:

Mã hóa Arduino Leonardo
Mã hóa Arduino Leonardo

Vì vậy, để cho bạn biết lý do tôi sử dụng Leonardo cho việc này. Đó là vì nó có một con chip nhất định mà Uno không làm cho máy tính nhận dạng nó là thiết bị đầu vào usb. Giống như một bàn phím. Điều này cho phép chúng tôi làm điều gì đó khiến cuộc sống của chúng tôi với tư cách là lập trình viên cho dự án này trở nên dễ dàng hơn rất nhiều. Bàn phím giả lập. Chúng ta sẽ đánh lừa máy tính nghĩ rằng chúng ta đang nhấn các phím nhất định trên bàn phím trong khi thực tế chúng ta đang nhấn các nút trên bộ điều khiển của mình.

Bây giờ tôi sẽ hướng dẫn bạn từng bước nghĩ mã.

Trước hết, ở trên cùng, chúng tôi bao gồm Keyboard.h. Điều này sẽ cho phép chúng tôi sử dụng các chức năng bàn phím mà chúng tôi sẽ sử dụng trong mã của chúng tôi.

Bước 3:

Hình ảnh
Hình ảnh

Sau đó, chúng tôi cần xác định các khe đầu vào kỹ thuật số mà chúng tôi sẽ sử dụng trên

Leonardo cho mỗi nút.

Tôi cũng đã đặt tên cho mọi người trong số họ theo khóa mà tôi sẽ mô phỏng.

Bước 4:

Hình ảnh
Hình ảnh

Từ đó chúng ta đi vào chức năng thiết lập. Điều này nói với

arduino nó làm gì khi khởi động.

đầu tiên chúng tôi viết Serial.begin sẽ mở cổng nối tiếp và đặt tốc độ dữ liệu thành 9600 bps

và chúng tôi xác định tất cả các chân được đặt tên để làm đầu vào.

Bước 5:

Hình ảnh
Hình ảnh

Và cuối cùng, chúng tôi viết hàm vòng lặp để kiểm tra xem

các nút đang được nhấn và cho arduino biết cách đáp ứng điều đó.

Đầu tiên, chúng tôi viết Keyboard.begin sẽ nói với arduino rằng anh ấy cần chú ý đến chúng tôi bằng cách sử dụng các chức năng bàn phím

Bước 6:

Hình ảnh
Hình ảnh
Hình ảnh
Hình ảnh
Hình ảnh
Hình ảnh

Sau đó, đối với mỗi nút, chúng tôi viết một câu lệnh if / else giống như thế này

Vì vậy, những gì tôi đã nói với arduino ở đây là: Nếu nút bên trái của tôi đang được nhấn trên bộ điều khiển, máy tính sẽ nghĩ rằng chúng ta đang nhấn phím “a” và nếu không phải vậy, hãy làm cho nó nghĩ rằng chúng ta đã buông phím.

Về cơ bản, bạn lặp lại khối mã này cho mọi nút trên bộ điều khiển của mình. với các thay đổi cho mọi biến và các khóa mà biến đó cần phải mô phỏng

Bước 7:

Hình ảnh
Hình ảnh

Các phím mà chúng tôi yêu cầu máy tính nhấn ở đây là W - A - S - D

khá nhiều là tiêu chuẩn cho chuyển động trong các trò chơi máy tính và E - Q - và phím cách trong đoạn mã này được công nhận là ‘‘là các nút tôi sử dụng để chọn - loại bỏ và bắn trong trò chơi của mình. Vui lòng thay đổi các phím này thành bất kỳ phím nào bạn cảm thấy hoạt động tốt hơn cho trò chơi / bộ điều khiển của mình.

Sau đó, cuối cùng chúng tôi yêu cầu arduino dừng việc kiểm tra Keyboard.end nào

Bước 8: Chuyển động mã hóa trong thống nhất:

Chuyển động mã hóa trong sự thống nhất
Chuyển động mã hóa trong sự thống nhất

Trước hết, hãy để tôi nói với bạn rằng tôi đang làm cái này cho một trò chơi 2d nên

các ví dụ bạn sẽ thấy được xây dựng cho điều đó. Chủ yếu nghĩa là tôi sử dụng vector2’s nếu bạn đang làm việc trong 3d, bạn sẽ sử dụng vector3’s. bởi vì bạn sẽ cần phải lo lắng về chiều chuyển động bổ sung trong 3d.

Bây giờ lý do tôi sử dụng giả lập Bàn phím ở phía arduino là vì Unity có một cái gì đó tích hợp để nhận ra các phím trên bàn phím mà chúng ta có thể sử dụng.

Nếu bạn mở dự án của mình một cách thống nhất, hãy đi tới Chỉnh sửa -> Cài đặt dự án -> Đầu vào. Bạn có thể thấy trong trình kiểm tra của mình, nó khởi động trình quản lý đầu vào. Nơi nếu bạn nhấp vào Axes, bạn có thể thấy một loạt các tên đầu vào mở ra thường được sử dụng cho các bộ điều khiển máy tính như những cái mà chúng tôi đang làm bây giờ. 2 đầu vào chúng tôi sẽ sử dụng là Ngang và Dọc để kiểm tra xem bạn có đoán nó là W-A-S-D không.

Đầu tiên, bạn muốn tạo một đối tượng trong hệ thống phân cấp các cảnh thống nhất, nó sẽ là người chơi của bạn. Trong trường hợp của tôi là anh chàng vui vẻ này. Đây có thể là bất cứ điều gì bạn cần nhưng vì mục đích trò chơi của tôi, tôi đã tạo ra anh chàng này.

Bước 9:

Hình ảnh
Hình ảnh

Bạn muốn cung cấp cho người chơi này 2 thứ. Một máy va chạm hộp 2d và

một Rigidbody 2d và chỉnh sửa chúng để giống như hình trên.

Bước 10:

Hình ảnh
Hình ảnh

Sau đó, bạn muốn vào thư mục dự án của mình và tạo

Tập lệnh C #. Mà tôi đặt tên là PlayerMovement.

Trong tập lệnh này, bạn sẽ xác định 2 biến. Một phao công khai mà tôi gọi là moveSpeed. Điều này sẽ quyết định bạn đi nhanh như thế nào. Và một Rigidbody2D riêng mà tôi gọi là RigidPlayer. Mà sẽ tìm kiếm người chơi của bạn cứng nhắc.

Đừng quên đến trình chỉnh sửa thống nhất của bạn, nhấp vào trình phát của bạn thêm tập lệnh mới này bằng cách kéo nó vào trình kiểm tra và đặt giá trị số cho moveSpeed.

Bước 11:

Hình ảnh
Hình ảnh

bây giờ trong Start () của bạn, bạn muốn làm một việc và đó là

đảm bảo rằng RigidPlayer của bạn có thể tìm thấy người trả tiền cứng 2d của bạn. Bạn làm điều đó với dòng mã sau:

Bước 12:

Hình ảnh
Hình ảnh

Sau đó, chúng tôi chuyển sang bản cập nhật (). Đây là nơi chúng ta đang đi

để làm cho người chơi di chuyển.

chúng tôi làm điều đó với một câu lệnh if khá đơn giản sẽ xem xét các phím âm và dương từ Ngang (AD) và Dọc (SW) và áp dụng nó như một con số để buộc chúng tôi sẽ đặt vào cơ thể cứng nhắc 2d để đẩy người chơi của chúng tôi vào một hướng. Số đó sẽ được nhân với biến moveSpeed.

Bước 13:

Hình ảnh
Hình ảnh

Cuối cùng, bạn muốn đảm bảo rằng trình phát của bạn ngừng di chuyển khi

bạn không nhấn bất cứ điều gì. Điều này bạn làm như vậy:

Bây giờ nếu bạn muốn sử dụng 3 nút khác của mình cho bất cứ điều gì bạn làm với câu lệnh if này: if (Input. GetKeyDown (Keycode. Space))

cho phím cách và thay vì khoảng trắng, hãy đặt ký tự của các phím khác mà bạn đã chọn để sử dụng cho các phím khác.

Bước 14: Kết nối đèn với Arduino

Kết nối đèn với Arduino
Kết nối đèn với Arduino

·

Những gì bạn cần để kết nối phần này:

· 9 dây nhảy

· 4 điện trở

· 4 đèn led

· 1 cáp arduino una + usb

· Breadboard

Việc nối đèn sẽ được thực hiện thông qua Uno.

Nó sẽ trông giống như hình ảnh bên trên:

Bạn mắc các điện trở vào cạnh dài của đèn LED. Và sau đó, bạn nối một jumper từ một số pin kỹ thuật số trên chưa đến các điện trở. trong trường hợp này, tôi đã sử dụng các khe cắm pin kỹ thuật số 9 - 10 -11 -12, những con số này sẽ có liên quan khi chúng tôi nhận được mã cho đèn.

Từ đó, bạn muốn nối một dây nối từ khe cắm trên mặt đất trên arduino Uno của mình vào vị trí trên bảng của bạn như được thấy với dây màu đen ở hình trên.

Sau đó, bạn muốn có 4 jumper tất cả đều dẫn vào đầu ngắn của mỗi đèn LED

Bước 15: Mã hóa Arduino Uno

Mã hóa Arduino Uno
Mã hóa Arduino Uno

Được rồi, trước tiên chúng ta sẽ xác định lại các biến của chúng ta

Vì vậy, đầu tiên chúng tôi đang sử dụng đầu vào kỹ thuật số nào cho đèn của mình. Và chúng tôi sẽ tạo một char có tên là myCol [20]

Bước 16:

Hình ảnh
Hình ảnh

Sau đó, trong phần thiết lập, chúng tôi muốn thực hiện lại Serial.begin. Đặt tất cả đèn LED của chúng tôi trên Đầu ra và tắt tất cả chúng khi khởi động.

Bước 17:

Hình ảnh
Hình ảnh

Và cuối cùng bạn muốn viết hàm vòng lặp của mình.

Điều này sẽ khiến Arduino đọc bất kỳ dữ liệu nào đến thông qua nối tiếp cho đến khi một trong hai sự kiện xảy ra. Một ký tự nguồn cấp dữ liệu dòng được phát hiện; điều này được xác định bởi lf được đặt thành 10 và là đối số đầu tiên hoặc một lượng byte nhất định đã được đọc vào. Đây là đối số thứ ba và đối với ví dụ này được đặt thành chỉ một byte. Dữ liệu được lưu trữ trong biến myCol, được đặt thành char và giới hạn là 20. Trong readBytes Cho đến khi đây là đối số thứ hai. Hay một cách giải thích khác là Serial.readBytesUntil (terminatorCharacter, buffer, byteLimit);

Và câu lệnh if sẽ đảm bảo một số đèn bật sáng khi sự thống nhất đưa ra tín hiệu. Trong trường hợp này, tôi có 4 đèn màu khác nhau vì vậy tôi thống nhất gửi g để đèn LED màu xanh lá cây bật, b để đèn LED màu xanh dương bật, r cho đèn LED màu đỏ bật và y cho đèn LED màu vàng bật.

Bước 18: Đèn mã hóa phía Unity:

Đèn mã hóa Mặt thống nhất
Đèn mã hóa Mặt thống nhất

Oke 2 điều đầu tiên trước khi chúng ta đi vào vấn đề này.

1. trong chương trình mã hóa arduino của bạn, đi tới Công cụ -> Cổng -> và kiểm tra cho tôi xem COM của bạn đang bật. Trong trường hợp của tôi, COM3 của nó (điều này sẽ quan trọng trong mã)

2. trong sự thống nhất Đi tới Chỉnh sửa -> Cài đặt dự án -> Trình phát sau đó trong trình kiểm tra nhấp vào cài đặt khác, chuyển đến Mức độ tương thích Api và Chuyển nó từ mạng con. NET 2.0 sang chỉ. NET 2.0

Oke vậy là xong. Hãy bắt đầu.

Nhấp chuột phải vào hệ thống phân cấp của bạn và nhấp vào Tạo trống.

Đây sẽ là một đối tượng trò chơi trống sẽ chỉ tồn tại trong trò chơi của bạn để giữ một tập lệnh cho chúng tôi. Tôi đã gọi đối tượng này là Init.

Bước 19:

Hình ảnh
Hình ảnh

Sau đó, chuyển đến tab dự án của bạn và tạo một tập lệnh C # mới

và gọi nó là Đang gửi.

Điều đầu tiên bạn làm là viết những điều này vào các dòng trong phần sử dụng mã của bạn:

sử dụng System. IO. Ports;

sử dụng System. Threading;

điều này làm cho nó để chúng tôi có thể sử dụng biến SerialPort

Bước 20:

Hình ảnh
Hình ảnh

trong tập lệnh này, chúng ta sẽ tạo các biến sau. Bây giờ lưu ý rằng tôi đã nhận COM3 ở đó, điều này có thể khác với bạn như chúng ta đã thảo luận ở phần đầu của bước này. Nếu nó là thay thế số 3 bằng số nó đã nói cho bạn.

Bước 21:

Hình ảnh
Hình ảnh

Khi bắt đầu, chúng tôi yêu cầu tập lệnh sử dụng là OpenConnection

chức năng mà chúng tôi sẽ viết trong một chút

bản cập nhật là một thử nghiệm nhiều hơn bất cứ điều gì nhưng nếu bạn muốn bao gồm nó để kiểm tra các thông điệp được gửi đến sự thống nhất. Bạn có thể bỏ qua nó một cách trung thực.

Bước 22:

Hình ảnh
Hình ảnh

Oke ngay cho chức năng OpenConnection này. Đây chỉ là một lớn

câu lệnh if / else giữ kết nối mở, chỉ cần sao chép nó như đã viết và bạn sẽ ổn.

Bước 23:

Hình ảnh
Hình ảnh

Bây giờ hãy nhớ từ mã arduino mà tôi đã kiểm tra nó

tín hiệu rằng sự thống nhất sẽ gửi đến nó.

tốt đây là nơi điều đó xảy ra. Trong trường hợp của tôi, tôi đã mắc 4 đèn vào nên tôi viết 4 chức năng cực kỳ đơn giản. Tất cả những gì họ làm là khi được gọi, họ sẽ gửi một lá thư tới arduino. Khi arduino nhận được chữ cái đó, nó sẽ sáng đèn tương ứng với chữ cái đã nói.

Bước 24:

Hình ảnh
Hình ảnh

Bạn có thể tự hỏi làm thế nào để tôi gọi nó là

hàm số? Vâng, bạn làm điều đó với một dòng đơn giản trong bất kỳ tập lệnh c # nào khác mà bạn sử dụng cho trò chơi của mình. Sending. NameFunctionhere ();. Vì vậy, ví dụ trong trò chơi của tôi, người chơi có nhiệm vụ thu thập 4 quả cầu màu. Vì vậy, tôi đã viết một kịch bản nhỏ để đảm bảo rằng khi anh ấy đến gần một quả cầu và nhấn đúng nút, anh ấy sẽ chọn nó và nó sẽ gửi tín hiệu đến arduino rằng trong trường hợp này quả cầu Vàng đã được chọn. Để nó biết, tôi phải bật đèn LED màu vàng:

Bạn có thể đặt một dòng mã này ở bất cứ đâu bạn muốn. Nếu bạn muốn nó sáng lên khi trò chơi bắt đầu, hãy đặt nó vào chức năng bắt đầu. Muốn nó sáng lên khi anh ta chết, hãy đặt nó vào chức năng của bạn cho những người chơi chết. Thử nghiệm xung quanh một chút. Tôi chọn làm cho đèn trở thành một loại yếu tố ui bên ngoài trò chơi để theo dõi các quả cầu bạn phải thu thập mà không làm lộn xộn màn hình.

Đề xuất: