Создание системы отслеживания объектов Часть 2: Управление сервоприводом

Слежение за лицом (June 2019).

$config[ads_text] not found
Anonim

Создание системы отслеживания объектов Часть 2: Управление сервоприводом


Изучите основную работу серводвигателей и как с ними связаться с помощью Arduino Uno.

Вторая часть этой серии проектов рассматривает сервоприводы и будет внедрять код для перемещения сервопривода в случайные позиции каждую секунду в рамках подготовки к интеграции с ультразвуковыми датчиками из следующего этапа этой серии проектов.

Часть 1 этого проекта можно найти здесь: Создание системы отслеживания объектов: использование встроенных библиотек Arduino

Необходимые детали:

  • Arduino Uno
  • 5-тонный сервопривод на 180 °

Схема подключения ниже и довольно проста: всего 3 соединения. На диаграмме красный - 5 В, черный - GND, а желтый - провод управления.

Рисунок 1: Схема подключения Arduino / Servo

Сервоконтроль управляется путем отправки сигнала ШИМ (широтно-импульсной модуляции) на управляющий вывод. Ширина импульса сигнала ШИМ подает команду на положение сервопривода. Ниже приведен пример схемы управления шириной импульса сервопривода. Как вы можете видеть, при минимальной длительности импульса (0, 5 мс) сервопривод находится в крайнем крайнем углу его сочленения и с максимальной шириной импульса (2, 5 мс) сервопривод находится на крайнем крайнем краю его артикуляции.

Рисунок 2: Схема сервоуправления

В Arduino IDE имеется библиотека (Servo.h) для взаимодействия с сервомоторами. Реализация этой библиотеки значительно упростит код, необходимый для управления Серво. Библиотека обрабатывает установление частот PWM и дает простую команду для управления положением: ServoName.write (X), где «ServoName» выбрано пользователем, уникальное имя для этого вывода, «(X)» - это желаемая позиция в градусах, а « .write "является обязательным синтаксисом. Ниже приведен фрагмент кода, который будет генерировать случайную позицию каждую секунду и переместить серво в эту позицию. Во время фазы интеграции генерация случайных чисел будет заменена выходом алгоритма отслеживания.

Рекомендуется, чтобы если вы только подавали питание Arduino с USB-порта, перед подключением сервомотора вы должны подключить источник постоянного тока. Ток, потребляемый сервомотором, может привести к падению шины 5 В и может привести к сбросу платы и ее неустойчивости.

 #include "Servo.h" // Implements easy to use servo controls Servo ServoOne; // Generates an instance of a servo object int ServoPosition = 0; // Variable to be used to assign position of servo void setup() // Initialize { ServoOne.attach(9); // Assigns pin 9 as a servo } void loop() // Main loop { ServoPosition = random(0, 180); // Generates a random number and stores it in ServoPosition ServoOne.write(ServoPosition); // Commands servo to spin to position delay(1000); // Delays for 1000 ms } 

Этот проект использует встроенную библиотеку для упрощения взаимодействия с периферией. В следующем проекте мы будем писать собственные функции для создания алгоритма отслеживания объектов.

Следующая статья в серии: Интеграция сервоконтроля с обнаружением объекта

Попробуйте этот проект сами! Получить спецификацию.