Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #95, НОЯБРЬ 2006 г.

Eye of the xakep

Fagot (salieff@mail.ru)

Хакер, номер #095, стр. 095-124-2


Теперь нам нужно выяснить, где общий провод питания и какие провода каким обмоткам принадлежат. Замерив попарно сопротивление между всеми проводами, мы обнаружим провод, в паре с которым сопротивление в 2 раза меньше, чем в остальных парах, – это и есть общий провод питания. Далее берем 12 вольт, соединяем питание с общим проводом, а землю - поочередно с обмотками. На 180 градусов якорь не повернется, только на 90. Соответственно, по тому, дернулся якорь или нет, определяем, лежат обмотки рядом или напротив друг друга.

Hardware

Настала пора собрать имеющееся железо воедино. В результате нескольких попыток и модификаций, мне удалось смастерить из конструктора шасси, позволяющее моторам поворачивать камеру в вертикальной и горизонтальной плоскостях. Далее нам нужно соединить обмотки моторов и data-биты LPT-порта сквозь транзисторные ключи. Обмоток у нас 8 (2 мотора, по 4 обмотки в каждом), а ключей в одной микросхеме ULN2003 как назло только семь, так что их нам понадобится две. Чтобы не мучить себя вопросом, пожег ли ты микросхемы долгой/горячей пайкой или нет, советую купить к ним две колодки и распаивать именно их, а потом вставлять туда микросхемы. Также советую сначала вместо обмоток распаять 8 светодиодов через сопротивления по 380 Ом. Это позволит увидеть, загорается ли нужный светодиод при подаче единички в нужный бит и гаснет ли при подаче нуля, или что-то где-то отвалилось, или звенит, и нужно переделывать. Силовое питание в 12 вольт возьмем прямо из башни компьютера. Для этого нам и нужен молекс. То, что у меня получилось, и подробности монтажа можно увидеть на схемах и фотографиях.

Software

Теперь определимся с архитектурой управляющего софта. Итак, нам понадобятся:

1. Модуль видеозахвата. Будем реализовывать его через интерфейс V4L, поскольку V4L-2 еще не слишком распространен, а о других интерфейсах я вообще ничего не слышал.

2. Модуль управления шаговыми моторами. Моторы у нас подсоединены через LPT-порт, и есть 2 пути – либо писать свой драйвер, либо писать значения в I/O-порты из user-space, благо linux позволяет делать это из-под root'а. Я выбрал второй вариант, так как он более простой.

3. Пользовательский интерфейс, отображающий картинку с камеры посредством модуля 1 и управляющий моторами посредством модуля 2. Интерфейс я решил делать с использованием Trolltech QT, люблю я эту библиотеку за гибкость и удобство процесса разработки.

Video4Linux

Работа с видеозахватом реализована в linux классически – данные читаются из файла устройства (допустим /dev/video0), а настройки производятся с помощью ioctl-вызовов для дескриптора этого же файла. Данный интерфейс имеет название V4L (Video for linux), его описание присутствует в заголовочном файле linux/videodev.h.

Назад на стр. 095-124-1  Содержание  Вперед на стр. 095-124-3