Тестер для сервоприводов

Содержание

Переделка сервопривода в серво непрерывного вращения

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

При этом важно отметить, что серво постоянного вращения не может поворачиваться на определенный угол и делать строго заданное количество оборотов

Чтобы произвести вышеописанные действия, придется разобрать устройство и внести изменения в конструкцию.

В Ардуино IDE нужно создать небольшой скетч, который поставит качалку в среднее положение.

#include <Servo.h>

Servo myservo;

void setup(){
myservo.attach(9);
myservo.write(90);
}

void loop(){
}

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

Этот метод имеет несколько недостатков – настройка резистора до полной остановки неустойчива, при малейшем ударе/нагреве/охлаждении настроенная нулевая точка может сбиться. Поэтому лучше использовать способ замены потенциометра подстроечником. Для этого нужно вытащить потенциометр и заменить его на подстроечный резистор с таким же сопротивлением. Нулевую точку нужно настроить калибровочным скетчем.

Любой из методов переделки сервопривода в серво непрерывного вращения имеет свои недостатки. Во-первых, сложно настроить нулевую точку, любое движение может ее сбить. Во-вторых, диапазон регулирования мал – при небольшом изменении ширины импульса скорость может значительно измениться. Расширить диапазон можно программно в Ардуино.

Программное обеспечение

При программировании обязательно следует учитывать установку фьюзов. Они должны быть установлены следующим образом:

Тестер для сервоприводов

Программа микроконтроллера работает следующим образом: при включении питания сначала активируются порты ввода/вывода, АЦП, таймер и прерывание таймера.

Так как таймер должен формировать сервоимпульсы с малым шагом в диапазоне от 0,9 мс до 2,1 мс, то он работает на относительно быстрой частоте 150 кГц (отсчет примерно каждые 6,67 мкс).

Поскольку это 8-битный таймер, он переполняется после 256 тактовых импульсов (т.е. примерно через 1,707 мс) и снова начинает отсчет с 0. Чтобы расширить диапазон счета, при каждом переполнении запускается прерывание, а затем регистр микроконтроллера увеличивается на 1.

В результате получается 16-битный счетчик, который может не только генерировать сервоимпульсы длительностью до 2,1 мс, но также и интервал 20 мс, в котором сервоимпульсы должны регулярно повторяться.

После инициализации основная программа запускается в бесконечном цикле. В нем постоянно проверяется, достиг ли счетчик значения 3000, что соответствует уже упомянутому интервалу 20 мс. Если это происходит, то 16-битный счетчик снова устанавливается на 0, а импульсный выход PB4 устанавливается на высокий уровень (начало импульса).

Затем определяется положение потенциометра путем считывания значения аналого-цифрового преобразователя. Это значение, которое находится в диапазоне от 0 до 255, теперь должно быть преобразовано в значение, которое можно напрямую сравнить со счетчиком таймера. Таким образом, основной программный цикл может определить конец импульса и в нужный момент снова установить на выходе PB4 низкий уровень.

Положение потенциометра преобразуется в значение импульса в 2 этапа: сначала значение аналого-цифрового преобразователя умножается на 181, и используется только старший байт 16-битного результата. В результате получается значение от 0 до 180.

На втором этапе добавляется фиксированное значение 135, так что конечный результат представляет собой диапазон значений от 135 до 315. По отношению к циклу таймера примерно 6,67 мкс — это соответствует желаемому диапазону импульсов от 0,9 мс до 2,1 мс.

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

Скачать прошивку

Блок питания 0…30В/3A
Набор для сборки регулируемого блока питания…

Подробнее

Мастер — класс по робототехнике «Управление сервоприводом через потенциометр»

Всем привет! В этой статье мы научим вас управлять сервоприводом SG90 через Потенциометр!

Краткая справка: Сервопривод — электромеханический мотор, который имеет выходной вал, способный вращаться вокруг своей оси. Мы в своих проектах используем сервоприводы SG90, в роборуке, например, таких аж 4 штуки! Такое сервопривод имеет пластиковый редуктор, из-за чего при большом усилии шестаренки могут сломаться, поэтому лучше не проворачивайте выходной вал мотора вручную, а используйте для этого команды с микроконтроллера:)

