Добрый день.
Есть идея сделать контроллер для тач скрина из arduino (примерно так ).
Хочется просто получать координаты точки нажатия на панель.
Буду признателен за любую помощь или совет по реализации.
Интересует принципиальная схема подключения и алгоритм считывания координат.
01.04.2010, 20:24
Chip
Вложений: 1
Re: Arduino и тач скрин
Немного теории.
Когда на сенсорный экран нажимают, панель и мембрана замыкаются, и контроллер с помощью аналогово-цифрового преобразователя делает изменение сопротивления и преобразует его в координаты X и Y. Алгоритм считывания таков:
На верхний электрод подаётся логический уровень +5В, нижний подтягивается к земле. Левый с правым соединяются накоротко и проверяется напряжение на них. Это напряжение соответствует Y-координате экрана.
Аналогично на левый и правый электрод подаётся логический уровень +5В и «земля», а с верхнего и нижнего считывается X-координата. Вложение 8214
void loop() { pinMode(x1,OUTPUT); pinMode(x2,OUTPUT); digitalWrite(x1,LOW); digitalWrite(x2,HIGH); //подключаем к пластине Х напряжение +5в и GND digitalWrite(y1,LOW); digitalWrite(y2,LOW); //разряжаем емкость pinMode(y1,INPUT); pinMode(y2,INPUT); delay(10); x=analogRead(3); //считываем значение с пластины Х
pinMode(y1,OUTPUT); pinMode(y2,OUTPUT); digitalWrite(y1,LOW); digitalWrite(y2,HIGH); //подключаем к пластине У напряжение +5в и GND digitalWrite(x1,LOW); digitalWrite(x2,LOW); //разряжаем емкость pinMode(x1,INPUT); pinMode(x2,INPUT); delay(10); y=analogRead(0); //считываем значение с пластины У
if( x > 20 && y > 20 ) { bytes[0] = x & 255; // преобразовать x в 2-байта bytes[1] = (x & 768) >> 8; bytes[2] = y & 255; // преобразовать y в 2-байта bytes[3] = (y & 768) >> 8; Serial.write( bytes,4); oldX=x; oldY=y; } }
void loop() { pinMode(x1,OUTPUT); pinMode(x2,OUTPUT); digitalWrite(x1,LOW); digitalWrite(x2,HIGH); //подключаем к пластине Х напряжение +5в и GND digitalWrite(y1,LOW); digitalWrite(y2,LOW); //разряжаем емкость pinMode(y1,INPUT); pinMode(y2,INPUT); delay(10); x=analogRead(3); //считываем значение с пластины Х
pinMode(y1,OUTPUT); pinMode(y2,OUTPUT); digitalWrite(y1,LOW); digitalWrite(y2,HIGH); //подключаем к пластине У напряжение +5в и GND digitalWrite(x1,LOW); digitalWrite(x2,LOW); //разряжаем емкость pinMode(x1,INPUT); pinMode(x2,INPUT); delay(10); y=analogRead(0); //считываем значение с пластины У
if( x > 20 && y > 20 ) { Serial.print(x,DEC); Serial.print(","); Serial.println(y,DEC); oldX=x; oldY=y; } }
Тест работы Ардуино с тачь скрином можно посмотреть на видео.
Под рукой была Touch панель 10" , пришлось ее использовать для опытов :)
01.04.2010, 23:37
delach
Re: Arduino и Touch Screen
Эдуард, огромное спасибо за оперативный и развернутый ответ!
Все работает отлично :)
02.04.2010, 18:48
Chip
Re: TouchScreen контроллер на Arduino.
Подправил схему, код и выложил свое видео , теперь можно использовать вместо контроллера тачь панели :), быстродействия хватает, мышка бегает как настоящая :) Осталось реализовать нажатие правой кнопки и калибровку
04.04.2010, 00:25
delach
Re: TouchScreen контроллер на Arduino.
Здорово :) а чем была плоха схема с 4 резисторами по 10К? Я принципиальной разницы не заметил...
04.04.2010, 00:29
Chip
Re: TouchScreen контроллер на Arduino.
С двумя резисторами проще и линейность лучше
06.04.2010, 02:49
Chip
Re: TouchScreen контроллер на Arduino.
Написал драйвер Тача, теперь все отлично работает как настоящий Touch Screen. После калибровки требуется перезапуск.
06.04.2010, 03:58
xDriver
Re: TouchScreen контроллер на Arduino.
Ну Эдик, ты даешь !
Так скоро блок питания на Arduino появится :D
Молодец.
06.04.2010, 11:08
Chip
Re: TouchScreen контроллер на Arduino.
Я делал на нем ШИМ стабилизатор с обратной связью , но есть опасение что при неконтролируемых моментах(сброс) может полностью открытся ключь и тогда не стабиллизирование питание будет на выходе.
06.04.2010, 12:38
SBorovkov
Re: TouchScreen контроллер на Arduino.
по мне было бы прикольнее всего - а m2-atx поменять микруху контроллера (тим Pic какой-то) на свободно програмируемую. Меня вот, к примеру, убивает пауза 30 секунд до выключения компа после выключения зажигания. Я только в половине случаев успеваю за это время открыть ворота. А 30 минут - "слегка" много. Было бы 1-2 минуты...
09.04.2010, 21:40
AMurchick
Re: TouchScreen контроллер на Arduino.
Вообще не понял смысл темы - тачи же с контроллерами уже продаются :)
10.04.2010, 02:10
Chip
Re: TouchScreen контроллер на Arduino.
Можно купить контроллер отдельно и тачь отдельно.
А вот для чего это мне нужно? Скоро узнаете.
13.07.2010, 21:24
(vS)
Re: TouchScreen контроллер на Arduino.
когда узнаем?
13.07.2010, 21:59
Chip
Re: TouchScreen контроллер на Arduino.
Пока все затягивается на не определенный срок. А Нужно для автономного управления FM Car Radio
13.07.2010, 23:58
(vS)
Re: TouchScreen контроллер на Arduino.
ну, у некоторых уже управляется вроде....
а FM Car Radio тот еще фрукт... хотя со своим софтом отлично работает, а вот с плагинами беда....
14.07.2010, 03:01
Chip
Re: TouchScreen контроллер на Arduino.
Ну так хочу сделать универсальное управление, с основного монитора и после загрузки винды передавать управление компьютеру
14.07.2010, 04:01
(vS)
Re: TouchScreen контроллер на Arduino.
а....
это еще не делали :)
09.09.2010, 19:36
zlay@
Re: TouchScreen контроллер на Arduino.
Цитата:
Сообщение от Chip
Пока все затягивается на не определенный срок. А Нужно для автономного управления FM Car Radio
ждём с нетерпением! процес идёт?
22.09.2010, 05:03
St@rz
Re: TouchScreen контроллер на Arduino.
Цитата:
Сообщение от Chip
Ну так хочу сделать универсальное управление, с основного монитора и после загрузки винды передавать управление компьютеру
Не совсем правильно задал вопрос.
Нужна определенная область на экране монитора и тача (кнопка) визуально выделенная другим цветом (рисунком). При нажатии на нее кнопка становится другим цветом и выполняется какое нибудь действие. Например, включается двигатель.
22.09.2010, 20:14
Chip
Re: TouchScreen контроллер на Arduino.
Так нет проблем, рисуешь кнопку , потом стилусом нажимаешь по всем угам кнопки и фиксируешь координаты...
22.09.2010, 20:27
St@rz
Re: TouchScreen контроллер на Arduino.
Ок. Спасибо. Предварительно пока все обдумываю.
Позже попробую и покажу что получается.
22.09.2010, 23:41
St@rz
Re: TouchScreen контроллер на Arduino.
Идея сделать как в этой теме.
Участвуют:
1. Arduino
2. MAX7456
3. TouchScreen
Компьютер в списке отсутствует.
Кто что думает?
23.09.2010, 02:49
(vS)
Re: TouchScreen контроллер на Arduino.
ну ты делай, оборжать мы всегда успеем ;)
если надо - поможем
23.09.2010, 12:59
Chip
Re: TouchScreen контроллер на Arduino.
Я думаю что нужно радио сначала сделать
24.09.2010, 00:47
St@rz
Re: TouchScreen контроллер на Arduino.
А по радио какие есть продвижения?
24.09.2010, 01:04
Chip
Re: TouchScreen контроллер на Arduino.
Пока не занимался
18.03.2011, 17:38
TimurM
Re: TouchScreen контроллер на Arduino.
собрал всё по схеме, но не работает
на контроллере зеленый светодиод моргает при нажатие на тачскрин, но реакции не какой.
откалибровать тоже не получается. красный крестик стоит и не двигается.
в чем может быть косяк?
18.03.2011, 17:58
Chip
Re: TouchScreen контроллер на Arduino.
Если светодиод моргает значит данные передаются компьютеру
18.03.2011, 18:14
TimurM
Re: TouchScreen контроллер на Arduino.
Цитата:
Сообщение от Chip
Если светодиод моргает значит данные передаются компьютеру
я тоже так подумал. передаются....
можно как-то проверить какие именно данные передаются?
может я попутал контакты Y и X, но почету тогда при калибровки крестик не сдвигается?
18.03.2011, 18:29
Chip
Re: TouchScreen контроллер на Arduino.
проверь в мониторе порта, который в IDE встроен
18.03.2011, 18:41
TimurM
Re: TouchScreen контроллер на Arduino.
Цитата:
Сообщение от Chip
проверь в мониторе порта, который в IDE встроен
проверил, координаты получает при касание тачскрина.
но при запуске TouchScreen.exe курсор убегает в правый нижний угол.
может программка не потому порту пытается считывать данные!?
18.03.2011, 18:47
Chip
Re: TouchScreen контроллер на Arduino.
скорее всего перепутал координаты х,у
18.03.2011, 18:58
TimurM
Re: TouchScreen контроллер на Arduino.
Цитата:
Сообщение от Chip
скорее всего перепутал координаты х,у
та вроде правильные
значения все положительные:
нижней левый угол значения 60,121
верхний левый 63,840
верхний правый 922,70
нижней правый 930,124
в чем можно еще проблему поискать?
18.03.2011, 19:08
TimurM
Re: TouchScreen контроллер на Arduino.
даже если попутаны x,y почему при калибровки крестик не реагирует, видь не важно какие координаты она получила, она их должна воспринимать за правильные.
наверно всётаки программа не получает координаты
18.03.2011, 19:51
Chip
Re: TouchScreen контроллер на Arduino.
в конфиге что прописано? Какое разрешение на компьютере?
18.03.2011, 20:00
TimurM
Re: TouchScreen контроллер на Arduino.
Цитата:
Сообщение от Chip
может быть с запятой проблема?
да. в системы была разделитель запятая. поменял на точку.
действительно были не правильно подключены контакты Х, нашел даташит на свой тач подключил всё правильно. http://www.bestelecs.com/download/lc...1_7inch_tp.pdf
вообщем все ровно не работает.
в конфиге что прописано? Какое разрешение на компьютере?
пробовал без конфига (удалил).
пробовал
[coordinate]
LTX=929
LTY=942
RDX=73
RDY=67
тогда курсор при касание к тачу едет в верхней правый угол.
разрешения 1024х600