İçindekiler:
- Adım 1: Malzemeler
- Adım 2: Fizyolojik Arka Plan ve Devre İhtiyacı
- Adım 3: Sinyal İşleme: Neden ve Nasıl?
- Adım 4: Devre Nasıl Çalışır?
- Adım 5: Bileşenleri ve Değerleri Seçme
- Adım 6: Devreyi Kurmak
- Adım 7: Devreyi Bir İnsanla Test Etme
- Adım 8: Arduino Kodu
- 9. Adım: Gelecek Adımlar
Video: Işıkları Gözlerinizle Kontrol Etme: 9 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
Üniversitede bu sömestr, Tıbbi uygulamalar için sinyal işlemenin temellerini öğrendiğim Biyotıpta Enstrümantasyon adlı bir ders aldım. Sınıfın final projesi için ekibim EOG (elektrookülografi) teknolojisi üzerinde çalıştı. Esasen, birinin şakaklarına bağlanan elektrotlar, sinyali filtrelemek ve yükseltmek için tasarlanmış bir devreye (korneo-retinal dipole dayalı olarak) bir voltaj farkı gönderir. Sinyal bir ADC'ye (analogdan dijitale dönüştürücü - benim durumumda bir Arduino Uno'nun ADC'si) beslenir ve bir neopiksel mücevherinin renklerini değiştirmek için kullanılır.
Bu eğitim benim için öğrendiklerimi kaydetmenin ve normal okuyucularla sinyallerin insan vücudundan nasıl izole edildiğini paylaşmanın bir yolu (bu yüzden dikkatli olun: fazladan ayrıntılarla dolu!). Bu devre aslında, birkaç küçük değişiklikle, kalplerin elektriksel uyarılarını EKG dalga biçimi olarak motorize etmek ve çok daha fazlası için kullanılabilir! Kesinlikle bir hastanede bulabileceğiniz makineler kadar gelişmiş ve mükemmel olmasa da, bu göz konumu kontrollü lamba, ilk anlayış ve bakış için harikadır.
Not: Sinyal işleme konusunda uzman değilim, bu nedenle herhangi bir hata varsa veya iyileştirme önerileriniz varsa lütfen bana bildirin! Hâlâ öğrenecek çok şeyim var, bu yüzden yorumlar takdir ediliyor. Ayrıca, bu eğitimdeki bağlantılarda atıfta bulunduğum makalelerin çoğu, üniversitemin izniyle akademik erişim gerektiriyor; ulaşamayanlar için şimdiden özür dilerim.
Adım 1: Malzemeler
- protokol
- dirençler (100, 1k, 10k, 33k, 1M + 0,5M)
- kapasitör (0.1uF)
- enstrümantasyon amplifikatörü (benim durumumda INA111, ancak nispeten iyi çalışması gereken bir çift var)
- op amp (herhangi bir - bir LM324N'm var)
- neopixel (herhangi bir çalışma, ancak bir mücevher kullandım)
- 9V piller x2
- 9V pil başlıkları x2
- katı jel elektrotlar (5. adımda elektrot seçimi tartışılmıştır)
- potansiyometre
- Yalıtılmış tel
- tel striptizci
- havya + lehim
- timsah klipsleri (teller takılıyken - gerekirse bazılarını lehimleyin)
- sıcak tutkal (ileri geri bükülecek telleri sabitlemek için)
- Arduino (hemen hemen her işe yarar, ancak bir Arduino Uno kullandım)
ŞİDDETLE TAVSİYE EDERİM: osiloskop, multimetre ve fonksiyon üreteci. Sadece direnç değerlerime güvenmek yerine çıktılarınızı araştırın!
Adım 2: Fizyolojik Arka Plan ve Devre İhtiyacı
Hızlı sorumluluk reddi: Bu alanda hiçbir şekilde bir tıp uzmanı değilim, ancak sınıfta/Googling'den öğrendiklerimi aşağıda derledim ve basitleştirdim, isterseniz daha fazla okumak için bağlantılarla. Ayrıca, bu bağlantı bulduğum konuya açık ara en iyi genel bakış - alternatif teknikler içeriyor.
EOG (elektro-okülografi), korneo-retinal dipol üzerinde çalışır. Kornea (gözün önü) biraz pozitif yüklü ve retina (gözün arkası) biraz negatif yüklü. Şakaklara elektrotlar uyguladığınızda ve devrenizi alnınıza toprakladığınızda (okumalarınızı stabilize etmeye ve 60Hz parazitten kurtulmaya yardımcı olur), yatay göz hareketleri için ~1-10mV voltaj farklarını ölçebilirsiniz (yukarıdaki resme bakın). Dikey göz hareketleri için elektrotları gözünüzün üstüne ve altına yerleştirin. Vücudun elektrikle nasıl etkileşime girdiğine dair iyi bir okuma için bu makaleye bakın - cilt empedansı vb. hakkında harika bilgiler. EOG'ler katarakt, kırma kusurları veya maküler dejenerasyon gibi oftalmolojik hastalıkların teşhisi için yaygın olarak kullanılır. Gözle kontrol edilen robotikte, basit görevlerin bir göz hareketiyle gerçekleştirilebildiği uygulamalar da vardır..
Bu sinyalleri okumak, yani elektrotlar arasındaki voltaj farkını hesaplamak için devremize enstrümantasyon amplifikatörü adı verilen önemli bir çip dahil ediyoruz. Bu enstrümantasyon amplifikatörü, voltaj takipçileri, ters çevirmeyen bir amplifikatör ve bir diferansiyel amplifikatörden oluşur. Op amp'ler hakkında fazla bir şey bilmiyorsanız, lütfen bunu bir hızlandırma kursu için okuyun - esasen, bir giriş voltajı alırlar, onu ölçeklendirirler ve güç raylarını kullanarak ortaya çıkan voltajı verirler. Her aşama arasında tüm dirençlerin entegrasyonu, tolerans hatalarına yardımcı olur: normalde dirençlerin değerlerde %5-10 toleransı vardır ve normal devre (enstrümantasyon amplifikatörüne tam olarak entegre değildir) iyi CMMR için doğruluğa büyük ölçüde güvenir (bir sonraki adıma bakın)). Voltaj takipçileri yüksek giriş empedansı içindir (yukarıdaki paragrafta tartışılmıştır - hastaya zarar gelmesini önlemek için büyük), ters çevirmeyen amplifikatör sinyalin yüksek kazancını sağlamak içindir (bir sonraki adımda amplifikasyon hakkında daha fazla bilgi) ve diferansiyel amplifikatör farkı alır girişler arasında (değerleri elektrotlardan çıkarır). Bunlar, gereksiz artefaktlarla dolu biyomedikal sinyaller için mümkün olduğunca çok ortak mod gürültüsünü/parazitini (sinyal işleme hakkında daha fazla bilgi için sonraki adıma bakın) ezmek üzere tasarlanmıştır.
Elektrotlar, cildinizin dokuları ve yağı, voltajların doğrudan ölçümünü engellediği ve sinyal amplifikasyonu ve filtreleme ihtiyacına yol açtığı için bir miktar cilt empedansı ile karşı karşıyadır. Burada, burada ve burada, araştırmacıların bu empedansı ölçmeye çalıştıkları bazı makaleler. Bu fizyolojik miktar, birçok varyasyon ve kombinasyon olmasına rağmen, 47nF'lik bir kapasitöre paralel olarak genellikle 51kOhm'luk bir direnç olarak modellenir. Özellikle komşu kasların farklı kalınlıklarını ve miktarlarını düşündüğünüzde, farklı yerlerdeki cilt farklı empedanslara sahip olabilir. Empedans, cildinizin elektrotlar için ne kadar iyi hazırlandığıyla da değişir: mükemmel yapışma ve tutarlılık sağlamak için genellikle sabun ve suyla kapsamlı temizlik önerilir ve gerçekten mükemmelliği istiyorsanız elektrotlar için özel jeller bile vardır. Önemli bir not, empedansın frekansla (kapasitörlerin özelliği) değişmesidir, bu nedenle empedansı tahmin etmek için sinyal bant genişliğinizi bilmeniz gerekir. Ve evet, empedans tahmini gürültü eşleştirme için önemlidir - bununla ilgili daha fazla bilgi için sonraki adıma bakın.
Adım 3: Sinyal İşleme: Neden ve Nasıl?
Şimdi, LED'leri kontrol etmek için neden 1-10mV voltaj farkını acil çıkış olarak kullanmıyorsunuz? Sinyalleri filtrelemek ve yükseltmek için birçok neden var:
-
Birçok ADC (analogdan dijitale dönüştürücüler - analog girişinizi alın ve verileri bilgisayarda okumak ve depolamak için bunları dijital hale getirin) bu kadar küçük değişiklikleri algılayamaz. Örneğin, Arduino Uno'nun ADC'si özellikle 5V çıkışlı 10 bitlik bir ADC'dir, yani 0-5V giriş voltajlarını eşler (aralık dışı değerler "ray" olacaktır, yani daha düşük değerler 0V olarak okunacaktır ve daha yüksek değerler okunacaktır. 5V olarak) 0 ile 1023 arasındaki tamsayı değerlerine. 10mV bu 5V aralığında çok küçüktür, bu nedenle sinyalinizi tam 5V aralığına yükseltebilirseniz, küçük değişiklikler daha büyük nicel değişikliklerle yansıtılacağı için daha kolay tespit edilebilir (2V'nin 4V'a değişmesinin aksine 5mV'nin 10mV'a değişmesi). Bunu bilgisayarınızdaki küçük bir resim gibi düşünün: ayrıntılar pikselleriniz tarafından mükemmel bir şekilde tanımlanmış olabilir, ancak resmi genişletmediğiniz sürece şekilleri ayırt edemezsiniz.
ADC'niz için daha fazla bite sahip olmanın daha iyi olduğunu unutmayın, çünkü sürekli sinyalinizi ayrık, sayısallaştırılmış değerlere dönüştürmekten kaynaklanan nicemleme gürültüsünü en aza indirebilirsiniz. Giriş SNR'sinin ~%96 tutulması için kaç bit'e ihtiyacınız olduğunu hesaplamak için, genel bir kural olarak N = SNR(dB olarak)/6'yı kullanın. Yine de cüzdanınızı aklınızda tutmak istersiniz: Daha fazla bit istiyorsanız, daha fazla para harcamaya istekli olmalısınız
-
Gürültü ve parazit (gürültü = sinyallerinizi pürüzsüz yerine pürüzlü yapan rastgele artefaktlar vs parazit = rastgele olmayan, radyo dalgalarından gelen bitişik sinyallerden kaynaklanan sinüzoidal artefaktlar, vb.) günlük yaşamdan ölçülen tüm sinyalleri rahatsız eder.
- En ünlüsü 60Hz girişimdir (Avrupa'daysanız 50Hz ve Rusya'da hiçbiri yoktur çünkü priz gücü için AC yerine DC kullanırlar…), buna elektrik prizlerinin AC elektromanyetik alanlarından şebeke frekansı denir. Güç hatları, elektrik jeneratörlerinden AC yüksek voltajını, transformatörlerin Amerikan elektrik prizlerinde voltajı standart ~ 120V'a düşürdüğü yerleşim alanlarına taşır. Alternatif voltaj, çevremizde her tür sinyale müdahale eden ve filtrelenmesi gereken bu sabit 60Hz parazit banyosuna yol açar.
-
60Hz parazite genel olarak ortak mod paraziti denir, çünkü her iki girişinizde (+ ve -) op amperde görünür. Şimdi, op amperler, ortak mod bozulmalarını azaltmak için ortak mod reddetme oranı (CMRR) adı verilen bir şeye sahiptir, ancak (yanılıyorsam beni düzeltin!) bu, genel mod sesleri için iyidir (rastgele: rastgele olmayan yerine gürültü: girişim). 60 Hz'den kurtulmak için, frekans spektrumundan seçici olarak çıkarmak için bant durdurucu filtreler kullanılabilir, ancak daha sonra gerçek verileri kaldırma riskiyle karşı karşıya kalırsınız. En iyi durumda, yalnızca 60 Hz'den daha düşük bir frekans aralığını tutmak için düşük geçişli bir filtre kullanabilirsiniz, böylece daha yüksek frekanslara sahip her şey filtrelenir. EOG için yaptığım şey buydu: sinyalimin beklenen bant genişliği 0-10Hz idi (hızlı göz hareketlerini ihmal ederek - basitleştirilmiş versiyonumuzda bununla uğraşmak istemedim) bu yüzden düşük geçişli bir filtre ile 10Hz'den büyük frekansları kaldırdım.
- 60Hz, kapasitif kuplaj ve endüktif kuplaj yoluyla sinyallerimizi bozabilir. Kapasitif kuplaj (burada kapasitörler üzerinde okuyun), bitişik devreler arasında iletilecek AC sinyalleri için hava bir dielektrik görevi gördüğünde meydana gelir. Endüktif kuplaj, bir manyetik alanda akımı çalıştırırken Faraday yasasından gelir. Bağlantının üstesinden gelmek için birçok püf noktası vardır: Örneğin, bir tür Faraday kafesi olarak topraklanmış bir kalkan kullanabilirsiniz. Büküm/örme telleri mümkün olduğunda endüktif kuplajın müdahale edebileceği mevcut alanı azaltır. Aynı nedenle, kabloları kısaltmak ve devrenizin toplam boyutunu küçültmek de aynı etkiye sahiptir. Bir elektrik prizine takmak yerine op amp rayları için pil gücüne güvenmek, pillerin sinüzoidal salınım olmadan bir DC kaynağı sağlaması nedeniyle de yardımcı olur. Burada çok daha fazlasını okuyun!
-
Alçak geçiren filtreler, rastgele gürültü yüksek frekanslarla temsil edildiğinden, çok fazla gürültüden de kurtulur. Birçok gürültü beyaz gürültüdür, yani tüm frekanslar için gürültü mevcuttur, bu nedenle sinyal bant genişliğinizi mümkün olduğunca sınırlamak, sinyalinizde bu gürültünün ne kadarının bulunduğunu sınırlamaya yardımcı olur.
Bazı düşük geçişli filtrelere örtüşme önleyici filtreler denir, çünkü bunlar örtüşmeyi önler: sinüzoidler yetersiz örneklendiğinde, gerçekte olduklarından farklı bir frekans olarak algılanabilirler. Her zaman Nyquist'in örnekleme teoremini takip etmeyi unutmamalısınız (2x daha yüksek frekansta örnek sinyaller: beklenen 1Hz sinüs dalgası için >2Hz örnekleme frekansı gerekir, vb.). Bu EOG durumunda, Nyquist için endişelenmeme gerek yoktu çünkü sinyalimin esas olarak 10Hz aralığında olması bekleniyordu ve Arduino ADC örneklerimin 10kHz'de olması bekleniyordu - her şeyi yakalamak için yeterince hızlı
- Gürültüden kurtulmak için de küçük hileler var. Biri, devrelerinizin tüm parçalarının aynı referansa sahip olması için bir yıldız topraklaması kullanmaktır. Aksi takdirde, bir parçanın "toprak" dediği şey, tutarsızlıklara neden olan kablolardaki hafif direnç nedeniyle diğer parçadan farklı olabilir. Breadboard'lara yapıştırmak yerine protoboard'a lehimleme de biraz gürültüyü azaltır ve bastırarak yerleştirmenin aksine güvenebileceğiniz güvenli bağlantılar oluşturur.
Gürültüyü ve paraziti bastırmanın birçok başka yolu vardır (buraya ve buraya bakın), ancak daha fazla bilgi için bununla veya Google'da bir ders alabilirsiniz: hadi asıl devreye geçelim!
Adım 4: Devre Nasıl Çalışır?
Devre şeması gözünüzü korkutmasın: işte her şeyin nasıl çalıştığının kaba bir dökümü: (bazı açıklamalar için önceki adıma da bakın)
- En solda elektrotlarımız var. Biri sol şakak üzerine, diğeri sağ şakak üzerine takılır ve üçüncü elektrot alına topraklanır. Bu topraklama, sinyali dengeler, böylece daha az sapma olur ve ayrıca 60Hz parazitin bir kısmından kurtulur.
- Sıradaki enstrümantasyon amfisi. Voltaj farkını oluşturmak için ne yaptığının bir açıklaması için iki adım geriye gidin. Amplinin kazancını değiştirme denklemi, veri sayfasının 7. sayfasındadır [G = 1+(50kOhm/Rg) burada Rg, amplifikatörün 1 ve 8 pinlerine bağlıdır]. Devrem için Rg = 100Ohm kullanarak 500 kazanç ayarladım.
- Enstrümantasyon amplifikatörü 500x yükseltilmiş voltaj farkını çıkardıktan sonra, bir direnç R_filter ve kapasitör C_filter'den oluşan birinci dereceden bir RC düşük geçiş filtresi vardır. Düşük geçiş filtresi kenar yumuşatmayı önler (benim için bir endişe yok çünkü Nyquist tarafından, beklenen bir 10Hz bant genişliği için en az 20Hz örneklemem gerekiyor ve Arduino ADC örnekleri 10kHz'de - fazlasıyla yeterli) ve ayrıca gürültüyü kesiyor ihtiyacım olmayan tüm frekanslarda. RC sistemi çalışır, çünkü kapasitörler yüksek frekanslara kolayca izin verir, ancak daha düşük frekansları engeller (empedans Z = 1/(2*pi*f)) ve kapasitör boyunca voltaj ile bir voltaj bölücü oluşturmak, yalnızca daha düşük frekanslara izin veren bir filtreyle sonuçlanır. [3dB yoğunluğu için kesim, f_c = 1/(2*pi*RC) formülü tarafından yönetilir]. EOG'ler için biyolojik sinyalin bu aralıkta olması beklendiğinden, filtremin R ve C değerlerini ~ 10Hz'den daha yüksek sinyalleri kesecek şekilde ayarladım. Başlangıçta 20Hz'den sonra kestim, ancak deneyden sonra 10Hz de işe yaradı, bu yüzden daha küçük bant genişliği ile gittim (her ihtimale karşı, daha küçük bant genişliği gereksiz bir şeyi kesmek daha iyidir).
- Bu filtrelenmiş sinyalle, değer aralığımı sola ve sağa (aralığımın iki ucu) görmek için çıkışı bir osiloskopla ölçtüm. Bu beni yaklaşık 2-4V'a getirdi (çünkü enstrümantasyon amp kazancı ~ 4-8mV aralığı için 500x idi), hedefim 5V olduğunda (Arduino ADC'nin tam aralığı). Bu aralık çok değişkendi (kişinin cildi önceden ne kadar iyi yıkadığına vb. bağlı olarak) bu yüzden ikinci ters çevirmeyen amfi ile bu kadar kazanç elde etmek istemedim. Sadece yaklaşık 1,3'lük bir kazanca sahip olacak şekilde ayarladım (amper kazancı = 1+R2/R1 olduğu için devrede R1 ve R2'yi ayarlayın). 5V'nin üzerine çıkmamak için kendi çıktınızı kapsamanız ve oradan ayarlamanız gerekecek! Sadece direnç değerlerimi kullanmayın.
- Bu sinyal şimdi okumak için Arduino analog pinine beslenebilir AMA Arduino ADC negatif girişleri kabul etmez! Sinyalinizi, aralığın -2,5V ila 2,5V yerine 0-5V olacak şekilde yukarı kaydırmanız gerekecek. Bunu düzeltmenin bir yolu, devre kartınızın toprağını Arduino'nun 3.3V pinine bağlamaktır: bu, sinyalinizi 3,3V yukarı kaydırır (2,5V'den fazla optimum ancak çalışır). Menzilim gerçekten hantaldı, bu yüzden değişken bir ofset voltajı tasarladım: bu şekilde, potansiyometreyi aralığı 0-5V'a ortalamak için döndürebilirdim. Esasen +/-9V güç raylarını kullanan değişken bir voltaj bölücüdür, böylece devre topraklamasını -9 ila 9V arasında herhangi bir değere bağlayabilir ve böylece sinyalimi 9V yukarı veya aşağı kaydırabilirim.
Adım 5: Bileşenleri ve Değerleri Seçme
Açıklanan devre ile hangisini (elektrot, op amp) kullanacağımızı nasıl seçeceğiz?
-
Bir sensör olarak, katı jel elektrotlar yüksek giriş empedansına ve düşük çıkış empedansına sahiptir: bunun esas olarak anlamı, akımın aşağı akış yoluyla devrenin geri kalanına (düşük çıkış empedansı) kolayca geçebileceği, ancak yukarı akışta şakaklarınıza geri dönmekte sorun yaratacağıdır. (yüksek giriş empedansı). Bu, kullanıcının devrenizin geri kalanındaki herhangi bir yüksek akım veya voltajdan yaralanmasını önler; Aslında, birçok sistemde, her ihtimale karşı ek koruma için hasta koruma direnci adı verilen bir şey bulunur.
-
Birçok farklı elektrot tipi mevcuttur. Çoğu kişi, EKG/EOG/vb uygulamalarda kullanım için Ag/AgCl katı jel elektrotları önerir. Bunu akılda tutarak, bu elektrotların kaynak direncine bakmanız (cilt empedansı hakkındaki notlarım için iki adım geriye gidin) ve bunu gürültü direnciyle (V/sqrt(Hz) cinsinden gürültü voltajı bölü gürültü akımıyla) eşleştirmeniz gerekir. A/sqrt(Hz) -- op amperlerinizin veri sayfalarına bakın) -- cihazınız için doğru enstrümantasyon amfisini bu şekilde seçersiniz. Buna gürültü eşleştirme denir ve kaynak direnci Rs'yi gürültü direnci Rn ile eşleştirmenin neden işe yaradığına ilişkin açıklamalar burada olduğu gibi çevrimiçi olarak bulunabilir. Seçtiğim INA111'im için Rn, veri sayfasındaki gürültü voltajı ve gürültü akımı kullanılarak hesaplanabilir (yukarıdaki ekran görüntüsü).
-
Elektrot performansını değerlendiren BOLCA makale var ve hiçbir elektrot tüm amaçlar için en iyisi değildir: örneğin burayı deneyin. Empedans, op amp veri sayfalarında yansıtıldığı gibi farklı bant genişlikleri için de değişir (bazı veri sayfalarında farklı frekanslarda eğriler veya tablolar olacaktır). Araştırmanızı yapın ama cüzdanınızı aklınızda tutmayı unutmayın. Hangi elektrotların/op amperlerin en iyi olduğunu bilmek güzel, ancak paranız yoksa faydası yok. Tek seferlik kullanım için yalnızca 3'e değil, en az test için ~50 elektrota ihtiyacınız olacak.
-
Optimum gürültü eşleştirmesi için sadece Rn ~= Rs değil: aynı zamanda gürültü voltajının * gürültü akımının (Pn) mümkün olduğunca düşük olmasını istersiniz. Bu, Rn ~= Rs yapmaktan daha önemli kabul edilir, çünkü gerekirse transformatörler kullanarak Rs ve Rn'yi ayarlayabilirsiniz.
Transformatörlü uyarılar (yanlışsa düzeltin): biraz hantal olabilirler ve bu nedenle küçük olması gereken cihazlar için uygun olmayabilirler. Ayrıca ısı biriktirirler, bu nedenle ısı alıcıları veya mükemmel havalandırma gereklidir
- Gürültü yalnızca ilk ilk amfinizle eşleşir; ikinci amfi çok fazla etkilemez, bu yüzden herhangi bir op amp yapacaktır.
-
-
-
Adım 6: Devreyi Kurmak
Devreyi oluşturmak için yukarıdaki fritzing şemasını kullanın (ikinci kopya, önceki adımdaki devre şemasında her bir parçanın ne anlama geldiğini gösterir). Diyagramdaki LED'leri tanımlama konusunda yardıma ihtiyacınız varsa, bu direnç renk kodu hesaplayıcıyı kullanın, ancak enstrümantasyon amplifikatörünün Rg'si 100Ohm'dur, R_filter 1.5MOhm'dir, C_filter 0.1uF'dir, ters çevirmeyen amp'in R1'i 10kOhm'dur, R2 33kOhm'dur ve potansiyometrenin direnci 1kOhm'dur (potansiyometre 0 ila 20kOhm arasında değişir). Kazançları ayarlamak için direnç değerlerinizi gerektiği gibi değiştirmeyi unutmayın!
Düzenleme: ofset zemin kısmında bir hata var. Sol siyah kabloyu silin. Direnç, kırmızı kablo ile güç rayına gösterildiği gibi bağlanmalıdır, aynı zamanda potansiyometrenin birinci pinine değil, ikinci pinine de bağlanmalıdır. Potansiyometrenin ilk pini Arduino'nun 5V pinine bağlanmalıdır. Ofset toprak olan turuncu tel, birinci pine değil ikinci pine bağlanmalıdır.
Ofset zeminini çok tartıştım. Diyagramda Arduino topraklamasının breadboard topraklamasına bağlı olarak gösterildiğini görebilirsiniz. Bu, yerinizi değiştirmenize gerek olmadığı senaryoda. Sinyaliniz menzil dışındaysa ve topraklamanızı kaydırmanız gerekiyorsa, önce Arduino topraklamasını Arduino'nun 3.3V pinine bağlamayı deneyin ve sinyalinizi görüntüleyin. Aksi takdirde, potansiyometre kurulumundaki (ofset zemin) turuncu kabloyu Arduino'nun GND pinine takmayı deneyin.
GÜVENLİK NOTU: Lehimleme sırasında pilleri BIRAKMAYIN ve pilleri geriye doğru KOYMAYIN veya lehimleme YAPMAYIN. Devreniz sigara içmeye başlayacak, kapasitörler patlayacak ve devre tahtası da zarar görebilir. Genel bir kural olarak, pilleri yalnızca devreyi kullanmak istediğinizde kullanın; aksi takdirde, onları çıkarın (pillerin bağlantısını kolayca kesmek için bir çevirme anahtarı eklemek de iyi bir fikir olabilir).
Bir protokole lehimlemeden önce devreyi parça parça (her aşamayı kontrol edin!) ve bir devre tahtası üzerinde oluşturmanız gerektiğini unutmayın. Kontrol edilecek ilk aşama enstrümantasyon amfisidir: tüm rayları (pil tutucularda lehim), Rg, vb. takın ve çıkış piminde bir osiloskop kullanın. Yeni başlayanlar için, 5mV genlikli (veya jeneratörünüzün gideceği en düşük) 1Hz sinüs dalgalı bir fonksiyon üreteci kullanın. Bu sadece enstrümantasyon amplifikatörünün düzgün çalıştığını ve Rg'nizin hedef kazancınızı sağladığını kontrol etmek içindir.
Ardından, düşük geçiş filtrenizi kontrol edin. Devrenin bu kısmını ekleyin ve dalga biçiminizi kontrol edin: tamamen aynı görünmelidir, ancak daha az gürültü (pürüzlü - yukarıdaki son iki resme bakın). Şimdi bir fonksiyon üreteci yerine elektrotlarınızla son çıkışınızı bir osiloskop ile inceleyelim…
Adım 7: Devreyi Bir İnsanla Test Etme
Yine, elektrotları sol ve sağ şakaklarınıza koyun ve alnınızdaki elektrota bir topraklama kablosu bağlayın. Ancak bundan sonra pilleri eklemelisiniz - herhangi bir karıncalanma olursa, HEMEN çıkarın ve bağlantıları iki kez kontrol edin!!! Şimdi sola ve sağa baktığınızda değer aralığınızı kontrol edin ve ters çevirmeyen amplifikatörün R1/R2'sini iki adım önce açıklandığı gibi ayarlayın - hedefin 5V aralığı olduğunu unutmayın! Nelere dikkat etmeniz gerektiğine dair notlar için yukarıdaki resimlere bakın.
Tüm direnç değerlerinden memnun olduğunuzda, her şeyi bir protokole lehimleyin. Lehimleme kesinlikle gerekli değildir, ancak basit pres geçmeli bağlantılara göre daha fazla stabilite sağlar ve devre tahtasına yeterince sert bastırmadığınız için devrenin çalışmadığı belirsizliğini ortadan kaldırır.
Adım 8: Arduino Kodu
Bu adımın altına eklenen tüm kodlar!
Artık 5V aralığınız olduğuna göre, bunun -1V ila 4V vb. yerine 0-5V aralığında olduğundan emin olmanız gerekir. Ya Arduino'nun 3.3V pinine topraklayın ya da ofset toprak voltajını bağlayın (yukarıdaki turuncu kablo) toprak rayına ve ardından toprak rayından Arduino'nun GND pinine bir kablo bağlayın (bu, 0-5V aralığına düşmeniz için sinyali yukarı veya aşağı kaydırmak içindir). Biraz oynamanız gerekecek: belirsiz olduğunuzda çıktınızın kapsamını belirlemeyi unutmayın!
Şimdi kalibrasyon için: ışığın farklı göz konumları için renkleri değiştirmesini istiyorsunuz (uzak sola bakma ve çok sola bakma..). Bunun için değerlere ve aralıklara ihtiyacınız var: EOG-calibration-numbers.ino'yu Arduino'ya her şey düzgün bir şekilde bağlanmış olarak çalıştırın (fritzing diyagramıma göre Arduino ve neopiksel bağlantılarını bitirin). Çok gerekli değil, aynı zamanda sahip olduğum bioe.py kodunu da çalıştırın - bu, masaüstünüze bir metin dosyası gönderir, böylece sola veya sağa bakarken tüm değerleri kaydedebilirsiniz (python kodu bu örnekten uyarlanmıştır). Bunu nasıl yaptığım, 8 vuruş için sola, sonra sağa, sonra yukarı, sonra aşağı ve daha sonra ortalama almak için tekrarlamaktı (tuttuğum bir günlük için output_2.pdf'ye bakın). Memnun kaldığınızda çıkmaya zorlamak için ctrl+C tuşlarına basın. Bu değerleri kullanarak, BioE101_EOG-neopixel.ino kodumda animasyonların aralıklarını ayarlayabilirsiniz. Benim için, dümdüz ileriye baktığımda bir gökkuşağı animasyonu vardı, en sol için mavi, hafif sol için yeşil, hafif sağ için mor ve en sağ için kırmızı.
9. Adım: Gelecek Adımlar
işte; sadece gözlerinizle kontrol edebileceğiniz bir şey. Hastaneye gitmeden önce optimize edilecek çok şey var, ancak bu başka bir gün için: temel kavramları anlamak en azından şimdi daha kolay. Geri dönüp değiştirmek istediğim bir şey, enstrümantasyon amfisi için kazancımı 500'e ayarlamak: geriye dönüp baktığımda, bu muhtemelen çok fazlaydı çünkü daha sonra sinyalim zaten 2-4V idi ve evirmeyeni kullanmakta zorlandım. menzilimi mükemmel bir şekilde ayarlamak için amp…
Tutarlılık elde etmek zordur çünkü sinyal farklı koşullar için ÇOK FAZLA değişir:
- farklı kişi
- aydınlatma koşulları
- cilt hazırlığı (jeller, yıkama vb.)
ama yine de, son performans kanıtı videomdan oldukça memnunum (3AM'de çekildi çünkü o zaman her şey sihirli bir şekilde çalışmaya başlıyor).
Bu öğreticinin çoğunun kafa karıştırıcı görünebileceğini biliyorum (evet, öğrenme eğrisi benim için de zordu) bu yüzden lütfen aşağıdaki soruları sormaktan çekinmeyin, yanıtlamak için elimden geleni yapacağım. Eğlence!
Dokunulmaz Mücadelesinde İkincilik
Önerilen:
AvoRipe - Avokadonuzun Olgun olup olmadığını Kontrol Etme: 8 Adım (Resimlerle)
AvoRipe - Avokadonuzun Olgun olup olmadığını Kontrol Etme: Herkesin başına geldi, bir avokado alıyorsunuz, henüz olgunlaşmadı. Birkaç gün geçer ve olgunlaştığında bunu unutursunuz… ve birkaç gün içinde işler kötüye gidebilir! Şansınıza avoc'unuzu kontrol eden bir cihaz olan AvoRipe'ı tasarladık ve ürettik
Birden Fazla LED'i Python ve Raspberry Pi'nizin GPIO Pinleriyle Kontrol Etme: 4 Adım (Resimlerle)
Python ve Raspberry Pi'nizin GPIO Pinleriyle Birden Fazla LED'i Kontrol Etme: Bu Talimat, 4 LED'e güç sağlamak için RaspberryPi'nizdeki birden fazla GPIO pinini nasıl kontrol edeceğinizi gösterir. Ayrıca, size Python'daki parametreleri ve koşullu ifadeleri tanıtacaktır. Raspberry Pi'nizin GPIO Pinlerini Bağlamak İçin Kullanan Önceki Talimatımız
Etkileşimli Avlu Işıkları, Geçit Işıkları: 3 Adım
Etkileşimli Avlu Işıkları, Geçit Işıkları: Arka bahçem için bir çeşit etkileşimli avlu ışığı yapmak istedim. Fikir, birisi bir yöne yürüdüğünde, yürüdüğünüz yönde bir animasyon başlatacaktı. Dollar General 1.00$ güneş ışığıyla başladım
Epe Kordonunu Test Etme ve Tamir Etme: 9 Adım (Resimlerle)
Bir Epe Bodycord'un Test Edilmesi ve Onarılması: Modern, Olimpik tarzdaki eskrim sporunda, puanlama elektrikle yapılır. Elektrik sinyalinin silahınızdan puanlama makinesine gitmesi için, sinyalin silahınızdaki bir tel aracılığıyla (kılıç hariç) kolunuzdan yukarı ve aşağı hareket etmesi gerekir
Kendin Yap Noel Işıkları Müziğe Ayarlandı - Koreograflı Ev Işıkları: 15 Adım (Resimlerle)
Kendin Yap Noel Işıkları Müziğe Ayarlandı - Koreograflı Ev Işıkları: Müzik Ayarlı DIY Noel Işıkları - Koreograflı Ev Işıkları Bu yeni başlayan bir DIY DEĞİLDİR. Elektronik, devre, BASIC programlama ve elektrik güvenliği ile ilgili genel zeka konularında sağlam bir kavrayışa ihtiyacınız olacak. Bu DIY, deneyimli bir kişi içindir, yani