Потенциометр — (он же реостат) — резистор с переменным сопротивлением. Вращая ручку потенциометра, можно менять размер проводящего участка, таким образом меняя сопротивление элемента. Собственно, принцип сегодняшнего мастер-класса будет основан на считывании положения ручки потенциометра и в перевод полученного значения в угол Сервомотора.

Для работы нам понядобатся: — макетная плата — плата Arduino Nano — 6 проводов «Папа-Папа» — Потенциометр на 100 кОм — Сервопривод SG90

Для начала, соберем схему подключения Сервопривода к плате Arduino Nano. Крайние контакты потенциометра необходимо подключить на контакты 5V и GND на плате (какой из крайних куда не принципиально). Центральный контакт, который как раз подключен к вращающейся ручке потенциометра, подключаем на любой из аналоговых пинов Arduino, мы подключили на пин A0. Схема подключения выглядит так:

Тестер для сервоприводов

В реальной жизни, выглядит так:

Тестер для сервоприводов

Тестер для сервоприводов

Теперь в мониторе порта (фиолетовая кнопка в правом верхнем углу) мы можем наблюдать считываемые значения. Так как плата Arduino Nano имеет 10-битный АЦП, плата может выдать всего (2^10) = 1024 значения, соответственно, при вращениии ручки потенциометра от одного крайнего положения к другому мы будем видеть значения от 0 до 1023.

Теперь, когда мы умеем извлекать данные с потенциометра, давайте научимся переводить их в углы для сервомотора. Для этого подключим к нашей схеме Сервомотор.

Фото схемы:

Тестер для сервоприводов

Тестер для сервоприводов

Готово! Теперь при вращении ручки потенциометра, мы вращаем выходной вал Сервомотора! Для того, чтобы наглядно показать практическую пользу от мастер-класса, мы решили подключить к схеме сервопривод, отвечающий за клешню нашей Роборуки. Вот как это выглядит:

Популярные статьи  Авиамодель самолёта МиГ-15

Если вы хотите повторить всё проделанное самостоятельно — все необходимые компоненты есть в нашем курсе «Легкий Старт»

Если хотите попробовать немного попрограммировать RobotON Studio — регистрируйтесь на бесплатное занятие:)

Схема и типы сервоприводов

Тестер для сервоприводов

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

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

Тестер для сервоприводов

Сервопривод непрерывного вращения 360, 180 и 270 градусов

Выделяют два основных вида серводвигателей – с непрерывным вращением и с фиксированным углом  (чаще всего, 180 или 270 градусов). Отличие серво ограниченного вращения заключается в механических элементах конструкции, которые могут блокировать движение вала вне заданных параметрами углов. Достигнув угла 180, вал окажет воздействие на ограничитель, а тот отдаст команду на выключение мотора. У серводвигателей непрерывного вращения таких ограничителей нет.

Материалы шестерней сервопривода

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

В более дорогих моделях можно найти элементы из карбона и даже титана.

Тестер для сервоприводовТестер для сервоприводов

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

Тестер для сервоприводов

Титановые или карбоновые шестерни – самый предпочтительный вариант, если вы не ограничены бюджетом. Легкие и надежные, такие сервоприводы активно используются для создания моделей автомобилей, дронов и самолетов.

Преимущества серводвигателей

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

Отличия серво и обычного двигателя

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

Скетч для управления сервоприводом в Arduino

Управление сервоприводом напрямую через изменение в скетче длительности импульсов – достаточно нетривиальная задача, но у нас, к счастью, есть отличная библиотека Servo, встроенная в среду разработки Arduino. Все нюансы программирования и работы с сервоприводами мы рассмотрим в отдельной статье. Здесь же приведем простейший пример использования Servo.

Алгоритм работы прост:

  • Для начала мы подключаем Servo.h
  • Создаем объект класса Servo
  • В блоке setup указываем, к какому пину подключен серво
  • Используем методы объекта обычным для C++ способом. Самым популярным является метод write, которому мы подаем целочисленное значение в градусах (для сервопривода 360 эти значения будут интерпретироваться по-другому).

Пример простого скетча для работы с сервоприводом

Пример проекта, в котором мы сразу сначала устанавливаем серводвигатель на нулевой угол, а затем поворачиваем на 90 градусов.

#include <Servo.h>

Servo servo;  // Создаем объект
void setup() {
  servo.attach(9);   // Указываем объекту класса Servo, что серво присоединен к пину 9
  servo1.write(0);   // Выставляем начальное положение 
  }

