Mục lục:

Bộ điều khiển tàu mô hình 2 trong 1 Arduino: 4 bước
Bộ điều khiển tàu mô hình 2 trong 1 Arduino: 4 bước

Video: Bộ điều khiển tàu mô hình 2 trong 1 Arduino: 4 bước

Video: Bộ điều khiển tàu mô hình 2 trong 1 Arduino: 4 bước
Video: Arduino | nRF24L01 - Mạch thu phát RF 2.4Ghz 1Km | PHẦN 1 2024, Tháng mười một
Anonim
Bộ điều khiển tàu mô hình 2 trong 1 Arduino
Bộ điều khiển tàu mô hình 2 trong 1 Arduino

Bốn mươi năm trước, tôi đã thiết kế van tiết lưu mô hình dựa trên op-amp cho một vài người bạn, và sau đó khoảng bốn năm trước, tôi đã tạo lại nó bằng vi điều khiển PIC. Dự án Arduino này tái tạo phiên bản PIC nhưng cũng bổ sung khả năng sử dụng kết nối Bluetooth thay vì các công tắc thủ công cho điều khiển ga, phanh và điều khiển hướng. Mặc dù thiết kế mà tôi trình bày ở đây được nhắm mục tiêu cho động cơ đường ray kiểu 12 volt, nó có thể dễ dàng được sửa đổi cho nhiều ứng dụng điều khiển động cơ DC khác.

Bước 1: Điều chế độ rộng xung (PWM)

Điều chế độ rộng xung (PWM)
Điều chế độ rộng xung (PWM)

Đối với những người bạn chưa quen với PWM, nó không đáng sợ như nó nghe. Tất cả những gì nó thực sự có ý nghĩa đối với ứng dụng điều khiển động cơ đơn giản của chúng tôi là chúng tôi tạo ra một sóng vuông có tần số nào đó, và sau đó chúng tôi thay đổi chu kỳ hoạt động. Chu kỳ nhiệm vụ được định nghĩa là tỷ lệ thời gian mà đầu ra là mức cao hợp lý so với chu kỳ dạng sóng. Bạn có thể thấy điều đó khá rõ ràng trong biểu đồ trên với dạng sóng trên cùng ở chu kỳ nhiệm vụ 10%, dạng sóng ở giữa ở chu kỳ nhiệm vụ 50% và dạng sóng dưới cùng ở chu kỳ nhiệm vụ 90%. Đường đứt nét phủ trên mỗi dạng sóng đại diện cho điện áp DC tương đương mà động cơ nhìn thấy. Do Arduino có tích hợp khả năng PWM, nên việc tạo loại điều khiển động cơ DC này thực sự khá đơn giản. Một ưu điểm khác của việc sử dụng PWM là nó giúp giữ cho động cơ không bị khởi động ì ạch có thể xảy ra khi sử dụng DC thẳng. Một nhược điểm của PWM là đôi khi có tiếng ồn từ động cơ ở tần số của PWM.

Bước 2: Phần cứng

Phần cứng
Phần cứng
Phần cứng
Phần cứng
Phần cứng
Phần cứng

Hình ảnh đầu tiên cho thấy các kết nối Arduino cho các công tắc và mô-đun điều khiển động cơ LM298. Có các điện trở kéo lên yếu bên trong Arduino nên không cần điện trở kéo lên cho các công tắc. Công tắc hướng là một công tắc SPST (ném đơn cực đơn) đơn giản. Công tắc Ga và Phanh được hiển thị dưới dạng các nút nhấn tiếp xúc tạm thời, thường mở.

Hình thứ hai cho thấy các kết nối Arduino cho mô-đun Bluetooth và mô-đun điều khiển động cơ LM298. Đầu ra Bluetooth TXD kết nối trực tiếp với đầu vào nối tiếp Arduino RX.

Hình thứ ba là mô-đun cầu H kép L298N. Mô-đun LM298 có bộ điều chỉnh 5 volt tích hợp có thể được kích hoạt bằng jumper. Chúng tôi cần +5 volt cho Arduino và Bluetooth nhưng chúng tôi muốn +12 volt để điều khiển động cơ. Trong trường hợp này, chúng tôi áp dụng +12 volt cho đầu vào "nguồn + 12V" của L298N và chúng tôi sẽ để nguyên đầu nối "5V enable". Điều này cho phép bộ điều chỉnh 5 volt xuất ra kết nối “+5 nguồn” trên mô-đun. Kết nối với Arduino và Bluetooth. Đừng quên kết nối dây nối đất cho đầu vào +12 và đầu ra +5 với mô-đun “power GND”.

Chúng tôi muốn điện áp đầu ra cho động cơ thay đổi dựa trên PWM do Arduino tạo ra thay vì chỉ bật hoặc tắt hoàn toàn. Để làm điều đó, chúng tôi loại bỏ jumper khỏi “ENA” và “ENB” và kết nối đầu ra Arduino PWM của chúng tôi với “ENA” trên mô-đun. Hãy nhớ rằng chân kích hoạt thực tế là chân gần nhất với mép bảng (bên cạnh chân "đầu vào"). Chân sau cho mỗi lần bật là +5 vôn, vì vậy chúng tôi muốn đảm bảo rằng chúng tôi không kết nối với đó.

Các chân “IN1” và “IN2” trên mô-đun được kết nối với các chân Arduino tương ứng. Các chân đó điều khiển hướng động cơ và vâng, có lý do chính đáng để để Arduino điều khiển chúng thay vì chỉ kết nối một công tắc với mô-đun. Chúng ta sẽ xem lý do tại sao trong phần thảo luận về phần mềm.

Bước 3: Mô-đun Bluetooth

Mô-đun Bluetooth
Mô-đun Bluetooth

Hình ảnh hiển thị ở đây là điển hình của các mô-đun Bluetooth có sẵn. Khi tìm mua, bạn có thể tìm trên các cụm từ “HC-05” và HC-06”. Sự khác biệt giữa cả hai là trong phần sụn và thường là ở số lượng chân cắm trên bo mạch. Hình trên là mô-đun HC-06 và đi kèm với phần sụn đơn giản chỉ cho phép cấu hình rất cơ bản. Nó cũng được đặt làm thiết bị Bluetooth chỉ dành cho “Slave”. Nói một cách đơn giản, điều đó có nghĩa là nó chỉ có thể phản hồi các lệnh từ thiết bị “Chính” và không thể tự ra lệnh. Mô-đun HC-05 có nhiều khả năng cấu hình hơn và có thể được đặt làm thiết bị “Master” hoặc “Slave”. HC-05 thường có sáu chân thay vì chỉ bốn chân như ở trên đối với HC-06. Ghim Trạng thái không thực sự quan trọng nhưng ghim Khóa (đôi khi có tên khác như “EN”) là bắt buộc nếu bạn muốn thực hiện bất kỳ cấu hình nào. Nói chung, các mô-đun không cần bất kỳ cấu hình nào nếu bạn thấy ổn với tốc độ truyền mặc định là 9600 và đừng quan tâm đến việc đặt tên cụ thể cho mô-đun. Tôi có một số dự án mà tôi sử dụng chúng nên tôi muốn đặt tên chúng cho phù hợp.

Việc định cấu hình mô-đun Bluetooth yêu cầu bạn phải mua hoặc xây dựng giao diện với cổng nối tiếp RS-232 hoặc cổng USB. Tôi sẽ không trình bày cách tạo một cái trong bài đăng này nhưng bạn có thể tìm thấy thông tin trên web. Hoặc chỉ cần mua một giao diện. Các lệnh cấu hình sử dụng lệnh AT giống như những gì đã được sử dụng trong những ngày xa xưa với modem điện thoại. Tôi đã đính kèm sách hướng dẫn sử dụng ở đây bao gồm các lệnh AT cho từng loại mô-đun. Một điều cần lưu ý là HC-06 yêu cầu các lệnh UPPERCASE và chuỗi lệnh phải hoàn thành trong vòng 1 giây. Điều đó có nghĩa là một số chuỗi dài hơn cho những thứ như thay đổi tốc độ truyền sẽ cần phải được cắt và dán vào chương trình đầu cuối của bạn hoặc bạn sẽ cần thiết lập các tệp văn bản để gửi. Yêu cầu UPPERCASE chỉ là nếu bạn đang cố gắng gửi các lệnh cấu hình. Chế độ giao tiếp thông thường có thể chấp nhận bất kỳ 8 bit dữ liệu nào.

