exos
>
о компании 
>
бытовая электроника 
>
электроника для PC 
>
измерения 
>
kuChronos 





     


Манипулятор с датчиком ускорения


Автор: С. Кулешов
Опубликовано: Журнал "Радио", 5/2004

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

Принципиальная схема манипулятора изображена на рис. 1. Основой описываемого устройства является микросхема DD1 - интегральный измеритель ускорения (акселерометр) производства Analog Devices. Акселерометры представляют собой датчики линейного ускорения и в этом качестве широко используются для измерения углов наклона тел, сил инерции, ударных нагрузок и вибрации. Акселерометр ADXL202E является двухосным на максимальное ускорение по обеим осям ±2 g [1]. Для удобства сопряжения с микроконтроллерами выходные сигналы ИМС ADXL202E представляют собой прямоугольные импульсы постоянной частоты. Информация об ускорении передается относительной длительностью импульсов [2]. Длительность равная 0,5 соответствует нулевому ускорению.
рис.1
В настоящее время для устройств типа "мышь" существуют 3 типа интерфейса: последовательный, PS/2 и USB. Наиболее прост в реализации как с аппаратной, так и с программной точек зрения последовательный интерфейс. Для последовательного интерфейса наиболее распространен протокол "microsoft mouse", представляющий собой последовательную передачу 3 байтов в формате 7N1 (7 информационных битов, бита четности нет, 1 стоповый бит) на скорости 1200 бит/с. Описание информационных байтов дано в табл. 1.
Следует отметить, что логическая единица в интерфейсе RS-232 соответствует уровню -12В, а логический ноль +12В. Диаграмма передачи первого байта, соответствующая нулевому перемещению по осям и нажатой правой кнопке приведена на рис. 2. Абсолютное большинство современных материнских плат имеют интегрированный адаптер последовательного интерфейса, устойчиво работающий при подаче на вход уровней TTL.
Драйвер операционной системы может распознать мышь, установив сигнал RTS при этом мышь должна вернуть значение 0x4D (символ 'M'). Относительное движение мыши посылается как dx (положительное значение означает движение направо) и dy (положительное значение означает движение вниз).
рис.2 Питание манипулятора формируется из сигнала RTS с помощью стабилитрона VD1. В процессе работы драйвер мыши поддерживает постоянный уровень +12В на выходе RTS последовательного порта.
Сигналы с микросхемы DD1 обрабатываются микроконтроллером DD2 и преобразуются в сигналы последовательного интерфейса, которые через разъем XP1 подаются в COM-порт компьютера. Кнопки SB1, SB2 манипулятора соответствуют правой и левой кнопке стандартной мыши. Переключателем SA1 можно выбирать характеристику манипулятора: линейную или квадратичную зависимость перемещения указателя от угла наклона манипулятора.
Кратко рассмотрим основные моменты работы управляющей программы микроконтроллера. После включения питания микроконтроллер настраивает порты ввода-вывода, источники прерываний и выдает в COM-порт последовательность байт для идентификации себя как устройства типа «мышь». Далее микроконтроллер ожидает прерывания от микросхемы DD1 и производит замер длительности импульсов, используя встроенный таймер. Одновременно с этим циклически производится опрос кнопок SB1 и SB2. При изменении состояния любой кнопки или наличии ненулевого ускорения происходит передача последовательности из 3 байт согласно табл. 1. Проверка состояния переключателя SA1 производится перед каждой отправкой последовательности байт, что позволяет изменять режим работы манипулятора непосредственно в процессе его использования.
Резистор R1 задает частоту импульсов на выходе DD1. Резистор R3 служит для защиты порта микроконтроллера от перегрузки при случайном замыкании проводников в кабеле и разъеме.
Все детали манипулятора, кроме вилки XP1, смонтированы на печатной плате. Микросхема DD1 расположена на нижней стороне платы (выводами вверх) и ориентирована так, чтобы ее ось X давала перемещения курсора в горизонтальной плоскости, а ось Y – в вертикальной. Конденсаторы C1, C2 и резистор R1 должны располагаться в непосредственной близости от микросхемы DD1. В устройстве допустимо применение микроконтроллера PIC16F84A в любом исполнении. Номера выводов DD1 даны для микросхемы в корпусе LCC-8. Для корпуса QC-14 номера выводов приведены в скобках. Вилка XP1 — компьютерная DB-9F. Длина соединительного кабеля — не более 2 м.
При программировании микроконтроллера DD2 нужно установить следующие значения бит в конфигурационном слове: тип генератора (OSC) — HS, сторожевой таймер (WDT) выключен, задержка после включения питания (PWRTE) выключена.
Собранное устройство начинает работать сразу. При необходимости, в небольших пределах чувствительность можно изменять резистором R1. Возможно, для некоторых экземпляров кварцевых резонаторов потребуется подобрать константу pause в программе микроконтроллера, отвечающую за формирование скорости обмена. Несоответствие значения этой константы выражается хаотическим перемещением указателя по экрану при неизменном положении манипулятора.
Манипулятор определяется большинством существующих операционных систем как стандартная мышь для последовательного порта и специального драйвера не требует.
Следует отметить, что описанный манипулятор не работает через переходник COM -> PS/2, так как поддерживает только последовательный интерфейс.

Литература

1. ADXL202E, Low-Cost 2 g Dual-Axis Accelerometer with Duty Cycle Output. — http://www.analog.com

2. А. Волович, Г. Волович. Интегральные акселерометры. – Компоненты и технологии, 2002, № 1, с. 66.


> Скачать mouse.zip
  Манипулятор с датчиком ускорения (Прошивка для PIC)   







Все материалы, находящиеся на этом сайте, являются авторскими.
© 1997-2005 exos tech.
© 1997-2011 Кулешов С.В.