Làm thế nào để di chuyển các món ăn xung quanh kệ bếp của bạn bằng cách sử dụng một robot?
Nếu bạn đang tìm kiếm một cách để tăng đáng kể sự quyến rũ và chức năng cho nhà bếp của mình, hãy xem xét giảm thiểu nỗ lực của con người ở đó. Nỗ lực của con người có thể được giảm thiểu bằng cách chế tạo một con rô bốt trong nhà sẽ có mặt trong nhà bếp và nó sẽ mang đồ dùng bẩn về phía bồn rửa và dừng lại ở đó. Khi một người dỡ đồ dùng ra khỏi robot, nó sẽ quay trở lại và mang theo nhiều đồ dùng hơn. Đôi khi trong những căn bếp lớn, bồn rửa không quá gần tủ, vì vậy, robot sẽ lấy bát đĩa từ vị trí này của kệ sang vị trí khác. Đường cho robot sẽ được tạo trên giá bằng băng đen. Robot sẽ sử dụng hai cảm biến tiệm cận hồng ngoại để phát hiện đường đi và dựa trên đầu vào nhận được từ các cảm biến, Arduino sẽ chỉ đạo các động cơ di chuyển với sự hỗ trợ của trình điều khiển động cơ.
Làm thế nào để kết nối tất cả các thiết bị ngoại vi cần thiết để tạo ra một robot trong nhà?
Bây giờ, chúng ta cần thu thập các thành phần cần thiết và bắt đầu chế tạo robot.
Bước 1: Các thành phần được sử dụng
Bước 2: Nghiên cứu các thành phần
Vì chúng ta đã lập danh sách các thành phần, chúng ta hãy đi trước một bước và đi qua một nghiên cứu ngắn gọn về hoạt động của từng thành phần.
Các Arduino UNO là một bảng vi điều khiển bao gồm một vi mạch ATMega 328P và được phát triển bởi Arduino.cc. Bo mạch này có một tập hợp các chân dữ liệu kỹ thuật số và tương tự có thể được giao tiếp với các bảng hoặc mạch mở rộng khác. Bo mạch này có 14 chân Digital, 6 chân Analog và có thể lập trình với Arduino IDE (Môi trường phát triển tích hợp) thông qua cáp USB loại B. Nó yêu cầu 5V để cấp nguồn TRÊN và một Mã Cvận hành.
Trình điều khiển động cơ L298N được sử dụng để vận hành Động cơ DC. L298N là trình điều khiển động cơ H-Bridge kép cho phép điều khiển tốc độ và hướng của hai động cơ DC cùng một lúc. Mô-đun có thể điều khiển động cơ DC có điện áp từ 5 đến 35V, với dòng điện cực đại lên đến 2A. Nó phụ thuộc vào điện áp được sử dụng tại đầu cuối VCC của động cơ. Trong dự án của chúng ta, chân 5V sẽ được sử dụng làm đầu vào vì chúng ta cần kết nối nó với nguồn điện 5V để IC hoạt động bình thường. Sơ đồ mạch của trình điều khiển động cơ L298N với động cơ DC được kết nối được hiển thị bên dưới để hiểu cơ chế của trình điều khiển động cơ L298N. Đối với phần trình diễn, đầu vào được đưa ra từ Trạng thái logicthay vì cảm biến IR.
Bước 3: Tìm hiểu sơ đồ khối và nguyên lý hoạt động
Đầu tiên chúng ta sẽ xem qua sơ đồ khối, tìm hiểu nguyên lý hoạt động sau đó tiến tới lắp ráp các thành phần phần cứng.
Các cảm biến mà chúng tôi sẽ sử dụng là kỹ thuật số và chúng có thể cho kết quả đầu ra là 0 hoặc 1. Những cảm biến mà chúng tôi đã mua này đang cho 1 trên bề mặt trắng và 0 trên bề mặt đen. Các cảm biến mà chúng tôi mua cung cấp các giá trị ngẫu nhiên, đôi khi chúng cho 0 trên bề mặt trắng và 1 trên bề mặt đen. Chúng tôi sẽ sử dụng năm cảm biến trong robot này Có bốn điều kiện trong mã cho năm cảm biến.
- Chuyển tiếp trên đường dây: Khi cảm biến ở giữa nằm trên bề mặt đen và phần còn lại của các cảm biến trên bề mặt trắng, điều kiện chuyển tiếp sẽ thực hiện và rô bốt sẽ di chuyển thẳng về phía trước. Nếu chúng ta bắt đầu từ Cảm biến1 và tiếp tục cho đến khi Cảm biến5, giá trị mà mỗi cảm biến sẽ cung cấp tương ứng là (1 1 0 1 1).
- Rẽ phải Ngoặt:Khi mà Cảm biến 1 và Cảm biến 2 nằm trên bề mặt màu trắng và phần còn lại của các cảm biến trên bề mặt màu đen, điều kiện rẽ phải sẽ thực hiện và rô bốt sẽ rẽ sang phải. Nếu chúng ta bắt đầu từ Cảm biến1 và tiếp tục cho đến khi Cảm biến5, giá trị mà mỗi cảm biến sẽ cung cấp tương ứng là (1 1 0 0 0).
- Rẽ Trái Ngoặt:Khi mà Cảm biến 4 và Cảm biến 5 nằm trên bề mặt màu trắng và phần còn lại của các cảm biến nằm trên bề mặt màu đen, điều kiện rẽ trái sẽ được thực hiện và rô bốt sẽ rẽ sang trái. Nếu chúng ta bắt đầu từ Cảm biến1 và tiếp tục cho đến khi Cảm biến5, giá trị mà mỗi cảm biến sẽ cung cấp tương ứng là (0 0 0 1 1).
- Dừng lại: Khi tất cả năm cảm biến ở trên bề mặt màu đen, rô bốt sẽ dừng lại và động cơ sẽ quay TẮT. Điểm có năm bề mặt màu đen này sẽ nằm gần bồn rửa để máy rửa bát có thể lấy đĩa ra khỏi rô bốt để rửa.
Chúng ta sẽ tạo một con đường trên kệ bếp bằng cách sử dụng băng dính đen và con đường đó sẽ kết thúc gần bồn rửa, vì vậy robot sẽ dừng lại gần bồn rửa và máy rửa bát sẽ dỡ các đĩa xuống và sau đó robot sẽ di chuyển về phía con đường và tìm kiếm đồ dùng. lần nữa.
Bước 4: Bắt đầu với Arduino
Nếu bạn chưa quen với Arduino IDE trước đây, đừng lo lắng vì dưới đây, bạn có thể thấy các bước ghi mã rõ ràng trên bảng vi điều khiển bằng Arduino IDE. Bạn có thể tải xuống phiên bản Arduino IDE mới nhất từ đây và làm theo các bước bên dưới:
- Khi bảng Arduino được kết nối với PC của bạn, hãy mở “Bảng điều khiển” và nhấp vào “Phần cứng và Âm thanh”. Sau đó nhấp vào “Thiết bị và Máy in”. Tìm tên của cổng mà bảng Arduino của bạn được kết nối. Trong trường hợp của tôi, nó là “COM14” nhưng nó có thể khác trên PC của bạn.
- Bây giờ hãy mở Arduino IDE. Từ Công cụ, đặt bảng Arduino thành Arduino / Genuino UNO.
- Từ cùng một menu Công cụ, hãy đặt số cổng mà bạn đã thấy trong bảng điều khiển.
- Tải xuống mã được đính kèm bên dưới và sao chép nó vào IDE của bạn. Để tải mã lên, hãy nhấp vào nút tải lên.
Bạn có thể tải xuống mã từ Đây
Bước 5: Tìm hiểu Quy tắc
Mã rất đơn giản. Nó được giải thích ngắn gọn bên dưới:
- Khi bắt đầu mã, các chân cảm biến được khởi tạo và cùng với đó, các chân cho Trình điều khiển động cơ L298N cũng được khởi tạo.
int enable1pin = 10; // Khởi tạo chân PWM cho đầu vào tương tự cho động cơ 1 int motor1pin1 = 2; // Khởi tạo chân dương cho động cơ 1 int motor1pin2 = 3; // Khởi tạo chân âm cho động cơ 1 int enable2pin = 11; // Khởi tạo chân PWM cho đầu vào tương tự cho động cơ 2 int motor2pin1 = 4; // Khởi tạo chân dương cho động cơ 2 int motor2pin2 = 5; // Khởi tạo chân âm cho động cơ 2 int S1 = 12; // Khởi tạo Pin 12 Cho Cảm biến 1 int S2 = 9; // Khởi tạo Pin 9 Cho Cảm biến 2 int S3 = 8; // Khởi tạo chân 8 cho cảm biến 3 int S4 = 7; // Khởi tạo chân 7 cho cảm biến 4 int S5 = 6; // Khởi tạo chân 6 cho cảm biến 5
- void setup ()là một chức năng được sử dụng để đặt các chân là INPUT hoặc OUTPUT. Nó cũng đặt tốc độ truyền của Arduino. Tốc độ truyền là tốc độ mà bo mạch vi điều khiển giao tiếp với các thành phần khác được gắn vào.
{pinMode (enable1pin, OUTPUT); // Bật PWM cho Motor 1 pinMode (enable2pin, OUTPUT); // Bật PWM cho Motor 2 pinMode (motor1pin1, OUTPUT); // Đặt motor1 pin1 làm pinMode đầu ra (motor1pin2, OUTPUT); // Đặt motor1 pin2 làm pinMode đầu ra (motor2pin1, OUTPUT); // Đặt motor2 pin1 làm pinMode đầu ra (motor2pin2, OUTPUT); // Đặt motor2 pin2 làm pinMode đầu ra (S1, INPUT); // Đặt sensor1 làm mã pin đầu vào (S2, INPUT); // Đặt sensor2 làm mã pin đầu vào (S3, INPUT); // Đặt sensor3 làm mã pin đầu vào (S4, INPUT); // Đặt sensor4 làm mã pin đầu vào (S5, INPUT); // Đặt sensor5 làm đầu vào Serial.begin (9600); // Đặt tốc độ truyền}
- void loop () là một hàm chạy đi chạy lại trong một chu kỳ. Trong vòng lặp này, chúng tôi đưa ra hướng dẫn cho Arduino UNO những thao tác cần thực hiện. Tốc độ đầy đủ của động cơ là 255 và cả hai động cơ đều có tốc độ khác nhau. Vì vậy, nếu chúng ta muốn di chuyển robot về phía trước, rẽ phải, v.v ... chúng ta cần điều chỉnh tốc độ của động cơ. Chúng tôi đã sử dụng các chân tương tự trong mã vì chúng tôi muốn thay đổi tốc độ của hai động cơ trong các điều kiện khác nhau. Bạn có thể tự điều chỉnh tốc độ động cơ của mình.
void loop () {if (! (digitalRead (S1)) &&! (digitalRead (S2)) && (digitalRead (S3)) &&! (digitalRead (S4)) &&! (digitalRead (S5))) // Chuyển tiếp dòng {analogWrite (enable1pin, 61); // Động cơ 1 tốc độ analogWrite (enable2pin, 63); // Động cơ 2 tốc độ digitalWrite (motor1pin1, HIGH); // Động cơ 1 chân 1 đặt thành High digitalWrite (motor1pin2, LOW); // Động cơ 1 chân 2 được đặt thành Low digitalWrite (motor2pin1, HIGH); // Động cơ 2 pin 1 đặt thành High digitalWrite (motor2pin2, LOW); // Động cơ 2 pin 2 được đặt thành Thấp} if (! (DigitalRead (S1)) &&! (DigitalRead (S2)) && (digitalRead (S3)) && (digitalRead (S4)) && (digitalRead (S5))) / / Ngoặt Phải Rẽ {analogWrite (enable1pin, 60); // Động cơ 1 tốc độ analogWrite (enable2pin, 80); // Động cơ 2 tốc độ digitalWrite (motor1pin1, HIGH); // Động cơ 1 chân 1 đặt thành High digitalWrite (motor1pin2, LOW); // Động cơ 1 chân 2 được đặt thành Low digitalWrite (motor2pin1, LOW); // Động cơ 2 pin 1 được đặt thành Low digitalWrite (motor2pin2, LOW); // Động cơ 2 pin 2 được đặt thành Thấp} if ((digitalRead (S1)) && (digitalRead (S2)) && (digitalRead (S3)) &&! (DigitalRead (S4)) &&! (DigitalRead (S5))) / / Ngoặt rẽ trái {analogWrite (enable1pin, 80); // Động cơ 1 tốc độ analogWrite (enable2pin, 65); // Động cơ 2 tốc độ digitalWrite (motor1pin1, LOW); // Động cơ 1 chân 1 đặt thành Low digitalWrite (motor1pin2, LOW); // Động cơ 1 chân 2 được đặt thành Low digitalWrite (motor2pin1, HIGH); // Động cơ 2 pin 1 đặt thành High digitalWrite (motor2pin2, LOW); // Động cơ 2 pin 2 được đặt thành Thấp} if ((digitalRead (S1)) && (digitalRead (S2)) && (digitalRead (S3)) && (digitalRead (S4)) && (digitalRead (S5))) // dừng {analogWrite (enable1pin, 0); // Động cơ 1 tốc độ analogWrite (enable2pin, 0); // Động cơ 2 tốc độ digitalWrite (motor1pin1, LOW); // Động cơ 1 chân 1 đặt thành Low digitalWrite (motor1pin2, LOW); // Động cơ 1 chân 2 được đặt thành Low digitalWrite (motor2pin1, LOW); // Động cơ 2 pin 1 được đặt thành Low digitalWrite (motor2pin2, LOW); // Động cơ 2 pin 2 được đặt thành Thấp}}
Các ứng dụng
- Ứng dụng công nghiệp: Những robot này có thể được sử dụng như những người vận chuyển thiết bị tự động trong các ngành công nghiệp thay thế băng chuyền truyền thống.
- Ứng dụng trong nước: Những thứ này cũng có thể được sử dụng tại nhà cho các mục đích sinh hoạt như lau sàn, làm bếp, v.v.
- Ứng dụng hướng dẫn: Những robot này có thể được sử dụng ở những nơi công cộng như trung tâm mua sắm, khu ăn uống, bảo tàng, v.v. để cung cấp hướng dẫn đường đi