Змінюй хід війни! Допомагай ЗСУ!

ёмкостные датчики на AVR'ках

🟡 04:45 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район

Me1

Статус: Offline
Реєстрація: 09.02.2008
Повідом.: 5813
  • 🟡 04:45 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #1
ёмкостные датчики на AVR'ках

Пробую написать прогу для работы с "сенсорными" датчиками. (впечатлился рекламкой QTouch на сайте производителя)
Пока у меня всё на макетке, гоняю восьмую мегу на внутренней RC на 1МГц. Если с кнопками всё понятно и они почти не глючат, ну тоесть понятно где можно улучшить итд.

Меня больше интересует датчики с плавной регулировкой, выглядят как прямоугольник разрезанный на два прямоугольных треугольника (рис 1).

Я их пока выполнил ШИМом на логике. Выглядит это так: опорный канал идёт через конденсатор на одно АЦП, треугольники подключены как кусок ёмкости в RC частотозадающей цепочке, и тоже идут на свои АЦП через конденсаторы.
Потом считаю разницу на каждом канале относительно опорного, потом относительно друг друга, и в итоге получаю положение пальца на шкале.
Проблема в том что он реагирует даже если я мимо прохожу, или провожу рукой над макеткой.

Может кто тыкнет меня в официальный апноут или может кто такие штуки пользовал в официальной версии поделится какие там частоты, и как оно вообще сделано.
 

Вкладення

  • mtouch_cap12.jpg
    mtouch_cap12.jpg
    34.7 КБ · Перегляди: 355
  • 🟡 04:45 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #2
А выводы данного датчика нуждаются в подтяжке? Может в этом дело?
Кстати, заодно и фильтр получится..
 
Останнє редагування:
  • 🟡 04:45 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #3
к контроллеру идут только 3 напряжения которые заведены на АЦП, одно из них принимается как ноль, два остальных идут с датчиков, по их соотношению считаю положение, подтяжек портов нет.
Просто думается что в оригинале как-то по другому принципу делается, ибо отрывать сразу 3 АЦП только на один датчик это не демократично. У меня на демке сейчас три шаговика, монитор, этот датчик, и всё свободных портов не осталось.
 
  • 🟡 04:45 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #4
В логике чтобы не было помех (реакция на удалённую руку) высокоомные цепи не желательны, а так как ёмкости небольшие, то логично при этом повышать частоту.
В сигнале ШИМ после интеграции постоянная составляющая на АЦП от частоты не зависит, поэтому ШИМ-схема на быстродействующей логике КМОП по идее в 3-ёх(!) АЦП не нуждается, только меряем интегрированный результат без сетевой наводки.
PS.От ваших дел далёк, ёмкостные датчики не люблю- они на промобъектах плохо приживаются.
 
  • 🟡 04:45 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #5
Посмотрел реализацию QTouch на AVR - там действительно АЦП, а на рисунке - PIC и рядом диаграмма значений некого счётчика. Похоже у них реализация ёмкостных датчиков разная. Всё, что по скорому понял, на обычных стандартных AVR возможна реализация только простых кнопок. Всё остальное на АЦП хитрое, использует специальные резистивные площадки.
 
Останнє редагування:
  • 🟡 04:45 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #6
Судя по картинке, имеем два конденсатора, подключенных между землей и выводами порта МК. При прикосновении одновременно увеличивается емкость обоих конденсаторов пропорционально положению пальца.
Я бы попытался сделать поцедурку на асемблере. Сначала - выдать нули на выводы порта, т.е. разрядить конденсаторы. Затем перевести порты на ввод, включить встроенные подтягивающие резисторы и считать количество коротких циклов до появления лог. "1" на каждом входе. По количеству циклов сделать вывод о положении пальца. Процедуру периодически повторять, вычисления усреднять. Никаких АЦП и таймеров не использовать.
Как-то так для начала.
 
  • 🟡 04:45 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #7
Ёпрс... ЗАНИЗЬ ЧУВСТВИТЕЛЬНОСТЬ НАХ!!! Если ты проводишь рукой мимо или топчешь граблей по окну - это ж 2 ГРОМАДНЫЕ разницы... Или ты хочешь сделать емкостной датчик движения?

Введи порог, можно настраиваемый.
2Кроме вывода о положении" надо сначало сделать вывод о "пальце"! А-то как в том фокусе - пальчик чувствуешь? А пальчики-то вот они :D

Я бы попытался сделать поцедурку на асемблере. Сначала - выдать нули на выводы порта, т.е. разрядить конденсаторы. Затем перевести порты на ввод, включить встроенные подтягивающие резисторы и считать количество коротких циклов до появления лог. "1" на каждом входе. По количеству циклов сделать вывод о положении пальца. Процедуру периодически повторять, вычисления усреднять. Никаких АЦП и таймеров не использовать.
Как-то так для начала.

Вотбля... Весь мир АЦП юзает, а мы не будем...
А ничего, что уже давно есть специальные АЦП - для тарчскринов?

Мало вас ебли в ХИРЭ и политехах за размерности и порядки величин :диявол:
 
  • 🟡 04:45 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #8
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
 
  • 🟡 04:45 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #9
  • 🟡 04:45 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #10
Эээмм... Попробуй вычитать абсолютные значения (или по UART через переходник с меги плюй их в терминалку) показаний АЦП.
Ты меряешь по сути ОТНОСИТЕЛЬНЫЕ параметры - отношение показаний АЦП 2х каналов и из этого делаешь вывод о точке нахождения пальца над окном.

Это правильно, но это второй этап обработки. Посмотри на абсолютные значения показаний при ПРИСТАВЛЕННОМ пальце - сразу поймешь почему так получается. По тому, что показания должны отличаться в порядки. А так ты меряешь независимо от того - есть ли вообще палец.
Первый этап - понять - а стоит ли вообще определять где чего находится, или ни чего ни где не находится.

Вот тебе и порядки величин. Мили микро нано пико... А размерности - это я так приплёл, за них просто во всех вузах долбают :D

P.S. Надо понимать чего ты делаешь :), прежде чем делать.
 
  • 🟡 04:45 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #11
Провел эксперимент на макетке.
Взял прямоугольник одностороннего стеклотекстолита 1см х 6см, разрезал фольгу по диагонали и наклеил сверху скотч для изоляции. Два полученных треугольника подключил к двум выводам порта AVR (AT90S2313). Еще один выход порта использовал как тестовый. Тактовая частота проца- 16Мгц.

Написал программку на асме из десятка команд:

1. На тестовый выход - 0, на первый треугольник - 0, на второй - подтяжку.
2. Ожидаем лог. 1 на втором входе.
3. На тестовый выход - 1, на первый треугольник - подтяжку, на второй - 0.
4. Ожидаем лог. 1 на первом входе.
5. Переход на п.1.


В итоге на тестовом выходе получил меандр 500кГц. При косании пальцем в любом месте частота меандра снижается раза в 2. При перемещении пальца - меняется скважность с 1,5 до 3. Сильной болтанки частоты и скважности не замечено.
Для начала, имхо, более чем достаточно.
Вторым этапом можно поиграться с внешними подтяжками и софтом.

P.S. А АЦП, если он есть, может пригодиться для более серьезной задачи. :)
 
Останнє редагування:
  • 🟡 04:45 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #12
Можно нескромный вопрос, чем либа от атмеля не угодила ? По конструкции площадок этих самых кнопок, слайдеров и виилов есть же апликуха и приличная.
 
  • 🟡 04:45 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #13
MoToP, очень сомневаюсь, что такое может стабильно работать.
Емкость - пикофарады, подтяжка - всего десятки килоом.

На самом деле, оно и с АЦП паршивенько работает.
У меня где-то валяется demo board от TI с четырьмя емкостными кнопками. Внешние помехи часто вызывают ложные срабатывания.
 
  • 🟡 04:45 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #14
MoToP, очень сомневаюсь, что такое может стабильно работать.
Емкость - пикофарады, подтяжка - всего десятки килоом.

На самом деле, оно и с АЦП паршивенько работает.
У меня где-то валяется demo board от TI с четырьмя емкостными кнопками. Внешние помехи часто вызывают ложные срабатывания.

А схуяле ему нестабильно работать-то? Вот ТС правильной дорогой пошел :)

То, что он описал, нуждается в 2хаппаратных интеграторах - по частоте и скважности. И будет счастье? Если брать интеграл за большой период времени - ни каких ложных не будет. Подтормаживание появится, но не критичное, всё сгладитинтегратор.
 
  • 🟡 04:45 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #15
То, что он описал, нуждается в 2хаппаратных интеграторах - по частоте и скважности.......
Программное интегрирование, имхо, обойдется дешевле и работать будет надежнее.
 
  • 🟡 04:45 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #16
Программное интегрирование, имхо, обойдется дешевле и работать будет надежнее.

Та ну ни когда программное интегрирование не было надёжнее, чемRC цепочка.
Дешевленачто? 2 кондёраи2 резистора? Не стоит того, плюс - будет жрать такты.
 
  • 🟡 04:45 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #17
RC-цепочка - оно, как говорится, дешево и сердито. Но я имел ввиду надежность работы всей системы. А ну, навскидку, если понадобится менять постоянную времени интегрирования, например, в случае начального прикосновения или в случае перемещения пальца? И т.п....
Да и все равно, без программного фильтра здесь не обойтись.
 
Останнє редагування:
  • 🟡 04:45 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #18
А схуяле ему нестабильно работать-то? Вот ТС правильной дорогой пошел
Я не о схеме с АЦП, а об этом:
1. На тестовый выход - 0, на первый треугольник - 0, на второй - подтяжку.
2. Ожидаем лог. 1 на втором входе.
3. На тестовый выход - 1, на первый треугольник - подтяжку, на второй - 0.
4. Ожидаем лог. 1 на первом входе.
5. Переход на п.1.
Я не верю, что такое может работать, т.к. при сопротивлении pull-up резисторов в десятки килоом, емкость в единицы пикофарад влияет на напряжение на входах не сильнее, чем фаза луны.
 
  • 🟡 04:45 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #19
Я не о схеме с АЦП, а об этом:

Я не верю, что такое может работать, т.к. при сопротивлении pull-up резисторов в десятки килоом, емкость в единицы пикофарад влияет на напряжение на входах не сильнее, чем фаза луны.

Это без поллитры и личного знакомства не понять - тут надо вдууумчиво :D
 
  • 🟡 04:45 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #20
Я не верю, что такое может работать, т.к. при сопротивлении pull-up резисторов в десятки килоом, емкость в единицы пикофарад влияет на напряжение на входах не сильнее, чем фаза луны.
Для сомневающихся проведем прикидочный расчет. Пусть подтяжка R=100ком, емкость пальца C=10пф, тогда время заряда до половины напряжения питания прибл. = R*C , т.е. 1 мкс. За это время процессор отработает 16 тактов. Реально получилось немного больше. Дальше расписывать?
 
Останнє редагування:
Назад
Зверху Знизу