Máy lau sàn tự động không có gì mới, nhưng chúng đều có chung một vấn đề. Tất cả chúng đều quá đắt so với những gì chúng làm. Hôm nay, chúng tôi sẽ chế tạo một Robot lau nhà tự động chỉ có giá một phần nhỏ so với các loại trên thị trường. Robot này có thể phát hiện chướng ngại vật và vật thể phía trước và có thể tiếp tục di chuyển, tránh chướng ngại vật cho đến khi toàn bộ căn phòng được làm sạch. Nó có một bàn chải nhỏ gắn vào nó để làm sạch sàn nhà.
Ngoài ra, hãy kiểm tra Robot hút bụi thông minh của chúng tôi bằng Arduino
Thành phần bắt buộc:
- Arduino UNO R3.
- Thiết bị cảm biến sóng siêu âm.
- Lá chắn Arduino Motor Driver.
- Khung xe Robot lái bánh xe.
- Máy tính để lập trình Arduino.
- Pin cho Động cơ.
- Ngân hàng điện để cấp nguồn cho Arduino
- Bàn chải đánh giày.
- Một tấm lót tẩy da chết Scotch Brite.
Lưu ý: Thay vì sử dụng pin, bạn cũng có thể sử dụng dây dài 4 sợi như chúng tôi đã làm. Mặc dù đây không phải là một giải pháp thanh lịch hay thiết thực nhưng bạn có thể làm được nếu không có ý định sử dụng nó trong thế giới thực hàng ngày. Đảm bảo đủ độ dài của cáp.
Trước khi đi vào chi tiết, chúng ta hãy thảo luận về Ultrasonic trước.
Cảm biến siêu âm HC-SR04:
Cảm biến siêu âm được sử dụng để đo khoảng cách với độ chính xác cao và số đọc ổn định. Nó có thể đo khoảng cách từ 2cm đến 400cm hoặc từ 1 inch đến 13 feet. Nó phát ra một sóng siêu âm ở tần số 40KHz trong không khí và nếu vật thể cản đường nó thì nó sẽ phản xạ trở lại cảm biến. Bằng cách sử dụng thời gian cần thiết để tấn công đối tượng và quay lại, bạn có thể tính được khoảng cách.
Cảm biến siêu âm sử dụng một kỹ thuật gọi là “ECHO”. “ECHO” chỉ đơn giản là một sóng âm phản xạ. Bạn sẽ có ECHO khi âm thanh phản xạ trở lại sau khi đạt đến điểm cuối.
Mô-đun HCSR04 tạo ra rung động âm thanh trong phạm vi siêu âm khi chúng tôi đặt chân 'Trigger' cao trong khoảng 10us. Điều này sẽ gửi một loạt âm thanh 8 chu kỳ với tốc độ âm thanh và sau khi chạm vào vật thể, nó sẽ được nhận bởi chân Echo. Tùy thuộc vào thời gian rung động của âm thanh để lấy lại, nó cung cấp đầu ra xung thích hợp. Nếu đối tượng ở xa thì cần nhiều thời gian hơn để nghe thấy ECHO và độ rộng xung đầu ra sẽ lớn. Và nếu vật cản ở gần, thì ECHO sẽ được nghe nhanh hơn và độ rộng xung đầu ra sẽ nhỏ hơn.
Chúng ta có thể tính toán khoảng cách của vật thể dựa trên thời gian sóng siêu âm quay trở lại cảm biến. Vì đã biết thời gian và tốc độ âm thanh nên chúng ta có thể tính quãng đường bằng công thức sau.
Khoảng cách = (Thời gian x Tốc độ âm thanh trong không khí (343 m / s)) / 2.
Giá trị được chia cho hai vì sóng truyền về phía trước và phía sau trên cùng một khoảng cách. Vì vậy, thời gian đến chướng ngại vật chỉ bằng một nửa tổng thời gian thực hiện
Vì vậy, Khoảng cách tính bằng cm = 17150 * T
Trước đây chúng tôi đã thực hiện nhiều dự án hữu ích bằng cách sử dụng cảm biến siêu âm này và Arduino, hãy kiểm tra chúng bên dưới:
- Đo khoảng cách dựa trên Arduino bằng cảm biến siêu âm
- Báo động cửa sử dụng Arduino và cảm biến siêu âm
- Giám sát Dumpster Dựa trên IOT bằng Arduino
Lắp ráp Robot lau sàn:
Gắn Arduino vào khung. Đảm bảo rằng bạn không đoản mạch bất cứ thứ gì trong trường hợp khung máy của bạn được làm bằng kim loại. Bạn nên mua một chiếc hộp cho Arduino và tấm chắn điều khiển động cơ. Giữ chặt động cơ với bánh xe và khung xe bằng vít. Khung gầm của bạn nên có các tùy chọn để thực hiện việc này từ nhà máy, nhưng nếu không, bạn có thể đưa ra một giải pháp khác. Epoxy không phải là một ý tưởng tồi. Gắn bàn chải đánh giày vào mặt trước của khung xe. Chúng tôi đã sử dụng kết hợp epoxy M-Seal và vít khoan cho việc này, mặc dù bạn có thể sử dụng bất kỳ giải pháp nào khác có thể dễ dàng hơn cho bạn. Gắn miếng tẩy tế bào chết Scotch Brite phía sau bàn chải. Chúng tôi đã sử dụng một trục đi ngang qua khung xe để giữ nó hoạt động, mặc dù điều này cũng không thể xảy ra. Một trục nạp lò xo có thể được sử dụng để đi kèm với nó. Gắn pin (hoặc dây cáp vào mặt sau của khung máy).Epoxy hoặc giá đỡ pin là những cách tốt để làm điều này. Keo nóng cũng không tệ.
Hệ thống dây điện và kết nối:
Mạch cho Robot lau nhà tự động này rất đơn giản. Kết nối cảm biến siêu âm với Arduino như được đề cập bên dưới và đặt tấm chắn Trình điều khiển động cơ vào Arduino giống như bất kỳ tấm chắn nào khác.
Chân Trig của Ultrasonic được nối với chân thứ 12 trên Arduino, chân Echo nối với chân thứ 13, chân điện áp với chân 5V và chân Ground với chân nối đất. Chân Echo và chân Trig cho phép Arduino giao tiếp với cảm biến. Nguồn được cung cấp đến cảm biến thông qua các chân điện áp và Ground, đồng thời các chân Trig và Echo cho phép nó gửi và nhận dữ liệu với Arduino. Tìm hiểu thêm về cảm biến siêu âm Interfacing với Arduino tại đây.
Tấm chắn động cơ phải có ít nhất 2 đầu ra và chúng phải được kết nối với 2 động cơ của bạn. Thông thường, các đầu ra này được gắn nhãn “M1” và “M2” hoặc “Động cơ 1” và “Động cơ 2”. Nối pin và pin dự phòng của bạn tới tấm chắn động cơ và Arduino tương ứng. Đừng kết nối chéo chúng. Tấm chắn động cơ của bạn phải có một kênh đầu vào. Nếu bạn đang sử dụng dây, hãy kết nối chúng với bộ điều hợp AC.
Giải thích lập trình:
Mở Arduino IDE. Dán mã Arduino hoàn chỉnh, được đưa ra ở cuối hướng dẫn này, vào IDE. Kết nối Arduino của bạn với máy tính. Chọn cổng trong Công cụ / Cổng. Nhấp vào nút tải lên.
Kiểm tra robot. Nếu nó biến quá ít hoặc quá nhiều, hãy thử nghiệm với độ trễ cho đến khi hoàn hảo.
Trước khi đi vào mã, chúng ta cần cài đặt Adafruit Motor Shield Library để điều khiển động cơ DC. Vì chúng tôi đang sử dụng lá chắn trình điều khiển động cơ L293D, chúng tôi cần tải xuống Thư viện AFmotor từ đây. Sau đó, thêm nó vào thư mục thư viện Arduino IDE của bạn. Đảm bảo bạn đổi tên nó thành AFMotor . Tìm hiểu thêm về cách cài đặt thư viện này.
Mã rất dễ và có thể hiểu dễ dàng, nhưng ở đây chúng tôi đã giải thích một số phần của nó:
Mã dưới đây thiết lập robot. Đầu tiên, chúng tôi đã bao gồm Thư viện Adafruit để điều khiển động cơ với tấm chắn điều khiển động cơ. Sau đó, chúng tôi xác định chân Trig và chân Echo. Nó cũng thiết lập các động cơ. Nó đặt chân Trig thành đầu ra và chân Echo thành đầu vào.
#include #define trigPin 12 #define echoPin 13 AF_DCMotor motor1 (1, MOTOR12_64KHZ); AF_DCMotor động cơ2 (2, MOTOR12_8KHZ); void setup () {pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); }
Đoạn mã dưới đây yêu cầu Arduino lặp lại các lệnh sau. Sau đó, nó sử dụng cảm biến để truyền và nhận âm thanh siêu âm. Nó tính toán khoảng cách đến vật thể sau khi sóng siêu âm phản xạ trở lại, sau khi lưu ý rằng vật thể nằm trong khoảng cách đã đặt, nó sẽ ra lệnh cho Arduino xoay động cơ tương ứng.
void loop () {long, gap; digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); thời lượng = xungIn (echoPin, CAO); khoảng cách = (thời lượng / 2) / 29,1; if (khoảng cách <20) {motor1.setSpeed (255); motor2.setSpeed (0); motor1.run (PHẦN THƯỞNG); motor2.run (BACKWARD); chậm trễ (2000); // THAY ĐỔI ĐIỀU NÀY THEO CÁCH ROBOT BẬT.
Điều này làm cho robot quay bằng cách quay một động cơ và giữ cho động cơ kia bị trì trệ.
Đoạn mã dưới đây làm cho robot quay cả hai động cơ theo cùng một hướng để làm cho nó di chuyển về phía trước cho đến khi nó phát hiện ra một đối tượng trong ranh giới nói trên.
else {motor1.setSpeed (160); // THAY ĐỔI ĐIỀU NÀY THEO CÁCH ROBOT CỦA BẠN NÊN ĐI NHANH CHÓNG. motor2.setSpeed (160); // THAY ĐỔI ĐÂY THÀNH GIÁ TRỊ CŨNG NHƯ BẠN ĐÃ ĐẶT Ở TRÊN. motor1.run (FORWARD); motor2.run (FORWARD); }