Skip to content

Устройство, позволяющее осуществлять наведение закрепленного на поворотном штативе прибора (камера, антенна, фонарь и т.д.) на портативный радиомаяк

License

Notifications You must be signed in to change notification settings

itclub-irk/robotic_tripod

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Роботизированный штатив

Данное устройство позволяет осуществлять наведение закрепленного на поворотном штативе прибора (камера, антенна, фонарь и т.д.) на портативный радиомаяк.

Внешний вид штатива

Демонстрация работы штатива (18 Мб)

Демонстрация работы штатива

Краткое описание конструкции

Штатив состоит из двух компонент - поворотный механизм и радиомаяк.

Радиомаяк определяет угловое положение относительно штатива при помощи ГНСС-приемника. Вычисленное значение при помощи беспроводного канала связи передаётся в поворотный механизм.

Поворотный механизм осуществляет поворот платформы с закрепленным прибором на требуемый угол.

Варианты реализации

В данном репозитории представлен исходный код различных вариантов реализации роботизированного штатива.

Варианты поворотного механизма:

  • С приводом платформы от сервопривода с PWM интерфейсом (Например SG90);
  • С приводом от биполярного шагового двигателя NEMA с драйвером, поддерживающим интерфейс STEP/DIR (использовался двигатель NEMA17 и драйвер TMC2130);
  • С приводом от униполярного шагового двигателя 28byj-48 и буфером ULN2003.
  • С релейным трехпозиционным регулятором;
  • С ПИД регулятором.

Варианты радиомаяка:

  • С использованием библиотеки NeoGPS и аппаратного UART;
  • С использованием библиотеки TinyGPS и программного UART для подключения к ГНСС-приёмнику;
  • С использованием UART трансиверов HC-12 и программным контролем целостности пакетов;
  • С использованием SPI трансиверов sx1278 на базе технологии LoRa и программным контролем целостности пакетов;
  • С использованием UART трансиверов Ebyte E32-868T20S на базе технологии LoRa и аппаратным контролем целостности пакетов;
  • Без внешних радиомодулей, с использованием AdHoc WiFi, UDP-датаграм и программным контролем целостности пакетов;
  • Без внешних радиомодулей, с использованием протокола ESP-Now и программным контролем целостности пакетов;
  • С обратной связью с поворотным механизмом;
  • Без обратной связи с поворотным механизмом.

Аппаратное обеспечение

Поворотный механизм (в зависимости от выбранного варианта реализации):

  • WeMos D1 mini (ESP8266/ESP8266Ex);
  • HC-12/SX1278/E32-868T20S
  • Sg90/28byj-48/NEMA17
  • ULN2003/TMC2130;
  • Микропереключатель;
  • Li-ION АКБ типоразмера 18650 (2 шт.);
  • Понижающий DCDC преобразователь 8.2 ... 7.4 -> 5в;
  • Внешняя штырьевая антенна на выбранный диапазон частот;
  • Коаксиальный кабель с волновым сопротивлением 50 Ом и коннекторы для подключения кабеля к антенне и выбранному трансиверу.

Радиомаяк (В зависимости от выбранного варианта реализации):

  • WeMos D1 mini (ESP8266/ESP8266Ex);
  • HC-12/SX1278/E32-868T20S
  • ГНСС-приемник NEO-6M с UART интерфейсом;
  • Миниатюрный вибромотор;
  • Li-ION АКБ типоразмера 18650 (1 шт.);
  • Повышающий DCDC-преобразователь 4.2 ... 2.7 -> 5в. (Опционально);
  • Микрокнопка без фиксации;
  • Спиральная антенна на выбранный диапазон частот.

Электронные компоненты располагаются на макетных платах. Платы и остальные элементы размещаются в печатных корпусах. Файлы для печати находятся в каталоге 3d.

Образцы моделей для печати

Корпус радиомаяка Корпус поворотного механизма

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

Исходный код написан в среде Arduino IDE с расширением Arduino core for ESP8266. В зависимости от выбранного варианта реализации необходимо установить следующие библиотеки:

Краткое описание алгоритма работы

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

Радиомаяк после включения подаёт короткие сигналы при помощи вибромотора. Описание сигналов:

  • Один короткий сигнал - отсутствует сигнал ГНСС, либо количество принимаемых спутников недостаточно для точного определения координат.
  • Два коротких сигнала - отсутствует связь с поворотным механизмом (в случае использования варианта поворотного механизма с обратной связью);

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

После того, как радиомаяк будет готов к работе, происходит фиксация в оперативной памяти радиомаяка координат поворотного механизма. Для этого, необходимо вплотную приблизится к поворотному механизму, и зажать кнопку радиомаяка до появления продолжительного вибросигнала (~1с.). После этого, необходимо указать радиомаяку вторую точку, для определения первоначального азимута поворотного механизма. Для этого необходимо отойти на расстояние около 10 метров от поворотного механизма и встать по центру кадра закрепленной на нем камеры (встать в фокус луча фонаря, антенны и т.п.) и зажать кнопку радиомаяка до появления продолжительного вибросигнала. После совершения данного действия, поворотный механизм будет автоматически удерживать радиомаяк в центре кадра установленной на нем камеры.

Определение координат радиомаяком осуществляется с частотой 5 Гц. Для перевода ГНСС-приемника в данный режим работы, при включении радиомаяка в приёмник передаётся предопределенная телеграма бинарного протокола UBX. Помимо этого, остальные телеграмы отключают неиспользуемые радиомаяком NMEA параметры (NMEA sentences): VTG, RMC, GSV. Данный шаг необходим, так как попытки перевести UART-порт ГНСС приемника на бодовую скорость, отличную от 9600 Бод/с. не увенчались успехом и использование "полновесного" NMEA протокола с частотой 5 Гц было бы невозможно.

После того, как определен первоначальный азимут поворотного механизма, радиомаяк 5 раз в секунду передаёт текущий горизонтальный угол относительно первоначального азимута. Для этого используется простейший ASCII-протокол, пакет которого имеет следующий вид: @ANGLE@CRC@\n, где ANGLE - текущий угол относительно первоначального азимута (целое число), CRC - контрольная сумма CRC8 от значения ANGLE (целое число). В некоторых вариантах реализации угол может быть вещественным числом, с точностью до одного знака после запятой, в этом случае параметр ANGLE - представляет собой значение угла, умноженное на 10.

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

About

Устройство, позволяющее осуществлять наведение закрепленного на поворотном штативе прибора (камера, антенна, фонарь и т.д.) на портативный радиомаяк

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published