void loop() {
  servo.write(90); // Поворачиваем серво на 90 градусов
  delay(1000);        
  servo.write(1800);
  delay(100);        
  servo.write(90);
  delay(1000);
  servo.write(0);
  delay(1000);        
}

Скетч для двух сервпоприводов

А в этом примере мы работаем сразу с двумя сервоприводами:

#include <Servo.h>

Servo servo1;  // Первый сервопривод
Servo servo2;  // Второй сервопривод

void setup() {
  servo1.attach(9);   // Указваем объекту класса Servo, что серво присоединен к пину 9
  servo2.attach(10);  // А этот servo присоединен к 10 пину
  
}

void loop() {
  // Выставялем положения
  servo1.write(0); 
  servo2.write(180);
  delay(20);        
  // Меняем положения
  servo2.write(0); 
  servo1.write(180);
}

Управление сервоприводом с помощью потенциометра

В этом примере поворачиваем серво в зависимости от значения, полученное от потенциометра. Считываем значение и преобразовываем его в угол с помощи функции map:

//Фрагмент стандартного примера использования библиотеки Servo
void loop() {
  val = analogRead(A0); // Считываем значение с пина, к которому подключен потенциометр
  val = map(val, 0, 1023, 0, 180); // Преобразуем число в диапазоне от 0 до 1023 в новый диапазон - от 0 до 180.
  servo.write(val);             
  delay(15);
}

Сервопривод для Ардуино

Сервопривод – это такой вид привода, который может точно управлять параметрами движения. Другими словами, это двигатель, который может повернуть свой вал на определенный угол или поддерживать непрерывное вращение с точным периодом.

Тестер для сервоприводов

В проектах ардуино робототехники серво часто используется для простейших механических действий:

  • Повернуть дальномер или другие датчики на определенный угол, чтобы измерить расстояние в узком секторе обзора робота.
  • Сделать небольшой шаг ногой, движение конечностью или головой.
  • Для создания роботов-манипуляторов.
  • Для реализации механизма рулевого управления.
  • Открыть или закрыть дверку, заслонку или другой предмет.

Конечно, сфера применения серво в реальных проектах гораздо шире, но приведенные примеры являются самыми популярными схемами.

Простой тестер сервоприводов с индикатором

Сервотестер это прибор, предназначенный для проверки работоспособности сервопривода, определения его крайних углов, скорости передвижения, минимального шага, а также рысканья. Он может быть очень полезен строителям роботов, так как позволяет запустить привод и проверить функционирование модели до того как готова управляющая электроника. Подобные штуки используют в магазинах радиоуправляемых моделей для демонстрации покупателям возможностей сервомашинок. Однако, хочется иметь подобную вещь под рукой всегда. Конечно, можно купить самые разные тестеры, но гораздо интереснее сделать самому. В этой статье я хочу поделиться опытом изготовления тестера сервоприводов в домашних условиях. Мой тестер управляется энкодером, имеет несколько режимов работы, а также оснащен индикатором для отображения текущего угла.

Схема и работа

В основе принципиальной схемы лежит микроконтроллер Attiny2313. Непосредственно к нему через транзисторы подключен семисегментный трехразрядный индикатор с динамической индикацией. На индикатор выводится текущее значение угла и режим работы. Для управления служат кнопка и энкодер. При нажатии на кнопку включается один из следующих режимов: 1 — приращение угла по 0,1 градусу 2 — по 1 градусу 3 — по 10 градусов 4 — перемещение вала между крайними точками (0 либо 150 градусов) Энкодер изменяет текущий угол в большую или меньшую сторону, в зависимости от направления вращения. Кнопка и один из выводов энкодера подключены напрямую к внешним прерываниям МК. В момент нажатия на кнопку на пол секунды выводится текущий режим. Во время этих манипуляций на выводе PD6 МК присутствуют импульсы с длительностью от 0,8 до 2,3мс и частотой 50Гц. О самом алгоритме формирования управляющего сигнала я уже писал ранее. Схема имеет возможность питаться от источника постоянного напряжения 5В, либо от 7-12В. Выбор питания задается перемычкой.

Популярные статьи  Елочные игрушки на елку своими руками: что можно сделать на Новый год

Конструкция

Разработаны подробные чертежи самой платы (конечно, односторонней),…

… сборочный чертеж лицевой… … и обратной стороны устройства

