Mục lục:

Snake on a Breadboard: 3 bước (có hình ảnh)
Snake on a Breadboard: 3 bước (có hình ảnh)

Video: Snake on a Breadboard: 3 bước (có hình ảnh)

Video: Snake on a Breadboard: 3 bước (có hình ảnh)
Video: Top 3 khối Rubik khó hiểu nhất | Speedcube 2024, Tháng bảy
Anonim
Con rắn trên Breadboard
Con rắn trên Breadboard
Con rắn trên Breadboard
Con rắn trên Breadboard
Con rắn trên Breadboard
Con rắn trên Breadboard

"Có trò chơi nào trên điện thoại của bạn không?"

"Không chính xác."

Giới thiệu:

Đơn giản để điều khiển, dễ lập trình và bất tử bởi Nokia 6110, Snake đã trở thành một dự án yêu thích của các kỹ sư. Nó đã được thực hiện trong bất kỳ thứ gì từ ma trận LED, màn hình LCD, ánh sáng giá sách và thậm chí cả cửa sổ của toàn bộ tòa nhà. Chúng tôi sẽ triển khai Snake trên một breadboard nhỏ và màn hình OLED. Mọi người chắc chắn đã tạo ra những người chơi rắn nhỏ hơn, nhưng điều này đặc biệt sử dụng một breadboard, loại bỏ nhu cầu thiết kế PCB hoặc hàn.

(Bạn chỉ có thể tạo một ứng dụng trên điện thoại của mình, nhưng chúng tôi không làm mọi thứ vì chúng dễ dàng.)

Điều kiện tiên quyết:

Hiểu biết cơ bản về mạch, cách tạo breadboard và nắm chắc về lập trình trong Arduino.

Quân nhu

  • Arduino Nano
  • 2 điện trở cao hợp lý (1kOhm)
  • Breadboard nhỏ
  • 2 nút bấm
  • Dây lõi rắn 22 AWG
  • Màn hình OLED 128 x 64

Đây là những liên kết liên kết của Amazon nên tôi kiếm được một ít hoa hồng với mỗi lần bán hàng. Nếu bạn chưa có những nguồn cung cấp này và muốn hỗ trợ các dự án trong tương lai của tôi, hãy theo các liên kết sau!:)

Bước 1: Breadboard

Breadboard
Breadboard
Breadboard
Breadboard
Breadboard
Breadboard

Để tạo ra sản phẩm cuối cùng, rõ ràng chúng tôi phải lắp ráp phần cứng để lập trình và kiểm tra dự án của mình. Sơ đồ hệ thống cho dự án này khá đơn giản, vì nó chỉ liên quan đến tổng cộng 4 thành phần.

1. Đặt nó ra:

Lấy các thành phần của bạn và bố trí chúng trên bảng, đảm bảo rằng mọi thứ đều phù hợp. Hình dung loại dây và chân bạn sẽ sử dụng và cho những mục đích gì. Đảm bảo rằng các dây dự kiến của bạn không bị chéo, vì điều đó làm cho breadboard lộn xộn hơn. Viết ra những điểm bạn cần kết nối! Mặc dù đây là một breadboard đơn giản, nhưng nó sẽ giúp cuộc sống của bạn dễ dàng hơn rất nhiều trong quá trình nối dây và nói chung. Do không gian làm việc của chúng tôi nhỏ như thế nào, đây là một bước cực kỳ quan trọng.

Ghi chú:

Vì OLED sử dụng bus I2C nên các chân A4 và A5 phải được sử dụng. Kích thước của breadboard không cho phép sử dụng nguồn điện và đường ray nối đất, vì vậy tôi đã sử dụng một vài thủ thuật để làm cho mọi thứ diễn ra suôn sẻ. Điện áp dương cho các nút được cung cấp bởi các chân D13 và A2. Tôi phát hiện ra rằng các chân Arduino không chỉ có thể cung cấp dòng điện mà còn có thể làm chìm dòng điện, do đó tôi đã sử dụng A3 làm mặt đất cho nút bên phải. Để tối đa hóa không gian trên breadboard, tôi đã treo một nửa Nano ra khỏi bảng và đỡ các chân bên trái bằng một miếng xốp.

2. Dây nó ra:

Với một cặp tuốt dây và một lượng lớn dây lõi rắn 22 AWG, hãy kết nối các bộ phận của bạn với nhau một cách gọn gàng. Sử dụng lõi rắn để tạo các dự án breadboard bán cố định là chìa khóa, vì bạn có thể cắt chúng theo chiều dài, không giống như dây jumper. Hãy chắc chắn rằng bạn không để quá nhiều chiều dài thừa trên dây của bạn, nó sẽ làm cho một bảng lộn xộn. Cắt các dây dẫn của điện trở kéo xuống để chúng vừa khít với bảng.

(Bạn cũng có thể làm theo những gì tôi đã làm ở trên.)

Bước 2: Lập trình và Kiểm tra

Chương trình và Kiểm tra
Chương trình và Kiểm tra

Để đỡ phải đau đầu sau này, hãy đảm bảo OLED và các nút hoạt động theo cách mà chúng phải làm bằng cách tạo các chương trình thử nghiệm cơ bản.

1. Kế hoạch, kế hoạch, kế hoạch:

Chỉ nhảy ngay vào mã không phải là một cách thực hành khôn ngoan. Hãy tin tôi, tôi đã cố gắng! Đó là lý do tại sao bạn nên phác thảo chương trình của bạn sẽ hoạt động như thế nào. Biểu đồ luồng chương trình là một cách khá chắc chắn để lập kế hoạch cho những gì mã của bạn cần làm và chắc chắn sẽ giúp bạn đi đúng hướng. Lấy ví dụ của tôi (ở trên)

2. Mã, mã, mã:

Thành thật mà nói, dự án này là một bài tập lập trình lớn hơn nó là một bài tập phần cứng. Thư viện duy nhất tôi sử dụng là thư viện OLED của Adafruit, không tính các thư viện GFX và Wire hỗ trợ.

Làm cho bạn cài đặt thư viện OLED của Adafruit thông qua trình quản lý thư viện của Arduino IDE.

Tôi không thể ghi lại từng dòng mã mà tôi đã viết, nhưng đây là một vài mẹo:

Lời khuyên:

Bình luận:

- Đầu tiên và quan trọng nhất, hãy viết các bình luận gọn gàng và hữu ích trong khi bạn viết mã. Bạn và những người khác đọc mã của bạn trong tương lai chắc chắn sẽ cảm ơn bạn.

Kỉ niệm:

- Với những dự án phức tạp hơn như thế này, SRAM trở thành mặt hàng khá hot. Trong thư viện Adafruit, bộ đệm OLED 128 x 64 chỉ chiếm 1 kB, bằng khoảng một nửa bộ nhớ trong ATMega328p. Do đó việc quản lý bộ nhớ thông minh trở nên quan trọng hơn bao giờ hết.

- Với cấu trúc dữ liệu lớn, dữ liệu được lưu giữ sẽ tích tụ và chiếm nhiều dung lượng. Để giảm dung lượng bộ nhớ của các biến, tôi đã sử dụng các kiểu dữ liệu nhỏ hơn (như short và byte) khi có thể.

- Các chuỗi thường được lưu trữ trong SRAM, nhưng sử dụng hàm F () sẽ đưa chúng vào PROGMEM thay thế, tiết kiệm bộ nhớ quý giá.

Millis:

- Để đạt được thời gian chính xác hơn của các chu kỳ trò chơi, hãy sử dụng hàm millis (). Có rất nhiều hướng dẫn và ví dụ tốt trên mạng.

Xác định trước:

- Sử dụng chỉ thị tiền xử lý #define như một cách dễ dàng để đặt các giá trị vĩnh viễn trong mã.

Thử nghiệm:

- Kiểm tra mã của bạn khi bạn đi. Sẽ dễ dàng hơn rất nhiều để tìm ra lỗi.

Bước 3: Thưởng thức

Hãy vui vẻ với trò chơi rắn mới của bạn!

(Tôi biết tôi đã thắng ở 20 điểm trong video trên, bạn có thể đặt điều kiện thắng cao hơn trong mã của tôi.)

Những điều cần mở rộng:

  • Pin cho tính di động
  • Các nút an toàn hơn
  • Một trò chơi rắn thậm chí còn nhỏ hơn
  • Thậm chí nhiều trò chơi hơn?

Đề xuất: