Страница 1 из 2
Подскажите пожалуйста - сенсорные кнопки на QT1011
Добавлено: Сб июл 23, 2011 13:20:02
frick
Задача такая: есть плата от USB клавиатуры, нужно сделать сенсорные кнопки реагирующие через стекло 3-5 мм. Т.е. при "нажатии" кнопки должно происходить замыкание контактов на плате-контроллере клавиатуры. Кнопки хотел сделать на QT102. Но никак не могу разобраться, помогите пожалуйста.
Какую схему подключения использовать? Какие выводы и как будут замыкаться? И может кто подскажет другое решение на QT сенсорах, на сайте atmel есть сенсоры поддерживающие 10 и более кнопок, как работать с ними?
Re: Подскажите пожалуйста - сенсорные кнопки
Добавлено: Сб июл 23, 2011 13:55:05
Aladdin
По моему 3-5 мм очень много. Сенсор должен быть очень чувствительным, а значит он будет реагировать на всякие помехи… Возможны неконтролируемые срабатывания…
Да и сама клавиатура кажется не сенсорная…

Re: Подскажите пожалуйста - сенсорные кнопки
Добавлено: Сб июл 23, 2011 14:08:14
frick
Про эти датчики - QT101 - более новые версии - QT1010 и QT1011 именно для такого и рассчитаны, как написано на сайте изготовителя - реагируют через стекло 10мм, пластик - 6 мм, дерево и тд.
От клавиатуры остаётся только контроллер - посылающий сигналы компу какие кнопки были нажаты.
Фактически мне нужен совет и схема на QT1011, чтобы при прикосновении к контактной площадке (кнопке) замыкались контакты, которые будут идти на контроллер клавиатуры, который в свою очередь отправит сигнал компу что была нажата определённая клавиша. Вот как-то так)
P.S. Спецы подскажите, сенсорный ёмкостной экран, будет реагировать на палец через 3 мм стекло? Может у кого устройство есть с ёмкостным экраном, проверьте пожалуйста по возможности)
Re: Подскажите пожалуйста - сенсорные кнопки на QT1011
Добавлено: Сб июл 23, 2011 22:15:10
kolya04
да там все просто с этими датчиками, сам работал с QT101A,правда уже давненько,там все подключаешь по даташиту,расстояние срабоки и последующего восстановления зависит от емкости кондера,подбирается в зависимости от толщины,контактная площадка на которой собирается заряд не менее 5x8 мм,и главное чтобы не было посторонней утечки заряда с площадки.
Re: Подскажите пожалуйста - сенсорные кнопки на QT1011
Добавлено: Вс июл 24, 2011 07:56:06
frick
А что насчёт Атмеловских датчиков которые для 10 и более кнопок?
ТАм данные по SPI идут, что сделать чтобы комп получал эти сигналы и воспринимал их как нажатия клавиш на клавиатуре?
Re: Подскажите пожалуйста - сенсорные кнопки на QT1011
Добавлено: Вс июл 24, 2011 08:25:02
radio-kot
frick писал(а): на сайте atmel есть сенсоры поддерживающие 10 и более кнопок, как работать с ними?
Как в даташите и в апноутах написано.
Re: Подскажите пожалуйста - сенсорные кнопки на QT1011
Добавлено: Вс июл 24, 2011 11:11:59
YS
Т.е. при "нажатии" кнопки должно происходить замыкание контактов на плате-контроллере клавиатуры.
А отчего бы просто не реализовать USB HID клавиатуру? Это не так сложно, как кажется.
Re: Подскажите пожалуйста - сенсорные кнопки на QT1011
Добавлено: Вс июл 24, 2011 20:33:23
frick
YS писал(а):А отчего бы просто не реализовать USB HID клавиатуру? Это не так сложно, как кажется.
Дело в том что мне нужны сенсорные емкостные кнопки, чтобы срабатывали через стекло. Задумка такая. Можно поподробней о USB HID клавиатуре?
Re: Подскажите пожалуйста - сенсорные кнопки на QT1011
Добавлено: Вс июл 24, 2011 21:26:20
YS
Можно поподробней о USB HID клавиатуре?
Посмотрите на примеры с
V-USB, там есть HID.
А кнопки можно прикрутить какие угодно. Главное, ПК будет считать, что это клавиатура.

Re: Подскажите пожалуйста - сенсорные кнопки на QT1011
Добавлено: Пн июл 25, 2011 16:52:36
frick
YS писал(а):Посмотрите на примеры с
V-USB, там есть HID.
А кнопки можно прикрутить какие угодно. Главное, ПК будет считать, что это клавиатура.

Спасибо) Как вариант подойдёт клавиатура на 17 клавиш, только пока не разобрался как контачить на компе это будет. И все ещё открыт вопрос с емкостными клавишами (через стекло 3-5 мм).
Re: Подскажите пожалуйста - сенсорные кнопки на QT1011
Добавлено: Пн июл 25, 2011 20:41:21
YS
И все ещё открыт вопрос с емкостными клавишами
Поглядите-ка на
это.
Re: Подскажите пожалуйста - сенсорные кнопки на QT1011
Добавлено: Пн июл 25, 2011 23:31:15
frick
Это конечно круто, но к сожалению не то. Моих знаний не хватает пока для того, чтобы додумать как это подключить к компу, да так чтобы он распознавал сигналы правильно...
Re: Подскажите пожалуйста - сенсорные кнопки на QT1011
Добавлено: Вт июл 26, 2011 08:30:22
coredumped
Я использую технологию QMatrix, а именно чипы AT42QT2160
http://www.atmel.com/dyn/products/produ ... ly_id=2028. У меня устойчиво работает через 4-мм оргстекло, больше не пробовал. Когда начинал эксперименты - первую партию плат выбросил в мусорное ведро. Проблема в том, что рядом с "кнопками" нельзя размещать полигоны земли. Короче с разводкой платы есть ньюансы. А так, работает очень хорошо - рекомендую

PS: На сайте написано, что эта микросхема - один слайдер, на самом деле это не так. Она поддерживает 16 сенсоров и ее можно сконфигурить как драйвер клавиатуры 16 кнопок, либо 8 кнопок и слайдер итд. Короче опыт есть, если заинтересовало - спрашивайте, поделюсь.
Re: Подскажите пожалуйста - сенсорные кнопки на QT1011
Добавлено: Вт июл 26, 2011 09:26:31
Satyr
frick писал(а):Какую схему подключения использовать? Какие выводы и как будут замыкаться? И может кто подскажет другое решение на QT сенсорах, на сайте atmel есть сенсоры поддерживающие 10 и более кнопок, как работать с ними?
Легко. и SPI опрос - ты туда запрос по таймеру, тебе отуда значение-маска по отдельным кнопкам.
а qt1101 просто имитируют обычную кнопку.
Пробовал и qt60168, и qt1101. Для клавиатуры к компьютеру не особо хорошо подходит.
Там расстояние до датчика, точность срабатывания и время срабатывания взаимосвязаны. Т.е. если жать через чтото толстое и более менее без ложных срабатываний, время реакции будет такое, что бегло набирать текст на ней не сможешь.
Re: Подскажите пожалуйста - сенсорные кнопки на QT1011
Добавлено: Ср июл 27, 2011 08:51:54
frick
coredumped
Тема очень заинтересовала)
Re: Подскажите пожалуйста - сенсорные кнопки на QT1011
Добавлено: Ср июл 27, 2011 13:19:50
frick
coredumped:
Можно ли сделать на этой микрухе такую схему - сенсорное кольцо (фактически слайдер по кругу), прокручивая по часовой стрелке увеличиваем громкость, против часовой - уменьшаем, одиночное касание по центру - play/pause, касания по бокам - следующий/предыдущий? Одной микрухи хватит?
И ещё можно ли прикошачить выключатель небольшой (кнопка микрик) - в качестве блокировки, для отключения этого сенсорного устройства? Хочу сделать мягкую подсветку на эти сенсорные области, и чтобы когда "блокируешь" их подсветка гасла...ну это уже детали) Главное разобраться с слайдером.
Re: Подскажите пожалуйста - сенсорные кнопки на QT1011
Добавлено: Ср июл 27, 2011 22:49:56
coredumped
frick писал(а):coredumped:
Можно ли сделать на этой микрухе такую схему - сенсорное кольцо (фактически слайдер по кругу), прокручивая по часовой стрелке увеличиваем громкость, против часовой - уменьшаем, одиночное касание по центру - play/pause, касания по бокам - следующий/предыдущий? Одной микрухи хватит?
И ещё можно ли прикошачить выключатель небольшой (кнопка микрик) - в качестве блокировки, для отключения этого сенсорного устройства? Хочу сделать мягкую подсветку на эти сенсорные области, и чтобы когда "блокируешь" их подсветка гасла...ну это уже детали) Главное разобраться с слайдером.
Я с слайдерами не экспериментировал, но в доке упоминается подобное "колесико". Там есть возможность отслеживать как касания в определенной области, так и "скольжение" . Думаю все должно получиться. Помните только о принципах разводки платы - строго по даташиту, и возле сенсоров никакой земли и постороних цепей. Насчет софта - я поступил след. образом. У микросхемки есть выход "change" - его я завел на ногу апппаратного прерывания. Как только прерывание "сработало", проверяю состояние кнопок. Можно, конечно, организовать "поллинг" по таймеру, но прерывание, имхо, более эффективно.
Одна микруха в состоянии обслужить 16 сенсоров. Хватит или нет - решать Вам. Слайдер или колесо скушает определенное количество сенсоров (почитайте доку) можно отдать часть, можно все, те только слайдер. Посмотрите на ихний эвалюэйшн. Покупать его не стоит, а вот доку почитать стоит. По крайней мере, технология реально работает.
Re: Подскажите пожалуйста - сенсорные кнопки на QT1011
Добавлено: Ср авг 03, 2011 17:52:32
coredumped
В личку меня просили пример кода для AVR под QTouch.
Вот, держите. Все это у меня работает на mega16.
Сперва вызываем kbd_init() - запихиваем нужные значения в регистры, настраиваем прерывание итд.
Чтоб не крутить в цикле опрос регистров, вывод CHANGE AT42QT2160 подан на вход INT0 mega16. При каждом изменении в состоянии кнопок вызывается обработчик прерывания, где собственно и делается обработка. Можете не делать прерываний, а в цикле опрашивать регистр статуса - это как удобней

