- Các thành phần cần thiết cho Arduino RC Boat
- Mô-đun thu và phát RF 433MHz
- Máy phát RF 433MHZ
- Sơ đồ khối của bộ phát Arduino RC Boat
- Sơ đồ mạch của Điều khiển từ xa Arduino RC (Bộ phát)
- Xây dựng mạch phát RC BOAT
- Xây dựng Vỏ máy phát Arduino RC Boat
- Mô-đun máy thu 433Mhz
- Sơ đồ khối của bộ thu Arduino RC Boat
- Sơ đồ mạch của bộ thu Arduino RC Boat
- Xây dựng mạch thu của Arduino RC Boat
- Xây dựng RC-BOAT
- Động cơ và cánh quạt cho Arduino Air Boat
- Hoạt động của Arduino RC Boat
- Lập trình Arduino của RC Boat
Trong dự án này, chúng tôi sẽ chế tạo một Phi thuyền Arduino điều khiển từ xa có thể được điều khiển không dây bằng cách sử dụng Mô-đun vô tuyến RF 433 MHz. Chúng tôi sẽ điều khiển chiếc thuyền này bằng điều khiển từ xa tự chế bằng cách chế tạo bộ phát 433 MHz và một mô-đun thu của riêng mình. Trong trường hợp thiết bị được điều khiển từ xa hoặc giao tiếp giữa hai thiết bị, chúng tôi có rất nhiều tùy chọn như IR, Bluetooth, internet, RF, v.v. Khi so sánh với giao tiếp IR, giao tiếp vô tuyến có một số lợi thế như phạm vi rộng hơn và nó không yêu cầu kết nối đường ngắm giữa máy phát và máy thu. Ngoài ra, các mô-đun này có thể thực hiện hai cách giao tiếp, có nghĩa là nó có thể truyền và nhận cùng một lúc. Vì vậy, bằng cách sử dụng mô-đun RF 433MHz này, chúng ta hãy xây dựng một Thuyền RC Arduino trong hướng dẫn này.
Trước đây, chúng tôi đã xây dựng nhiều dự án được điều khiển từ xa bằng cách sử dụng các mô-đun RF 433Mhz này để điều khiển Robot như Robot được điều khiển bằng RF này hoặc cho các ứng dụng Tự động hóa gia đình để Điều khiển thiết bị gia dụng bằng RF. Ngoài việc sử dụng mô-đun RF, chúng tôi cũng đã chế tạo Xe Raspberry Pi được điều khiển bằng Bluetooth và Robot Arduino được điều khiển bằng điện thoại di động DTMF trước đây. Bạn cũng có thể kiểm tra các dự án này nếu bạn quan tâm.
Các thành phần cần thiết cho Arduino RC Boat
- Máy phát và máy thu 433MHz
- Arduino (bất kỳ Arduino nào, để giảm kích thước tôi đang sử dụng promini)
- HT12E và HT12D
- Nút nhấn- 4Nos
- Điện trở- 1mega ohm, 47k ohm
- Trình điều khiển động cơ L293d
- Pin 9V (tôi đang sử dụng pin 7,4 volt) - 2 lần
- Bộ điều chỉnh 7805- 2Nos
- Động cơ DC- 2Nos
- Lá động cơ hoặc máy bơm chân vịt (Tôi đang sử dụng máy sấy chân vịt tự làm) - 2Nos
- .1uf tụ điện- 2Nos
- PCB thông thường
Mô-đun thu và phát RF 433MHz
Các loại mô-đun RF này rất phổ biến trong giới sản xuất. Vì chi phí thấp và sự đơn giản trong kết nối. Các mô-đun này là tốt nhất cho tất cả các dạng dự án truyền thông tầm ngắn. Các mô-đun này là các mô-đun RF loại ASK (Khóa dịch chuyển biên độ), Khóa dịch chuyển biên độ (ASK) là một dạng điều chế biên độ biểu diễn dữ liệu số dưới dạng các biến thể trong biên độ của sóng mang. Trong hệ thống ASK, ký hiệu nhị phân 1 được biểu diễn bằng cách truyền sóng mang biên độ cố định và tần số cố định trong thời gian bit T giây. Nếu giá trị tín hiệu là 1, thì tín hiệu sóng mang sẽ được truyền đi; nếu không, giá trị tín hiệu bằng 0 sẽ được truyền đi. Điều đó có nghĩa là chúng thường không rút điện khi truyền Logic “zero”. Mức tiêu thụ điện năng thấp này làm cho chúng rất hữu ích trong các dự án hoạt động bằng pin.
Máy phát RF 433MHZ
Đây là loại mô-đun siêu nhỏ và đi kèm với 3 chân VCC, nối đất và dữ liệu. Một số mô-đun khác có thêm một chân ăng-ten. Điện áp làm việc của mô-đun máy phát là 3V-12V và mô-đun này không có bất kỳ thành phần điều chỉnh nào. Một trong những ưu điểm chính của mô-đun này là tiêu thụ dòng điện thấp, nó yêu cầu dòng điện gần như bằng không để gửi bit 0.
Sơ đồ khối của bộ phát Arduino RC Boat
Trong sơ đồ khối trên, có bốn nút bấm (Control Buttons), các nút bấm này dùng để điều khiển hướng đi của thuyền. Chúng tôi có bốn trong số chúng cho tiến, lùi, trái và phải. Từ các nút bấm, chúng tôi nhận được logic để điều khiển con thuyền nhưng không thể kết nối trực tiếp với bộ mã hóa, đó là lý do tại sao chúng tôi sử dụng Arduino. Bạn có thể nghĩ tại sao tôi lại sử dụng Arduino ở đây, đơn giản là vì chúng ta cần kéo hai đầu vào dữ liệu song song của bộ mã hóa xuống cùng một lúc để chuyển động lùi và tiến mà không thể đạt được chỉ bằng các nút nhấn. Sau đó, bộ mã hóa mã hóa dữ liệu song song tới các đầu ra nối tiếp. Sau đó, chúng tôi có thể truyền dữ liệu nối tiếp đó với sự trợ giúp của máy phát RF.
Sơ đồ mạch của Điều khiển từ xa Arduino RC (Bộ phát)
Trong mạch trên, bạn có thể thấy một mặt của tất cả bốn nút bấm được kết nối với bốn chân kỹ thuật số của Arduino (D6-D9) và tất cả bốn mặt còn lại được kết nối với mặt đất. Đó là khi chúng ta nhấn nút, các chân kỹ thuật số tương ứng nhận được mức logic thấp. Bốn đầu vào song song của bộ mã hóa HT12E được kết nối với bốn chân kỹ thuật số khác của Arduino (D2-D5). Vì vậy, với sự trợ giúp của Arduino, chúng ta có thể quyết định đầu vào của bộ mã hóa.
Và nói về encoder thì HT12E là bộ mã hóa 12 bit và bộ mã hóa đầu ra nối tiếp đầu vào song song. Trong số 12 bit, 8 bit là các bit địa chỉ có thể được sử dụng để điều khiển nhiều máy thu. Các chân A0-A7 là chân đầu vào địa chỉ. Trong dự án này, chúng tôi chỉ điều khiển một bộ thu, vì vậy chúng tôi không muốn thay đổi địa chỉ của nó, vì vậy tôi đã kết nối tất cả các chân địa chỉ với mặt đất. Nếu bạn muốn điều khiển các máy thu khác nhau bằng một máy phát, bạn có thể sử dụng công tắc nhúng tại đây. AD8-AD11 là các đầu vào bit điều khiển. Các đầu vào này sẽ điều khiển các đầu ra D0-D3 của bộ giải mã HT12D. Chúng ta cần kết nối một bộ dao động để giao tiếp và tần số bộ dao động phải là 3KHzcho hoạt động 5V. Khi đó giá trị điện trở sẽ là 1,1MΩ cho 5V. Sau đó, tôi kết nối đầu ra của HT12E với mô-đun máy phát. Chúng tôi đã đề cập, mô-đun bộ phát Arduino và rf, cả hai thiết bị này hoạt động trên điện áp cao 5V sẽ giết chết nó, vì vậy để tránh điều này, tôi đã thêm bộ điều chỉnh điện áp 7805. Bây giờ chúng ta có thể kết nối (Vcc) 6-12volt bất kỳ loại pin nào với đầu vào.
Xây dựng mạch phát RC BOAT
Tôi đã hàn mọi thành phần trên một PCB thông thường. Hãy nhớ rằng chúng tôi đang làm việc trong một dự án RF nên có rất nhiều cơ hội xảy ra các loại nhiễu khác nhau, vì vậy hãy kết nối tất cả các thành phần càng chặt chẽ càng tốt. Tốt hơn là sử dụng các đầu cắm chân cái cho Arduino và mô-đun máy phát. Ngoài ra, hãy cố gắng hàn mọi thứ trên miếng đồng thay vì sử dụng thêm dây. Cuối cùng, kết nối một dây nhỏ với mô-đun máy phát sẽ giúp tăng tổng phạm vi. Trước khi kết nối Arduino và mô-đun máy phát, hãy kiểm tra kỹ điện áp của đầu ra lm7805.
Hình ảnh trên cho thấy hình ảnh mặt trên của mạch máy phát RC Boat đã hoàn thành và hình ảnh phía dưới của mạch máy phát RC Boat đã hoàn thành được hiển thị bên dưới.
Xây dựng Vỏ máy phát Arduino RC Boat
Một cơ thể tốt là cần thiết cho điều khiển từ xa. Bước này là tất cả về ý tưởng của bạn, bạn có thể tạo một cơ thể từ xa với ý tưởng của mình. Tôi đang giải thích cách tôi làm điều này. Để làm thân từ xa, tôi chọn tấm MDF 4mm, bạn cũng có thể chọn ván ép, tấm xốp hoặc bìa cứng, sau đó tôi cắt hai miếng từ đó có chiều dài 10cm và chiều rộng là 5cm. Sau đó, tôi đánh dấu vị trí cho các nút. Tôi đặt các nút hướng ở bên trái và các nút tiến, lùi ở bên phải. Ở phía bên kia của tờ giấy, tôi đã kết nối các nút nhấn với mạch truyền tải chính. Hãy nhớ một nút bấm bình thường có 4 chốt, mỗi bên là hai chốt. Kết nối một chân với Arduino và chân còn lại với mặt đất. Nếu bạn bối rối với điều đó, vui lòng kiểm tra nó bằng đồng hồ vạn năng hoặc kiểm tra biểu dữ liệu.
Sau khi kết nối tất cả những thứ này, tôi đặt mạch điều khiển vào giữa hai tấm ván MDF và siết chặt bằng một số bu lông dài (vui lòng tham khảo các hình ảnh bên dưới nếu bạn muốn). Một lần nữa việc tạo ra một cơ thể tốt là tất cả về ý tưởng của bạn.
Mô-đun máy thu 433Mhz
Bộ thu này cũng rất nhỏ và đi kèm với 4 chân VCC, nối đất, và hai chân giữa là ngõ ra dữ liệu. Điện áp làm việc của mô-đun này là 5v. Giống như mô-đun máy phát, đây cũng là một mô-đun công suất thấp. Một số mô-đun đi kèm với một chân ăng-ten phụ nhưng trong trường hợp của tôi, điều đó không có.
Sơ đồ khối của bộ thu Arduino RC Boat
Sơ đồ khối trên mô tả sự làm việc của mạch thu RF. Đầu tiên, chúng ta có thể nhận tín hiệu đã truyền bằng cách sử dụng mô-đun thu RF. Đầu ra của máy thu này là dữ liệu nối tiếp. Nhưng chúng tôi không thể kiểm soát bất cứ điều gì với dữ liệu nối tiếp này, đó là lý do tại sao chúng tôi kết nối đầu ra với bộ giải mã. Bộ giải mã giải mã dữ liệu nối tiếp thành dữ liệu song song ban đầu của chúng tôi. Trong phần này, chúng tôi không yêu cầu bất kỳ bộ vi điều khiển nào, chúng tôi có thể kết nối trực tiếp các đầu ra với trình điều khiển động cơ.
Sơ đồ mạch của bộ thu Arduino RC Boat
Các HT12D là một bộ giải mã 12-bit mà là một bộ giải mã đầu ra đầu vào song song nối tiếp. Chân đầu vào của HT12D sẽ được kết nối với bộ thu có đầu ra nối tiếp. Trong số 12 bit, 8 bit (A0-A7) là các bit địa chỉ và HT12D sẽ giải mã đầu vào nếu chỉ nó khớp với địa chỉ hiện tại của nó. D8-D11 là các bit đầu ra. Để đấu mạch này với mạch phát, tôi nối đất tất cả các chân địa chỉ. Dữ liệu ra khỏi mô-đun là loại nối tiếp và bộ giải mã giải mã dữ liệu nối tiếp này thành dữ liệu song song ban đầu và chúng tôi lấy ra thông qua D8-D11. Để phù hợp với tần số dao động nên nối điện trở 33-56k với các chân dao động. Led trên chân 17 cho biết đường truyền hợp lệ, đèn chỉ sáng sau khi đầu thu kết nối với thiết bị phát. Đầu vào điện áp của máy thu cũng là 6-12 volt.
Để điều khiển động cơ, tôi sử dụng IC L293D, tôi chọn IC này vì để giảm kích thước và trọng lượng và IC này là tốt nhất để điều khiển hai động cơ theo hai hướng. L293D có 16 chân, sơ đồ dưới đây cho thấy sơ đồ chân.
Các chân 1, 9 là chân kích hoạt, chúng tôi kết nối đó với 5 v để kích hoạt động cơ 1A, 2A, 3A và 4A là chân điều khiển. Động cơ sẽ quay sang phải nếu chân 1A ở mức thấp và 2A ở mức cao, và động cơ sẽ quay sang trái nếu chân 1A ở mức thấp và 2A ở mức cao. Vì vậy, chúng tôi kết nối các chân này với ps đầu ra của bộ giải mã. 1Y, 2Y, 3Y và 4Y là các chân kết nối động cơ. Vcc2 là chân điện áp điều khiển động cơ, nếu bạn đang sử dụng động cơ điện áp cao thì bạn nối chân này với nguồn điện áp tương ứng.
Xây dựng mạch thu của Arduino RC Boat
Trước khi xây dựng mạch thu, bạn nên nhớ một số điều quan trọng. Điều quan trọng là kích thước và trọng lượng vì sau khi xây dựng mạch, chúng ta cần cố định nó trên thuyền. Vì vậy, nếu trọng lượng tăng lên, điều đó sẽ ảnh hưởng đến sự nổi và chuyển động.
Vì vậy, giống như trong mạch máy phát, hàn mọi thành phần trong một PCB thông dụng nhỏ và cố gắng sử dụng dây tối thiểu. Tôi đã kết nối chân 8 của trình điều khiển động cơ với 5v vì tôi đang sử dụng động cơ 5V.
Xây dựng RC-BOAT
Tôi đã thử các vật liệu khác nhau để chế tạo thân thuyền. Và tôi đã có một kết quả tốt hơn với tấm thermocol. Vì vậy, tôi quyết định xây dựng cơ thể bằng nhiệt. Đầu tiên, tôi lấy một miếng thermocol dày 3cm và đặt mạch thu lên trên, sau đó tôi đánh dấu hình chiếc thuyền bằng thermocol và cắt. Vì vậy, đây là cách đóng thuyền của tôi, bạn có thể đóng theo ý tưởng của mình.
Động cơ và cánh quạt cho Arduino Air Boat
Một lần nữa trọng lượng lại quan trọng. Vì vậy, việc lựa chọn động cơ chính xác là rất quan trọng, tôi chọn động cơ một chiều bình thường loại 5volt, n20, nhỏ và không trọng lượng. Để tránh nhiễu RF nên kết nối song song tụ điện 0,1uf với đầu vào động cơ.
Trong trường hợp cánh quạt, tôi đã làm cánh quạt bằng cách sử dụng tấm nhựa. Bạn có thể mua cánh quạt từ cửa hàng hoặc bạn có thể tự chế tạo cả hai cánh quạt sẽ hoạt động tốt. Để chế tạo cánh quạt, đầu tiên, tôi lấy một tấm nhựa nhỏ và cắt hai miếng nhỏ từ đó và tôi uốn các mảnh đó với sự trợ giúp của nhiệt nến. Cuối cùng, tôi đặt một lỗ nhỏ ở tâm của nó cho động cơ và cố định vào động cơ đó.
Hoạt động của Arduino RC Boat
Chiếc thuyền này có hai động cơ, có thể gọi nó là trái và phải. Nếu động cơ cũng di chuyển theo chiều kim đồng hồ (vị trí của cánh quạt cũng phụ thuộc) động cơ sẽ hút không khí từ phía trước và thải ra phía sau. Điều đó tạo ra lực cản về phía trước.
Chuyển động tịnh tiến: Nếu cả hai động cơ trái và phải quay theo chiều kim đồng hồ sẽ chuyển động về phía trước
Chuyển động lùi: Nếu cả động cơ trái và phải quay ngược chiều kim đồng hồ (đó là cánh quạt hút không khí từ mặt sau và xả ra mặt trước) sẽ tạo ra chuyển động lùi
Chuyển động sang trái: Nếu chỉ có động cơ bên phải quay thuyền chỉ nhận được lực cản từ phía bên phải thì thuyền sẽ di chuyển sang phía bên trái
Chuyển động sang phải: Nếu chỉ có động cơ bên trái quay thì thuyền chỉ nhận được lực cản từ phía bên trái sẽ làm thuyền chuyển động sang phía bên phải.
Chúng tôi đã kết nối đầu vào của trình điều khiển động cơ với bốn bit đầu ra của bộ giải mã (D8-D11). chúng ta có thể điều khiển 4 đầu ra này bằng cách kết nối AD8-AD11 với mặt đất là các nút trong điều khiển từ xa. Ví dụ, nếu chúng ta kết nối AD8 với mặt đất sẽ kích hoạt D8. Vì vậy, một cách như vậy chúng ta có thể điều khiển hai động cơ theo hai hướng bằng cách sử dụng 4 đầu ra này. Nhưng chúng tôi không thể điều khiển hai động cơ chỉ bằng một nút (chúng tôi cần điều đó để chuyển động tiến và lùi), đó là lý do tại sao chúng tôi sử dụng Arduino. Với sự trợ giúp của Arduino, chúng ta có thể chọn các chân dữ liệu đầu vào theo ý muốn của mình.
Lập trình Arduino của RC Boat
Việc lập trình của chiếc thuyền này rất đơn giản vì chúng tôi chỉ muốn một số chuyển mạch logic. Và chúng ta có thể đạt được mọi thứ với các chức năng cơ bản của Arduino. Chương trình hoàn chỉnh cho dự án này có thể được tìm thấy ở cuối trang này. Giải thích về chương trình của bạn như sau
Chúng tôi bắt đầu chương trình bằng cách xác định các số nguyên cho bốn nút đầu vào và chân đầu vào bộ giải mã.
int f_button = 9; int b_button = 8; int l_button = 7; int r_button = 6; int m1 = 2; int m2 = 3; int m3 = 4; int m4 = 5;
Trong phần thiết lập, tôi đã xác định các chế độ ghim. Tức là, các nút được kết nối với các chân kỹ thuật số vì vậy các chân này nên xác định là đầu vào và chúng ta cần lấy đầu ra cho đầu vào của bộ giải mã, vì vậy chúng ta nên xác định các chân đó là đầu ra.
pinMode (f_button, INPUT_PULLUP); pinMode (b_button, INPUT_PULLUP); pinMode (l_button, INPUT_PULLUP); pinMode (r_button, INPUT_PULLUP); pinMode (m1, OUTPUT); pinMode (m2, OUTPUT); pinMode (m3, OUTPUT); pinMode (m4, OUTPUT);
Tiếp theo trong chức năng vòng lặp chính, chúng ta sẽ đọc trạng thái nút bằng chức năng digitalread của Arduino. Nếu trạng thái chân xuống thấp có nghĩa là chân tương ứng được nhấn thì chúng ta sẽ thực hiện các điều kiện như sau-
if (digitalRead (f_button) == LOW)
Điều đó có nghĩa là nút chuyển tiếp được nhấn
{ digitalWrite (m1, LOW); digitalWrite (m3, LOW); digitalWrite (m2, HIGH); digitalWrite (m4, HIGH); }
Thao tác này sẽ kéo xuống m1 và m2 của bộ mã hóa, điều này sẽ kích hoạt cả hai động cơ ở phía máy thu. Tương tự, đối với chuyển động lùi
{ digitalWrite (m1, HIGH); digitalWrite (m3, HIGH); digitalWrite (m2, LOW); digitalWrite (m4, LOW); }
Đối với chuyển động bên trái
{ digitalWrite (m1, LOW); digitalWrite (m3, HIGH); digitalWrite (m2, HIGH); digitalWrite (m4, HIGH); }
Để chuyển động đúng
{ digitalWrite (m1, HIGH); digitalWrite (m3, LOW); digitalWrite (m2, HIGH); digitalWrite (m4, HIGH); }
Sau khi biên dịch mã, hãy tải nó lên bảng Arduino của bạn.
Khắc phục sự cố: Đặt thuyền trên mặt nước và kiểm tra xem nó có di chuyển chính xác hay không nếu không cố gắng thay đổi cực của động cơ và chân vịt. Ngoài ra, hãy cố gắng cân bằng trọng lượng.
Hoạt động hoàn chỉnh của dự án có thể được tìm thấy trong video được liên kết ở cuối trang này. Nếu bạn có bất kỳ câu hỏi nào, hãy để lại chúng trong phần bình luận.