1287
Тестування версії домашньої роботи 0.3.1
Тест автоматичного режиму руху домашнього робототехніки на основі даних з інфрачервоного, ультразвукового далекоміру та кодувальників.
Ця стаття є продовженням попереднього Home Robot Review ver 0.3.
Ідея полягає в тому, щоб зробити робот, здатний пересуватися в будинку без втручання людини. У попередній статті описано вибрану шасі. У процесі реалізації та тестування було виявлено більш прийнятну систему виявлення перешкод, яку я обговорюватиме нижче.
Основа полягає в тому, щоб сказати локатор - обертається на мікросерверах.
р.
Інфрачервоний далекомір SHARP GP2Y0A41SKOF, призначений для вимірювання відстані 4 до 30 сантиметрів. В реальності можна виміряти далі, але при більшій кількості помилок. З перешкодою до 4 сантиметрів вона дає спотворені дані, як якщо перешкода буде далі. Сектор балки невеликий.
З наступного графіка ми можемо грубо зрозуміти залежність сигналу на відстані.
Тест-код ШАРП GP2Y0A41SKOF діапазонфіндер.
#define pin A1 void налаштування () {Serial.begin (9600); pinMode(pin, INPUT); } петля () { uint16_t значення = аналоговийRead (pin); подвійна відстань = get_ GP2Y0A41SKOF (значення); // Розрахунок на основі аналогового значення відстані в сантиметрах Serial.println (значення); Serial.print (distance); Serial.println (" см") Serial.println (); затримка (500); //return Відстань (см) double get_ GP2Y0A41SKOF (ціна 16_т) {if (значення < 16) значення = 16; повернення 2076.0 / (значення - 11.0); }
Ультразвуковий далекомір HC-SR04, призначений для вимірювання на відстані 2 до 450 сантиметрів. Індустрія вимірювання велика в залежності від бокових діапазонів від 30 до 60 градусів. Розрахунок відстані є лінійним, час відбиття звуку ділиться швидкістю звуку.
Приклад коду діапазону HC-SR04.
digitalWrite(Trig, HIGH) Signal для виділення затримки мікроконтролерівMicroсекунди(10); Тримати 10 мікросекундів цифровогоWrite(Trig, LOW); (Українська) Потім видаліть час_us=pulseIn(Echo, HIGH); // Заміряє відстань від імпульсної довжини_sm=time_us/58. Розрахунок в сантиметрах Serial.println (distance_sm); Поставте його на порт
Крім того, для імпульсу У функції можна встановити максимальний час очікування сигналу іншим чином, при відсутності відбитої звукової хвилі вона може довго чекати, тим самим блокуючи виконання програми, експериментально встановити наступне значення: time_us=pulseIn(Echo, HIGH,50000);
Також слід сказати, що в залежності від поверхні перешкод і кута відбиття дальності можуть лежати багато. Використання двох діапазонів від різних типів в тому ж напрямку допомагає підвищити точність вимірювання. На даний момент я в першу чергу направляю дані з інфрачервоного діапазонуфінера, коли він не виходить, я приймаю дані з ультразвуку.
Серва обертає діапазонфіни від 30 до 150 градусів в надбавках від 30 градусів, кількість приймається експериментально для швидкості і простоти. Вимірювання зберігаються в масиві і на вимогу в будь-який час можна перевірити на перешкоди в прямокутній зоні перед роботою роботи.
Так як часто робота з однієї причини або іншого не виявляла перешкоди, вирішили визначити, що робота збита і не може продовжувати рухатися відповідно до кодувальників, встановлених на валовому колесах.
Для цього використовуються кодери.
Механізм їх дії простий, є оптичний датчик для просвіту отворів в диску. Вішний датчик змін на arduino переривається, нижче коду зразка:
void LwheelSpeed() {coderLeft++; //Облік ліворучних енкодерних переривань } недійсним налаштуванням() { Прикріпити
Кожен 200 мілісекунд, швидкість коліс розраховується. Відповідно, якщо швидкість коліс значно знижується, то вважається, що робот зіткнувся з перешкодою. Потім він тягне назад і обертається навколо.
Такий незграбний комплекс датчиків досягає майже сто відсотків гарантії виявлення перешкод. У відео ви можете переглянути роботу з усіх цих ситуацій.
Тепер я чекаю на мікросхеми і закінчуючи принтером 3D, я зроблю бампер для роботи. Тексти пісень, а це означає: Тоді я думаю, що я буду працювати майже в кожній ситуації.
Кілька фото роботи з різних кутів.
Я відкрию відкритий вихідний проект на цьому роботі, як я буду закінчити роботу більш меншим станом сане, я виведе дизайн схеми і вихідний код, якщо хтось повинен писати на особисту особу прямо зараз.
Для отримання додаткової інформації, новин, фотографій та відео див. групу Vkontakte - vk.com/club23358759
Написати коментарю про те, що тема для написання наступної статті, зробити відео.
Джерело: habrahabr.ru/post/222657/