Mengawal Lampu Dengan Mata Anda: 9 Langkah (dengan Gambar)
Mengawal Lampu Dengan Mata Anda: 9 Langkah (dengan Gambar)
Anonim
Mengawal Lampu Dengan Mata Anda
Mengawal Lampu Dengan Mata Anda
Mengawal Lampu Dengan Mata Anda
Mengawal Lampu Dengan Mata Anda

Semester ini di kuliah, saya mengikuti kelas yang disebut Instrumentasi dalam Bioperubatan di mana saya mempelajari asas-asas pemprosesan isyarat untuk aplikasi perubatan. Untuk projek akhir kelas, pasukan saya mengusahakan teknologi EOG (elektrookulografi). Pada dasarnya, elektrod yang dilekatkan pada pelipis seseorang menghantar perbezaan voltan (berdasarkan dipole corneo-retinal) ke litar yang direka untuk menapis dan menguatkan isyarat. Isyarat diberikan ke ADC (penukar analog-ke-digital - dalam kes saya, ADC dari Arduino Uno) dan digunakan untuk menukar warna permata neopixel.

Tutorial ini adalah cara untuk saya merakam apa yang telah saya pelajari, dan juga berkongsi dengan pembaca biasa bagaimana isyarat diasingkan dari tubuh manusia (jadi berhati-hatilah: ia penuh dengan perincian tambahan!). Litar ini sebenarnya boleh digunakan, dengan beberapa perubahan kecil, untuk impuls elektrik jantung motor sebagai bentuk gelombang EKG, dan banyak lagi! Walaupun tidak semudah yang canggih dan sempurna seperti mesin yang anda dapati di hospital, lampu yang dikendalikan oleh kedudukan mata ini sangat bagus untuk pemahaman dan pandangan awal.

Catatan: Saya tidak pakar dalam pemprosesan isyarat, jadi jika ada kesilapan atau jika anda mempunyai cadangan untuk penambahbaikan, beritahu saya! Masih banyak yang perlu saya pelajari sehingga komen dihargai. Juga, banyak makalah yang saya rujuk dalam pautan sepanjang tutorial ini memerlukan akses akademik yang saya terima daripada universiti saya; maaf terlebih dahulu bagi mereka yang tidak akan mempunyai akses.

Langkah 1: Bahan

  • papan kenyataan
  • perintang (100, 1k, 10k, 33k, 1M + 0.5M)
  • kapasitor (0.1uF)
  • instrumentasi amp (INA111 dalam kes saya, tetapi ada pasangan yang seharusnya bekerja dengan baik)
  • op amp (ada - kebetulan saya mempunyai LM324N)
  • neopixel (ada karya, tapi saya menggunakan permata)
  • Bateri 9V x2
  • Header bateri 9V x2
  • elektrod gel pepejal (pemilihan elektrod dibincangkan dalam langkah 5)
  • potensiometer
  • wayar terlindung
  • pelucut wayar
  • besi pematerian + pateri
  • klip buaya (dengan wayar terpasang - solder beberapa jika perlu)
  • gam panas (untuk menstabilkan wayar yang akan dibengkokkan berulang-alik)
  • Arduino (cukup banyak karya, tetapi saya menggunakan Arduino Uno)

SANGAT MENYARANKAN: osiloskop, multimeter, dan penjana fungsi. Kaji output anda daripada hanya bergantung pada nilai perintang saya!

Langkah 2: Latar Belakang Fisiologi dan Keperluan Litar

Latar Belakang Fisiologi dan Keperluan untuk Litar
Latar Belakang Fisiologi dan Keperluan untuk Litar

Penafian cepat: Saya tidak semestinya pakar perubatan dalam bidang ini, tetapi saya menyusun dan mempermudah apa yang telah saya pelajari di kelas / dariGoogling di bawah, dengan pautan untuk membaca lebih lanjut jika anda mahu. Juga, pautan ini adalah gambaran keseluruhan terbaik mengenai subjek yang saya dapati - termasuk teknik alternatif.

EOG (elektro-oculografi) berfungsi pada dipole corneo-retinal. Kornea (depan mata) sedikit bermuatan positif dan retina (belakang mata) dikenakan sedikit negatif. Apabila anda memasang elektrod pada pelipis dan membumikan litar ke dahi anda (membantu menstabilkan bacaan anda dan menghilangkan gangguan 60Hz), anda dapat mengukur perbezaan voltan sekitar ~ 1-10mV untuk pergerakan mata mendatar (lihat gambar di atas). Untuk pergerakan mata menegak, letakkan elektrod di atas dan di bawah mata anda. Lihat artikel ini untuk membaca dengan baik mengenai bagaimana tubuh berinteraksi dengan elektrik - maklumat hebat mengenai impedans kulit, dll. EOG biasanya digunakan untuk mendiagnosis penyakit oftalmologi seperti katarak, kesalahan bias, atau degenerasi makula. Terdapat juga aplikasi dalam robotik kawalan mata di mana tugas mudah dapat dilakukan dengan sekejap.. mata.

Untuk membaca isyarat ini, iaitu mengira perbezaan voltan antara elektrod, kami memasukkan cip penting yang disebut penguat instrumentasi ke dalam litar kami. Amp instrumentasi ini terdiri daripada pengikut voltan, amp bukan pembalik, dan amp pembeza. Sekiranya anda tidak tahu banyak tentang op amp, sila baca ini untuk kursus kemalangan - pada asasnya, mereka mengambil voltan masukan, skala, dan keluarkan voltan yang dihasilkan menggunakan rel kuasa. Penggabungan semua perintang di antara setiap tahap membantu dengan kesalahan toleransi: biasanya perintang mempunyai nilai toleransi 5-10%, dan litar biasa (tidak digabungkan sepenuhnya dalam amp instrumentasi) sangat bergantung pada ketepatan untuk CMMR yang baik (lihat langkah seterusnya). Pengikut voltan adalah untuk impedans input tinggi (dibincangkan dalam perenggan di atas - utama untuk mencegah kemudaratan kepada pesakit), amp yang tidak membalikkan adalah untuk memastikan perolehan isyarat yang tinggi (lebih lanjut mengenai penguatan pada langkah seterusnya) dan amp pembeza mengambil perbezaan antara input (mengurangkan nilai dari elektrod). Ini dirancang untuk menghancurkan kebisingan / gangguan mod biasa sebanyak mungkin (untuk lebih lanjut mengenai pemprosesan isyarat, lihat langkah seterusnya) untuk isyarat bioperubatan, yang penuh dengan artifak luar.

Elektrod menghadapi sedikit impedans kulit kerana tisu dan lemak kulit anda menghalang pengukuran voltan secara langsung, yang menyebabkan perlunya penguatan dan penyaringan isyarat. Di sini, di sini, dan di sini terdapat beberapa artikel di mana para penyelidik telah berusaha untuk mengukur impedans ini. Kuantiti fisiologi ini biasanya dimodelkan sebagai perintang 51kOhm selari dengan kapasitor 47nF, walaupun terdapat banyak variasi dan kombinasi. Kulit di lokasi yang berlainan boleh mempunyai impedansi yang berbeza, terutama ketika anda mempertimbangkan ketebalan dan jumlah otot yang berdekatan. Impedansi juga berubah dengan seberapa baik kulit anda disiapkan untuk elektrod: pembersihan menyeluruh dengan sabun dan air biasanya disarankan untuk memastikan lekatan dan konsistensi yang sangat baik, dan bahkan ada gel khas untuk elektrod jika anda benar-benar menginginkan kesempurnaan. Satu catatan penting adalah bahawa impedans berubah dengan frekuensi (ciri kapasitor) jadi anda perlu mengetahui lebar jalur isyarat anda untuk meramal impedans. Dan ya, mengira impedans penting bagi pemadanan bunyi - lihat langkah selanjutnya untuk maklumat lebih lanjut mengenai perkara ini.

Langkah 3: Pemprosesan Isyarat: Mengapa dan Bagaimana?

Pemprosesan Isyarat: Mengapa dan Bagaimana?
Pemprosesan Isyarat: Mengapa dan Bagaimana?

Sekarang, mengapa anda tidak boleh menggunakan perbezaan voltan 1-10mV sebagai output segera untuk mengawal LED? Nah, ada banyak sebab untuk menapis dan menguatkan isyarat:

  • Banyak ADC (penukar analog-ke-digital - mengambil input analog anda dan mendigitalkannya untuk membaca dan menyimpan data di komputer) tidak dapat mengesan perubahan kecil seperti itu. Sebagai contoh, ADC Arduino Uno secara khusus adalah ADC 10-bit dengan output 5V, yang bermaksud bahawa ia memetakan voltan input 0-5V (nilai di luar julat akan "rel," yang bermaksud bahawa nilai yang lebih rendah akan dibaca sebagai 0V dan nilai yang lebih tinggi dibaca sebagai 5V) ke nilai integer antara 0 dan 1023. 10mV sangat kecil dalam julat 5V, jadi jika anda dapat memperkuatkan isyarat anda ke julat 5V penuh, perubahan kecil akan lebih mudah dikesan kerana ia akan dicerminkan oleh perubahan kuantitatif yang lebih besar (5mV berubah menjadi 10mV berbanding perubahan 2V menjadi 4V). Anggaplah seperti gambar kecil di komputer anda: perinciannya dapat ditentukan dengan sempurna oleh piksel anda, tetapi anda tidak akan dapat membezakan bentuk kecuali anda memperluas gambar.

    Perhatikan bahawa mempunyai lebih banyak bit untuk ADC anda adalah lebih baik kerana anda dapat meminimumkan kebisingan kuantisasi dari mengubah isyarat berterusan anda ke nilai diskrit dan diskrit. Untuk mengira berapa bit yang anda perlukan untuk ~ 96% pengekalan input SNR, gunakan N = SNR (dalam dB) / 6 sebagai peraturan. Anda juga ingin mengingat dompet anda: jika anda mahukan lebih banyak wang, anda perlu bersedia mengeluarkan lebih banyak wang

  • Kebisingan dan gangguan (kebisingan = artifak rawak yang menjadikan isyarat anda bergerigi dan bukan gangguan halus = gangguan tidak artifak, artifak sinusoidal dari isyarat bersebelahan dari gelombang radio, dll) menjangkiti semua isyarat yang diukur dari kehidupan seharian.

    • Yang paling terkenal adalah gangguan 60Hz (50Hz jika anda berada di Eropah dan tidak ada di Rusia kerana mereka menggunakan DC berbanding AC untuk kuasa keluar…), yang disebut frekuensi utiliti dari medan elektromagnetik AC dari saluran kuasa. Talian kuasa membawa voltan tinggi AC dari penjana elektrik ke kawasan kediaman, di mana pengubah menurunkan voltan ke standard ~ 120V di saluran kuasa Amerika. Voltan bergantian membawa kepada gangguan berterusan 60Hz di persekitaran kita, yang mengganggu semua jenis isyarat dan perlu disaring.
    • Gangguan 60Hz biasanya disebut gangguan mod biasa kerana ia muncul di kedua input anda (+ dan -) ke op amp. Sekarang, op amp mempunyai sesuatu yang disebut nisbah penolakan mod biasa (CMRR) untuk mengurangkan artifak mod biasa, tetapi (betulkan saya jika saya salah!) Ini lebih baik untuk bunyi mod biasa (rawak: bunyi dan bukannya bukan rawak: gangguan). Untuk menyingkirkan 60Hz, saringan bandstop dapat digunakan untuk mengeluarkannya secara selektif dari spektrum frekuensi, tetapi kemudian anda juga berisiko membuang data sebenar. Sebaik-baiknya, anda boleh menggunakan penapis lulus rendah untuk memastikan jarak frekuensi lebih rendah daripada 60Hz, jadi semua yang mempunyai frekuensi yang lebih tinggi disaring. Itulah yang saya lakukan untuk EOG: lebar jalur yang diharapkan dari isyarat saya ialah 0-10Hz (mengabaikan pergerakan mata yang cepat - tidak mahu menghadapinya dalam versi mudah kami) jadi saya membuang frekuensi lebih besar daripada 10Hz dengan penapis lulus rendah.

      • 60Hz boleh merosakkan isyarat kita melalui gandingan kapasitif dan gandingan induktif. Gandingan kapasitif (baca pada kapasitor di sini) berlaku apabila udara bertindak sebagai dielektrik bagi isyarat AC yang akan dilakukan di antara litar bersebelahan. Gandingan induktif berasal dari undang-undang Faraday semasa anda menjalankan arus di medan magnet. Terdapat banyak trik untuk mengatasi gandingan: anda boleh menggunakan perisai yang dibumikan sebagai semacam kandang Faraday, misalnya. Kabel memutar / tocang apabila boleh mengurangkan kawasan yang ada untuk gandingan induktif untuk mengganggu. Memendekkan wayar dan mengurangkan keseluruhan ukuran litar anda juga mempunyai kesan yang sama dengan alasan yang sama. Mengandalkan kuasa bateri untuk rel op amp berbanding dengan memasang ke soket kuasa juga membantu kerana bateri menyediakan sumber DC tanpa ayunan sinusoidal. Baca lebih banyak lagi di sini!
      • Penapis lulus rendah juga menghilangkan banyak bunyi, kerana kebisingan rawak diwakili oleh frekuensi tinggi. Kebisingan yang banyak adalah bunyi putih, yang bermaksud bahawa kebisingan hadir untuk semua frekuensi, jadi mengehadkan lebar jalur isyarat anda sebanyak mungkin membantu dengan mengehadkan seberapa banyak bunyi itu ada dalam isyarat anda.

        Beberapa penapis lulus rendah disebut penapis anti-aliasing kerana mereka mencegah aliasing: apabila sinusoid berada di bawah sampel, mereka mungkin dikesan sebagai frekuensi yang berbeza daripada yang sebenarnya. Anda harus selalu ingat untuk mengikuti teorema persampelan Nyquist (isyarat isyarat pada frekuensi 2x lebih tinggi: memerlukan frekuensi pensampelan> 2Hz untuk jangkaan gelombang sinus 1Hz, dan lain-lain). Dalam kes EOG ini, saya tidak perlu risau tentang Nyquist kerana isyarat saya dijangka berada dalam julat 10Hz, dan sampel Arduino ADC saya pada 10kHz - lebih pantas daripada menangkap semua

    • Terdapat juga sedikit helah untuk menghilangkan kebisingan. Salah satunya ialah menggunakan tanah bintang sehingga semua bahagian litar anda mempunyai rujukan yang sama. Jika tidak, apa yang disebut oleh satu bahagian "tanah" mungkin berbeza dari bahagian lain kerana sedikit rintangan pada wayar, yang bertambah dalam keadaan tidak konsisten. Memateri pada protoboard daripada melekat pada papan roti juga mengurangkan sedikit kebisingan dan mewujudkan sambungan selamat yang boleh anda percayai berbanding dengan penyisipan tekan-pas.

Terdapat banyak cara lain untuk menekan bunyi dan gangguan (lihat di sini dan di sini), tetapi anda boleh mengikuti kelas itu atau Google untuk maklumat lebih lanjut: mari kita beralih ke litar sebenar!

Langkah 4: Bagaimana Litar Berfungsi

Bagaimana Litar Berfungsi
Bagaimana Litar Berfungsi

Jangan terintimidasi dengan gambarajah litar: berikut adalah perincian kasar bagaimana semuanya berfungsi: (rujuk kembali ke langkah sebelumnya untuk beberapa penjelasan juga)

  • Di paling kiri kita mempunyai elektrod. Satu dilekatkan di kuil kiri, yang lain di kuil kanan, dan elektrod ketiga dibumikan ke dahi. Pembumian ini menstabilkan isyarat sehingga tidak banyak drift, dan juga menghilangkan gangguan 60Hz.
  • Seterusnya adalah instrumen amp. Kembali dua langkah untuk penjelasan mengenai apa yang dilakukannya untuk menghasilkan perbezaan voltan. Persamaan untuk menukar keuntungan amp terdapat pada halaman 7 lembaran data [G = 1+ (50kOhm / Rg) di mana Rg disambungkan pada pin amp 1 dan 8]. Untuk litar saya, saya menyesuaikan dengan kenaikan 500 dengan menggunakan Rg = 100Ohm.
  • Setelah amp instrumentasi mengeluarkan perbezaan voltan 500x yang diperkuat, terdapat penapis lulus rendah RC pertama, yang terdiri daripada perintang R_filter dan kapasitor C_filter. Penapis lulus rendah menghalang anti-aliasing (tidak menjadi perhatian saya kerana oleh Nyquist, saya perlu mengambil sampel sekurang-kurangnya 20Hz untuk lebar jalur 10Hz yang dijangkakan, dan sampel Arduino ADC pada 10kHz - lebih daripada cukup) dan juga mengurangkan kebisingan pada semua frekuensi yang saya tidak perlukan. Sistem RC berfungsi kerana kapasitor membenarkan frekuensi tinggi melalui dengan mudah tetapi menghalang frekuensi yang lebih rendah (impedans Z = 1 / (2 * pi * f)), dan mewujudkan pembahagi voltan dengan voltan merentasi kapasitor menghasilkan penapis yang hanya membenarkan frekuensi rendah melalui [cutoff untuk intensiti 3dB diatur oleh formula f_c = 1 / (2 * pi * RC)]. Saya menyesuaikan nilai R dan C penapis saya untuk memotong isyarat yang lebih tinggi daripada ~ 10Hz kerana isyarat biologi untuk EOG dijangka dalam julat tersebut. Pada asalnya saya memotong selepas 20Hz, tetapi setelah eksperimen 10Hz berfungsi juga, jadi saya menggunakan lebar jalur yang lebih kecil (lebar jalur yang lebih kecil lebih baik memotong apa-apa yang tidak perlu, sekiranya berlaku).
  • Dengan isyarat yang ditapis ini, saya mengukur output dengan osiloskop untuk melihat julat nilai saya dari melihat kiri dan kanan (kedua-dua hujung jarak saya). Itu membuat saya mencapai sekitar 2-4V (kerana keuntungan instrumentasi 500x untuk jarak ~ 4-8mV), ketika sasaran saya adalah 5V (rangkaian penuh Arduino ADC). Julat ini sangat berbeza (berdasarkan seberapa baik orang itu mencuci kulit terlebih dahulu, dll) jadi saya tidak mahu memperoleh banyak keuntungan dengan amp kedua saya yang tidak menukar. Saya akhirnya menyesuaikannya dengan keuntungan hanya sekitar 1.3 (menyesuaikan R1 dan R2 dalam litar kerana keuntungan amp = 1 + R2 / R1). Anda perlu merangkumi output anda sendiri dan menyesuaikan diri dari sana supaya anda tidak melampaui 5V! Jangan hanya menggunakan nilai perintang saya.
  • Isyarat ini kini dapat dimasukkan ke pin analog Arduino untuk membaca TETAPI Arduino ADC tidak menerima input negatif! Anda perlu mengalihkan isyarat ke atas sehingga jaraknya 0-5V berbanding -2.5V hingga 2.5V. Salah satu cara untuk memperbaikinya adalah dengan memasang permukaan papan litar anda ke pin 3.3V Arduino: ini menggerakkan isyarat anda naik 3.3V (lebih daripada 2.5V optimum tetapi berfungsi). Jangkauan saya benar-benar meruncing, jadi saya merancang voltan offset berubah: dengan cara itu, saya dapat memutarkan potensiometer untuk memusatkan jarak hingga 0-5V. Ini pada dasarnya pembahagi voltan berubah menggunakan rel kuasa +/- 9V sehingga saya dapat melampirkan tanah litar ke nilai apa pun dari -9 hingga 9V dan dengan itu mengalihkan isyarat saya ke atas atau ke bawah 9V.

Langkah 5: Memilih Komponen dan Nilai

Memilih Komponen dan Nilai
Memilih Komponen dan Nilai

Dengan litar yang dijelaskan, bagaimana kita memilih yang mana (elektrod, op amp) yang akan digunakan?

  • Sebagai sensor, elektrod gel pepejal mempunyai impedans input tinggi dan impedans keluaran rendah: maksudnya ini ialah arus dapat dengan mudah melewati hilir ke litar yang lain (impedans keluaran rendah) tetapi akan menghadapi masalah melewati hulu ke kuil anda (impedans input tinggi). Ini mengelakkan pengguna cedera akibat arus tinggi atau voltan di litar lain anda; sebenarnya, banyak sistem mempunyai sesuatu yang disebut perintang perlindungan pesakit untuk perlindungan tambahan, sekiranya berlaku.

    • Terdapat banyak jenis elektrod yang berbeza. Kebanyakan orang mencadangkan elektrod gel pepejal Ag / AgCl untuk digunakan dalam aplikasi EKG / EOG / dll. Dengan ini, anda perlu mencari sumber rintangan elektrod ini (pergi dua langkah ke belakang untuk nota saya mengenai impedans kulit) dan padankan dengan rintangan kebisingan (voltan bunyi dalam V / sqrt (Hz) dibahagi dengan arus kebisingan di A / sqrt (Hz) - lihat lembaran data op amp) op amp anda - begitulah cara anda memilih amp instrumentasi yang betul untuk peranti anda. Ini dipanggil pemadanan bunyi, dan penjelasan mengapa pencocokan rintangan sumber Rs dengan rintangan kebisingan Rn boleh didapati dalam talian seperti di sini. Untuk INA111 saya yang saya pilih, Rn dapat dikira menggunakan voltan dan arus kebisingan lembaran data (tangkapan skrin di atas).

      • Terdapat banyak artikel yang menilai prestasi elektrod, dan tidak ada satu elektrod yang terbaik untuk semua tujuan: contohnya, cuba di sini. Impedansi juga berubah untuk lebar jalur yang berbeza seperti yang tercermin dalam lembaran data op amp (beberapa lembaran data akan mempunyai lekuk atau tabel pada frekuensi yang berbeza). Lakukan kajian anda tetapi ingatlah bahawa dompet anda perlu diingat. Senang mengetahui elektrod / op amp mana yang terbaik, tetapi tidak ada gunanya jika anda tidak mampu. Anda memerlukan ~ 50 elektrod sekurang-kurangnya untuk ujian, bukan hanya 3 untuk satu kali penggunaan.

        • Untuk pemadanan bunyi yang optimum, bukan sahaja Rn ~ = Rs: anda juga mahu voltan kebisingan * arus kebisingan (Pn) serendah mungkin. Ini dianggap lebih penting daripada membuat Rn ~ = Rs kerana anda dapat menyesuaikan Rs dan Rn dengan menggunakan transformer jika perlu.

          Peringatan dengan transformer (betulkan saya jika salah): ia mungkin agak besar dan dengan itu tidak optimum untuk peranti yang perlu kecil. Mereka juga membina haba sehingga penyerap haba atau pengudaraan yang sangat baik diperlukan

        • Kebisingan hanya sesuai dengan amp awal pertama anda; amp kedua tidak banyak mempengaruhi, jadi op amp apa pun akan berlaku.

Langkah 6: Membina Litar

Membina Litar
Membina Litar
Membina Litar
Membina Litar
Membina Litar
Membina Litar

Gunakan rajah fritzing di atas untuk membina litar (salinan kedua menggariskan apa yang dirujuk oleh setiap bahagian dalam rajah litar dari langkah sebelumnya). Sekiranya anda memerlukan bantuan untuk mengenal pasti LED dalam rajah, gunakan kalkulator kod warna perintang ini, tetapi Rg amp instrumen adalah 100Ohm, R_filter adalah 1.5MOhm, C_filter adalah 0.1uF, R1 dari amp bukan pembalik adalah 10kOhm, R2 adalah 33kOhm, dan perintang untuk potensiometer adalah 1kOhm (potensiometer berbeza dari 0 hingga 20kOhm). Ingatlah untuk menukar nilai perintang anda jika diperlukan untuk menyesuaikan kenaikan!

Edit: terdapat ralat pada bahagian tanah yang diimbangi. Padamkan wayar hitam kiri. Perintang harus dihubungkan dengan wayar merah ke rel kuasa seperti yang ditunjukkan tetapi juga ke pin kedua, bukan pertama, potensiometer. Pin pertama potensiometer harus disambungkan ke pin 5V Arduino. Kawat jingga yang merupakan tanah offset harus disambungkan ke pin kedua, bukan yang pertama.

Saya telah banyak membincangkan dasar mengimbangi. Dalam rajah anda dapat melihat bahawa tanah Arduino ditunjukkan sebagai bersambung dengan tanah papan roti. Itu dalam senario bahawa anda tidak perlu mengubah landasan anda. Sekiranya isyarat anda berada di luar jangkauan dan anda perlu mengalihkan tanah, pertama-tama cuba sambungkan tanah Arduino ke pin 3.3V Arduino dan lihat isyarat anda. Jika tidak, cuba pasangkan wayar oren di set potensiometer (tanah offset) ke pin GND Arduino.

CATATAN KESELAMATAN: JANGAN simpan bateri semasa menyolder, dan TIDAK TIDAK meletakkan atau memateri bateri ke belakang. Litar anda akan mula merokok, kapasitor akan meletup, dan papan roti mungkin juga rosak. Sebagai peraturan, hanya gunakan bateri apabila anda ingin menggunakan litar; jika tidak, lepaskan (menambah suis flip untuk melepaskan bateri dengan mudah juga merupakan idea yang baik).

Perhatikan bahawa anda harus membina bahagian litar demi satu (periksa setiap tahap!) Dan di papan roti sebelum menyolder ke papan pelindung. Tahap pertama yang perlu diperiksa adalah amp instrumentasi: pasang semua rel (solder pada pemegang bateri), Rg, dll dan gunakan osiloskop pada pin output. Sebagai permulaan, gunakan penjana fungsi dengan gelombang sinus 1Hz dengan amplitud 5mV (atau terendah yang akan dijana oleh penjana anda). Ini hanya untuk memeriksa bahawa amp instrumentasi berfungsi dengan baik, dan Rg anda memberikan keuntungan sasaran anda.

Seterusnya, periksa penapis hantaran rendah anda. Tambahkan bahagian litar itu dan periksa bentuk gelombang anda: ia mestilah kelihatan sama tetapi kurang bising (bergerigi - lihat dua gambar terakhir di atas). Mari kaji output akhir anda dengan osiloskop dengan elektrod anda dan bukannya penjana fungsi sekarang …

Langkah 7: Menguji Litar Dengan Manusia

Litar Menguji Dengan Manusia
Litar Menguji Dengan Manusia
Litar Menguji Dengan Manusia
Litar Menguji Dengan Manusia
Litar Menguji Dengan Manusia
Litar Menguji Dengan Manusia

Sekali lagi, letakkan elektrod di pelipis kiri dan kanan anda, dan pasangkan wayar tanah ke elektrod di dahi anda. Hanya selepas itu anda perlu menambahkan bateri - jika berlaku kesemutan, lepaskan SEGERA dan periksa semula sambungan !!! Sekarang periksa julat nilai anda apabila anda melihat kiri vs kanan dan sesuaikan R1 / R2 amp bukan pembalik, seperti yang dijelaskan dua langkah lalu - ingat bahawa sasarannya adalah julat 5V! Lihat gambar di atas untuk mendapatkan nota mengenai perkara yang perlu diperhatikan.

