Привод для камеры своими руками

Радиоуправляемое поворотное устройство для видеокамеры (PIC18F628A, FS1000А, XY-VR-5V)

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

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

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

Такие устройства получили название PTZ-видеокамер. Аббревиатура PTZ описывает возможности управления: Pan — панорама, Tilt — наклон, Zoom — увеличение. Сегодня существуют PTZ-видеокамеры двух видов — аналоговые и цифровые.

Аналоговые камеры подключают к видеорегистратору или видеосерверу коаксиальным кабелем. Для управления ими используют дополнительный шестипроводный кабель и один из протоколов DH-SD, PELCO-P, PELCO-D. Цифровые IP PTZ-видеокамеры передают изображение в цифровом формате по протоколу TCP/IP. Оно поступает на цифровой видеорегистратор или видеосервер.

Для передачи изображения и управления достаточно одной витой пары проводов.

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

Читайте также:  Toyota hiace передний привод

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

Принципиальная схема исполнительного устройства

Ниже описывается один из возможных вариантов такого устройства, не обладающего, правда, свойством Z, — управление трансфокатором не предусмотрено. Его принципиальная схема изображена на рис. 1.

Основой служит микроконтроллер DD1 PIC16F628A-I/P [1], имеющий достаточное для решаемой задачи число линий ввода-вывода. Линии RA4, RBO-RB3 использованы как входы, к ним подключены органы управления — кнопки SB1-SB4 и съёмная перемычка S1, которая служит для изменения режима работы сервоприводов платформы.

К выводам RB4 и RB5, служащим выходами, подключены управляющие входы сервоприводов М1 и М2, поворачивающих платформу с видеокамерой соответственно вокруг горизонтальной и вертикальной осей.

Рис. 1. Принципиальная схема поворотного устройства для видеокамеры.

Реле К1 и К2 — РЕ014012 с рабочим напряжением обмотки 12 В и её сопротивлением 685 Ом. Нагрузочная способность выхода микроконтроллера недостаточна для непосредственного управления таким реле. Поэтому в устройство добавлены простейшие транзисторные ключи.

Тот, что состоит из резистора R6 и транзистора VТ1, управляет реле К1, а ключ на транзисторе VТ2 и резисторе R8 — реле К2. Диоды VD1 и VD2, подключённые параллельно обмоткам реле, гасят выбросы напряжения самоиндукции, возникающие в моменты прекращения тока через обмотку.

Контакты реле К1.1 и К2.1 можно использовать по своему усмотрению, например, для включения сирены или освещения. Светодиод HL1 — индикатор режима работы устройства.

Предусмотрена возможность управления поворотной платформой и по радиоканалу. Для этого на вход RB7 микроконтроллера подан сигнал с выхода модуля радиоприёмника А1. Использован готовый модуль XY-VR-5V (рис. 2) из комплекта [2], принимающий радиосигналы частотой 433 МГц.

Питают устройство от аккумуляторной батареи GB1 или другого источника постоянного напряжения 12 В. Оно поступает непосредственно на реле. Напряжение 5 В для питания модуля А1 получено из него с помощью интегрального стабилизатора DA1, а для микроконтроллера и сервоприводов — с помощью более мощного интегрального стабилизатора DA2.

Использование отдельного стабилизатора напряжения для питания приёмника связано с тем, что последний чувствителен к помехам по питанию, создаваемым микроконтроллером и приводами.

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

В предлагаемом устройстве использованы сервоприводы SG90 [3], предназначенные для установки на модели самолётов и вертолётов.

Такой сервопривод изображён на рис. 3. Из него выходят три провода, по которым подают плюс и минус напряжения питания и сигнал управления. Выходной вал сервопривода связан с его электродвигателем через редуктор, обеспечивающий вращающий момент 1,8 кгс см, что вполне достаточно для поворота небольшой видеокамеры.

Угол поворота вала не превышает 180° (по 90° от среднего положения в каждую сторону). Сигнал управления сервоприводом представляет собой последовательность прямоугольных импульсов, следующих с периодом 10. 20 мс.

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

Рис. 4. Управляющий параметр — длительность импульсов.

Схема радиопульта

Принципиальная схема радиопульта управления поворотной платформой изображена на рис. 5. Модуль радиопередатчика FS1000А (А1), работающий на частоте 433 МГц, из того же комплекта [2], что и радиоприёмник в блоке управления, показан на рис. 6. В радиопульте достаточно микроконтроллера с меньшим числом выводов, чем в блоке управления, поэтому здесь применён микроконтроллер PIC16F630-I/P [4].

Рис. 5. Принципиальная схема радиопульта управления поворотной платформой.

