Mục lục:

Trò chơi Ma trận LED của Cuộc sống 32 X 32: 8 Bước
Trò chơi Ma trận LED của Cuộc sống 32 X 32: 8 Bước

Video: Trò chơi Ma trận LED của Cuộc sống 32 X 32: 8 Bước

Video: Trò chơi Ma trận LED của Cuộc sống 32 X 32: 8 Bước
Video: 8051 | Bai 11 - Led Matrix 8x8 2024, Tháng sáu
Anonim
Trò chơi Ma trận LED của Cuộc sống 32 X 32
Trò chơi Ma trận LED của Cuộc sống 32 X 32

Tôi đã lấy cảm hứng từ Game of Life 16 x16 của Jptrsn nhưng cuối cùng lại lớn hơn gấp 4 lần. khá khó để tách chúng ra và sử dụng chúng trong lưới 16x16 như tôi đã lên kế hoạch, vì vậy tôi quyết định tạo lưới 32x32. Đó là khi mọi thứ trở nên phức tạp, vì bạn không thể chỉ mở rộng mã.

Bước 1: Các bộ phận

Tôi lấy các bộ phận của mình từ BangGood nhưng bạn có thể tìm nguồn này ở bất cứ đâu. 1. Một Arduino Nano (~ £ 2) 2. 4 Ma trận Led 1x4 (~ £ 3,50 x 4) hoặc tìm nhiều gói đôi khi rẻ hơn 3. Một số dây 4. Một ổ cắm micro USB (<£ 1) 5. Một USB cung cấp điện (<£ 5) 6. Khung ảnh hộp 6 "x6" / 15cmx15cm (~ £ 4) từ cửa hàng thủ công địa phương

Bước 2: Công cụ

1. Súng bắn keo nóng

2. Sắt hàn

3. Dụng cụ tuốt dây

4. Dao sắc

Bước 3: Xây dựng Breadboard

Bản dựng Breadboard
Bản dựng Breadboard

Một điều tôi học được tại thời điểm này là một nano (và có thể là các Arduinos khác) không thể cung cấp đủ năng lượng để chạy cả 4 ma trận mà không làm cạn kiệt nguồn điện! được cảnh báo

Khi các bo mạch của tôi đến nơi, chúng chỉ có các chân ở đầu vào và các chân đầu ra bị lỏng trong túi, hoặc trong một trường hợp, bị kẹt dưới màn hình làm chập các chân ra. Nó chỉ ra rằng không tốt cho những màn hình này (công việc tốt tôi đã mua 6). Bạn sẽ cần hàn các chân đầu ra vào hai trong số các ma trận LED nếu chúng không được lắp vào của bạn.

Bố cục khá đơn giản, bạn có thể nối hai trong số các ma trận với nhau để tạo thành hai chuỗi bằng cách chỉ cần kết nối các chân đầu ra với các chân đầu vào phù hợp. Bạn không thể xâu chuỗi tất cả chúng trong một lần chạy vì thư viện LedControl được giới hạn ở 8 màn hình cùng một lúc.

Sau đó cắm DataIn vào chân 12, nạp (hoặc CS) vào chân 11 và Đồng hồ (hoặc CLK) vào chân 10 và cho chuỗi khác là 5, 4 & 3. Ngoài ra, bạn có thể chọn bất kỳ chân kỹ thuật số nào bạn thích chỉ cần nhớ thay đổi mã để phản ánh sự lựa chọn của bạn. Sau đó, thêm ổ cắm USB vào breadboard. Sau đó liên kết các chân v + và tiếp đất với các đường ray của breadboard. Sau đó bạn cần cắm các dây dẫn điện từ 2 chuỗi vào + ve và nối đất và buộc dây Arduino tiếp đất. Sau khi chúng tôi lập trình xong bo mạch, bạn có thể liên kết Arduino vin với v + và không bao giờ cắm lại USB Aurdino nữa.

Bước 4: Mã

Lúc đầu, tôi nghĩ rằng tất cả những gì tôi cần làm là lấy mã hiện có và mở rộng nó lên thành 32x32 nhưng nó hơi phức tạp hơn thế. 1. Bạn cần hai LedControl vì mỗi LedControl chỉ có thể điều khiển 8 MAX7219s LedControl lc [2] = {LedControl (12, 10, 11, 8), LedControl (5, 3, 4, 8)}; 2. Không có đủ bộ nhớ trên Nano để lưu trữ 2 mảng byte 32x32 đầy đủ để duy trì trạng thái bảng. (Cuối cùng, tất cả những lần tôi viết mã Game of Life trên bảng trắng trong các cuộc phỏng vấn đều thành công.) mảng bảng là 32x4 và lưu trữ trạng thái của mỗi ô dưới dạng một bit trong các byte trên toàn mảng.

Bước 5: Kết hợp tất cả lại với nhau

Đầu tiên hãy kiểm tra mã và cách bố trí của các bảng như mong đợi bằng cách sử dụng phương pháp "testPattern" để vẽ một đường chéo chéo trên các bảng. Nếu điều này có vẻ không ổn thì có điều gì đó không ổn với thứ tự của bảng mạch và / hoặc các chân bạn đã khởi tạo. Một lần nữa nếu nó không hoạt động, hãy kiểm tra thứ tự của các chân, v.v. Cuối cùng, đặt phương thức chính là "ngẫu nhiên hóa", đặt NUMITR thành số lần nó sẽ lặp lại trước khi đặt lại.

Bước 6: Lên khung

Khung nó lên
Khung nó lên

Bây giờ để đưa mọi thứ vào một khung, trước tiên, hãy dán nóng các ma trận lại với nhau thành một khung 32x32. Hãy nhớ đảm bảo rằng đầu vào ở cùng một phía cho tất cả chúng (hoặc sửa đổi mã tra cứu trong "gridToCell" để cho phép lật ngược bảng thứ hai). Thêm ổ cắm điện và một công tắc trên đường 5v và hàn mọi thứ lại với nhau.

Bước 7: Các vấn đề về khung

Hóa ra là bạn cần một khung hình lớn hơn khung hình 6x6 mà tôi có. Vì vậy, tôi sẽ cần phải quay lại để hoàn thành việc này khi tôi có cơ hội đến cửa hàng.

Bước 8:

Đề xuất: