Опции простого адаптивного усилителя для сенсорных интерфейсов

8

Связанный : АЦП высокого разрешения для датчиков шума в переменных условиях


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

Какие у меня есть варианты? Или вы можете указать мне некоторые ссылки на эту тему?

Я могу думать о двух общих схемах, которые были бы полезны:

  1. Автоматическая калибровка путем нахождения минимальных и максимальных значений в заданном окне анализа (~ 30 с-2 мин)
  2. Явная калибровка с использованием интерфейса переключения между поездами
  3. ... Есть ли альтернативные схемы, о которых я не думаю?

Некоторые ограничения

  • Это должно быть одночиповое решение (маленькое), если возможно (например, емкостные сенсорные чипы)
  • Это должно быть легко настроить и использовать (я не инженер и мне не платят)
  • Вероятно, поблизости будет микроконтроллер

Еще лучше сделать универсальный чип с мостом Уитстона / делителем напряжения, фильтром нижних частот и усилителем.

Подробнее о моей настройке

  • Аналого-цифровые преобразователи будут либо преобразователями, встроенными в чип Atmel (может быть ATtiny85 или ATmega32u4), либо преобразователями, встроенными в радиостанцию ​​XBee серии 2. Раньше я никогда не использовал специальные A / D-чипы - я не уверен, будет ли какая-то польза от этого.
  • Сенсор будет представлять собой кусок проводящей полимерной лайкры от Eeonyx. Сопротивление изменяется примерно на 1 порядок при растяжении 30%.
  • Все это будет установлено на руке исполнителя, поэтому оно должно быть небольшим и физически устойчивым. Есть хороший шанс, что он будет беспроводным.
  • Точность важна. Интерфейс будет использоваться для непрерывного изменения звуковых эффектов в реальном времени, т.е. это не переключатель.
терраса
источник
Можете ли вы предоставить более подробную информацию о вашей текущей настройке? То есть: тип используемых АЦП, сенсорный сенсор, сенсорный контроллер.
tyblu
Насколько велики изменения, которые вы ожидаете получить от изменений окружающей среды?
jpc
Какое битовое разрешение вам нужно? Я спрашиваю, потому что я думаю, что было бы проще увеличить спецификации ваших АЦП на 4 бита (x16) и выполнить адаптацию в программном обеспечении. Этого должно быть достаточно, чтобы зафиксировать изменение на один порядок величины. Конечно, если вам нужно разрешение 16 или 20 бит, то это будет очень дорого.
anthony137
@ anthony137 это интересная идея. Я думал о 10-битных преобразователях, поскольку именно в них обычно встроены микроконтроллеры, но я взгляну на преобразователи с высоким разрешением.
терраса
@jpc Я должен проверить. Я хотел бы иметь систему, которая может адаптироваться к широкому кругу неизвестных условий, но я могу получить некоторые приблизительные цифры.
терраса

Ответы:

5

Вот основная идея:

датчик

V1 - это фильтрованный выход ШИМ, а R2 - ваш датчик. U1 - преобразователь напряжения в ток, при этом ток через нагрузку R1 равен I = V1 / R2. Это означает, что напряжение на R1 зависит от обоих входов. U2 и U3 - инструментальный усилитель с коэффициентом усиления 10, который усиливает напряжение на R1.

При R1 = 100 Ом и V1 = 0..5V схема работает для R2 = 50..5000, например, на два порядка, чего, как вы говорите, должно быть достаточно.

Что вы делаете, вынимает и сравнить его с опорным напряжением (4V можно было бы использовать здесь для максимального диапазона динамического) и использовать последовательное приближение на V1 , чтобы выйти как можно ближе к опорному напряжению. Из V1 и известного падения напряжения на R1 (например , опорное напряжение) вы можете Вычислит значение R2, сенсор. Это, конечно, даст вам результат только в пределах разрешения ШИМ, но вы можете использовать второй инструментальный усилитель, чтобы усилить ошибку (разницу между выходным и опорным напряжением), чтобы получить ее в диапазоне АЦП вашего микроконтроллера, и это даст вам дополнительные биты разрешения.

Вам нужны два операционных усилителя (U1 и компаратор) и два инструментальных усилителя. Используйте настоящие, вместо того, чтобы делать их из операционных усилителей, потому что неточности резисторов и операционных усилителей приведут к ошибке.

Если двух порядков недостаточно, вы можете заменить R1 цифровым потенциометром, чтобы получить еще одну степень свободы. Я никогда не работал с ним, поэтому я не знаю, насколько они точны и нужно ли такое решение для калибровки или нет.

Кроме того, я должен отметить, что именно jpc пришел с идеей.

ОБНОВИТЬ:

Хорошо, я должен согласиться с OP, что это не совсем ответ на его вопрос (хотя это решает проблему технически). Я позволил себе увлечь себя «адаптивным усилителем» в названии в качестве предлога для создания некоторого аналогового дизайна. Забудьте все написанное выше, если вы не хотите узнать немного (немного) об операционных усилителях. Вот, я надеюсь, лучший ответ и гораздо более простое решение:

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

Установите опорное напряжение для вашего АЦП наполовину выходе регулятора напряжения.

Затем вы измеряете напряжение на датчике с помощью АЦП. Таким образом, вам нужен только один несимметричный канал на датчик. Я сделал рекомендацию ADC в другом посте.