Питают пульт напряжением 9 В от аккумуляторной батареи GB1 или блока питания с таким выходным напряжением. Им непосредственно питается модуль FS1000A.

Для питания микроконтроллера предусмотрен интегральный стабилизатор напряжения 5 В (DA1). Светодиод HL1 служит для индикации режима работы устройства.

Чертежи печатных плат блока управления поворотной платформой и радиопульта представлены соответственно на рис. 7 и рис. 8. Их изготавливают из фольгированного с одной стороны изоляционного материала толщиной 1,5. 2 мм. Возможная методика изготовления плат описана в [5].

Рис. 6. Модуль радиопередатчика FS1000А.

В обоих устройствах кнопки SB1, SB2 служат для поворота платформы в горизонтальной плоскости соответственно по часовой стрелке и против неё, кнопки SB3, SB4 — для подъёма и наклона в вертикальной плоскости. При кратковременном нажатии на какую-либо кнопку происходит поворот платформы на небольшой угол в соответствующем направлении.

Если удерживать кнопку нажатой, платформа поворачивается непрерывно с постоянной скоростью, пока угол поворота не достигнет обусловленного конструкцией привода предельного значения. Команды управления радиопульт передаёт с помощью модуля радиопередатчика А1, во время передачи на нём включается сигнальный светодиод HL1.

Как упоминалось выше, в блоке управления установлены реле К1 и К2, предназначенные для коммутации внешних устройств. При кратковременном одновременном нажатии на пары кнопок SB1 и SB2 блока управления или радиопульта будет включено реле К1, а при повторном кратковременном одновременном нажатии оно будет выключено. Аналогично одновременными нажатиями на кнопки SB3 и SB4 управляют реле К2.

Чтобы включить режим изменения скорости поворота платформы с радиопульта, необходимо кратковременно одновременно нажать на его кнопки SB2 и SB4. При этом на нём должен зажечься светодиод HL1. Теперь можно увеличивать скорость поворота нажатиями на кнопку SB3 или уменьшать её нажатиями на кнопку SB4.

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

Для принудительного выхода из режима необходимо повторно одновременно нажать на кнопки SB2 и SB4. Установленное значение скорости будет записано в EEPROM микроконтроллера радиопульта, а светодиод HL1 на нём погаснет.

Аналогично изменяют скорость поворотов кнопками блока управления. Для входа и выхода из режима изменения скорости здесь необходимо кратковременное одновременное нажатие на кнопки SB1 и SB2.

При этом будет включён светодиод HL1 блока. Скорость увеличивают нажатиями на кнопку SB2, а уменьшают нажатиями на кнопку SB1. По завершении регулировки установленное значение скорости будет сохранено EEPROM микроконтроллера блока управления.

Рис. 7. Печатная плата для схемы исполнительного устройства.

Рис. 8. Печатная плата для схемы пульта управления.

Обратите внимание, что значения скорости поворота при управлении с радиопульта и непосредственно с блока управления могут быть установлены разными. Например, с радиопульта — средняя скорость, а с блока управления — высокая.

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

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

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

При установке его вне помещения следует предусмотреть защиту электронных узлов от осадков и низкой температуры. Сервоприводы следует выбирать с учётом массы и момента инерции видеокамеры. Приёмник XY-MK-5V может быть заменён аналогичным, а при отсутствии потребности в радиоуправлении его можно из блока управления исключить.

  1. PIC16F627A/628A/648A FLASH-Based 8-Bit CMOS Microcontrollers with nanoWatt Technology. — microchip.com.
  2. Комплект из передатчика и приёмника для организации беспроводной связи на частоте 433 МГц с использованием амплитудной манипуляции. — radioprog.ru.
  3. SG90 9 g Micro Servo. — www.micropik.com/PDF/SG90Servo.pdf.
  4. PIC16F630/676 14-Pin, Flash-Based 8-Bit CMOS Microcontrollers. — microchip.com.
  5. Козлов P. и др. Изготовление печатных плат термопереносом рисунка печатных проводников на фольгу. — Радио, 2017, № 11, с. 54-56.

Файлы печатных плат в формате Sprint Layout 6.0 и программы для микроконтроллеров — camera-rotator-pic15f630

Р. Мухутдинов, А. Сидоров, М. Таравков, г. Воронеж. Р-12-17.

Источник

Сверхдешёвая камера с управлением — своими руками


