Skocz do zawartości
RobertG

Urządzenie do badania fal mózgowych

Pomocna odpowiedź

Mózg generuje impulsy elektryczne, których częstotliwość zależna jest od stanu, w jakim mózg się znajduje,  im głębszy stan relaksu (np. w czasie głębokiego snu, lub medytacji), tym ta częstotliwość jest niższa, a im większy stan aktywności (np. liczenie czegoś w pamięci), tym jest wyższa. Różne obszary mózgu mogą w tym samym czasie generować sygnały o nieco innej częstotliwości. Częstotliwość wynosi od 0.5Hz, do ok. 180Hz.

Urządzenie takie składa się z części analogowej, która zawiera wzmacniacz oraz filtr, który przepuszcza tylko pożądany zakres częstotliwości (i wycina zakłócenia z sieci elektrycznej, które we wspomnianym wyżej zakresie się mieszczą), ADC'ka i mikroprocesora, który dokonuje dalszej obróbki sygnału. Ponieważ urządzenie jest podpinane bezpośrednio do ciała, na wejściu znajdują się dodatkowo obwody ochronne, zaś gdzieś po drodze znajduje się izolacja galwaniczna.

Zdecydowałem się na użycie wyspecjalizowanej kostki (ADS1298IPAG), która kosztuje ok. 35 euro i ma 8 kanałów, czyli koszt jednego kanału to 4 euro. Alternatywą jest użycie wzmacniacza instrumentacyjnego + filtru częstotliwości + zbieranie wyników ADC'kiem i ich dalsza obróbka w procku. Wzmacniacze instrumentacyjne są strasznie drogie, np. taki AD620 przeznaczony do tych rzeczy kosztuje ok. 10 euro, więc takie rozwiązanie jest IMHO za drogie i pojedyncza wyspecjalizowana kostka jest lepsza. 

Poniżej znajduje się mój zamysł na urządzenie.

ArchitectureOverview-1.thumb.png.f385fcf5af4f6816352c50c1ad087730.png

Nie wiem, jeszcze jakich elektrod użyję. Co do sposobu wysyłania przetworzonych danych, to myślę, że użyję USB + Bluetooth. Fajnie by było np. podpiąć te elektrody na noc i rano w apce zobaczyć, wykres z fazami swojego snu.

Co do schematu, to w dużej mierze bazowałem na devboardzie dla ADS129x, nie skończyłem go na razie, a i też nie rozumiem jeszcze, jak działają wszystkie piny tego scalaka.

Poniżej znajdują się schematy dla obwodów wejściowych elektrod.

positiveElectrode.thumb.png.05805e8c1d975a22550c31f28987a97f.png

negativeElectrode.png

 

Główna część, czyli akwizycja danych.

DataAcquisition.thumb.png.1cb243ea13e1b8dd4e3d3263a6e69f8e.png

Zasilanie dla modułu z akwizycją danych, część analogowa: -1V8, +1V8, część cyfrowa: 1V8.

PowerSupply.thumb.png.ec5453b83fdab3c617ff41bbd2a6ac34.png

By zwiększyć bezpieczeństwo urządzenia, część pomiarowa jest galwanicznie odizolowana od reszty urządzenia (DSP, USB, zasilacz sieciowy, etc). Wybrałem kostki, które mają certyfikaty IEC 60601 (norma dla urządzeń medycznych). Niestety z tego, co widzę, to norma jest płatna, tzn dokumentu nie można nigdzie pobrać w sieci.

Isolator.thumb.png.35a309a959f017306664397da992757a.png

 

Co do samego przetwarzania danych, użyję DSP, na razie nie wiem, jaki wybrać.

 

To tyle na razie, zostawię jeszcze na koniec link do GitHuba projektu.

 

Edytowano przez RobertG
  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites

Po polsku piszemy "wzmacniacz pomiarowy". Instrumentacji to szukaj raczej w partyturach.  W tym przypadku angielska kalka nie działa.

Nie musisz używać ani zewnętrznej referencji ani zewnętrznego zegara. Pierwsze sporo uprości układ jednocześnie nie demolując parametrów, drugie oszczędzi sporo prądu i także uprości schemat. W środku masz zarówno niezłą referencję jak i oscylator 2.048MHz kalibrowany do +/-2% w pełnym zakresie temperatur.

Wejście U2-3 wisi w powietrzu. A po co on tu w ogóle?

TC1017 stabilizuje tylko napięcia dodatnie.

Generalna uwaga do schematu zasilania: brakuje postawowych opisów choćby wielkości napięć. Nie wiemy czy zdecydowałeś się na zasilanie cyfrówki z 5V, czy część analogowa będzie bipolarna (chyba tak bo wstawiłeś pompę), a jeśli tak to jakie przyjąłeś zasilania. Bez tego trudno w pełni oceniać pomysł.

Dałeś mikroskopijne pojemności na wyjściu przetwornicy DCDC a te klocki potrafią narobić bigosu. Co prawda, TRACO gwarantuje tylko 50mVpp, ale a) nie wiemy przy jakich pojemnościach wyjściowych (jestem niemile zaskoczony marnotą dokumentacji do tej rodziny przetwornic), b) Twoje LDO są słabe jeśli chodzi o PSRR (sprawdziłeś jaki mają dla zakresu w jakim pracuje DCDC?),. W ogóle nie rozumiem dlaczego w aplikacji gdzie masz pewne 5V i robisz z tego 3.3V(?) wybierasz stabilizatory mające miliwoltowe dropouty. Ja bym tu raczej szukał czegoś szybkiego (bipolarnego?) i z małymi szumami. Płacisz za gwarancję stabilności przy 1uF na wyjściu a zaczepiasz tam po 10u i więcej. Przetwornica potrzebuje tez zwykle sporej i dobrej pojemności na wejściu.

Ja bym dał raczej filtrowanie LC na wejściu stabilizatora dla AVDD i przed pompą osobno, bo ona ciągnie tragiczne impulsy z wejścia (co chwila podłącza tam przecież rozładowany kondensator). Lepiej chronić się na wejściu stabilizatora i dać mu szansę na spokojną pracę niż potem próbować ratować sytuację na wyjściu, gdy wszystko co złe już przez niego przelazło. 

Nie wiem czy te 3.3uH to jakaś Twoja ulubiona wartość, czy może z czegoś wynika (jakieś częstotliwości odcięcia filtrów? wielkość? cena? pierwsze co przyszło do głowy?). Koniecznie użyj tu dławików z zamkniętym obwodem magnetycznym (tzw. ekranowanych), bo jeśli będą to zwykłe 1206 lub nawet jakieś stojące "beczki" to będzie gorzej niż gdyby ich nie było wcale: złapią wszystko co DCDC wypchnie w przestrzeń wokół siebie. No i raczej weź coś o sporo większej indukcyjności tym bardziej, że prądy są małe więc te elementy nie urosną za bardzo. 

Bez takich szczegółów schemat trzeba potraktować jak wstępny zarys projektu.

Jakiego pasma i/lub jakich częstotliwości próbkowania się spodziewasz? DSP są fajne, ale raczej niewygodne a jeśli rzecz sprowadza się do 500Hz w kilku kanałach to spokojnie możesz to zrobić na niewypasionym ARMie. Czy to urządzenie ma coś robić oprócz gromadzenia i przesyłania danych do analizy do PC? Jakieś nie wiem, odgadywanie myśli, projekcja snów na ekranie HD czy turbo-usypianie? 🙂 Bo jeśli nie, to wiesz, nawet poczciwy AVR z dospawanym szeregowym FLASHem podoła.. 

  • Lubię! 1
  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

@marek1707 dzięki za porady! Poprawiłem, to, co wskazałeś.

Takie dławiki znalazłem - nie udało mi się znaleźć nic mniejszego, więc zostanę przy nich.

O napięciach zasilania wspomniałem w pierwszym poście. Dodałem je teraz explicite na schemacie, dodałem też info na których test-pointach które napięcie mierzyć by ułatwić sobie uruchamianie układu. Trochę się te napięcia różnią od tego, co sugeruje producent ADS1298IPAG, ale mieszczą się w dopuszczalnym zakresie i upraszczają BOM bo zamiast trzech różnych stabilizatorów, są trzy takie same.

Poszukałem kostek z lepszym PSRR i wybrałem LP5912. Napisałeś, że TC1017 jest kiepska jeśli chodzi o ten współczynnik, jaka wartość PSRR jest generalnie duża/dobra/wybitna? Chodzi mi o liczbę.

Pasmo zakładane to 0.25Hz - 190Hz.

Urządzenie ma przekazywać tylko dane na zewnątrz, wizualizacja i obróbka będą po stronie PC lub komórki. W firmware chciałbym tylko dodać filtr cyfrowy. 

Isolation.png

PowerSupply.png

Edytowano przez RobertG
  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Cześć,

fajny projekt, jak zresztą większość z przedstawionych przez ciebie 😉 Tak z czystej ciekawości jakie planujesz zastosowania urządzenia? I jeszcze jedno pytanie: czy zamierzasz użyć sztucznej inteligencji do rozpoznawania wzorców w odbieranych sygnałach (myślę np. o użyciu sztucznych sieci neuronowych)? Ciekawe, czy możliwe jest np. odczytanie nastrojów - stanu relaksacji, zdenerwowania, skupienia itp. Temat wydaje się wprost idealny aby zastosować ANN i np. bibliotekę Keras.

Pozdrawiam

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Drugi raz popełniasz ten sam błąd: stabilizatory przeznaczone do regulacji napięć dodatnich nie działają dla napięć ujemnych. Jeśli masz zamiar stabilizować A_VSS to dla tej gałęzi musisz poszukać innego scalaka niż te dwa w gałęziach dodatnich. To będzie inna tabelka u producenta, jakieś "Negative voltage regulators" czy coś. Istnieje co prawda sposób aby stabilizator dodatni zmusić do pracy w minusie, ale musisz mieć wtedy dwa niezależne źródła zasilania bez wspólnej masy - nie polecam, a z resztą Ty robisz minus pompą więc wspólna masa zasilań +/- jest z definicji.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

@FlyingDutch chciałbym rano zobaczyć jak wyglądały zmiany moich faz snów, choć nie wiem, czy to się uda i czy zasnę z takim ustrojstwem na głowie i czy to nie pospada po chwili. Inną rzeczą to chciałbym np. napisać jakiś plugin do Chrome i logować co oglądam na YouTube, a potem porównać to z moimi falami mózgowymi. Takie coś przychodzi mi do głowy.

Nie wiem, czy sieci neuronowe by zdały rade tutaj, bo ja planuję urządzenie, które ma tylko osiem kanałów, można dodać więcej (ta kostka na to pozwala), ale koszty też rosną.

Z ciekawych pomysłów, kolega rozwija oprogramowanie, które na podstawie jakiegoś wyjściowego hasha rysuje obrazki (płynnie zmieniające się przejścia między barwami, mi się podobały), powiedział, że to by było fajne połączyć oba projekty razem 🙂

@marek1707 masz rację, dzięki za uwagę co do stabilizatora.

PS. takiego zamkniętego dławika powinienem tez użyć do filtrowania zasilania dla PGA w projekcie generatora DDS, bo tam ten dławik jest bardzo blisko transformatora wyjściowego, prawda? 

Edytowano przez RobertG
  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...