Mục lục:
- Bước 1: Cả MASTER và SLAVE trong cùng một mã
- Bước 2: Mô-đun BLUETOOTH Nói chuyện qua Đọc & Ghi nối tiếp
- Bước 3: Kiểm soát cuộc đua
- Bước 4: Phần còn lại của mã
- Bước 5: Tiếp theo là gì?
Video: Arduino Hot Wheels Speed Track Part # 2 - Code: 5 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:34
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:
Robot Mecanum Omni Wheels với động cơ bước GRBL Lá chắn Arduino: 4 bước
Mecanum Omni Wheels Robot với GRBL Động cơ bước Arduino Shield: Mecanum Robot - Một dự án tôi muốn xây dựng kể từ khi tôi nhìn thấy nó trên blog cơ điện tử gread của Dejan: howtomechatronics.com Dejan thực sự đã làm rất tốt trong tất cả các khía cạnh từ phần cứng, in 3D , điện tử, mã và ứng dụng Android (MIT
ARDUINO 3 Relays Shield (Part-1): 4 bước
ARDUINO 3 Relays Shield (Part-1): Hey peeps! Đây là hướng dẫn tiếp theo của tôi. Trình bày ở đây tấm chắn bảng chuyển tiếp 3 kênh cho Arduino để điều khiển các thiết bị AC tại một thời điểm. Rơ le thực sự là một công tắc được vận hành bằng điện bởi một nam châm điện Rơle rất hữu ích để kích hoạt
Star Track - Con trỏ và theo dõi sao được hỗ trợ bởi Arduino: 11 bước (có hình ảnh)
Star Track - Con trỏ sao được hỗ trợ bởi Arduino và Tracker: Star track là một hệ thống theo dõi sao lấy cảm hứng từ GoTo-mount dựa trên Arduino. Nó có thể trỏ và theo dõi bất kỳ vật thể nào trên bầu trời (tọa độ Thiên thể được cung cấp làm đầu vào) với 2 Arduinos, một con quay hồi chuyển, mô-đun RTC, hai động cơ bước chi phí thấp và một cấu trúc in 3D
Đường đua tốc độ Arduino Hot Wheels - Phần 1 - Nguyên mẫu: 4 bước
Arduino Hot Wheels Speed Track - Phần 1 - Nguyên mẫu: Không có gì ngạc nhiên khi con trai tôi rất thích bánh xe nóng và đua xe cả nhà! Một trong những điều yêu thích của anh ấy là đua tất cả những chiếc xe của anh ấy (hơn 100 chiếc bây giờ) để xác định chiếc xe nào nhanh nhất. Ngay bây giờ anh ấy làm tất cả bằng mắt, và
8 Track Walkman-Pod Thing (Công nghệ cổ điển): 7 bước (có hình ảnh)
8 Track Walkman-Pod Thing (Công nghệ cổ điển): Đây là một dự án điên rồ được thừa nhận để xem điều gì có thể xảy ra nếu Sony phát minh ra Walkman sớm hơn họ - và để làm ra nó phải cần đến 8 hộp băng track (trước cả băng cassette băng được phát minh). Nói cách khác, tôi có thể làm