Разработка системы управления угловым перемещением web-камеры с помощью шагового двигателя

25 апреля 2011 г.

Фото вебкамеры

Немного предыстории:

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

Достоинство статической видеокамеры заключается в том, что она позволяет непрерывно контролировать один и тот же, определенный телесный угол охраняемого пространства. Недостаток такой видеокамеры в том, что ее параметры нельзя адаптировать к реальной ситуации на охраняемом объекте. Другими словами, информативность такой видеокамеры будет во многом определяться тем, насколько удачно выбрано ее положение, насколько точно подобран для нее объектив [1].

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

Исходя из стоимости, предполагается, что по своей информативности одна поворотная видеокамера превосходит несколько расположенных на территории статических видеокамер. Однако, это справедливо лишь в случае ее установки в середине свободного пространства, при отсутствии в ее поле зрения конструкций, образующих мертвые зоны: только в этом случае возможный сектор просмотра контролируемой территории составляет в горизонтальной плоскости 360?; при размещении такой видеокамеры на углу здания этот сектор уменьшается до 270?, а при установке на стене не превышает 180?.

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

Поставим цель:

Разработать алгоритм и программно-аппаратные средства для управления процессом углового перемещения видеокамеры на базе шагового двигателя.

Выбор двигателя:

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

Наиболее распространенными являются двигатели с постоянными магнитами, которые состоят из статора, имеющего обмотки, и ротора, содержащего постоянные магниты. Чередующиеся полюса ротора имеют прямолинейную форму и расположены параллельно оси двигателя [3].

Двигатель с постоянным магнитом

Схема расположения обмоток шагового двигателя с постоянными магнитами (а) и общий вид этого двигателя (б)

Шаговые двигатели делятся на: биполярные, униполярные и четырехобмоточные. Мной был выбран четырехобмоточный шаговый двигатель так как он дает наибольшую точность управления.

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

Аппаратная реализация управления шаговым двигателем с помощью ПК:

На основе анализа был выбран шаговый двигатель ШД-1ЕМ, обладающий следующими особенностями: число шагов на 1 оборот — 200, максимальный ток обмотки 500 мА, номинальная мощность — 12 Вт.
В качестве драйвера двигателя целесообразно использовать микросхему ULN2003A. Это набор транзисторов, собранных по схеме Дарлингтона с открытым коллектором и защитным диодом в цепи нагрузки. Микросхема содержит 7 каналов коммутации с током нагрузки до 500мА.
Семиканальная микросхема
Схема драйвера ULN2003A (а) и одного из его каналов (б)

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

Электрическая схема подключения шагового двигателя
Электрическая схема подключения шагового двигателя.

Сигнал COM (вывод 9) подключен к источнику питания не напрямую, а через стабилитрон. Это сделано с целью защиты схемы от напряжения ЭДС самоиндукции, возникающего в катушках при выключении напряжения питания схемы. Управление микросхемой драйвера осуществляется с помощью параллельного LPT-порта персонального компьютера в режиме ECP/EPP младшими четырьмя выводами линий данных (D0-D3).

Последовательность подачи импульсов в LPT-порт

№ шагаПрямое вращениеОбратное вращение
D0D1D2D3D0D1D2D3
110001000
211001001
301000001
401100011
500100010
600110110
700010100
810011100

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

Программная реализация:

В качестве языка программирования используется среда Delphi, поскольку она обладает простым синтаксисом, удачно демонстрирует парадигмы процедурного программирования и ООП, а также обладает простой и понятной архитектурой стандартных библиотек.
Для работы с коммуникационным портом LPT под управлением операционной системы Microsoft Windows используются две функции WinAPI — Inp32 и Out32, входящие в состав стандартной библиотеки inpout32.dll.
Листинг подпрограммы, обеспечивающей прямое угловое перемещение Alpha двигателя за время T начиная с начальной позиции вала St:

procedure Forward(Alpha:Real, T:Real, K:Real, var St:Integer);
const PORT=888;
const Steps:array[1..8] of Byte = (1, 3, 2, 6, 4, 12, 8, 9);
var I, DT:Integer;
begin
D:=Round(T/(Alpha*K));
I:=0;
while (I
8) then St:=8;
I:=I+1;
end;
end;

ЗАКЛЮЧЕНИЕ

В результате работы были разработаны алгоритмы и программно-аппаратные средства для управления процессом углового перемещения видеокамеры на базе шагового двигателя без применения высокоточной механики.
На базе выполненных разработок осуществлена техническая реализация системы управления шаговым двигателем ШД-1ЕМ на основе персонального компьютера для управления угловым перемещением web-камерой Logitech QuickCam имеющей следующие характеристики: видеозахват в режиме реального времени со скоростью до 30 кадров в секунду с разрешением 640х480 пикс.

СПИСОК ЛИТЕРАТУРЫ
1. Дамьяновски В. CCTV библия охранного телевидения. Цифровые и сетевые технологии&”. Ай-Эс-Эс-Пресс, 2006. — 480с.
2. Дубровский И.Л., Дамбраускас А.П., Рыбин А.А. Микропроцессорное управление электроприводами промышленных роботов: учебное пособие/; — Красноярск, КГТУ, 1993 — 88с.
3. Кенио Такаши. Шаговые двигатели и их микропроцессорные системы управления: Пер. с англ., М.: Энергоатомиздат, 1987 — 199с.
4. Лебедев Н.И., Гандшу В.М., Явдошак Я.И. Вентильные электрические машины. Спб.: Наука, 1996. — 352с.
5. Шаговые двигатели. Мотор-редукторы: портал [Электронный ресурс]. — Режим доступа: stepmotor.ru/

Теги: рубрика Интернет