В качестве преамбулы скажу, что поскольку, подобная статья уже была, я по-началу и не собирался писать о камере на хабр.
Камера была сделана, просто ради интереса, тренировки навыков и отработки технологии удалённого управления физическими объектами.
Немного позже использовал эту систему как наглядный пример, сопровождающий обзор, на другом ресурсе (а фактически, в качестве чита что-бы подтянуть голоса). Это был настоящий бета-тест, который выявил кучу недоработок. За это огромное спасибо всем неравнодушным, помогавшим кто советом, а кто и куском кода.

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

Вот это всё и сподвигло меня на статью. А чтобы не повторюшничать, я и решил заостриться на стоимости, т.к. у автора предыдущего топика на эту тему, насколько я помню, итоговая стоимость вылилась во что-то в районе 5000р.

О том какова стоимость моей поделки: читаем ниже.

Итак, «как корабль назовешь, так он и поплывет», раз написал заголовок про дешевизну — буду соответствовать прозой, так что, детали — потом, а сперва о стоимости.

Пройдём по ценам*

* все цены даны со скидками. О скидках — отдельно, пожже.

Необходимый набор:

  • Arduino Uno (или nano) — 15.29$
  • Сервопривод (рулевая машинка) SG90 2х2.37$ = 4.74$
  • Вебкамера 3.01$

Итого: 23.04$ (примерно 750р, на данный момент)

Дополнительный набор (ленивости + плюшки):

  • Экран от Nokia 5110 — 250р (в комплекте с самой Нокией и блоком питания, куплено пару лет назад, будем считать, что именно для этой цели, реально можно найти уже вдвое дешевле, или вообще на халяву)
  • MegaShield v4 к Arduino — 5.86$
  • Проводки-коннекторы — 2.86$ (40 штук за эту цену, реально использовано 7)
  • Сверхяркий сверхсиний сверхтодиод для подсветки экрана — 5р/шт (лучше 4шт., у меня сделано неправильно)

Итого: примерно 550р

О реализации

Всё делалось с нуля. Повторять то, что уже было — я не стал, во-первых из соображений тренировки, а во-вторых Ethernet-модуля у меня на тот момент не было, я решил что это всё слишком сложно (там был завязан MySQL) и это решение мне однозначно не подойдёт.

О задачах
Задачи я себе обозначил следующие:

  • Видеть картинку/видео
  • Иметь возможность управлять камерой
  • Иметь возможность управлять размером и качеством видео или картинки, причём не «уже на стороне клиента», а «ещё на стороне сервера, по команде клиента». Такая необходимость возникла из-за того что мне не везде доступен «большой и широкий интырнет»
  • Обеспечивать приемлемую «реалтаймовость»
  • Иметь задел на будущее — управление нагрузкой 220В и т.д. Собственно ради этого всё и затевалось, т.к. готовые решения либо жутко дороги, либо такой возможности не предоставляют.

О проблемах
В ходе реализации возникли вопросы вот такого плана:

  • Видео либо грузит процессор в случает показа на несколько пользователей, либо даёт задержку 5-10, т.е. не обеспечивает «реалтаймовость», из-за чего нельзя сразу определить адекватность и вообще работоспособность управления
  • Использование сервиса трансляций, хотя и сильно разгружает сервер в случае большого онлайна, не обеспечивает необходимую надёжность, и, опять же, даёт задержку
  • Специальный сервер для трансляции видеопотока требует определённых навыков, которых у меня пока что нет
  • Использование отображения путём смены картинок не обеспечивает высокий fps, а также постоянно обращается к жёсткому диску, что, при большом количестве пользователей, может вызывать лаги картинки не из-за загрузки процессора, а именно из-за обращения к диску

О решениях

  • Решено использовать в качестве отображения — картинки
  • Для исключения жёсткого диска из процесса выдачи картинок установлен RamDisk, на который дважды в секунду «ложится» изображение с вебкамеры
  • Для выдачи картинки решено использовать php и gdlib
  • Обновление картинки инициируется клиентом посредством javascript и ajax, и происходит без обновления самой странички

Довольно лирики!

Как выглядит

Выглядит всё более чем скромно

Ардуина, если кто не видел

Мегашилд с проводками

«Сэндвич» в профиль

«Сэндвич» анфас

LCDшка

Она же вид сзади (пины и кондёр)

В сборе

В сборе 2

Колхоз — система проводков и верёвочек (крепление камеры)



Куда же без него

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

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

Как работает программно

На стороне клиента чистый веб-интерфейс, без всяких плагинов и примочек. Только html, css, и javascript (+ajax).

