Связанный : АЦП высокого разрешения для датчиков шума в переменных условиях
Я строю интерфейс с использованием резистивных текстильных датчиков, которые могут иметь разные диапазоны сопротивления в зависимости от условий окружающей среды. Чтобы наилучшим образом использовать мои аналого-цифровые преобразователи, я хотел бы изучить использование адаптивного усилителя, который поможет компенсировать ненадежную работу датчиков.
Какие у меня есть варианты? Или вы можете указать мне некоторые ссылки на эту тему?
Я могу думать о двух общих схемах, которые были бы полезны:
- Автоматическая калибровка путем нахождения минимальных и максимальных значений в заданном окне анализа (~ 30 с-2 мин)
- Явная калибровка с использованием интерфейса переключения между поездами
- ... Есть ли альтернативные схемы, о которых я не думаю?
Некоторые ограничения
- Это должно быть одночиповое решение (маленькое), если возможно (например, емкостные сенсорные чипы)
- Это должно быть легко настроить и использовать (я не инженер и мне не платят)
- Вероятно, поблизости будет микроконтроллер
Еще лучше сделать универсальный чип с мостом Уитстона / делителем напряжения, фильтром нижних частот и усилителем.
Подробнее о моей настройке
- Аналого-цифровые преобразователи будут либо преобразователями, встроенными в чип Atmel (может быть ATtiny85 или ATmega32u4), либо преобразователями, встроенными в радиостанцию XBee серии 2. Раньше я никогда не использовал специальные A / D-чипы - я не уверен, будет ли какая-то польза от этого.
- Сенсор будет представлять собой кусок проводящей полимерной лайкры от Eeonyx. Сопротивление изменяется примерно на 1 порядок при растяжении 30%.
- Все это будет установлено на руке исполнителя, поэтому оно должно быть небольшим и физически устойчивым. Есть хороший шанс, что он будет беспроводным.
- Точность важна. Интерфейс будет использоваться для непрерывного изменения звуковых эффектов в реальном времени, т.е. это не переключатель.
Ответы:
Вот основная идея:
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 ), также со ссылкой. Это было бы еще лучше.
источник
Если изменения в сопротивлении датчика велики (> 50%), вы можете использовать схему делителя напряжения вместо (более сложного) моста Уитстона. Затем вы можете легко улучшить динамический диапазон, изменяя напряжение питания.
Регулируемое напряжение питания можно легко получить из ШИМ в вашем микроконтроллере вместе с RC-фильтром и источником тока, управляемым напряжением.
Вот примерная схема моей идеи:
(из " Сократовской электроники" Тони Р. Купальдта )
Затем вы подключаете отфильтрованное напряжение ШИМ к неинвертирующему (+) входу операционного усилителя.
Для быстрого мультиплексирования вы можете сделать два таких источника тока. Если вы подключите все четные датчики к одному и все нечетные к другому, вы можете изменить напряжение на следующем датчике, пока ваш АЦП все еще выполняет выборку.
Вы должны использовать ссылку на точность напряжения для АЦП. Вы также можете получить 1 или 2 бита, используя фильтр скользящего среднего в вашем программном обеспечении.
PS. Я хотел бы поблагодарить Jaroslav Cmunt за его значительные улучшения в этом ответе.
источник
Вы читали этот сайт?
Есть много примеров носимой электроники, в том числе с тканями Eeonyx. На сайте есть примеры сенсорных схем (ardunio и xbee).
Вам не нужно много компонентов для построения моста Уитстона, и, вероятно, лучше всего, если 1 сенсорная схема мультиплексируется на 8 датчиков, вы все равно можете легко получить 100 выборок в секунду или более на каждом входе. Используйте текстильную печатную плату (снова проверьте сайт выше), чтобы создать мост. Или просто протяните провода датчика к перчатке и поместите всю чувствительную электронику в упаковку, закрепленную на ремне. Большинство тканевых «датчиков», которые я видел, имеют относительно высокое сопротивление, 0,1 Ом, которые вы можете получить от провода между ремнем и перчатками, не имеет значения.
Поместите датчик температуры в каждую перчатку и используйте результат, чтобы внести корректировку в программное обеспечение, если это необходимо для адаптации к изменениям окружающей среды. Возможно калибруйте перчатки перед каждым использованием, может не потребоваться в зависимости от интеллекта переводчика.
Я предполагаю, что модуль Xbee передает на компьютер, встроил функцию калибровки в компьютер, фактически выполняет столько обработки, сколько вы можете, например, коррекцию температуры, на компьютере.
Бонусные баллы, если вы просто используете нейронную сеть, чтобы преобразовать вход датчика в действие. Это облегчит тренировку и адаптируется к движениям рук разных людей.
источник