Библиотечку I2C можете взять любую, хоть с использованием TWI, хоть "софтверную" - дело вкуса.
Код: Выделить всё
#include <ctype.h>
#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include "i2c_io.h"
#define I2C_QT_ADDR 0x1A
#define I2C_WRITE 0
#define I2C_READ 1
uint8_t get_qt_reg(uint8_t reg_addr)
{
uint8_t ret;
_delay_ms(1);
ret = i2c_start(I2C_QT_ADDR+I2C_WRITE); // set device address and write mode
if (ret)
{
/* failed to issue start condition, possibly no device found */
// uart_puts("I2C Read error 1\n\r");
i2c_stop();
return 0;
}
else
{
i2c_write(reg_addr); // write address
i2c_stop();
_delay_ms(1);
ret=i2c_start(I2C_QT_ADDR+I2C_READ); // set device address and read mode
if (ret)
{
/* failed to issue start condition, possibly no device found */
// uart_puts("I2C Read error 2\n\r");
i2c_stop();
return 0;
}
ret = i2c_readNak();
i2c_stop();
return ret;
}
}
void set_qt_reg(uint8_t reg_addr, uint8_t data)
{
uint8_t ret;
_delay_ms(1);
ret = i2c_start(I2C_QT_ADDR+I2C_WRITE); // set device address and write mode
if ( ret )
{
/* failed to issue start condition, possibly no device found */
// uart_puts("I2C Write error\n\r");
i2c_stop();
return;
}
else
{
/* issuing start condition ok, device accessible */
i2c_write(reg_addr); // write address // ret=0 -> Ok, ret=1 -> no ACK
_delay_ms(1);
i2c_write(data); // write freq lo byte
i2c_stop(); // set stop conditon = release bus
}
}
ISR(INT0_vect)
{
uint16_t key;
uint8_t tmphead;
cli();
get_qt_reg(2); //clear main status
key = get_qt_reg(3)<<8;
key |= get_qt_reg(4);
if(key) //key pressed
{
//put code here
}
sei();
}
/******************************************************************/
void kbd_init()
{
cli();
i2c_init();
// init QT chip
set_qt_reg(12, 1);
set_qt_reg(13, 1);
set_qt_reg(15, 20);
set_qt_reg(16, 5);
set_qt_reg(17, 3);
set_qt_reg(18, 255);
set_qt_reg(19, 25);
set_qt_reg(20, 0);
set_qt_reg(73, 0x1c); // GPIO set as output
set_qt_reg(10, 1); //send calidrate
// clear status
get_qt_reg(2);
get_qt_reg(3);
get_qt_reg(4);
get_qt_reg(5);
get_qt_reg(6);
MCUCR = _BV(ISC01); //Enable INT0 on falling edge
GICR = _BV(INT0); //Enable external interrupt INT0
sei();
}
Re: Подскажите пожалуйста - сенсорные кнопки на QT1011
Добавлено: Ср ноя 30, 2011 23:48:14
Klim_1
Ребят, кто подскажет. Планирую сделать клавиатуру на 12 кнопок, сенсор, на базе QT1010. По описанию всё ОК, но как они будут работать группой? Есть ли какие рекомендации по расстоянию между площадками и их расположении? Проблема именно в том чтобы заменить тактовые кнопки в уже готовом устройстве. Иначе взял бы полную микру на 16 кнопок.
Re: Подскажите пожалуйста - сенсорные кнопки на QT1011
Добавлено: Чт дек 01, 2011 11:23:41
Satyr
Это все описано в даташите.
Достигается все подбором параметров несколькоих резисторов и конденсаторов.
Есть у меня такая плата

на ней колечко-слайдер выложено как раз из кучи сенсорных кнопок ВПРИТЫК. все нормально работает.