На стороне сервера

  • Сам сервер — Apache
  • Обработчик скриптов — php
  • Приём картинок с камеры — любая самая простая доступная, бесплатная или самопальная программа для сохранения картинок с вебкамеры
  • Хранение картинки — RamDisk, утилита для создания дискового раздела в оперативной памяти (русскоязычная версия RAMDisk «Enterprise» бесплатна для локализованных систем)
  • Чтобы не прописывать в php прямых локальных путей, папка с картинкой смонтирована в www папку с помощью juction (бесплатная утилита Марка Руссиновича)
  • Передача управления из интернета к Arduino реализована с помощью программы-прокси, следующим образом: php скрипт создаёт UDP сокет и отправляет датаграмму на определённый порт, далее программа-прокси слушает этот этот порт и принимает приходящие на него сообщения и отправляет их на COM-порт Arduino (можно даже без обработки). Выбор UDP вызван исключительно для упрощения системы, UDP не требует никаких подтверждений и проверок о доставке-отправке ни со стороны клиента, ни со стороны сервера.

На стороне Arduino

  • Сама (почему «сама»? потому что «плата») Arduino
  • Скетч внутри неё — стандартные примеры из штатного набора arduino-0022 servo и serial + найденная на просторах интернета библиотека для дисплея, доработанная до приемлемого вида (в плане кириллицы и латиницы одновременно)
  • На данный момент плюсом стоит мегашилд, чисто из-за удобства и культурного вида — в этом варианте я не спаял ни одного проводка (за исключением платы к дисплею)

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

Будьте внимательны к мелочам

Хочу отметить проблемы с программной частью которые случались из-за собственной невнимательности/неосведомлённости/ненаблюдательности:

  • Первое с чем я серьёзно мучался: Arduino принимает из отправленной на её виртуальный COM-порт строки отдельно первый байт и отдельно всё остальное. Какие изощрения я только не пробовал — и с массивами и с кучей проверок… Хоть ты убейся. Решение проблемы? Пришло неожиданно и внезапно, в моментк огда я об этом и не думал: Sleep 2 после чтения каждого байта. ВСЁ!
  • Вторая проблема — серьёзная нагрузка на сервер, казалось бы, из ничего, возникла потому, что обновление картинки было сделано по таймеру, не дожидаясь собственно факта загрузки картинки (или ошибки загрузки). Таком образом отсылалась куча «лишних» запросов.
  • Третье: FireFox оказался самым правильным и капризным браузером, и заставил меня учиться писать валидный код. Так например, событие OnClick по элементу Option работать не должно. А оно работет, везде кроме огнелиса.
  • Четвёртая, совершенно не явная и редко всплывающая: периодически картинка «ломалась». Как выяснилось, это происходило в момент когда файл был занят при записи. Т.е. проверка file_exists() проходила, а файл оставался залоченным. Не помогла и проверка is_writable(). Пришлось организовывать цикл по наличию ошибки и внутри него отрабатывать чтение файла «до победного конца».

Оставшиеся недоработки

Есть и такие.

  • Во-первых, это описанные в каментах «левые» символы иногда появляющиеся в конце сообщения на экране. На самом деле это команды управления. Уши этого бага растут из того что если активно спамить или жать кнопки, буфер ком-порта не успевает полностью прочитаться Ардуиной и последующие сообщения валятся в конец буфера. Решение есть, но пока не сделано.
  • Во-вторых, это периодическое падение UDP-сокета в программе прокси при большом онлайне. В чём причина — не знаю. Проявляется не сразу. Умирает и не «откисает». Помогает закрытие сокета и бинд по-новой. Возможно, виноват кривой видовский winsock.ocx. Переписывать это дело на API в бейсике, как-то лень. Пока одним из «топорных» решений вижу сброс и ребинд сокета по таймеру, каждые, скажем, полчаса.

О скидках

Общеизвестно, что в Китае — дешевле. Главное знать места, где именно дешевле, и как добыть дополнительную скидку.
Тут смысла писать нет — слишком большой объём текста с картинками, к тому же известный большинству.
Поэтому дабы не провоцировать ярых противников борьбы со спамом и прочим «реферальством», отмечу необходимый минимум — это скидка 15% на BiC, складывающаяся из одноразового купона на 10% и скидки за первую покупку 5% при вводе рекомендателя + хинт, как использовать эту систему неоднократно.
Все заинтересовавшиеся, могут ознакомиться с полной информацией по ссылке на страничке с, собственно, самой камерой.

Ссылки

Камера, работающий экземпляр, для тех кто ещё не видел и не наигрался
Топик, в котором ссылку на камеру слили на хабр раньше времени
RAMDisk
juction
Исходники (упрощённые, во избежание) клиентской части, серверной (php) и программы web-arduino-прокси (VB 6.0)

Apache, php, либо какие-то комбинированые сборки и т.д. — на свой вкус.

Источник

Оцените статью
Авто Сервис