Opsi Penguat Adaptif Sederhana untuk Antarmuka Sensor


8

Terkait : ADC Resolusi Tinggi untuk Sensor Bising dalam Kondisi Variabel


Saya sedang membangun antarmuka menggunakan sensor berbasis tekstil resistif yang mungkin memiliki rentang resistensi yang berbeda tergantung pada kondisi lingkungan. Untuk memanfaatkan konverter A / D terbaik saya, saya ingin menjelajahi menggunakan penguat adaptif yang akan membantu mengimbangi kinerja sensor yang tidak dapat diandalkan.

Apa pilihan saya di sini? Atau bisakah Anda mengarahkan saya ke beberapa referensi pada topik?

Saya dapat memikirkan dua skema umum yang akan berguna:

  1. Kalibrasi otomatis dengan menemukan nilai min dan maks di jendela analisis yang diberikan (~ 30s-2mnt)
  2. Kalibrasi eksplisit menggunakan antarmuka toggle-to-train
  3. ... Apakah ada skema alternatif yang tidak saya pikirkan?

Beberapa Kendala

  • Ini harus menjadi solusi satu-chip (kecil) jika memungkinkan (seperti chip penginderaan kapasitif)
  • Seharusnya mudah untuk mengkonfigurasi dan menggunakan (saya bukan seorang insinyur dan saya tidak dibayar)
  • Mungkin akan ada mikrokontroler di dekatnya

Yang lebih baik lagi adalah chip do-it-all dengan Wheatstone bridge / voltage divider, lowpass filter dan amplifier.

Lebih Jauh Tentang Pengaturan Khusus Saya

  • Konverter A / D akan menjadi konverter yang dibangun ke dalam chip Atmel (bisa ATtiny85 atau ATmega32u4) atau konverter yang dibangun menjadi radio XBee seri 2. Saya belum pernah menggunakan chip A / D khusus - saya tidak yakin apakah akan ada manfaat untuk melakukan itu.
  • Sensor akan menjadi bagian dari lycra konduktif polimer-doped dari Eeonyx. Resistansi berubah sekitar 1 urutan besarnya pada peregangan 30%.
  • Semuanya akan dipasang di tangan pemain, sehingga harus kecil dan kuat secara fisik. Kemungkinan besar nirkabel.
  • Ketepatan itu penting. Antarmuka akan digunakan untuk memvariasikan efek audio real-time secara kontinyu, artinya bukan saklar.

Apakah Anda dapat memberikan rincian lebih lanjut tentang pengaturan Anda saat ini? yaitu: jenis ADC yang digunakan, yang menyentuh sensor, yang menyentuh pengontrol.
tyblu

Seberapa besar variasi yang Anda harapkan dari perubahan lingkungan?
jpc

Apa jenis bit-resolution yang Anda butuhkan? Saya bertanya karena saya pikir akan lebih mudah untuk meningkatkan spesifikasi pada ADC Anda sebanyak 4 bit (x16), dan melakukan adaptasi dalam perangkat lunak. Itu harus cukup untuk menangkap satu urutan variasi besarnya. Tentu saja, jika Anda membutuhkan resolusi 16 atau 20 bit, maka itu akan menjadi sangat mahal.
anthony137

@ anthony137 itu ide yang menarik. Saya telah berpikir dalam hal konverter 10-bit karena itulah yang biasanya dibangun oleh mikrokontroler, tetapi saya akan melihat pada konverter high-rez.
teras

@ jpc saya harus menguji. Saya ingin memiliki sistem yang dapat beradaptasi dengan berbagai kondisi yang tidak diketahui, tetapi saya bisa mendapatkan beberapa angka rata-rata.
teras

Jawaban:


5

Inilah ide dasarnya:

sensor

V1 adalah output PWM yang difilter dan R2 adalah sensor Anda. U1 adalah konverter tegangan ke arus, dengan arus melalui beban R1 adalah I = V1 / R2. Ini berarti bahwa tegangan melintasi R1 tergantung pada kedua input. U2 dan U3 adalah amplifier instrumentasi dengan gain 10, yang menguatkan tegangan melintasi R1.

Dengan R1 = 100 Ohms dan V1 = 0..5V rangkaian bekerja untuk R2 = 50..5000 misalnya di dua urutan besarnya, yang dari apa yang Anda katakan harus cukup.

Apa yang Anda lakukan adalah mengambil dan membandingkannya dengan tegangan referensi (4V akan sesuai di sini untuk rentang dinamis maksimum) dan menggunakan perkiraan berturut-turut pada V1 untuk keluar sedekat mungkin dengan tegangan referensi. Dari V1 dan penurunan tegangan yang diketahui melintasi R1 (misalnya tegangan referensi) Anda sekarang dapat menghitung nilai R2, sensor Anda. Ini tentu saja akan membuat Anda menghasilkan hanya dalam resolusi PWM, tetapi Anda dapat menggunakan amp instrumentasi kedua untuk memperkuat kesalahan (perbedaan antara tegangan keluar dan tegangan referensi) untuk mendapatkannya dalam kisaran ADC mikrokontroler Anda dan ini akan memberi Anda bit tambahan resolusi.

Anda memerlukan dua opamps (U1 dan komparator) dan dua amp instrumentasi. Gunakan yang asli daripada membuatnya dari opamps, karena ketidaktepatan resistor dan opamps akan menimbulkan kesalahan.

Jika dua urutan besarnya tidak cukup, Anda dapat mengganti R1 dengan potensiometer digital untuk mendapatkan derajat kebebasan lain. Saya belum pernah bekerja dengan satu, jadi saya tidak tahu seberapa tepat mereka dan apakah solusi seperti itu perlu kalibrasi atau tidak.

Juga, saya harus menyebutkan bahwa itu adalah JPC yang datang dengan ide itu.

MEMPERBARUI:

Ok, saya harus setuju dengan OP bahwa ini sebenarnya bukan jawaban untuk pertanyaannya (meskipun itu memecahkan masalah secara teknis). Saya membiarkan diri saya terbawa oleh "penguat adaptif" dalam judul sebagai alasan untuk melakukan beberapa desain analog. Lupakan semua yang tertulis di atas, kecuali jika Anda ingin mempelajari sesuatu (sedikit) tentang opamps. Saya harap, inilah jawaban yang lebih baik dan solusi yang lebih sederhana:

Gunakan pembagi resistif yang diaktifkan dari regulator tegangan (untuk memisahkannya dari kebisingan sirkuit lain), dengan resistor atas diatur ke tentang resistansi maksimum yang dapat dimiliki sensor Anda (Rmax), dan dengan resistor yang lebih rendah menjadi sensor.

Atur tegangan referensi untuk ADC Anda menjadi setengah dari output regulator tegangan.

Kemudian Anda mencicipi tegangan pada sensor dengan ADC Anda. Dengan cara ini, Anda hanya perlu satu saluran ujung tunggal per sensor. Saya membuat rekomendasi ADC di pos lain.

Jika Anda menggunakan 10 bit ADC yang terintegrasi dalam mikrokontroler yang Anda sebutkan, Anda tidak akan mendapatkan banyak rentang dinamis. Meningkatkan jangkauan menggunakan sirkuit analog, seperti yang saya posting sebelumnya, akan menambahkan terlalu banyak bagian tambahan, itulah sebabnya saya akan merekomendasikan hanya menggunakan beberapa 24 bit ADC, seperti ADS1256 yang saya rekomendasikan di posting lain, karena akan memberi Anda kebisingan rendah dan rentang dinamis tinggi, dalam satu chip (ditambah referensi, yang kecil, dan pengatur tegangan, yang bisa juga kecil - Anda juga dapat mencoba untuk meninggalkan regulator dan menyalakan pembagi resistif langsung dari referensi - ini akan merampok Anda dari 1 bit resolusi, tetapi ada banyak dari mereka). Anda harus melakukan sejumlah angka ("Kalibrasi otomatis dengan menemukan nilai min dan maks dalam jendela analisis yang diberikan" - adalah ide yang bagus),

Saya harap ini sedikit lebih bermanfaat.

PEMBARUAN 2:

Ini adalah yang terakhir: Saya telah melalui mikrokontroler MSP430 dari TI dan saya telah menemukan bahwa beberapa dari mereka memiliki 16 bit sigma-delta ADC dengan referensi internal. Yaitu MSP430F2003 dan MSP430F20013 . Itu akan menjadi solusi satu chip Anda jika Anda mau menyerah pada Atmels. Daya yang sangat rendah juga. Dan mereka memiliki mikrokontroler antrian dengan 24 ADC, tetapi ini belum berproduksi. Selain itu ada juga mikrokontroler PSoC dari Cypress, yang memiliki 20 bit sigma-delta ADC ( PSoC 3 dan PSoC 5 series), juga dengan referensi. Ini akan lebih baik.


@ Jaroslav saya tidak yakin saya mengerti. Dalam konverter tegangan ke arus, V1 biasanya dari sensor - dalam hal ini, karena R2 adalah sensor, apa efek dari U1? Untuk apa U3 dan U2? Apakah mereka amplifier instrumentasi? Apa yang mereka kedepan? Akhirnya, Anda mengatakan sesuatu tentang mengukur penurunan tegangan R1. Bagaimana cara mengukur penurunan ini dan mengapa saya membutuhkannya? Akhirnya, skema kalibrasi seperti apa yang ada dalam pikiran Anda (lihat dua opsi yang saya sajikan dalam posting)? Terima kasih!
teras

@Jaroslav Ah, saya pikir Anda telah menanggapi posting yang salah. Lihat di sini: electronics.stackexchange.com/questions/11978/…
teras

Terima kasih atas pengakuannya tetapi jujur ​​saja saya membayangkan sesuatu yang lebih sederhana. :) Saya pikir Anda tidak benar-benar menggunakan ADC di sini?
jpc

@jpc memang, 3 op-amp akan memakan dua ruang lebih banyak (8-saluran, terpasang di pergelangan tangan)
teras

@ jpc Solusi Anda tidak benar-benar meningkatkan jangkauan dinamis. Simulasikan atau ukur untuk mencari tahu mengapa. Juga, ia memiliki non-linearitas selama 0,6V pertama atau lebih karena basis-emitor diode.
Jaroslav Cmunt

3

Jika perubahan resistansi sensor besar (> 50%) maka Anda bisa menggunakan rangkaian pembagi tegangan sebagai ganti jembatan Wheatstone (lebih rumit). Anda kemudian dapat dengan mudah meningkatkan jangkauan dinamis dengan memvariasikan tegangan suplai.

Tegangan pasokan yang dapat diatur dapat dengan mudah dibuat dari PWM di mikrokontroler Anda bersama dengan filter RC dan sumber arus yang dikontrol tegangan.

Berikut ini adalah skema kasar ide saya:

Skema(dari Socratic Electronics oleh Tony R. Kuphaldt )

Anda kemudian menghubungkan tegangan PWM yang disaring ke input (+) non-pembalik op amp.

Untuk multiplexing cepat, Anda dapat membuat dua sumber saat ini. Jika Anda menghubungkan semua sensor genap ke satu dan semua yang lain ke yang lain maka Anda dapat mengubah tegangan pada sensor berikutnya saat ADC Anda masih mengambil sampel.

Anda harus menggunakan referensi tegangan presisi untuk ADC. Anda juga bisa mendapatkan 1 atau 2 bit dengan menggunakan filter rata-rata bergerak di perangkat lunak Anda.

PS. Saya ingin mengucapkan terima kasih kepada Jaroslav Cmunt atas perbaikannya yang luas untuk jawaban ini.


3

Sudahkah Anda membaca situs ini?

Ada banyak contoh elektronik yang dapat dikenakan termasuk beberapa dengan kain Eeonyx. Situs ini memiliki contoh sirkuit penginderaan (ardunio dan xbee).

Anda tidak memerlukan banyak komponen untuk membangun jembatan Wheatstone dan kemungkinan yang terbaik untuk Anda dengan 1 rangkaian penginderaan multipleks ke 8 sensor, Anda masih bisa mendapatkan 100 sampel per detik atau lebih mudah pada setiap input. Gunakan fabric PCB (periksa lagi situs di atas) untuk membuat jembatan. Atau jalankan kabel sensor ke sarung tangan dan letakkan semua elektronik penginderaan dalam paket yang terpasang di sabuk. Kebanyakan 'sensor' kain yang saya lihat memiliki resistansi yang relatif tinggi, 0,1 ohm yang bisa Anda dapatkan dari kawat antara unit sabuk dan sarung tangan tidak masalah.

Letakkan sensor suhu di setiap sarung tangan dan gunakan hasilnya untuk membuat koreksi dalam perangkat lunak jika diperlukan untuk beradaptasi dengan perubahan lingkungan. Mungkin mengkalibrasi sarung tangan sebelum digunakan, mungkin tidak diperlukan tergantung pada kecerdasan penerjemah.

Saya menganggap modul Xbee mentransmisikan ke komputer, membangun fungsi kalibrasi ke komputer, sebenarnya melakukan sebanyak mungkin pemrosesan, seperti koreksi suhu, di komputer.

Poin bonus jika Anda hanya menggunakan jaringan saraf untuk mengubah input sensor menjadi aksi. Ini akan membuat pelatihan menjadi mudah dan beradaptasi untuk gerakan tangan orang yang berbeda.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.