Занятие 9 Компас HMC5883L, акселерометр-гироскоп MPU6050. Курс Основы робототехники. Продвинутый уровень. Занятие 9 Компас hmc5883L
Скачать 120.5 Kb.
|
Курс «Основы робототехники. Продвинутый уровень». Занятие 9Компас HMC5883LHMC5883L трехосевой, то есть он выдает три значения, выражающие проекцию магнитного поля на каждую из осей. На рисунке изображен простой случай, когда компас расположен горизонтально поверхности земли. Красной стрелкой отмечено направление к северному полюсу. Модуль компаса может использоваться, для определения, в каком направлении ворота в робофутболе, куда надо повернуться, чтобы ехать по определенным координатам GPS, как датчик положения в квадрокоптере Подключение модуля компаса к контроллеру Arduino:
Практическое занятие 1. Проверка модуля компаса
Практическое занятие 2. Ориентация робота на югУстановите на робота модуль HMC5883L и подключите к контроллеру (не забывайте, что Vcc подключается к +3,3 V). Используем компас, чтобы сориентировать робота. Реализуйте алгоритм: 1. Если угол в пределах 0…170 – правый мотор вперед, левый назад, проехать 100 мс 2. Если угол в пределах 190…360 – правый мотор назад, левый вперед, проехать 100 мс 3. Если угол в пределах 170…190 – выключить оба мотора, ждать 100 мс 4. Вернуться к пункту 1 После включения робот должен повернуться в определенном направлении и при попытке повернуть его в другую сторону снова возвращаться на это направление Примечание: направления вращения моторов написаны произвольно, возможно, их нужно поменять местами Практическое занятие 3. Робот едет на югРеализуйте алгоритм: 1. Если угол в пределах 0…170 – правый мотор вперед, левый назад, проехать 100 мс 2. Если угол в пределах 190…360 – правый мотор назад, левый вперед, проехать 100 мс 3. Если угол в пределах 170…190 – включить оба мотора, проехать 100 мс 4. Вернуться к пункту 1 Практическое занятие 4. Протитип робота – автономного футболистаЗадайте направление, в котором едет робот, в переменных в начале программы. Например:
Поставьте робота и ворота на пол. Сделайте так, что при установке робота в определенной точке относительно ворот он поворачивался в направлении ворот и въезжал в них Поставьте мяч на линии между роботом и воротами и попробуйте сделать так, чтобы робот самостоятельно повернулся к воротам и забил мяч: Практическое занятие 5. Танцующие роботыЗагрузите в пару роботов (или больше) одинаковую программу вида:
Установите роботов на пол и одновременно включите Примечание: можно усложнить программу, увеличив количество углов, а также задать свои углы для каждого робота для совместного танца. Акселерометр-гироскоп MPU6050Данный модуль измеряет ускорения линейных перемещений по трем осям (X, Y, Z), а также ускорения вращений вокруг этих осей. Для нахождения самих перемещений и углов поворота эти ускорения нужно интегрировать, а также фильтровать. Мат. аппарат процесса достаточно сложный, но нам его использовать не обязательно, т.к. уже существуют библиотеки, опрашивающие модуль и выдающий готовые данные. Модуль MPU6050 применяют для стабилизации полета квадрокоптера. Также он может использоваться в системах ориентации мобильных роботов, для подержания вертикального положения в балансировщиках (робот на двух колесах) и шагоходах, как управляющий джойстик или перчатка, в спортивных устройствах (шагомер, измеритель нагрузки при прыжках и т.д.). Подключение модуля акселерометра-гироскопа к контроллеру Arduino:
Практическое занятие 6. Опрос датчикаДля математической обработки данных используется библиотека Kalman.h В Монитор порта должны выводиться углы поворота вокруг оси X и Y (наклоны датчика вперед-назад и вправо-влево) Практическое занятие 7. Управление углом серво поворотом датчикаПодключите к контроллеру серво SG90 и задайте зависимость угла поворота серво от угла наклона гироскопа вокруг одной из осей Примечание: команды подключения серво и задания угла поворота показаны в примере Файл / Примеры / Servo / Sweep. Подключение серво к Arduino: коричневый провод Gnd, красный провод +5 В, желтый (или белый) провод – сигнальный пин Практическое занятие 8. Управление углом двух серво поворотом датчика – простой джойстикПодключите к контроллеру два серво SG90 и задайте зависимость угла поворота серво первого серво от угла наклона гироскопа вокруг оси X, второго серво – от угла наклона вокруг оси Y. Чтобы подключить два серво, используйте код:
Практическое занятие 9. Робот, избегающий уклоновРобот едет вперед, пока угол не станет больше заданного (робот наехал на препятствие) Робот едет назад, поворачивает на определенный угол, снова едет вперед Примечание: контакты SDA (A4) и SCL (A5) работают по интерфейсу I2C. На них можно одновременно подключать модуль компаса, акселерометра и другие модули, работающие по этому интерфейсу и опрашивать их все по очереди в одной программе. Домашнее задание |