Робот, следующий по линии на Arduino

В этом уроке мы перейдем к строительству робота на Arduino, следующего по линии, используя пропорциональное управление в качестве метода управления. Похоже на PID (пропорционально-интегрально-дифференциальное управление), но проще. Я рекомендую  посмотреть в Wiki на обе системы управления.

Пропорциональное управление: http://en.wikipedia.org/wiki/Proportional_control

PID: http://ru.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 А 1 — Отрицательный провод правого двигателя.
Ardumoto А 2 — Положительный провод правого двигателя.
Ardumoto B 3 — Положительный провод левого двигателя.
Ardumoto B 4 — Отрицательный провод левого двигателя.
Ardumoto GND – Вывод GND QTR датчика.
​5V – Вывод VCC QTR датчика.

Тестирование и настройка

После загрузки скетча, и отключения USB. Затем поместите робота на белую поверхность (вне линии) и сбросите Arduino. Сброс Arduino перезагрузит скетч, который в течение первых нескольких секунд начнет калибровку датчиков. Теперь, как лишь колеса начнут двигаться снова снимите робота с поверхности и перемещаете его чуть выше черной линии слева направо, чтобы увидеть, насколько хорошо он управляет хождение колес по линии. Вы можете обнаружить, что робот сначала реагирует время от времени, но продолжайте регулировать высоту вашего датчика и сбрасывать Arduino каждый раз, пока вы не найдете высоту, на которой кажется, робот реагирует лучше.  Это, как правило, около 2/16 дюйма, но может отличаться, также, ширина черной линии должна быть близка или около 3/4 дюйма. Очевидно, что эти условия могут быть изменены с некоторым незначительным редактированием файлов библиотеки PololuQTRSensors или оригинального скетча.

Заключение

Надеюсь, в этом уроке, вы получили базовые понимания таких методов контроля, как Пропорциональное управление и/или PID. Которые могут быть полезны в области робототехники и автоматизированных систем управления. Вот короткое видео маневрирования робота в условиях, предложенных ранее.


Прикрепленные файлы:

Добавить комментарий

Ваш адрес email не будет опубликован.