Bước 4: Phần mềm

Phần mềm này khá đơn giản cho cả phiên bản thủ công và phiên bản Bluetooth. Để chọn phiên bản Bluetooth, chỉ cần bỏ ghi chú câu lệnh “#define BT_Ctrl”.

Khi tôi viết mã PIC, tôi đã thử nghiệm với tần số PWM và cuối cùng giải quyết ở 500-Hz. Tôi phát hiện ra rằng nếu tần số quá cao thì mô-đun LM298N không có khả năng phản ứng đủ nhanh với các xung. Điều đó có nghĩa là đầu ra điện áp không tuyến tính và có thể có bước nhảy lớn. Arduino có các lệnh PWM được tích hợp sẵn nhưng chúng chỉ cho phép bạn thay đổi chu kỳ nhiệm vụ chứ không phải tần số. May mắn thay, tần số là khoảng 490-Hz, đủ gần với 500-Hz mà tôi đã sử dụng trên PIC.

Một trong những “tính năng” của bộ tiết lưu xe lửa là cảm giác xung lượng để tăng tốc và phanh để mô phỏng cách hoạt động của một đoàn tàu thực sự. Để thực hiện điều đó, một thời gian trễ đơn giản được chèn vào vòng lặp cho phiên bản thủ công của phần mềm. Với giá trị được hiển thị, mất khoảng 13 giây để đi từ 0 đến 12 vôn hoặc từ 12 vôn trở về 0. Thời gian trễ có thể dễ dàng sửa đổi trong thời gian dài hơn hoặc ngắn hơn. Trường hợp duy nhất mà động lượng không có hiệu lực là khi công tắc Hướng được thay đổi. Vì mục đích bảo vệ, chu kỳ nhiệm vụ PWM ngay lập tức được đặt thành 0% bất cứ khi nào công tắc này được thay đổi. Điều đó, trên thực tế, làm cho Công tắc hướng cũng hoạt động như một phanh khẩn cấp.

Để đảm bảo xử lý ngay công tắc Hướng, tôi đặt mã của nó vào một trình xử lý ngắt. Điều đó cũng cho phép chúng tôi sử dụng chức năng "ngắt khi thay đổi", do đó không thành vấn đề nếu thay đổi từ thấp đến cao hoặc cao xuống thấp.

Phiên bản Bluetooth của phần mềm sử dụng các lệnh ký tự đơn để bắt đầu các chức năng Tiến, lùi, Phanh và Ga. Trên thực tế, các lệnh nhận được sẽ thay thế các công tắc thủ công nhưng gây ra các phản hồi giống nhau. Ứng dụng tôi sử dụng để điều khiển Bluetooth được Next Prototypes gọi là “Bộ điều khiển nối tiếp Bluetooth”. Nó cho phép bạn định cấu hình bàn phím ảo và đặt các chuỗi lệnh và tên của riêng bạn cho mỗi phím. Nó cũng cho phép bạn đặt tốc độ lặp lại, vì vậy tôi đặt nút Phanh và ga thành 50ms để tạo khoảng 14 giây xung lượng. Tôi đã tắt chức năng lặp lại cho các nút Chuyển tiếp và Đảo ngược.

Đó là nó cho bài đăng này. Kiểm tra các tài liệu hướng dẫn khác của tôi. Nếu bạn quan tâm đến các dự án vi điều khiển PIC, hãy xem trang web của tôi tại www.boomerrules.wordpress.com

Đề xuất: