Mục lục:

Arduino Hot Wheels Speed Track Part # 2 - Code: 5 bước
Arduino Hot Wheels Speed Track Part # 2 - Code: 5 bước

Video: Arduino Hot Wheels Speed Track Part # 2 - Code: 5 bước

Video: Arduino Hot Wheels Speed Track Part # 2 - Code: 5 bước
Video: HotWheels Speed Track - Part #2 - The code and Testing 2024, Tháng mười một
Anonim
Image
Image

Trong phần đầu tiên của dự án này, chúng tôi đã xây dựng phần cứng cho nguyên mẫu trên 2 breadboard.

Và trong phần này, chúng ta sẽ xem xét mã, cách thức hoạt động và sau đó kiểm tra nó.

Hãy nhớ xem video ở trên để xem toàn bộ mã và giới thiệu mã hoạt động.

Bước 1: Cả MASTER và SLAVE trong cùng một mã

Mã gồm 2 phần, nhưng bên trong cùng một tệp. Tôi sử dụng #define và #ifdef để xác định mã nào sẽ được biên dịch hoặc bỏ qua để tôi có thể tách biệt bất kỳ mã nào chỉ dành cho bảng mạch MASTER và mã chỉ dành cho bảng mạch SLAVE.

Về cơ bản, nếu tìm thấy định nghĩa MASTER, thì bất kỳ mã nào nằm bên trong khối mã MASTER sẽ được biên dịch và bất kỳ mã nào bên ngoài khối đó sẽ bị xóa tại thời điểm biên dịch.

#ifdef MASTER

// Mã cụ thể chính ở đây

#khác

#define SLAVE

// Mã cụ thể của nô lệ ở đây

#endif

Tôi cũng đang sử dụng kỹ thuật tương tự để # xác định SLAVE khi MASTER được biên dịch, vì vậy bạn chỉ cần lo lắng về việc xác định MASTER hay không bật SLAVE được xác định.

Bước 2: Mô-đun BLUETOOTH Nói chuyện qua Đọc & Ghi nối tiếp

Trong dự án này, chỉ có SLAVE breadboard mới nói chuyện với breadboard MASTER. MASTER không bao giờ nói lại, nó chỉ lắng nghe và sau đó hành động trên dữ liệu đến.

Các mô-đun nói chuyện và lắng nghe bằng cách sử dụng lớp Serial tích hợp trong hệ sinh thái mã hóa Arduino.

Các mô-đun Bluetooth giao tiếp ở 38400 baud, vì vậy cả hai đường dẫn mã đều khởi tạo giao tiếp nối tiếp của chúng bằng cách sử dụng:

Serial.begin (38400);

Và SLAVE sử dụng:

Serial.write (dữ liệu tại đây);

Để nói chuyện với MASTER, và MASTER sử dụng:

dữ liệu = Serial.read ();

Để nghe luồng nối tiếp và đọc nội dung của nó và lưu trữ nó bên trong một biến.

Bước 3: Kiểm soát cuộc đua

SLAVE cho MASTER biết nếu nó đang trong cuộc đua nhiều hơn hoặc chế độ sẵn sàng thông qua nút màu xanh lá cây được kết nối với bộ điều khiển vi mô của nó. Ở chế độ sẵn sàng, các cảm biến IR không làm gì cả và MASTER sẽ hiển thị 8 dấu gạch ngang trên màn hình để cho biết nó đang ở chế độ sẵn sàng.

Khi SLAVE thông báo cho MASTER rằng một cuộc đua sắp bắt đầu, SLAVE bắt đầu thăm dò các cảm biến IR ở bên cạnh nó (Nơi bắt đầu đường đua) để tìm ô tô đi qua bên dưới.

Khi mỗi chiếc xe đi qua dưới mỗi cảm biến IR, nó sẽ gửi một điểm A (xe 1) hoặc B (xe 2) đến MASTER.

Khi MASTER nhận được điểm A hoặc B, nó sẽ bật bộ đếm thời gian cho chiếc xe cụ thể đó và sau đó đợi chiếc xe đi qua bên dưới cảm biến IR tương ứng ở vạch đích.

Màn hình được cập nhật sau mỗi 50ms để hiển thị thời gian hiện tại của mỗi xe tính bằng giây với 2 chữ số thập phân.

Khi cả hai chiếc xe đã về đích, MASTER quyết định chiếc xe nào chạy nhanh nhất và nhấp nháy thời gian đó trên màn hình để chỉ ra người chiến thắng.

Bước 4: Phần còn lại của mã

Phần còn lại của mã chỉ là mã tiện ích điều khiển hiển thị dữ liệu trên màn hình 8 chữ số hoặc xử lý logic nhấn nút, v.v.

Ở cuối video trong phần giới thiệu của dự án này, tôi đưa ra một ví dụ về mã chạy trên 2 breadboard, vì vậy hãy đảm bảo bạn kiểm tra điều đó!

Bạn có thể lấy mã cho dự án này từ kho github của tôi.

Bước 5: Tiếp theo là gì?

Vậy là xong… trong phần 3, chúng ta sẽ xem xét việc di chuyển các thành phần ra khỏi breadboard và chuyển sang một thứ gì đó lâu dài hơn… hãy chú ý theo dõi!

Tôi hy vọng bạn đang thích dự án này!

Theo dõi tôi trên:

www.youtube.com/c/uneprismaker

twitter.com/uneprismaker

www.facebook.com/uneprismaker

www.instagram.com/uneprismaker

www.tindie.com/stores/seonr/

Đề xuất: