
Oto mój projekt na konkurs.
Czujnik mierzący w pośredni sposób napięcie mięśni.
Budowa mechaniczna czujnika:
Chcąc mierzyć napięcie mięśni w ciele, lecz nie chcą kupować drogich czujników EMG wymyśliłem pewną alternatywę. Można mierzyć niewielkie zmiany kształtu mięśni znajdujących się pod skórą.
W tym celu użyłem przetwornika piezoelektrycznego. By zmniejszyć ilość zakłóceń i chronić kruchy przetwornik odizolowałem go od ciała. Od spodniej strony (tej, która jest wykonana z jednego kawałka metalu) nakleiłem cienką taśmę dwustronną, do której dokleiłem kawałek cienkiego poliwęglanu (<0,5mm) wystający poza krawędź przetwornika o około 2 mm. Następnie przylutowałem od drugiej strony dwa kabelki, jeden do blaszki drugi do metalowego pokrycia dysku ceramicznego. By wyrównać grubość poziomu lutu i środka czujnika użyłem taśmy dwustronnej montażowej (sztywna pianka o grubości 2 mm). Następnie przykleiłem drugi dysk z poliwęglanu do taśmy montażowej. Oba kable osłoniłem jedną rurką termokurczliwą z klejem, zwiększyła ona ich sztywność przy miejscu przylutowania. Następnie na cienkiej taśmie dwustronnej przykleiłem nad i pod przewodami 5 centymetrowe prostokąty wycięte z tego samego poliwęglanu co dyski. Następnie okleiłem razem te dwa prostokąty z kablami między nimi taśmą izolacyjną.
Dobór elementów pasywnych:
Przed podłączeniem czujnika i rozpoczęciem pomiarów chciałem zobaczyć jaki zakres napięć jest wytwarzany przez przetwornik piezo pod wpływem zniekształceń spieku ceramicznego. Podpiąłem kable wychodzące z czujnika do multimetru. Ustawiłem miernik w zakresie 1000V DC (największy zakres dostępny w moim urządzeniu), czujnik położyłem na biurku (ważne by leżał w czasie tego testu na równej powierzchni) i uderzałem w niego z całej siły przy pomocy nieostrzonego ołówka. Największe zarejestrowane napięcie to było aż 47V. Natomiast po zamontowaniu pod nadgarstkiem przy pomocy przeźroczystej taśmy, maksymalne rejestrowane napięcie spadło do około 12-15V.
Czujnik chciałem używać z Arduino Uno. Wejście analogowe może pracować z napięciem do 5V (do tej wartości interpretuje wyniki), a maksymalne napięcie, przy jakim przetwornik ADC nie zostaje uszkodzony to 20V. Jeden z kabli podpiąłem do masy w Arduino, a drugi do wejścia analogowego, między tymi wejściami dodałem rezystor podciągający 1Mohm. W efekcie otrzymywane przeze mnie wyniki na ekranie komputera mieściły się w zakresie pomiarowym.
Zastosowanie:
Używając jednego czujnika można sterować jakąś prostą funkcją. W moim wypadku mogłem włączać i wyłączać diodę LED ruchem nadgarstka. Mimo, że jest to prymitywne dobrze rokuje w przyszłości i pokazuje możliwości czujnika biomedycznego DIY. Zwiększając liczbę czujników można zwiększyć liczbę wykrywanych ruchów i dokładność ich rozpoznawania.
Przyszłość projektu:
Chcę wykonać odlew gipsowy przedramienia, który wykorzystam jako formę pod coś przypominające karwasz, wykonane z włókna szklanego i żywicy epoksydowej. W tym urządzeniu będę chciał rozmieścić minimum 10 przetworników piezo, co powinno zapewnić mi możliwość kontrolowania jakiegoś prostego ramienia robota.
Kod do Arduino:
Code: c
EDIT 11.10.2017
Pierwsza duża zmiana.
Zwiększyłem liczbę czujników do trzech. Zamiast taśmą, zamocowałem je szeroką na 4 centymetry gumą z rzepami na końcach (sam to uszyłem).
Następnie wykonując ruchy ręki (zaciskanie pięści, stukanie palcami, zginanie i prostowanie w łokciu) patrzyłem na przebiegi wykresów zmiany napięcia dla poszczególnych czujników. Zapisywałem +/- najwyższą wartość napięcia dla danego ruchu i czujnika w tabeli. Ostatecznie zaprogramowałem rozpoznawanie 2 ruchów:
-zaciskania pięści
-prostowanie ręki (zwykłe, bo wyróżniałem jeszcze szybki wyprost)
te dwa ruchy wykazały największą powtarzalność.
Program rozpoznaje je z wysoką skutecznością 80-90%. Nie myli ich ze sobą zwykle, a nie wykrywa że ruch został wykonany. Można to prawdopodobnie zoptymalizować liczbą powtórzeń pętli for na początku loopa w kodzie arduino.
Pętla ta pozwala wykryć piki napięcia z czujników, które są przesunięte w czasie dla różnych mięśni.
Film z działania:
Film ze zbliżeniem na czujniki:
Kod arduino dla 3 czujników i 2 ruchów:
Code: c
Cool? Ranking DIY