Использование микросхемы из оптической мыши в качестве видеокамеры
В современных серийно выпускаемых компьютерных мышах используется оптический датчик поверхности, определяющий перемещение мыши по-поверхности. Датчик такой микросхемы, обычно 16x16 с 64 градациями серого. Подключив такой датчик к мокропроцессорной системе можно получать и обрабатывать изображение низкого разрешения. В данном проекте рассказывается о подключении такого датчика.
В качестве устройства-донора была взята неработающая радиомышь неизвестно происхождения. При вскрытии была обнаружена микросхема с маркировкой A2030, которая была идентифицирована, как ADNS2030.
Микросхемы ADNS2030 и ADNS2051 различаются напряжением питания. Вторая используется в обычных проводных мышах и питается от источника +5V (автор не проверял ее работосопсобность, но вероятно они взаимозаменяемы (с учетом напряжения питания))
Вместе с датчиком на плате размещается обвязка
Схема платы оптической мыши
Схема на микропроцессоре ATMega8 для подключения датчика
По даташиту микросхема должна была работать по следующему алгоритму:
1. Выполняем DumpPixel
2. Повторяем считать регистр Data_Out_Lower, пока бит 7 не станет ==0
3. Сохраняем считанное значение
4. Считываем Data_Out_Upper (после чего вся пара инкрементируется и указывает на следующий пиксель)
5. Сохраняем ранее считанный пиксель
6. Если считали меньше 256 пикселей - переходим к шагу 2
7. Отключаем DumpPixel
Однако вышеприведенную последовательность не удалось довести до рабочего состояния и был реализован следующий алгоритм:
1. Выполняем DumpPixel, присваеваем адрес_пикселя = 0
2. Повторяем считать регистр Data_Out_Lower, пока бит 7 не станет ==0
3. Сохраняем считанное значение по адресу, увеличиваем адрес_пикселя на 1
4. Если считали меньше 256 пикселей - переходим к шагу 2
5. Отключаем DumpPixel
Ппрограмма для персонального компьютера принимает данные от микропроцессорной системы по последовательному порту и отображает их в виде картинки в реальном режиме времени. Настройки последовательного порта: порт COM1, скорость 19200, формат 8-n-1, контроль потока отключён. В панели управления Windows следует настроить на данный порт указанные параметры.
Микропроцессор высылает данные в формате 0..63 (градации яркости) для каждого пикселя (пакет из 256 байт), каждый пакет разделяется байтом с кодом 64
Общий вид собранного устройства:
Полученное изоюражение:
Размер полученной видеообласти составил примерно 1x1мм
Предположительно, сенсор в этой микросхеме имеет следующий формат:
размеры чувствительного элемента 50x50мкм
общий размер сенсора 0.8x0.8мм
Задавшись желаемым полем зрения сенсора 20мм, была подобрана линза с малым фокусным расстоянием (от старого дозиметра) и собрано крепление, обеспечивающее подстройку совмещения оптических осей линзы и сенсора и возможность фокусировки.
Общий вид эксперементального устройства:
В качестве изображения было сформировано:
После настройки системы (центровка оптики, настройка положения линзы - вращением), было получено изображение:
Собранное изделие в деталях:
ПРИЛОЖЕНИЕ
Программа для ПК
Прошивка для микроконтроллера
Алексей Кургузов (mandigit) |