Обратите внимание на перемычки J1-J4. Это резисторы с нулевым сопротивлением в корпусе 1210

Сборка и настройка

Как видно на чертежах на лицевой стороне находятся исключительно необходимые элементы управления, индикации, а также клеммы для подключения питания. Плату без труда можно изготовить в домашних условиях при помощи ЛУТ (не забудьте сделать рисунок платы зеркальным!). У меня она выглядит вот так:

Тестер для сервоприводов
Для программирования придется припаяться проводами к плате. Я специально развел ноги MOSI, MISO, SCK на индикатор, а на сигнале RESET оставил контактную площадку. При программировании фьюзы менять не надо, файл прошивки, печатная плата и список для покупки — в конце статьи.

Вместо заключения

В качестве достоинств своего устройства хочется отметить, что не часто у сервотестеров есть индикатор, особенно при стоимости менее 200р. В будущем я хочу добавить в прошивку еще два режима — для определения крайних углов и режим автоматического изменения угла. И, конечно, плата, hex-файл и список для покупки.UPD:

Основная статья теперь хранится здесь.

Программирование

Для начала нам нужно скопировать скетч представленный ниже, а чуть-чуть дальше мы разберем его детально.

#include /*используем библиотеку для работы с сервоприводом */ Servo servo; //объявляем переменную servo типа Servo void setup() //процедура setup { servo.attach(10); //привязываем привод к порту 10 } void loop() //процедура loop { servo.write(90); //ставим вал под 90 градусов delay(2000); //ждем 2 секунды servo.write(180); /*ставим вал под 180 градусов, сервопривод поворачивается по часовой стрелке */ delay(2000); // ждем 2 секунды servo.write(0); /*ставим вал под 0 градусов, сервопривод поворачивается против часовой стрелки */ delay(2000); // ждем 2 секунды }

Для чего это нужно

В хоббийной электронике широко применяются системы с управлением при помощи PWM-сигнала. Это последовательность импульсов с частотой 50Гц. Информация в них кодируется в виде длительности импульсов, которые могут меняться от 0,8 до 2,3 мс. Крайние значения этого диапазона могут незначительно отличаться у разных производителей.Сервоприводы для строительства авиамоделей, гексаподов, манипуляторов и т.д., используют именно такой сигнал. Как правило они имеют три провода — питание, общий и сигнал. Также в авиамоделировании, автомоделировании, коптеростроении регуляторы хода коллекторных и бесколлекторных моторов используют такой же управляющий сигнал, который определяет скорость и направление вращения двигателей.Источником такого сигнала может служить пульт управления, запрограммированный контроллер или что-то подобное. Но очень часто на этапе строительства бывает удобно применить тестер сервоприводов, который генерирует такой же сигнал в ручном режиме. Это позволяет заранее проверить работоспособность механики, измерить крайние положения и т.д.

Сервоприводы MG995 и MG996 tower pro

Серво MG995 является второй по популярности моделью сервоприводов, чаще всего подключаемых к проектам Arduino. Это относительно недорогие сервомоторы, обладающие гораздо лучшими характеристиками по сравнению с SG90.

Характеристики MG995

Выходной вал у  MG995 поворачивается на 120 градусов (по 60 в каждом направлении), хотя многие продавцы указывают на 180 градусов. Устройство выполняется в пластиковом корпусе.

  • Вес 55 г;
  • Крутящий момент 8,5 кг х см;
  • Скорость 0,2с/60 градусов (при 4,8В);
  • Рабочее питание 4,8 – 7,2В;
  • Рабочие температуры – от 0С до -55С.

Описание MG995

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

MG996R похож на MG995 по своим характеристикам, только он выполняется в металлическом корпусе.

Подключение серводвигателя к ардуино

Сервопривод имеет три контакта, которые имеют разную окраску. Коричневый провод ведет к массе, красный провод к источнику питания + 5В, оранжевый или желтый провод — сигнальный. Устройство подключается к Arduino через макетную плату, как показано на рисунке. Оранжевый (сигнальный) провод подключается к цифровому, черному и красному контактам, соответственно, к заземлению и питанию. Для управления серводвигателем нет необходимости подключаться к выводам ШИМ: принцип работы сервомотора мы уже описали ранее.

Не рекомендуется подключать мощные сервоприводы напрямую к плате, так как они создают ток для цепи питания Arduino, несовместимый с жизнью — повезло, если защита сработает. Наиболее частыми симптомами перегрузки сервопривода и неправильного питания являются рывки сервопривода, неприятный звук и перезагрузка платы. Для питания лучше использовать внешние источники, обязательно совмещая мотивы двух схем.

Подключение серводвигателя к ардуино

Сервопривод обладает тремя контактами, которые окрашены в разные цвета. Коричневый провод ведет к земле, красный – к питанию +5В, провод оранжевого или желтого цвета – сигнальный. К Ардуино устройство подключается через макетную указанным на рисунке образом. Оранжевый провод (сигнальный) подключается к  цифровому пину, черный и красный – к земле и питанию соответственно. Для управления серводигателем не требуется подключение именно к шим-пинам – принцип управления серво мы уже описывали ранее.

Тестер для сервоприводов

Не рекомендуется подключать мощные серво напрямую к плате , т.к. они создают для схемы питания Arduino ток, не совместимый с жизнью – повезет, если сработает защита. Чаще всего симптомы перегрузки и неправильного питания сервопривода заключаются в “дергании” серво, неприятному звуку и перезагрузке платы. Для питания лучше использовать внешние источники, обязательно объединяя земли двух контуров.

Список компонентов

Вот полный список со ссылками:

Микроконтроллер Atmega8A-AU в корпусе TQFP44
Трехразрядный семисегментный дисплей с общим катодом BC56-12GWA

Если вы обратили внимание, на плате предусмотрено место для установки другого, существенно более дешевого дисплея с aliexpress
Сдвиговый регистр SN74HC595DR в корпусе SOIC16
Логический транзистор BCR108E6327 в корпусе SOT23 — 3шт
Светодиоды KP-2012SGC, либо любые другие в корпусе 0805 — 6шт
Инкрементальный энкодер EC12E24204A9
Танталовый конденсатор T491C226K016AT (22мкФ-16В, типоразмер C)
Конденсатор 0,1мк в корпусе 0805 — 7шт
Резистор 1кОм в корпусе 0805
Резисторная сборка 1кОм в корпусе 0603×4
Резисторная сборка 300 Ом в корпусе 0603×4 — 3шт
Кнопка без фиксации типа DTSM20-4.3N — 2шт
Клеммная колодка с шагом выводов 5,08 с двумя контактами
Гребенка контактов PLS-40 (всего потребуется 26 штырьков)
Джампер

Популярные статьи  Пневматический вездеход «ВОГУЛ»

Схема подключения

Сервопривод имеет три провода — коричневый (черный) , красный и оранжевый (желтый ), поэтому их нужно правильно подключить, снизу вы увидите схему подключения

Обратите внимание и запомните навсегда — подключение какого-либо прибора к Arduino влияет на написание скетча. То есть при другом подключении порта сервопривода придется изменить пиновку в скетче

Тестер для сервоприводов

После подключения нужно переходить к написанию скетча, с помощью которого мы сможем управлять сервоприводом. Но для начала нам необходимо скачать и правильно установить нужную библиотеку.

Библиотека — это набор дополнительных команд, который позволяет вводить программу в упрощенном формате.

Здесь мы используем библиотеку для работы с сервоприводами Servo.h.

Для работы с этой библиотекой её нужно скачать и установить.

Скачать библиотеку можно здесь .

После того, как мы скачали нужную библиотеку, ее нужно правильно установить. скачанные файлы нужно переместить по следующему пути :

Диск C Progtam Files Arduino Libraries

Тестер для сервоприводов

После того, как мы все сделали перейдем к самой важной ступеньке, а именно к программированию

Список компонентов

Вот полный список со ссылками:

Микроконтроллер Atmega8A-AU в корпусе TQFP44
Трехразрядный семисегментный дисплей с общим катодом BC56–12GWA

Если вы обратили внимание, на плате предусмотрено место для установки другого, существенно более дешевого дисплея с aliexpress
Сдвиговый регистр SN74HC595DR в корпусе SOIC16
Логический транзистор BCR108E6327 в корпусе SOT23 — 3шт
Светодиоды KP-2012SGC, либо любые другие в корпусе 0805 — 6шт
Инкрементальный энкодер EC12E24204A9
Танталовый конденсатор T491C226K016AT (22 мкФ-16В, типоразмер C)
Конденсатор 0,1 мк в корпусе 0805 — 7шт
Резистор 1кОм в корпусе 0805
Резисторная сборка 1кОм в корпусе 0603×4
Резисторная сборка 300 Ом в корпусе 0603×4 — 3шт
Кнопка без фиксации типа DTSM20–4.3N — 2шт
Клеммная колодка с шагом выводов 5,08 с двумя контактами
Гребенка контактов PLS-40 (всего потребуется 26 штырьков)
Джампер

