Mục lục:

ESP8266 VGA Pong: 5 bước (có hình ảnh)
ESP8266 VGA Pong: 5 bước (có hình ảnh)

Video: ESP8266 VGA Pong: 5 bước (có hình ảnh)

Video: ESP8266 VGA Pong: 5 bước (có hình ảnh)
Video: Dùng tivi để làm màn hình máy tính được không? 2024, Tháng mười một
Anonim
Image
Image
Danh sách nguyên liệu
Danh sách nguyên liệu

Trong Tài liệu hướng dẫn này, tôi sẽ hướng dẫn cách xây dựng bản tái tạo trò chơi cổ điển Pong cho màn hình VGA, sử dụng ESP8266 và một số thành phần khác.

Trò chơi này được tạo ra bởi thư viện EspVGAx gần đây được xuất bản trên GitHub bởi Sandro Maffiodo (hay còn gọi là Smaffer) và theo tôi biết, đây là trò chơi đầu tiên khai thác nó.

Thư viện thực hiện độ phân giải 512 x 480 pixel, được lưu trữ trong bộ đệm khung bên trong RAM, yêu cầu 30720 byte. Độ phân giải rất lớn so với Arduino TVout hoặc VGAx (tương ứng 128 x 96 và 120 x 60 pixel). Tôi hy vọng trò chơi này truyền cảm hứng cho các lập trình viên khác phát triển hoặc tái tạo các trò chơi phức tạp hơn.

Bước 1: Danh sách vật liệu

Thư viện EspVGAx yêu cầu một ESP8266 với tất cả GPIO được tiếp xúc, như ESP-12E, NodeMCU-12E hoặc bất kỳ bảng nào hiển thị GPIO5 (D1), GPIO4 (D2) và GPIO13 (D7)

Đặc biệt, tôi đã sử dụng:

  • một ESP8266 NodeMCU-12E (liên kết tại đây)
  • đầu nối DSUB15 (tức là đầu nối VGA cái)
  • một điện trở 330 Ohm
  • một điện trở khác (khoảng 1 đến 3 kOhm)
  • hai chiết áp 10 kOhm
  • một Nút ấn (n.o.)
  • hai Điốt (chẳng hạn như 1N4007s)
  • một breadboard
  • Dây điện

Tôi đã nhận đầu nối DSUB15 từ một bo mạch máy tính VGA cũ. Ngoài ra, bạn cũng có thể cắt cáp VGA cũ và kết nối dây trực tiếp với breadboard.

Bước 2: Tải lên Thư viện và Phác thảo

Tải lên Thư viện và Phác thảo
Tải lên Thư viện và Phác thảo

Có nhiều phương pháp khác nhau để lập trình và ESP8266; Tôi đã sử dụng Arduino IDE để viết Pong và tải lên mã.

Xin lưu ý rằng thư viện EspVGAx hoạt động cho Arduino IDE 1.8.1. Nếu bạn có các phiên bản khác, cách tốt nhất là tải xuống các tệp.zip và giải nén nó trong một thư mục chuyên dụng. Phiên bản Windows có ở đây. Các phiên bản cho hệ điều hành khác có ở đây.

Sau đó, bạn nên tải xuống thư viện EspVGAx từ trang GithHub tại đây (liên kết trực tiếp cho phiên bản zip tại đây) và giải nén nó trong các thư viện thư mục trong phần mềm Arduino.

NB Có một lỗi nhỏ trong tệp espvgax_draw.h. Để sửa nó, chỉ cần thay thế dòng 17:

while (x0% 32) {với while (x0% 32 && sw> 32) {

Cuối cùng, bạn có thể tải xuống ESP8266_Pong.rar ở cuối bước này.

Sau khi giải nén, để tải nó lên ESP8266 của bạn, bạn cần phải định cấu hình Arduino IDE.

Nếu bạn chưa bao giờ làm điều đó, bạn có thể tìm thấy tất cả các hướng dẫn cần thiết trên Tài liệu hướng dẫn này, đặc biệt là trong Bước 2.

Khi mọi thứ đã được định cấu hình, các cài đặt ESP8266 sẽ giống như những gì được hiển thị trong hình trên.

Nếu bạn có thể tải lên mã mà không có lỗi, bạn có thể bắt đầu lắp ráp các bộ phận.

Bước 3: Kết nối các bộ phận: Đầu nối VGA

Kết nối các bộ phận: Đầu nối VGA
Kết nối các bộ phận: Đầu nối VGA
Kết nối các bộ phận: Đầu nối VGA
Kết nối các bộ phận: Đầu nối VGA
Kết nối các bộ phận: Đầu nối VGA
Kết nối các bộ phận: Đầu nối VGA

Đầu tiên tôi kết nối cổng VGA, như trong hình trên. Xin lưu ý rằng bằng cách kết nối ba chân Red, Green và Blue với nhau (tức là chân 1, 2 và 3 trên đầu nối DSUB15), bạn sẽ có hình ảnh B&W trên màn hình của mình. Bạn cũng có thể có sự kết hợp màu sắc khác nhau. Xem chi tiết trên trang Thư viện GitHub.

Hơn nữa, bạn nên kết nối điện trở 330 Ohm giữa các chân RGB và D7 (GPIO13) trên ESP8266. Do đó, điều này đã cho tôi hình ảnh hơi xám trên màn hình của tôi, do đó, sau một vài lần thử, tôi quyết định loại bỏ nó.

Tại thời điểm này, nếu mọi thứ hoạt động bình thường, bạn đã có thể kết nối màn hình và xem màn hình bắt đầu của trò chơi, với biểu ngữ "ESP8266 VGAx Pong".

Bước 4: Kết nối các bộ phận: chiết áp và nút

Kết nối các bộ phận: chiết áp và nút
Kết nối các bộ phận: chiết áp và nút

Nút phải được kết nối giữa 3.3V và chân D0 (GPIO16). Cũng kết nối điện trở 1 đến 3 kOhm từ D0 với mặt đất. Điều này tránh cho D0 ở trạng thái không xác định khi nút đang mở.

Kết nối của hai chiết áp ít tầm thường hơn, vì thực tế là ESP8266 chỉ có một cổng đầu vào tương tự A0 (ADC0)! Bí quyết là kết nối cả hai đầu ra pot.s với cùng một cổng và 'ghép kênh' chúng. Ghép kênh đơn giản có nghĩa là bạn sẽ bật một chiết áp, đọc nó, sau đó tắt nó đi và chuyển sang cái thứ hai.

Nếu bạn muốn tìm hiểu thêm về phương pháp này, bạn có thể đọc Tài liệu hướng dẫn này.

Kết nối một cực chiết áp với GND, cực còn lại với D5 cho chiết áp của người chơi bên trái và D6 cho đầu cực bên phải.

Mỗi chân trung tâm của chiết áp phải kết nối với một điốt riêng lẻ và các mặt khác của điốt phải được kết nối với A0 (ADC0), với cực tính như trong hình trên.

Bước 5: Kết luận và cảm ơn

Tôi biết ơn Sandro Maffiodo - SMAFFER - về tờ báo ESPVGAX. Trò chơi này sẽ không thể thực hiện được nếu không có nó.

Tôi hy vọng có thể huấn luyện này sẽ là nguồn cảm hứng cho các lập trình viên khác để tạo ra các trò chơi arcade cổ điển phức tạp hơn với ESP8266, vốn có ít hạn chế hơn nhiều so với Arduino.

Cuối cùng, tôi đã viết bài Có thể hướng dẫn này để gửi nó cho Cuộc thi Đồ chơi: nếu bạn thích hoặc sao chép nó, hãy dành một chút thời gian để bình chọn nó!

Đề xuất: