Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Удаленная работа
Помощь проекту

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

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


Предлагаемый манипулятор (его принципиальная схема изображена на рис. 1) выполнен на микроконтроллере (МК) PIC16F84A и интегральном измерителе ускорения (акселерометре) ADXL202E фирмы Analog Devices. Эти приборы представляют собой датчики линейного ускорения и широко используются для измерения углов наклона тел, сил инерции, ударных нагрузок и вибрации. Акселерометр ADXL202E является двухосным на максимальное ускорение по обеим осям ±2g [1 ]. Для удобства сопряжения с МК выходные сигналы этой микросхемы представляют собой прямоугольные импульсы с постоянной частотой повторения. Информация об ускорении передается их относительной длительностью (отношением длительности импульса к периоду колебаний) [2]. Длительность, равная 0,5, соответствует нулевому ускорению.

В настоящее время для устройств типа "мышь" существуют три типа интерфейса: последовательный, PS/2 и USB. Наиболее прост в реализации как с аппаратной, так и с программной точек зрения последовательный интерфейс. Для последовательного интерфейса наиболее распространен протокол "microsoft mouse", представляющий собой последовательную передачу трех байтов в формате 7N1 (семь информационных бит, бита четности нет, один стоп-бит) на скорости 1200 бит/с. Описание информационных байтов дано в табл. 1.


Следует отметить, что лог. 1 в интерфейсе RS-232 соответствует уровню -12, а лог. 0 - +12 В. Диаграмма передачи первого байта, соответствующая нулевому перемещению по осям и нажатой правой кнопке (SB2), показана на рис. 2. Абсолютное большинство современных системных плат имеют интегрированный адаптер последовательного интерфейса, устойчиво работающий при подаче на вход уровней TTL.


Драйвер операционной системы может распознать мышь, установив сигнал RTS, при этом мышь должна вернуть значение 0x4D (символ "М"). Относительное движение мыши посылается как dx (положительное значение означает движение вправо) и dy (положительное значение - движение вниз).

Напряжение питания манипулятора формируется из сигнала RTS с помощью стабилитрона VD1. В процессе работы драйвер мыши поддерживает на этом выходе постоянный уровень+12 В.

Выходные импульсы микросхемы DD1 обрабатываются МК DD2 и преобразуются в сигналы последовательного интерфейса, которые через разъем ХР1 подаются в СОМ порт компьютера. Кнопки SB1, SB2 манипулятора соответствуют левой и правой кнопкам стандартном мыши. Выключателем SA1 можно выбирать характеристику манипулятора - линейную или квадратичную зависимость перемещения указателя от угла наклона манипулятора.

Кратко рассмотрим основные моменты работы управляющей программы МК. После включения питания он настраивает порты ввода/вывода, источники прерываний и выдает в СОМ порт последовательность байт для идентификации себя как устройства типа "мышь". Далее МК ожидает прерывания от микросхемы DD1 и производит замер длительности импульсов, используя встроенный таймер. Одновременно с этим он циклически опрашивает кнопки SB1 и SB2. При изменении состояния любой из них или наличии ненулевого ускорения происходит передача последовательности из трех байт согласно табл. 1. Состояние переключателя SA1 проверяется перед каждой отправкой последовательности байт, что позволяет изменять режим работы манипулятора непосредственно в процессе его использования.

Резистор R1 задает частоту следования импульсов на выходе DD1, R3 защищает порт МК от перегрузки при случайном замыкании проводов в кабеле и разъеме.

Все детали манипулятора, кроме вилки ХР1, смонтированы на печатной плате. Микросхема DD1 расположена на нижней стороне платы (выводами вверх) и ориентирована так, чтобы ее ось X давала перемещения курсора в горизонтальной плоскости, а ось Y - в вертикальной. Нумерация выводов DD1 на рис. 1 соответствует микросхеме в корпусе LCC-8 (в скобках указаны номера выводов при использовании микросхемы в корпусе QC-14). Конденсаторы С1, С2 и резистор R1 должны располагаться в непосредственной близости от микросхемы DD1. В устройстве допустимо применение МК PIC16F84A в любом исполнении. Вилка ХР1 - компьютерная DB-9F. Длина соединительного кабеля - не более 2 м.

Прошивку для микроконтроллера вы можете скачать по этой ссылке. При его программировании нужно установить следующие значения бит в конфигурационном слове: тип генератора (OSC) - HS, сторожевой таймер (WDT) выключен, задержка после включения питания (PWRTE) выключена.

Собранное из исправных деталей и без ошибок в монтаже (и, естественно, в программе МК) устройство налаживания не требует. Единственное, что, возможно, придется сделать (при использовании некоторых экземпляров кварцевых резонаторов), это подобрать константу pause в программе МК, отвечающую за формирование скорости обмена. Несоответствие значения зтой константы проявляется в хаотическом перемещении указателя по экрану при неизменном положении манипулятора. Чувствительность в небольших пределах можно изменять подбором резистора R1.

Большинством существующих операционных систем описанный манипулятор определяется как стандартная мышь для последовательного порта и специального драйвера не требует. Следует учесть, что через переходник COM->PS/2 устройство не работает, так как поддерживает только последовательный интерфейс. 

Автор: С.Кулешов, г. Курган

Литература:

ADXL202E, Low-Cost ±2 g Dual-Axis Accelerometer with Duty Cycle Output. - .
Воловий А., Врлович Г. Интегральные акселерометры. - Компоненты и технологии, 2002, № 1, с. 66.


C этой схемой также часто просматривают:

Охранное устройство с ключами iButton и датчиком удара
Пускозащитное устройство для галогенных ламп на микроконтроллере Z8
Музыкальный звонок на 120 мелодий
Простой USB-осциллограф на микроконтроллере
USB программатор микроконтроллеров AVR и AT89S, совместимый с AVR910

Главные категории

Arduino


Аудио


В Вашу мастерскую


Видео


Для автомобиля


Для дома и быта


Для начинающих


Зарядные устройства


Измерительные приборы


Источники питания


Компьютер


Медицина и здоровье


Микроконтроллеры


Музыкантам


Опасные, но интересные конструкции


Охранные устройства


Программаторы


Радио и связь


Радиоуправление моделями


Световые эффекты


Связь по проводам и не только...


Телевидение


Телефония


Узлы цифровой электроники


Фототехника


Шпионская техника



Реклама на KAZUS.RU


Последние поступления

Подключение энкодера к микроконтроллеру PIC

Счётчик людей в помещении, управляющий освещением

Велокомпьютер на микроконтроллере PIC16F628A

Устройство ввода-вывода на микроконтроллера

Два термометра на PIC16F628A и DS18B20

Светодиодные часы с циферблатом

Двоичные часы

Два вывода микроконтроллера PIC управляют шестью светодиодами

Цифровой программируемый таймер на микроконтроллере PIC16F628A

Устройство рисования в воздухе на ATtiny2313



© 2003—2024 «KAZUS.RU - Электронный портал»