Схема тестера сервоприводов

Работая над схемой я старался максимально удешевить ее и сделать простой в повторении. В качестве управляющего контроллера использован народный контроллер Atmega8A-AU. Трехразрядный семисегментный дисплэй подключается через сдвиговый регистр и логические транзисторы. Шесть светодиодов служат для отображения текущего режима и подключены они методом так называемого чарлиплексирования для экономии выводов МК. Для управления использован обычный инкрементальный энкодер и две кнопки. Энкодер управляет установленным углом, а кнопки переключают режим управления и текущий канал. Везде стоят конденсаторы от дребезга контактов, так что все это работает очень даже четко. Разъемы тестера предназначены для подключения самих сервоприводов, программирования, подключения к ПК и питания. Я принял решение не устанавливать на плату стабилизатор питания. То есть для ее использования не получится использовать напряжение аккумуляторов напрямую. Необходимо найти источник или стабилизатор на 5В с током, соответствующим току, потребляемому подключаемыми двигателями. Печатная плата подготовлена в формате Sprint Layout. Это двухсторонняя плата, но я рисовал ее так, чтобы можно было изготовить ее в домашних условиях ЛУТом или фоторезистом, а в переходные отверстия легко можно запаять перемычки с одной стороны платы на другую. Лицевая сторона платы … и обратная Я изготавливал эту плату в ручную и все это мной проверено и работает: Также я провел небольшую кампанию среди подписчиков сообществ Товары из Китая радиолюбителю и нашего местного хакспэйса MakeItLab и нашел людей, которые поддержали выпуск небольшой партии устройств. Пользуясь случаем, хочу выразить им свою благодарность. Вот так выглядит устройство в заводском исполнении:

Особенности и характеристики нашего прибора

Большинство тестеров, которые сейчас можно купить либо очень просты, либо дорого стоят. Я хотел сделать как можно дешевле, но при этом дать ему максимально широкий функционал. Вот что у меня получилось:

  1. Шесть независимых каналов управления. Именно независимых! Обычно в готовых можно подключить одновременно несколько двигателей, но сигнал на них один и тот же. На моем приборе можно даже запустить один в автоматическом режиме, а остальными управлять по очереди в ручном и т.д.
  2. Формирование сигнала и индикация в микросекундах. В большинстве тестеров индикация отображается не понятно в чем, либо отсутствует вовсе
  3. Минимальный шаг изменения длительности — 1мкс. То есть диапазон 0,8-2,3мс разбит на 1500 шагов
  4. Возможность подключения к ПК. Можно использовать его, например, в паре с Raspberry Pi. Сам сигнал будет формироваться при этом существенно точнее, чем средствами самого одноплатного компьютера
  5. Открытость. В конце статьи вы сможете найти все файлы, необходимые для самостоятельного изготовления тестера

А вот его характеристики:

  1. Напряжение питания — 5В
  2. Потребляемый ток (без сервоприводов), не более — 100мА
  3. Длительность формируемых импульсов — 0,8-2,3мс
  4. Точность установки длительности — 1мкс
  5. Частота следования импульсов — 50Гц
  6. Скорость соединения с ПК — 9600, 8 bits, 1 stop bit

Заключение

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

В этой статье мы постарались раскрыть разные аспекты использования сервоприводов в проектах arduino: от подключения до написания скетчей. Выбрав самую простую модель серво (например, sg 90) вы сможете без труда повторить приведенные примеры и создать свои первые проекты, в которых что-то движется и изменяется. Надеемся, эта статья поможет вам в этом.

Заключение

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

В этой статье мы постарались раскрыть разные аспекты использования сервоприводов в проектах arduino: от подключения до написания скетчей. Выбрав самую простую модель серво (например, sg 90) вы сможете без труда повторить приведенные примеры и создать свои первые проекты, в которых что-то движется и изменяется. Надеемся, эта статья поможет вам в этом.

Оцените статью
Денис Серебряков
Добавить комментарии

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Тестер для сервоприводов
Машинка, которая ездит сама