Если вы используете 10-битный АЦП, который интегрирован в упомянутые вами микроконтроллеры, вы не получите большой динамический диапазон. Расширение диапазона с использованием аналоговых схем, таких как тот, который я первоначально опубликовал, добавило бы слишком много дополнительных деталей, поэтому я бы порекомендовал просто использовать какой-нибудь 24-битный АЦП, как ADS1256, который я рекомендовал в другом посте, потому что он даст вам низкий уровень шума и высокий динамический диапазон в одной микросхеме (плюс крошечный эталонный эталон и регулятор крошечного напряжения, который также может быть крошечным). Вы также можете попробовать отключить регулятор и включить резистивный делитель непосредственно из эталонного сигнала - это отнимет у вас 1 бит разрешения, но их все равно будет много). Вам нужно будет выполнить некоторые вычисления («Автоматическая калибровка путем нахождения минимальных и максимальных значений в данном окне анализа» - хорошая идея),

Я надеюсь, что это немного более полезно.

ОБНОВЛЕНИЕ 2:

Это последнее: я изучал микроконтроллеры MSP430 от TI и обнаружил, что некоторые из них имеют 16-битный сигма-дельта АЦП с внутренней ссылкой. А именно MSP430F2003 и MSP430F20013 . Это будет ваше решение с одним чипом, если вы готовы отказаться от Atmels. Очень низкая мощность тоже. И у них в очереди микроконтроллеры с 24 АЦП, но они еще не в производстве. Кроме микроконтроллеров PSoC от Cypress, которые имеют 20-битные сигма-дельта АЦП ( серии PSoC 3 и PSoC 5 ), также со ссылкой. Это было бы еще лучше.

Ярослав Смунт
источник
@ Ярослав Я не уверен, что понимаю. В преобразователе напряжения в ток V1 обычно поступает от датчика - в этом случае, поскольку R2 является датчиком, каково влияние U1? Для чего нужны U3 и U2? Это инструментальные усилители? Что они передние? Наконец, вы говорите что-то об измерении падения напряжения на R1. Как мне измерить это падение и зачем оно мне? Наконец, какую схему калибровки вы имеете в виду (см. Два варианта, которые я представляю в посте)? Спасибо!
терраса
@ Ярослав Ах, я думаю, вы ответили не на тот пост. Смотрите здесь: electronics.stackexchange.com/questions/11978/…
терраса
Спасибо за признание, но, честно говоря, я представлял себе нечто более простое. :) Я думаю, вы не пользуетесь АЦП здесь?
jpc
@jpc действительно, 3 операционных усилителя в любом случае займут два больших места (8 каналов, наручные)
терраса
@jpc Ваше решение на самом деле не увеличивает динамический диапазон. Моделируйте или измеряйте, чтобы узнать почему. Кроме того, он имеет нелинейность в течение первых 0,6 В или около того из-за диода базы-эмиттера.
Ярослав Cmunt
3

Если изменения в сопротивлении датчика велики (> 50%), вы можете использовать схему делителя напряжения вместо (более сложного) моста Уитстона. Затем вы можете легко улучшить динамический диапазон, изменяя напряжение питания.

Регулируемое напряжение питания можно легко получить из ШИМ в вашем микроконтроллере вместе с RC-фильтром и источником тока, управляемым напряжением.

Вот примерная схема моей идеи:

схема(из " Сократовской электроники" Тони Р. Купальдта )

Затем вы подключаете отфильтрованное напряжение ШИМ к неинвертирующему (+) входу операционного усилителя.

Для быстрого мультиплексирования вы можете сделать два таких источника тока. Если вы подключите все четные датчики к одному и все нечетные к другому, вы можете изменить напряжение на следующем датчике, пока ваш АЦП все еще выполняет выборку.

Вы должны использовать ссылку на точность напряжения для АЦП. Вы также можете получить 1 или 2 бита, используя фильтр скользящего среднего в вашем программном обеспечении.

PS. Я хотел бы поблагодарить Jaroslav Cmunt за его значительные улучшения в этом ответе.

JPC
источник
3

Вы читали этот сайт?

Есть много примеров носимой электроники, в том числе с тканями Eeonyx. На сайте есть примеры сенсорных схем (ardunio и xbee).

Вам не нужно много компонентов для построения моста Уитстона, и, вероятно, лучше всего, если 1 сенсорная схема мультиплексируется на 8 датчиков, вы все равно можете легко получить 100 выборок в секунду или более на каждом входе. Используйте текстильную печатную плату (снова проверьте сайт выше), чтобы создать мост. Или просто протяните провода датчика к перчатке и поместите всю чувствительную электронику в упаковку, закрепленную на ремне. Большинство тканевых «датчиков», которые я видел, имеют относительно высокое сопротивление, 0,1 Ом, которые вы можете получить от провода между ремнем и перчатками, не имеет значения.

Поместите датчик температуры в каждую перчатку и используйте результат, чтобы внести корректировку в программное обеспечение, если это необходимо для адаптации к изменениям окружающей среды. Возможно калибруйте перчатки перед каждым использованием, может не потребоваться в зависимости от интеллекта переводчика.

Я предполагаю, что модуль Xbee передает на компьютер, встроил функцию калибровки в компьютер, фактически выполняет столько обработки, сколько вы можете, например, коррекцию температуры, на компьютере.

Бонусные баллы, если вы просто используете нейронную сеть, чтобы преобразовать вход датчика в действие. Это облегчит тренировку и адаптируется к движениям рук разных людей.

отметка
источник