Trên thế giới, ngày càng phổ biến hơn trong số các chất tẩy rửa robot. Nhờ những người giúp việc nhỏ như vậy, ngôi nhà trở nên sạch sẽ hơn, và ít nỗ lực hơn trong việc dọn dẹp. Có rất nhiều sửa đổi khác nhau của robot, tất cả chúng đều khác nhau về chức năng, kích thước và các thông số khác.
Cụ thể, bài viết này sẽ xem xét một ví dụ về cách
tự làm Bạn có thể tạo ra một robot đơn giản, chính nó sẽ hút bụi phòng khi cần thiết. Bộ điều khiển được sử dụng ở đây là bộ não
Arduino.
Vật liệu và công cụ để sản xuất robot:- bảng điều khiển hoạt động của động cơ (lá chắn động cơ Arduino);
- Bảng mạch Arduino;
- hai động cơ có bánh răng (động cơ ở 3 volt và tốc độ quay khoảng 100 vòng / phút.);
- bánh xe (có thể được làm bằng lon nhôm;
- bộ làm mát từ nguồn điện máy tính (có thể cả trên 5V và 12V);
- Nguồn điện 5V (pin);
- dây và tấm để cài đặt các yếu tố vô tuyến;
- để làm cho trường hợp bạn sẽ cần một hộp nhựa;
- Một thùng chứa nhỏ khác để tạo thùng rác;
- keo nóng;
- nam châm;
- bìa cứng.
Quy trình sản xuất robot:
Bước đầu tiên. Phần mềm của robot và phác họa:
Trái tim của robot là bộ điều khiển Arduino. Để lập trình nó, bạn sẽ cần một máy tính và phần mềm đặc biệt.
Để tải bản phác thảo xuống bảng, bạn sẽ cần chương trình Arduino IDE. Dưới đây bạn có thể lấy mã chương trình của robot và xem mạch chính.
/*
Chương trình điều khiển robot với hai động cơ.
Robot quay khi động cơ thay đổi tốc độ và hướng của chúng.
Cản trước ở bên trái và bên phải phát hiện chướng ngại vật.
Sonar siêu âm có thể được kết nối với đầu vào tương tự (được thử nghiệm trên LV-MaxSonar-EZ1):
- đặt các chân trong mảng sonarPins theo thứ tự sau: trái, phải, trước, những thứ khác ..
Ví dụ:
1. chỉ sonar trái và phải được kết nối với chân 2 và 3: sonarPins [] = {2,3}
2. sonar trái, phải và trước được kết nối với chân 2, 3 và 5: sonarPins [] = {2,3,5}
3. chỉ sonar phía trước được kết nối với pin 5: sonarPins [] = {-1, -1.5}
4. chỉ còn lại sonar được kết nối với pin 2: sonarPins [] = {2}
5. sonar duy nhất được kết nối với chân 3: sonarPins [] = {-1,3}
6,5 sonar được kết nối với các chân 1,2,3,4,5: sonarPins [] = {1,2,3,4,5}
Khiên động cơ được sử dụng để chạy động cơ.
*/
const int Baud = 9600; // Tốc độ cổng UART
// Thuộc tính Sonar
int sonarPins [] = {1, 2}; // Số pin tương tự Số cho cảm biến sonar Pin AN
const dài MinLeftDistance = 20; // Khoảng cách bên trái tối thiểu được phép
const dài MinRightDistance = 20; // Khoảng cách tối thiểu được phép
const dài MinFrontDistance = 15; // Khoảng cách phía trước tối thiểu được phép
const int SamplesAmount = 15; // nhiều mẫu hơn - phép đo mượt mà hơn và độ trễ lớn hơn
const int SonarDisplayFrequency = 10; // chỉ hiển thị một trong những dòng này - không phải tất cả
int sonarDisplayFrequencyCount = 0;
const dài Hệ số = 2,54 / 2;
mẫu dài [sizeof (sonarPins)] [SamplesAmount];
int sample Index [sizeof (sonarPins)];
// bên phải
const int pinRightMotorDirection = 4; // cái này có thể được đánh dấu trên tấm chắn động cơ là "TRỰC TIẾP A"
const int pinRightMotorSpeed = 3; // cái này có thể được đánh dấu trên tấm chắn động cơ là "PWM A"
const int pinRightBumper = 2; // nơi kết nối đúng
// bên trái
const int pinLeftMotorDirection = 7; // cái này có thể được đánh dấu trên tấm chắn động cơ là "DIR B"
const int pinLeftMotorSpeed = 6; // cái này có thể được đánh dấu trên tấm chắn động cơ là "PWM B"
const int pinLeftBumper = 8; // nơi kết nối đúng
// bỏ ghi chú 2 dòng tiếp theo nếu Motor Shield bị hỏng
// const int pinRightMotorBreak = PUT_BREAK_PIN_HERE; // cái này có thể được đánh dấu trên tấm chắn động cơ là "BREAK A"
// const int pinLeftMotorBreak = PUT_BREAK_PIN_HERE; // cái này có thể được đánh dấu trên tấm chắn động cơ là "BREAK B"
// các trường
const int TurnRightTimeout = 100;
const int TurnLeftTimeout = 150;
// đặt trong bộ đếm thời gian một động cơ chạy lại: N / 10 (tính bằng mili giây)
int đếmDownWhileMovingToRight;
int đếmDownWhileMovingToLeft;
// Khởi tạo
void setup () {
Nối tiếp.begin (Baud);
initPins ();
// bỏ ghi 4 dòng tiếp theo nếu Motor Shield bị hỏng
// pinMode (pinLeftMotorBreak, OUTPUT);
// pinMode (pinRightMotorBreak, OUTPUT);
// kỹ thuật sốWrite (pinLeftMotorBreak, THẤP); // tắt ngắt
// kỹ thuật sốWrite (pinRightMotorBreak, THẤP); // tắt ngắt
runRightMotorForward ();
runLeftMotorForward ();
startMotors ();
}
// Vòng lặp chính
void loop () {
xác minhAndSetRightSide ();
xác minhAndSetLeftSide ();
processRightSide ();
processLeftSide ();
độ trễ (10); // lặp lại cứ sau 10 mili giây
}
//---------------------------------------------------
void initPins () {
pinMode (pinRightMotorDirection, OUTPUT);
pinMode (pinRightMotorSpeed, OUTPUT);
pinMode (pinRightBumper, INPUT);
pinMode (pinLeftMotorDirection, OUTPUT);
pinMode (pinLeftMotorSpeed, OUTPUT);
pinMode (pinLeftBumper, INPUT);
for (int i = 0; i pinMode (sonarPins [i], INPUT);
}
void startMotors () {
setMotorSpeed (pinRightMotorSpeed, 255);
setMotorSpeed (pinLeftMotorSpeed, 255);
}
void WaitWhileAnyBumperIsPression () {
while (checkBumperIsNotPression (pinRightBumper)
&& checkBumperIsNotPression (pinLeftBumper)) {
độ trễ (20); // kiểm tra cứ sau 20 mili giây
}
}
void processRightSide () {
if (CountDownWhileMovingToRight MinFrontDistance) // kiểm tra nếu không đạt được khoảng cách phía trước tối thiểu cho phép
trở về
if (checkCorerIsNotset (CountDownWhileMovingToLeft)) // nếu bộ đếm chưa đếm ngược
runLeftMotorBackward (); // chạy đúng động cơ lùi
CountDownWhileMovingToLeft = TurnLeftTimeout; // đặt bộ đếm thành giá trị tối đa để bắt đầu đếm ngược
}
bool checkCountIsNotset (int counter) {
lượt truy cập = SamplesAmount)
sample Index [pin Index] = 0;
samples [pin Index] [sample Index [pin Index]] = value;
trả lại đúng sự thật;
}
tính toán dàiAvarageDistance (int pin Index) {
trung bình dài = 0;
for (int i = 0; i trung bình + = mẫu [pin Index] [i];
lợi nhuận trung bình / SamplesAmount;
}
Bước hai Chuẩn bị các yếu tố cơ bản của robot
Các tông được sử dụng làm cơ sở để buộc chặt tất cả các thành phần của robot, bao gồm pin, bảng điều khiển và động cơ.
Tua bin phải được dán đúng cách hoặc cố định bằng cách khác trên một hộp nhựa nhỏ để tạo lỗ cho sự hấp thụ bụi bẩn. Sau đó, thiết kế này được dán vào cơ sở các tông. Ngoài ra, thùng chứa phải có thêm một lỗ thông qua đó không khí sẽ thoát ra. Cần có một bộ lọc, tác giả quyết định sử dụng vải tổng hợp cho các mục đích này.
Ở giai đoạn tiếp theo, bộ làm mát cần phải được dán bằng servo, và sau đó thiết kế này được cài đặt trên một tấm bìa cứng.
Bước ba Chúng tôi làm bánh xe cho robot
Để làm cho các bánh xe, bạn cần phải lấy lon nhôm và cắt các phần trên và dưới từ chúng. Sau đó các yếu tố này được dán lại với nhau. Bây giờ nó chỉ còn lại để gắn đúng các bánh xe vào động cơ servo bằng keo nóng chảy. Điều quan trọng là phải hiểu rằng các bánh xe phải được cố định rõ ràng ở trung tâm của trục servo. Mặt khác người máy sẽ lái xe quanh co, và sẽ sử dụng hết năng lượng.
Bước bốn Quá trình lắp ráp robot cuối cùng
Sau khi pin được lắp đặt và tất cả các yếu tố của robot được kết nối, nó vẫn giữ cấu trúc trong một trường hợp bền. Một hộp nhựa lớn là tuyệt vời cho những mục đích này. Trước hết, các lỗ phải được tạo ra ở mũi của cơ thể robot, qua đó các tiếp điểm sẽ là đầu ra sẽ cho tín hiệu điện tử khi robot va chạm với một chướng ngại vật.
Để trường hợp được nhanh chóng và dễ dàng gỡ bỏ, nam châm được sử dụng để sửa nó, trong trường hợp này có tám trong số chúng. Nam châm được dán vào bên trong máy hút bụi và vào chính hộp chứa, mỗi miếng có 4 miếng.
Đó là tất cả. Bây giờ robot đã được lắp ráp, và nó có thể được thử trong thực tế. Mặc dù thực tế là robot không thể tự sạc lại và có khả năng điều hướng khá hạn chế, trong nửa giờ nữa, nó sẽ có thể dọn rác trong nhà bếp hoặc căn phòng nhỏ. Ưu điểm của robot là tất cả các thành phần có thể dễ dàng tìm thấy và chúng không đắt lắm. Không còn nghi ngờ gì nữa tự làm Bạn có thể tinh chỉnh bằng cách thêm các cảm biến mới và các yếu tố khác.