29.03.2013, 20:40 | #1 |
Старший Пользователь
Регистрация: 18.02.2013
Возраст: 42
Город: Санкт-Петербург
Регион: 78, 98
Машина: e46
Сообщений: 163
|
Контроллер резистивного сенсорного экрана, совместимый с Андроид.
Представляю вашему вниманию контроллер четырех проводного резистивного сенсорного экрана, выполненный на микроконтроллере ATmega32U4.
Сначала самое интересное, демонстрация: Почему именно этот микроконтроллер, потому что это один из самых простых с аппаратным USB и аналоговыми входами. А так же, легко смог купить такую вот поделку: Dreamer Nano 4.0 за относительно не большую сумму (ну не очень я люблю травить платы) Сенсорный экран подключайте к входам А0,А1,А2,А3 (на микроконтроллере это порты PF7, PF6, PF5, PF4 соответственно). А0 - Верхняя часть, А1 - правая часть, А2 - нижняя часть, А3 - левая часть. Вот как это выглядит: И с другой стороны: Прошивка и утилита калибровки в приложенном архиве. После того как причешу немножко код, чтоб он стал понятен не только мне, выложу еще и исходники. Устройство представляется составным: виртуальный последовательный порт и сенсорное перо. Порт нужен только для калибровки. Утилита калибровки существует только под винду. Калибровочные коэффициенты сохраняются в памяти контроллера, поэтому калибруем на винде, затем втыкаем в андроид. В калибровочной утилите, коэффициенты автоматически не сохраняются в контроллер, нажимайте кнопку "Upload to device". При желании, цифры можно подредактировать вручную. Позже напишу что они значат и как вычисляются. Обращаю внимание, что в винде курсор может и не двигаться, в Андроиде должно быть всё ок. Дело в том, что в отчете (HID report) который устройство передает в компьютер присутствуют два флага - прикосновение пером и прикосновение пальцем. Если передавать прикосновение и пером и пальцем, в винде все работает, в андроиде тоже, но мелкие элементы, такие как пункты меню, не реагируют на прикосновения. Если передавать только прикосновение пером, то в винде, по не выясненным пока причинам, перестает двигаться курсор, а в Андроиде всё прекрасно, в т.ч. и меню. Оставил пока по последнему варианту, так как для винды контроллеров и так хватает. В общем, еще предстоит разобраться, когда желание появится. Чего имею еще сказать: АЦП микроконтроллера слабоват, он 10-ти разрядный, но младшие разряды это практически шум, я откидываю два младших разряда и получаю 8-битное число для каждой координаты. Т.е. разрешение по каждой координате получается максимум 256. Да и при этом, младший разряд плавает, однако этого вполне хватает, чтобы попадать по клавишам экранной клавиатуры. Можно принять меры по повышению точности как программные, так и аппаратные. Готов обсудить, если появятся заинтересованные знающие люди. Это не совсем законченный проект, на данный момент достигнута та точка, после которой результаты можно использовать на практике. Поэтому всё не так красиво, как хотелось бы, но это работает. UPD 03.05.2013: Обновил прошивку. Улучшился способ измерения позиции касания. Теперь каждая координата измеряется 10 раз и выбирается наиболее часто встречающееся значение, что значительно уменьшает влияние помех и дребезг (за данный способ спасибо AngelOfGrief). При замкнутом выводе D2 (на контроллере вывод PD1) на землю, контроллер работает в режиме "винды", т.е. в винде курсор тоже будет двигаться. Для работы с Андроидом вывод лучше оставить свободным. Откомпилированная прошивка, утилита калибровки и исходники теперь в одном архиве. UPD 14.06.2013: Появилась инструкция по прошивке через bootloader. За что спасибо s.m. UPD 26.08.2014: Протокол калибровки UPD 16.04.2015: Прошивка любого Hex-файла в Arduino при помощи штатного загрузчика
__________________
ibus2hid Touch Controller USB I2S вход 1NeedBMWK76m1vWukagfGKH3kLaJkXcSYK - для спасибо Последний раз редактировалось zyxel812; 16.04.2015 в 21:45. Причина: Добавил ссылку на протокол калибровки |
29.03.2013, 20:49 | #2 |
Больной. Диагноз "Car PC"
Регистрация: 01.09.2005
Возраст: 51
Город: Москва
Регион: 77, 97, 99, 177
Машина: 08\Acura\MDX •••• 07\Honda\Civic 4D
Сообщений: 4,379
|
Здорово!
Теоретически такими темпами можно и до подключения емкостного тача дойти - вообще сказка будет! З.Ы. На видео котяра зачетно подпевает
__________________
Старый проект Honda Accord RHD Теперь будет Acura MDX 2008 и Honda Civic 4D 2007 и Mitsubishi Outlander XL 2011 |
29.03.2013, 21:15 | #3 |
Гуру
Регистрация: 28.12.2009
Возраст: 40
Регион: Украина
Сообщений: 1,084
|
Отличная новость. Представляю сколько людей обрадуется с машинами, в которых экраны встроены
__________________
Проект Peugeot 207 - Nexus 7 |
01.04.2013, 19:34 | #4 |
Старший Пользователь
Регистрация: 18.02.2013
Возраст: 42
Город: Санкт-Петербург
Регион: 78, 98
Машина: e46
Сообщений: 163
|
Добавил в первое сообщение исходники прошивки. Выполнены под Atmel Studio 6.
Большая просьба, если что-то модернизируете, выкладывайте сюда. Если самому модернизировать лень, но есть предложения по модернизации, которые могут улучшить работу контроллера, пишите, буду по возможности выполнять.
__________________
ibus2hid Touch Controller USB I2S вход 1NeedBMWK76m1vWukagfGKH3kLaJkXcSYK - для спасибо |
18.04.2013, 14:08 | #5 |
Новый Пользователь
Регистрация: 17.04.2010
Возраст: 37
Регион: 77, 97, 99, 177
Сообщений: 1
|
А сколько по деньгами и как приобрести?
Заказал тут в Китае всякую всячину что бы в машину андроид встроить, в том числе контроллер для ресистивного тача. Но потом так понял что не прикручу я этот контроллер к андроиду, а там конечно как повезет. А тут набрел на вашу разработку, и она заинтересовала |
23.04.2013, 21:46 | #6 |
Старший Пользователь
Регистрация: 18.02.2013
Возраст: 42
Город: Санкт-Петербург
Регион: 78, 98
Машина: e46
Сообщений: 163
|
В первом посте есть ссылка на плату, а так же прошивка. Никакая доработка не требуется. Покупаешь контроллер, прошиваешь и можно использовать.
__________________
ibus2hid Touch Controller USB I2S вход 1NeedBMWK76m1vWukagfGKH3kLaJkXcSYK - для спасибо |
24.04.2013, 13:51 | #7 |
Новый Пользователь
Регистрация: 10.09.2007
Город: Ивано-Франковск
Регион: Украина
Машина: Honda civic 4D
Сообщений: 2
|
А если использовать этот контролер - Arduino Leonardo прошивка без доработки подойдет?
Последний раз редактировалось admin; 11.03.2017 в 09:52. |
24.04.2013, 20:49 | #8 |
Старший Пользователь
Регистрация: 18.02.2013
Возраст: 42
Город: Санкт-Петербург
Регион: 78, 98
Машина: e46
Сообщений: 163
|
На первый взгляд, да. Нужно только проверить по схеме соответствие выводов, что А0,А1,А2,А3 подключены к PF7, PF6, PF5, PF4 на микроконтроллере.
__________________
ibus2hid Touch Controller USB I2S вход 1NeedBMWK76m1vWukagfGKH3kLaJkXcSYK - для спасибо |
25.04.2013, 19:31 | #10 |
Старший Пользователь
Регистрация: 17.01.2009
Возраст: 49
Город: Москва
Регион: 77, 97, 99, 177
Машина: Audi A5 3.2FSI Q, Porsche 996 Turbo
Сообщений: 669
|
|
Здесь присутствуют: 2 (пользователей: 0 , гостей: 2) | |
|
|