Цитата:
Сообщение от s.m.
а можно подробнее с этого места?
|
Контроллер avr с АЦП вычисляет нажатия на резистивный тач. Все что намеряли по bluetooth передаем в андроид (spp). В андроиде запущен сервис который принимает данные, маштабирует в зависимости от калибровочных коэффициентов и имитирует нажатие. Параллельно avr сканирует матричную клаву на предмет нажатия кнопок на ней. Если есть нажатие то опять передает в сервис, а тот уже в зависимости от настроек либо запускает установленное приложение, либо имитирует системную или медиа кнопку. Самое сложное оказалось - написать сервис.
До этого пытался использовать bluetooth мышь - по аналогии как это делал с usb мышью. Проблема в том, что в отличии от usb, где в дескрипторе можно было указать 2 байтный сдвиг, в стандартной блютузной доступен только однобайтный - т.е. перемещение максимум +-127 точек. В результате для перемещения на большие растояния необходимо было делать несколько действий. В android 2.3 на табе все было ок - и мышь двигалась как надо, а вот на android 4 и выше зависимость перемещения мыши от кол-ва посылок была явно не линейной. Но я даже вычислил формулу по которой можно было определить необходимое кол-во беспрерывных посылок и их содержимое для перемещения в заданную точку, но этот способ работал не всегда - вероятность была 80-90%.)))) Для 100% точности попадания в заданную точку между посылками необходимо было делать паузы минимум 50ms, в результате если мышь была в одном углу экрана то для ее перемещения в другой требовалось до 300ms - это реально выглядело смешно и бесило.
Приблизительно как тут -
http://www.youtube.com/watch?feature...&v=V9AXRAbl-Ws
Плюс к этому - если изменить "Скорость указателя" в настройках андроида то все вычисления будут неправильными.