Робот, що слідує по лінії на Arduino
У цьому уроці ми перейдемо до будівництва робота на Arduino, який слідує за лінією, використовуючи пропорційне управління як метод управління. Схоже на PID (пропорційно-інтегрально-диференціальне управління), але простіше. Я рекомендую переглянути в Wiki обидві системи управління.
Пропорційне управління: http://en.wikipedia.org/wiki/Proportional_control
PID: http://uk.wikipedia.org/wiki/ПІД-регулятор
http://www.societyofrobots.com/programming_PID.shtml
Список елементів
1. Arduino Uno або сумісне.
2. SparkFun Ardumotoshield.
3. Масив датчиків віддзеркалення Pololu QTR-8RC.
4. Шасі робота
5. Перемички
Збірка
Після зборки шасі закріпіть акумулятор, Arduino та Ardumoto shield на шасі (я використовував кабельні стяжки). Потім встановіть QTR датчик так, щоб він був трохи вище поверхні, по якій потім буде рухатися робот. Я використовував тонкий дріт, щоб можна було легко налаштувати положення датчика, але він досить міцний, щоб утримувати його, оскільки зібраному роботові може знадобитися деяка регулювання. Також зверніть увагу на положення датчика, BLS штифти повинні бути всередині, щоб контакти датчика відповідали Arduino скетчу.
Arduino скетч
Потім завантажте папку за посиланням нижче.
## Ці файли не працюють з новими версіями Arduino IDE 1.0 і вище ##
І додайте її до вашої папки бібліотек, розташованої в папці Arduino. Якщо ви не знайомі з цим або розташуванням папки, йдіть сюди за допомогою.
Всередині папки QTRRCExamples є скетч, який ви будете використовувати. Ви можете використовувати Arduino IDE, щоб знайти та імпортувати скетч або скопіюйте і вставте його з текстового редактора в IDE і потім завантажте його у свій UNO.
Крім того, розпінування для даного скетча таке:
Цифровий вихід 2 Ardumoto - Вихід 1 QTR датчика.
Цифровий вихід 4 Ardumoto - Вихід 2 QTR датчика.
Цифровий вихід 5 Ardumoto - Вихід 3 QTR датчика.
Цифровий вихід 6 Ardumoto - Вихід 4 QTR датчика.
Цифровий вихід 7 Ardumoto - Вихід 5 QTR датчика.
Цифровий вихід 8 Ardumoto - Вихід 6 QTR датчика.
Цифровий вихід 9 Ardumoto - Вихід 7 QTR датчика.
Цифровий вихід 10 Ardumoto - Вихід 1 QTR датчика.
Аналоговий вихід 0 Ardumoto - Вихід LEDON QTR датчика.
Ardumoto A 1 - Негативний провід правого двигуна.
Ardumoto A 2 - Позитивний провід правого двигуна.
Ardumoto B 3 - Позитивний провід лівого двигуна.
Ardumoto B 4 - Негативний провід лівого двигуна.
Ardumoto GND – Вихід GND QTR датчика.
5V – Вихід VCC QTR датчика.
Тестування і налаштування
Після завантаження скетча, і відключення USB. Потім помістіть робота на білу поверхню (поза лінії) і скиньте Arduino. Скидання Arduino перезавантажить скетч, який протягом перших кількох секунд почне калібрування датчиків. Тепер, як тільки колеса почнуть рухатися, знову зніміть робота з поверхні і перемістіть його трохи вище чорної лінії зліва направо, щоб побачити, наскільки добре він управляє ходінням коліс по лінії. Ви можете виявити, що робот спочатку реагує час від часу, але продовжуйте регулювати висоту вашого датчика і скидати Arduino кожного разу, поки ви не знайдете висоту, на якій, здається, робот реагує краще. Це, як правило, близько 2/16 дюйма, але може відрізнятися, також, ширина чорної лінії повинна бути близько 3/4 дюйма. Очевидно, що ці умови можуть бути змінені з деяким незначним редагуванням файлів бібліотеки PololuQTRSensors або оригінального скетча.
Висновок
Сподіваюся, в цьому уроці ви отримали базові уявлення про такі методи контролю, як Пропорційне управління і/або PID. Які можуть бути корисними в галузі робототехніки та автоматизованих систем управління. Ось коротке відео маневрування робота в умовах, запропонованих раніше.
- PololuQTRSensors.zip (44 Кб)