Apabila anda berpuas hati dengan semua nilai perintang, pasangkan semuanya ke protoboard. Pematerian tidak semestinya diperlukan, tetapi ia memberikan lebih kestabilan pada sendi pas tekan mudah dan menghilangkan ketidakpastian litar tidak berfungsi hanya kerana anda tidak memasukkannya ke papan roti cukup keras.

Langkah 8: Kod Arduino

Semua kod dilampirkan di bahagian bawah langkah ini!

Sekarang kerana anda mempunyai julat 5V, anda perlu memastikan ia berada dalam lingkungan 0-5V dan bukan -1V hingga 4V, dll. Sama ada pasangkan tanah ke pin 3.3V Arduino atau pasangkan voltan tanah offset (wayar oren di atas) ke landasan kereta api dan kemudian sambungkan wayar dari landasan ke pin GND Arduino (ini untuk mengalihkan isyarat ke atas atau ke bawah sehingga anda berada dalam julat 0-5V). Anda harus bermain-main: jangan lupa untuk melengkapkan output anda apabila tidak pasti!

Sekarang untuk penentukuran: anda mahu cahaya berubah warna untuk kedudukan mata yang berbeza (melihat ke kiri berbanding tidak ke kiri..). Untuk itu, anda memerlukan nilai dan julat: jalankan EOG-kalibrasi-nombor.ino ke Arduino dengan semuanya dihubungkan dengan betul (selesaikan sambungan ke Arduino dan neopixel mengikut gambar rajah saya). Tidak terlalu diperlukan, tetapi juga menjalankan kod bioe.py yang saya ada - ini akan mengeluarkan fail teks ke desktop anda supaya anda dapat merakam semua nilai ketika anda melihat ke kiri atau kanan (kod python diadaptasi dari contoh ini). Cara saya melakukan ini adalah melihat kiri 8 denyut, kemudian kanan, kemudian naik, kemudian turun dan ulangi untuk rata-rata kemudian (lihat output_2.pdf untuk satu log yang saya simpan). Tekan ctrl + C untuk memaksa berhenti apabila anda berpuas hati. Dengan menggunakan nilai-nilai tersebut, anda kemudian dapat menyesuaikan julat animasi dalam kod BioE101_EOG-neopixel.ino saya. Bagi saya, saya mempunyai animasi pelangi ketika saya melihat lurus ke depan, biru untuk kiri paling kiri, hijau untuk sedikit kiri, ungu untuk sedikit kanan, dan merah di sebelah kanan.

Langkah 9: Langkah Masa Depan

Voila; sesuatu yang boleh anda kendalikan dengan mata anda sahaja. Terdapat banyak perkara yang perlu dioptimumkan sebelum dapat sampai ke hospital, tetapi itu untuk hari lain: konsep asasnya paling mudah difahami sekarang. Satu perkara yang saya ingin kembali dan mengubah adalah menyesuaikan keuntungan saya menjadi 500 untuk alat bantu: melihat ke belakang, itu mungkin terlalu banyak kerana isyarat saya selepas itu sudah 2-4V dan saya mempunyai masa yang sukar untuk menggunakan bukan pembalik amp untuk menyesuaikan julat saya dengan sempurna …

Sukar untuk mendapatkan konsistensi kerana isyarat berubah JAUH untuk keadaan yang berbeza:

  • orang yang berbeza
  • keadaan pencahayaan
  • penyediaan kulit (gel, mencuci, dll)

tetapi walaupun begitu, saya cukup gembira dengan bukti prestasi video terakhir saya (diambil pada jam 3 pagi kerana ketika itulah semuanya ajaib mula berfungsi).

Saya tahu bahawa banyak tutorial ini nampaknya membingungkan (ya, keluk pembelajaran juga sukar bagi saya) jadi jangan ragu untuk mengemukakan soalan di bawah ini dan saya akan berusaha sedaya upaya untuk menjawabnya. Selamat mencuba!

Cabaran yang tidak dapat disentuh
Cabaran yang tidak dapat disentuh
Cabaran yang tidak dapat disentuh
Cabaran yang tidak dapat disentuh

Naib Johan dalam Cabaran yang tidak dapat disentuh

Disyorkan: