Daftar Isi:
- Langkah 1: Bahan
- Langkah 2: Latar Belakang Fisiologis dan Kebutuhan akan Sirkuit
- Langkah 3: Pemrosesan Sinyal: Mengapa dan Bagaimana?
- Langkah 4: Bagaimana Sirkuit Bekerja
- Langkah 5: Memilih Komponen dan Nilai
- Langkah 6: Membangun Sirkuit
- Langkah 7: Sirkuit Pengujian Dengan Manusia
- Langkah 8: Kode Arduino
- Langkah 9: Langkah Masa Depan
Video: Mengontrol Lampu Dengan Mata Anda: 9 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:54
Semester ini di perguruan tinggi, saya mengambil kelas yang disebut Instrumentasi dalam Biomedis di mana saya belajar dasar-dasar pemrosesan sinyal untuk aplikasi medis. Untuk tugas akhir kelas, tim saya mengerjakan teknologi EOG (electrooculography). Pada dasarnya, elektroda yang dipasang pada pelipis seseorang mengirimkan perbedaan tegangan (berdasarkan dipol korneo-retina) ke sirkuit yang dirancang untuk menyaring dan memperkuat sinyal. Sinyal diumpankan ke ADC (konverter analog-ke-digital - dalam kasus saya, ADC Arduino Uno) dan digunakan untuk mengubah warna permata neopiksel.
Tutorial ini adalah cara bagi saya untuk merekam apa yang telah saya pelajari, dan juga berbagi dengan pembaca biasa bagaimana sinyal diisolasi dari tubuh manusia (jadi berhati-hatilah: ini penuh dengan detail ekstra!). Sirkuit ini sebenarnya dapat digunakan, dengan beberapa perubahan kecil, untuk impuls listrik jantung motorik sebagai bentuk gelombang EKG, dan banyak lagi! Meskipun jelas tidak secanggih dan sesempurna mesin yang Anda temukan di rumah sakit, lampu yang dikontrol posisi mata ini sangat bagus untuk pemahaman awal dan pandangan sekilas.
Catatan: Saya bukan ahli dalam pemrosesan sinyal, jadi jika ada kesalahan atau jika Anda memiliki saran untuk perbaikan, beri tahu saya! Saya masih harus banyak belajar sehingga komentar sangat dihargai. Juga, banyak makalah yang saya rujuk dalam tautan di seluruh tutorial ini memerlukan akses akademis yang saya miliki atas izin universitas saya; mohon maaf sebelumnya bagi yang tidak bisa mengakses.
Langkah 1: Bahan
- papan prototipe
- resistor (100, 1k, 10k, 33k, 1M + 0,5M)
- kapasitor (0,1uF)
- instrumentasi amp (INA111 dalam kasus saya, tetapi ada pasangan yang seharusnya bekerja dengan baik)
- op amp (apa saja - kebetulan saya punya LM324N)
- neopixel (semua berfungsi, tetapi saya menggunakan permata)
- Baterai 9V x2
- Header baterai 9V x2
- elektroda gel padat (pemilihan elektroda dibahas pada langkah 5)
- potensiometer
- kawat terisolasi
- penari telanjang kawat
- besi solder + solder
- klip buaya (dengan kabel terpasang - solder beberapa jika perlu)
- lem panas (untuk menstabilkan kabel yang akan ditekuk maju mundur)
- Arduino (cukup banyak papan yang berfungsi, tetapi saya menggunakan Arduino Uno)
SANGAT MEREKOMENDASIKAN: osiloskop, multimeter, dan generator fungsi. Selidiki output Anda daripada hanya mengandalkan nilai resistor saya!
Langkah 2: Latar Belakang Fisiologis dan Kebutuhan akan Sirkuit
Penafian cepat: Saya sama sekali bukan ahli medis di bidang ini, tetapi saya menyusun dan menyederhanakan apa yang telah saya pelajari di kelas/dari Googling di bawah, dengan tautan untuk bacaan lebih lanjut jika Anda mau. Juga, tautan ini sejauh ini merupakan ikhtisar terbaik dari subjek yang saya temukan - termasuk teknik alternatif.
EOG (electro-oculography) bekerja pada dipol korneo-retina. Kornea (bagian depan mata) sedikit bermuatan positif dan retina (bagian belakang mata) sedikit bermuatan negatif. Saat Anda menerapkan elektroda pada pelipis dan menghubungkan sirkuit Anda ke dahi Anda (membantu menstabilkan pembacaan Anda dan menghilangkan beberapa gangguan 60Hz), Anda dapat mengukur sekitar ~1-10mV perbedaan tegangan untuk gerakan mata horizontal (lihat gambar di atas). Untuk gerakan mata vertikal, letakkan elektroda di atas dan di bawah mata Anda. Lihat artikel ini untuk bacaan yang baik tentang bagaimana tubuh berinteraksi dengan listrik -- info bagus tentang impedansi kulit, dll. EOG biasanya digunakan untuk mendiagnosis penyakit mata seperti katarak, kelainan refraksi, atau degenerasi makula. Ada juga aplikasi dalam robotika yang dikendalikan mata di mana tugas-tugas sederhana dapat dilakukan dengan jentikan.. mata.
Untuk membaca sinyal ini, yaitu menghitung perbedaan tegangan antara elektroda, kami menggabungkan chip penting yang disebut penguat instrumentasi ke dalam rangkaian kami. Amplifier instrumentasi ini terdiri dari pengikut tegangan, amp non-pembalik, dan amp diferensial. Jika Anda tidak tahu banyak tentang op amp, silakan baca ini untuk kursus kilat - pada dasarnya, mereka mengambil tegangan input, menskalakannya, dan mengeluarkan tegangan yang dihasilkan menggunakan rel dayanya. Integrasi semua resistor di antara setiap tahap membantu dengan kesalahan toleransi: biasanya resistor memiliki toleransi 5-10% dalam nilai, dan rangkaian reguler (tidak sepenuhnya terintegrasi dalam amp instrumentasi) akan sangat bergantung pada akurasi untuk CMMR yang baik (lihat langkah berikutnya). Pengikut tegangan adalah untuk impedansi input tinggi (dibahas dalam paragraf di atas - utama untuk mencegah bahaya pada pasien), amp non-pembalik adalah untuk memastikan penguatan sinyal yang tinggi (lebih lanjut tentang amplifikasi pada langkah berikutnya) dan amp diferensial mengambil perbedaan antara input (mengurangi nilai dari elektroda). Ini dirancang untuk menghancurkan sebanyak mungkin noise/interferensi mode umum (untuk lebih lanjut tentang pemrosesan sinyal, lihat langkah berikutnya) untuk sinyal biomedis, yang penuh dengan artefak asing.
Elektroda menghadapi beberapa impedansi kulit karena jaringan dan lemak kulit Anda menghalangi pengukuran langsung voltase, yang menyebabkan perlunya penguatan dan penyaringan sinyal. Di sini, di sini, dan di sini adalah beberapa artikel di mana para peneliti telah mencoba untuk mengukur impedansi ini. Kuantitas fisiologis ini umumnya dimodelkan sebagai resistor 51kOhm secara paralel dengan kapasitor 47nF, meskipun ada banyak variasi dan kombinasi. Kulit di lokasi yang berbeda dapat memiliki impedansi yang berbeda, terutama jika Anda mempertimbangkan perbedaan ketebalan dan jumlah otot yang berdekatan. Impedansi juga berubah dengan seberapa baik kulit Anda dipersiapkan untuk elektroda: pembersihan menyeluruh dengan sabun dan air umumnya disarankan untuk memastikan adhesi dan konsistensi yang sangat baik, dan bahkan ada gel khusus untuk elektroda jika Anda benar-benar menginginkan kesempurnaan. Satu catatan penting adalah bahwa impedansi berubah dengan frekuensi (karakteristik kapasitor) sehingga Anda perlu mengetahui bandwidth sinyal Anda untuk memprediksi impedansi. Dan ya, memperkirakan impedansi penting untuk pencocokan kebisingan -- lihat langkah selanjutnya untuk info lebih lanjut tentang ini.
Langkah 3: Pemrosesan Sinyal: Mengapa dan Bagaimana?
Sekarang, mengapa Anda tidak bisa menggunakan perbedaan tegangan 1-10mV sebagai output langsung untuk mengontrol LED? Nah, ada banyak alasan untuk menyaring dan memperkuat sinyal:
-
Banyak ADC (konverter analog-ke-digital -- mengambil input analog Anda dan mendigitalkannya untuk membaca dan menyimpan data di komputer) tidak dapat mendeteksi perubahan kecil seperti itu. Misalnya, ADC Arduino Uno secara khusus adalah ADC 10-bit dengan output 5V, yang berarti memetakan tegangan input 0-5V (nilai di luar rentang akan "rel", artinya nilai yang lebih rendah akan dibaca sebagai 0V dan nilai yang lebih tinggi akan dibaca sebagai 5V) ke nilai integer antara 0 dan 1023. 10mV sangat kecil dalam rentang 5V itu, jadi jika Anda dapat memperkuat sinyal Anda ke rentang 5V penuh, perubahan kecil akan lebih mudah dideteksi karena akan dicerminkan oleh perubahan kuantitatif yang lebih besar (5mV berubah menjadi 10mV sebagai lawan dari 2V berubah menjadi 4V). Anggap saja seperti gambar kecil di komputer Anda: detailnya mungkin ditentukan dengan sempurna oleh piksel Anda, tetapi Anda tidak akan dapat membedakan bentuk kecuali jika Anda memperluas gambar.
Perhatikan bahwa memiliki lebih banyak bit untuk ADC Anda lebih baik karena Anda dapat meminimalkan kebisingan kuantisasi dari mengubah sinyal kontinu menjadi nilai diskrit dan digital. Untuk menghitung berapa banyak bit yang Anda butuhkan untuk ~96% retensi input SNR, gunakan N = SNR(dalam dB)/6 sebagai aturan praktis. Anda juga ingin mengingat dompet Anda: jika Anda menginginkan lebih banyak bit, Anda harus bersedia mengeluarkan lebih banyak uang
-
Kebisingan dan interferensi (kebisingan = artefak acak yang membuat sinyal Anda bergerigi alih-alih halus vs interferensi = non-acak, artefak sinusoidal dari sinyal yang berdekatan dari gelombang radio, dll) mengganggu semua sinyal yang diukur dari kehidupan sehari-hari.
- Yang paling terkenal adalah interferensi 60Hz (50Hz jika Anda berada di Eropa dan tidak ada di Rusia karena mereka menggunakan DC sebagai lawan AC untuk daya stopkontak…), yang disebut frekuensi utilitas dari medan elektromagnetik AC dari stopkontak. Saluran listrik membawa tegangan tinggi AC dari generator listrik ke daerah perumahan, di mana transformator menurunkan tegangan ke standar ~ 120V di outlet listrik Amerika. Tegangan bolak-balik menyebabkan genangan konstan gangguan 60Hz di sekitar kita, yang mengganggu semua jenis sinyal dan perlu disaring.
-
Interferensi 60Hz biasa disebut interferensi mode umum karena muncul di kedua input Anda (+ dan -) ke op amp. Sekarang, op amp memiliki sesuatu yang disebut rasio penolakan mode umum (CMRR) untuk mengurangi artefak mode umum, tetapi (koreksi saya jika saya salah!). Untuk menghilangkan 60Hz, filter bandstop dapat digunakan untuk menghapusnya secara selektif dari spektrum frekuensi, tetapi Anda juga berisiko menghapus data aktual. Kasus terbaik, Anda dapat menggunakan filter lolos rendah untuk hanya menjaga rentang frekuensi lebih rendah dari 60Hz, jadi semua yang memiliki frekuensi lebih tinggi disaring. Itulah yang saya lakukan untuk EOG: bandwidth yang diharapkan dari sinyal saya adalah 0-10Hz (mengabaikan gerakan mata yang cepat -- tidak ingin menghadapinya dalam versi sederhana kami) jadi saya menghapus frekuensi yang lebih besar dari 10Hz dengan low pass filter.
- 60Hz dapat merusak sinyal kami melalui kopling kapasitif dan kopling induktif. Kopling kapasitif (baca kapasitor di sini) terjadi ketika udara bertindak sebagai dielektrik untuk sinyal AC yang akan dilakukan antara sirkuit yang berdekatan. Kopling induktif berasal dari hukum Faraday saat Anda menjalankan arus dalam medan magnet. Ada banyak trik untuk mengatasi coupling: Anda bisa menggunakan ground shield sebagai semacam sangkar Faraday, misalnya. Memutar / mengepang kabel bila memungkinkan mengurangi area yang tersedia untuk gangguan kopling induktif. Memperpendek kabel dan mengurangi ukuran keseluruhan sirkuit Anda juga memiliki efek yang sama untuk alasan yang sama. Mengandalkan daya baterai untuk rel op amp sebagai lawan mencolokkan ke stopkontak juga membantu karena baterai menyediakan sumber DC tanpa osilasi sinusoidal. Baca lebih banyak di sini!
-
Filter lolos rendah juga menghilangkan banyak noise, karena noise acak diwakili oleh frekuensi tinggi. Banyak noise adalah white noise, artinya noise hadir untuk semua frekuensi, jadi membatasi bandwidth sinyal Anda sebanyak mungkin membantu membatasi seberapa banyak noise yang ada dalam sinyal Anda.
Beberapa filter lolos rendah disebut filter anti-aliasing karena mencegah aliasing: ketika sinusoid berada di bawah sampel, mereka dapat dideteksi sebagai frekuensi yang berbeda dari yang sebenarnya. Anda harus selalu ingat untuk mengikuti teorema pengambilan sampel Nyquist (sinyal sampel pada frekuensi 2x lebih tinggi: memerlukan frekuensi pengambilan sampel >2Hz untuk gelombang sinus 1Hz yang diharapkan, dll). Dalam kasus EOG ini, saya tidak perlu khawatir tentang Nyquist karena sinyal saya diharapkan berada di kisaran 10Hz, dan sampel Arduino ADC saya pada 10kHz -- lebih dari cukup cepat untuk menangkap semuanya
- Ada juga sedikit trik untuk menghilangkan kebisingan. Salah satunya adalah menggunakan ground bintang sehingga semua bagian sirkuit Anda memiliki referensi yang sama persis. Jika tidak, bagian yang disebut "tanah" mungkin berbeda dari bagian lain karena sedikit hambatan pada kabel, yang menambah ketidakkonsistenan. Menyolder ke protoboard alih-alih menempel dengan papan tempat memotong roti juga mengurangi kebisingan dan menciptakan koneksi aman yang dapat Anda percayai sebagai lawan dari penyisipan press-fit.
Ada banyak cara lain untuk menekan kebisingan dan gangguan (lihat di sini dan di sini), tetapi Anda dapat mengambil kelas tentang itu atau Google untuk info lebih lanjut: mari beralih ke sirkuit yang sebenarnya!
Langkah 4: Bagaimana Sirkuit Bekerja
Jangan terintimidasi oleh diagram sirkuit: inilah rincian kasar tentang cara kerja semuanya: (lihat kembali langkah sebelumnya untuk beberapa penjelasan juga)
- Di paling kiri kita memiliki elektroda. Satu dipasang di pelipis kiri, yang lain di pelipis kanan, dan elektroda ketiga dibumikan ke dahi. Pembumian ini menstabilkan sinyal sehingga lebih sedikit penyimpangan, dan juga menghilangkan beberapa gangguan 60Hz.
- Berikutnya adalah amplifier instrumentasi. Kembali dua langkah untuk penjelasan tentang apa yang dilakukannya untuk menghasilkan perbedaan tegangan. Persamaan untuk mengubah penguatan amp ada di halaman 7 lembar data [G = 1+(50kOhm/Rg) di mana Rg terhubung pada pin amp 1 dan 8]. Untuk rangkaian saya, saya menyesuaikan gain 500 dengan menggunakan Rg = 100Ohm.
- Setelah instrumentasi amp mengeluarkan perbedaan tegangan yang diperkuat 500x, ada filter low pass RC orde pertama, yang terdiri dari resistor R_filter dan kapasitor C_filter. Filter lolos rendah mencegah anti-aliasing (tidak ada masalah bagi saya karena oleh Nyquist, saya perlu mengambil sampel setidaknya 20Hz untuk bandwidth 10Hz yang diharapkan, dan sampel Arduino ADC pada 10kHz - lebih dari cukup) dan juga memotong kebisingan di semua frekuensi yang tidak saya butuhkan. Sistem RC bekerja karena kapasitor memungkinkan frekuensi tinggi melalui dengan mudah tetapi menghalangi frekuensi yang lebih rendah (impedansi Z = 1/(2*pi*f)), dan membuat pembagi tegangan dengan tegangan melintasi kapasitor menghasilkan filter yang hanya memungkinkan frekuensi yang lebih rendah melalui [cutoff untuk intensitas 3dB diatur oleh rumus f_c = 1/(2*pi*RC)]. Saya menyesuaikan nilai R dan C filter saya untuk memotong sinyal yang lebih tinggi dari ~10Hz karena sinyal biologis untuk EOG diharapkan dalam kisaran itu. Awalnya saya memotong setelah 20Hz, tetapi setelah eksperimen 10Hz bekerja dengan baik, jadi saya menggunakan bandwidth yang lebih kecil (bandwidth yang lebih kecil lebih baik untuk memotong apa pun yang tidak perlu, untuk berjaga-jaga).
- Dengan sinyal yang difilter ini, saya mengukur output dengan osiloskop untuk melihat rentang nilai saya dari melihat ke kiri dan ke kanan (dua ekstrem jangkauan saya). Itu membuat saya sekitar 2-4V (karena penguatan amp instrumentasi adalah 500x untuk kisaran ~ 4-8mV), ketika target saya adalah 5V (jangkauan penuh Arduino ADC). Rentang ini sangat bervariasi (berdasarkan seberapa baik orang tersebut mencuci kulit sebelumnya, dll) jadi saya tidak ingin mendapatkan banyak keuntungan dengan ampli non-pembalik kedua saya. Saya akhirnya menyesuaikan untuk mendapatkan keuntungan hanya sekitar 1,3 (menyesuaikan R1 dan R2 di sirkuit karena keuntungan dari amp = 1+R2/R1). Anda perlu mengatur output Anda sendiri dan menyesuaikan dari sana sehingga Anda tidak melebihi 5V! Jangan hanya menggunakan nilai resistor saya.
- Sinyal ini sekarang dapat dimasukkan ke pin analog Arduino untuk membaca TETAPI ADC Arduino tidak menerima input negatif! Anda harus menggeser sinyal ke atas sehingga kisarannya adalah 0-5V, bukan -2.5V hingga 2.5V. Salah satu cara untuk memperbaikinya adalah dengan memasang ground papan sirkuit Anda ke pin 3.3V Arduino: ini menggeser sinyal Anda hingga 3.3V (lebih dari 2.5V optimal tetapi berfungsi). Jangkauan saya benar-benar miring sehingga saya merancang tegangan offset variabel: dengan cara itu, saya dapat memutar potensiometer untuk memusatkan kisaran ke 0-5V. Ini pada dasarnya adalah pembagi tegangan variabel menggunakan rel daya +/-9V sehingga saya dapat memasang ground sirkuit ke nilai apa pun dari -9 hingga 9V dan dengan demikian menggeser sinyal saya ke atas atau ke bawah 9V.
Langkah 5: Memilih Komponen dan Nilai
Dengan rangkaian yang dijelaskan, bagaimana kita memilih yang mana (elektroda, op amp) yang akan digunakan?
-
Sebagai sensor, elektroda gel padat memiliki impedansi input tinggi dan impedansi output rendah: yang pada dasarnya berarti bahwa arus dapat dengan mudah melewati hilir ke seluruh rangkaian (impedansi output rendah) tetapi akan mengganggu aliran hulu kembali ke pelipis Anda (impedansi masukan tinggi). Ini mencegah pengguna dari cedera oleh arus atau tegangan tinggi di sirkuit Anda yang lain; pada kenyataannya, banyak sistem memiliki sesuatu yang disebut resistor perlindungan pasien untuk perlindungan tambahan, untuk berjaga-jaga.
-
Ada banyak jenis elektroda yang berbeda. Kebanyakan orang menyarankan elektroda gel padat Ag/AgCl untuk digunakan dalam aplikasi EKG/EOG/dll. Dengan mengingat hal ini, Anda perlu mencari resistansi sumber elektroda ini (mundur dua langkah untuk catatan saya tentang impedansi kulit) dan mencocokkannya dengan resistansi noise (tegangan noise dalam V/sqrt(Hz) dibagi dengan arus noise di A/sqrt(Hz) -- lihat lembar data op amp) op amp Anda -- begitulah cara Anda memilih amp instrumentasi yang tepat untuk perangkat Anda. Ini disebut pencocokan kebisingan, dan penjelasan mengapa resistansi sumber yang cocok Rs dengan resistansi kebisingan Rn berfungsi dapat ditemukan online seperti di sini. Untuk INA111 saya yang saya pilih, Rn dapat dihitung menggunakan tegangan noise dan arus noise dari lembar data (tangkapan layar di atas).
-
Ada BANYAK artikel yang mengevaluasi kinerja elektroda, dan tidak ada satu elektroda yang terbaik untuk semua tujuan: coba di sini, misalnya. Impedansi juga berubah untuk bandwidth yang berbeda seperti yang tercermin dalam lembar data op amp (beberapa lembar data akan memiliki kurva atau tabel pada frekuensi yang berbeda). Lakukan riset Anda tetapi ingatlah untuk mengingat dompet Anda. Sangat menyenangkan mengetahui elektroda/op amp mana yang terbaik, tetapi tidak ada gunanya jika Anda tidak mampu membelinya. Anda memerlukan ~50 elektroda setidaknya untuk pengujian, bukan hanya 3 untuk sekali pakai.
-
Untuk pencocokan derau yang optimal, Rn ~= Rs tidak hanya harus: Anda juga ingin tegangan derau * arus derau (Pn) serendah mungkin. Ini dianggap lebih penting daripada membuat Rn ~= Rs karena Anda dapat menyesuaikan Rs dan Rn dengan menggunakan transformator jika perlu.
Peringatan dengan transformer (koreksi saya jika salah): mereka bisa agak besar dan karenanya tidak optimal untuk perangkat yang harus kecil. Mereka juga membangun panas sehingga heat sink atau ventilasi yang baik diperlukan
- Kebisingan hanya cocok dengan amp awal pertama Anda; ampli kedua tidak terlalu berpengaruh, jadi op amp apa pun akan berpengaruh.
-
-
-
Langkah 6: Membangun Sirkuit
Gunakan diagram fritzing di atas untuk membangun sirkuit (salinan kedua menguraikan apa yang dirujuk setiap bagian dalam diagram sirkuit dari langkah sebelumnya). Jika Anda memerlukan bantuan untuk mengidentifikasi LED dalam diagram, gunakan kalkulator kode warna resistor ini, tetapi Rg dari ampli instrumentasi adalah 100Ohm, R_filter adalah 1,5MOhm, C_filter adalah 0,1uF, R1 dari ampli non-pembalik adalah 10kOhm, R2 adalah 33kOhm, dan resistor untuk potensiometer adalah 1kOhm (potensiometer bervariasi dari 0 hingga 20kOhm). Ingatlah untuk mengubah nilai resistor Anda sesuai kebutuhan untuk menyesuaikan keuntungan!
Sunting: ada kesalahan di bagian ground offset. Hapus kabel hitam kiri. Resistor harus dihubungkan dengan kabel merah ke rel daya seperti yang ditunjukkan tetapi juga ke pin kedua, bukan yang pertama, dari potensiometer. Pin pertama potensiometer harus terhubung ke pin 5V Arduino. Kabel oranye yang merupakan ground offset harus dihubungkan ke pin kedua, bukan yang pertama.
Saya telah banyak membahas tanah offset. Dalam diagram Anda dapat melihat bahwa tanah Arduino ditampilkan sebagai terhubung ke tanah papan tempat memotong roti. Itu dalam skenario bahwa Anda tidak perlu mengubah posisi Anda. Jika sinyal Anda di luar jangkauan dan Anda perlu menggeser ground, pertama-tama coba sambungkan ground Arduino ke pin 3.3V Arduino dan lihat sinyal Anda. Jika tidak, coba hubungkan kabel oranye di pengaturan potensiometer (ground offset) ke pin GND Arduino.
CATATAN KESELAMATAN: JANGAN menyimpan baterai saat menyolder, dan JANGAN TIDAK memasang atau menyolder baterai secara terbalik. Sirkuit Anda akan mulai berasap, kapasitor akan meledak, dan papan tempat memotong roti mungkin juga rusak. Sebagai aturan praktis, hanya gunakan baterai saat Anda ingin menggunakan sirkuit; jika tidak, lepaskan (menambahkan sakelar flip untuk melepaskan baterai dengan mudah juga merupakan ide yang bagus).
Perhatikan bahwa Anda harus membuat sirkuit sepotong demi sepotong (periksa setiap tahap!) dan pada papan tempat memotong roti sebelum menyolder ke papan proto. Tahap pertama yang harus diperiksa adalah instrumentasi amp: pasang semua rel (solder pada dudukan baterai), Rg, dll dan gunakan osiloskop pada pin output. Sebagai permulaan, gunakan generator fungsi dengan gelombang sinus 1Hz dengan amplitudo 5mV (atau generator Anda yang paling rendah). Ini hanya untuk memeriksa bahwa ampli instrumentasi berfungsi dengan baik, dan Rg Anda memberikan penguatan target Anda.
Selanjutnya, periksa filter lolos rendah Anda. Tambahkan bagian sirkuit itu dan periksa bentuk gelombang Anda: seharusnya terlihat persis sama tetapi lebih sedikit noise (bergerigi - lihat dua gambar terakhir di atas). Mari kita periksa hasil akhir Anda dengan osiloskop dengan elektroda Anda alih-alih generator fungsi sekarang…
Langkah 7: Sirkuit Pengujian Dengan Manusia
Sekali lagi, letakkan elektroda di pelipis kiri dan kanan Anda, dan pasang kabel ground ke elektroda di dahi Anda. Hanya setelah itu Anda harus menambahkan baterai - jika ada kesemutan, lepaskan SEGERA dan periksa kembali sambungannya!!! Sekarang periksa rentang nilai Anda saat Anda melihat ke kiri vs. kanan dan sesuaikan R1/R2 dari amp non-pembalik, seperti yang dijelaskan dua langkah lalu -- ingat bahwa targetnya adalah rentang 5V! Lihat gambar di atas untuk catatan tentang apa yang harus diwaspadai.
Saat Anda puas dengan semua nilai resistor, solder semuanya ke protoboard. Penyolderan tidak sepenuhnya diperlukan, tetapi ini memberikan stabilitas lebih pada sambungan tekan sederhana dan menghilangkan ketidakpastian sirkuit yang tidak berfungsi hanya karena Anda tidak menekannya ke papan tempat memotong roti dengan cukup keras.
Langkah 8: Kode Arduino
Semua kode terlampir di bagian bawah langkah ini!
Sekarang Anda memiliki rentang 5V, Anda harus memastikannya berada dalam 0-5V, bukan -1V hingga 4V, dll. Pasang ground ke pin 3.3V Arduino atau pasang tegangan ground offset (kabel oranye di atas) ke rel tanah dan kemudian hubungkan kabel dari rel tanah ke pin GND Arduino (ini untuk menggeser sinyal ke atas atau ke bawah sehingga Anda berada dalam kisaran 0-5V). Anda harus bermain-main: jangan lupa untuk mengukur output Anda setiap kali tidak pasti!
Sekarang untuk kalibrasi: Anda ingin cahaya berubah warna untuk posisi mata yang berbeda (melihat ke kiri jauh vs. tidak ke kiri..). Untuk itu Anda memerlukan nilai dan rentang: jalankan EOG-calibration-numbers.ino ke Arduino dengan semuanya terhubung dengan benar (selesaikan koneksi ke Arduino dan neopixel sesuai dengan diagram fritzing saya). Tidak perlu, tetapi juga jalankan kode bioe.py yang saya miliki -- ini akan menampilkan file teks ke desktop Anda sehingga Anda dapat merekam semua nilai saat Anda melihat ke kiri atau ke kanan (kode python diadaptasi dari contoh ini). Bagaimana saya melakukan ini adalah melihat ke kiri selama 8 ketukan, lalu ke kanan, lalu ke atas, lalu ke bawah dan ulangi untuk rata-rata nanti (lihat output_2.pdf untuk satu log yang saya simpan). Tekan ctrl+C untuk memaksa berhenti saat Anda puas. Dengan menggunakan nilai tersebut, Anda kemudian dapat menyesuaikan rentang animasi dalam kode BioE101_EOG-neopixel.ino saya. Bagi saya, saya memiliki animasi pelangi ketika saya melihat lurus ke depan, biru untuk paling kiri, hijau untuk sedikit ke kiri, ungu untuk sedikit ke kanan, dan merah untuk paling kanan.
Langkah 9: Langkah Masa Depan
Voila; sesuatu yang dapat Anda kendalikan hanya dengan mata Anda. Ada banyak hal yang harus dioptimalkan sebelum bisa sampai ke rumah sakit, tapi itu untuk hari lain: konsep dasarnya setidaknya lebih mudah dipahami sekarang. Satu hal yang ingin saya kembalikan dan ubah adalah menyesuaikan penguatan saya menjadi 500 untuk ampli instrumentasi: melihat ke belakang, itu mungkin terlalu banyak karena sinyal saya sesudahnya sudah 2-4V dan saya mengalami kesulitan menggunakan non-pembalik amp untuk menyesuaikan jangkauan saya dengan sempurna…
Sulit untuk mendapatkan konsistensi karena sinyal berubah BANYAK untuk kondisi yang berbeda:
- orang yang berbeda
- kondisi pencahayaan
- persiapan kulit (gel, cuci, dll)
tetapi meskipun demikian, saya cukup senang dengan bukti kinerja video terakhir saya (diambil pada jam 3 pagi karena saat itulah semuanya secara ajaib mulai bekerja).
Saya tahu bahwa banyak dari tutorial ini dapat membingungkan (ya, kurva belajarnya juga sulit bagi saya) jadi silakan ajukan pertanyaan di bawah ini dan saya akan melakukan yang terbaik untuk menjawabnya. Menikmati!
Runner Up dalam Tantangan Tak Tersentuh
Direkomendasikan:
Labu Halloween Dengan Mata Animatronik Bergerak - Labu Ini Bisa Memutar Mata!: 10 Langkah (dengan Gambar)
Labu Halloween Dengan Mata Animatronik Bergerak | Labu Ini Dapat Memutar Matanya!: Dalam Instruksi ini, Anda akan belajar cara membuat labu Halloween yang menakutkan semua orang saat matanya bergerak. Sesuaikan jarak pemicu sensor ultrasonik ke nilai yang tepat (langkah 9), dan labu Anda akan membatu siapa saja yang berani mengambil cand
Buat Bug Mata-mata Anda Sendiri (Perekam Suara Arduino): 5 Langkah (dengan Gambar)
Make Your Own Spy Bug (Arduino Voice Recorder): Dalam proyek ini saya akan menunjukkan kepada Anda bagaimana saya menggabungkan Arduino Pro Mini dengan beberapa komponen pelengkap untuk membuat perekam suara yang juga dapat disalahgunakan sebagai bug mata-mata. Ini memiliki waktu berjalan sekitar 9 jam, kecil dan sangat mudah
Pelindung Mata: Pelindung Mata yang Dipicu Suara: 9 Langkah (dengan Gambar)
Pelindung Mata: Pelindung Mata yang Dipicu Suara: Pelindung Mata adalah pelindung mata yang dipicu oleh suara Desibel Tinggi yang didukung Arduino. Ini mendeteksi suara alat berat dan menurunkan kacamata pelindung mata saat peralatan sedang digunakan. Garis BesarPada langkah pertama, saya akan menjelaskan Inspirati
Cara Mengontrol Lampu/Lampu Rumah Menggunakan Arduino dan Amazon Alexa: 16 Langkah (dengan Gambar)
Cara Mengontrol Lampu/Lampu Rumah Menggunakan Arduino dan Amazon Alexa : Saya telah menjelaskan cara mengontrol lampu yang terhubung ke UNO dan dikendalikan oleh Alexa
Meretas Telinga Mata-mata dan Belajar Membalikkan Sirkuit: 4 Langkah (dengan Gambar)
Meretas Telinga Mata-mata dan Belajar Membalikkan Merekayasa Sirkuit: Instruksi ini memperkenalkan Telinga Mata-mata yang terhormat secara detail dan cara saya untuk merekayasa balik sebuah sirkuit. Mengapa perangkat ini layak mendapatkan instruksinya sendiri?:-Anda dapat membeli Telinga Mata-mata seharga satu dolar ! -Ini dapat memperkuat suara hingga 60 dB atau faktor 1000