Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Ultrasonograf zbudowany z wykorzystaniem Raspberry Pi

ghost666 30 Sep 2017 22:20 9075 1
Computer Controls
  • Ultrasonograf zbudowany z wykorzystaniem Raspberry Pi
    Przedstawiony poniżej projekt ma dobrze zdefiniowany cel - stworzyć otwarty i niedrogi ultrasonograf. Dedykowany jest on dla wszystkich - naukowców, nauczycieli, hobbystów i amatorów - którzy chcą poznać tajniki tego rodzaju obrazowania. Całkowity koszt realizacji tego projektu kształtuje się na poziomie około 500 dolarów. Jak na ceny 'prawdziwego' sprzętu dedykowanego do tego rodzaju obrazowania, jest kwotą niewielką.

    Założenia

    * Celem projektu jest stworzenie niewielkiej platformy sprzętowej do ultrasonografii oraz dedykowanego, otwartego oprogramowania do jej obsługi.
    * Stworzenie analogowego systemu do nauki i zrozumienia zasady działania obrazowania ultradźwiękowego.
    * Zebranie razem tego, co już wiadomo na temat ultrasonografii i sprzętu do niej w zastosowaniach hobbystycznych.
    * Redukcja kosztów systemu.
    * Stworzenie metodyki sprawdzania jakości otrzymywanych obrazów.
    * Stworzenie prostego API do kontroli stworzonego sprzętu.
    * System musi zapisywać tak surowe dane z pomiarów jak i umożliwiać generowanie obrazów zrozumiałych dla człowieka.
    * Skompletowanie systemu, który mógłby być sprzedawany w formie kitu, dla wszystkich zainteresowanych wykorzystaniem tego systemu.

    Poprzednie projekty twórców tego ultrasonografu pokazały już, że możliwe jest stworzenie takiego urządzenia w domu, jednakże sam układ nie był jeszcze dostatecznie prosty. Prace w ramach tego projektu zaowocowały kompletnym systemem deweloperskim, który nie dość, że potrafi generować obrazy ultrasonograficzne, to nadaje się do innych projektów związanych z badaniami nieniszczącymi, wykorzystaniem sensorów piezoelektrycznych czy pomiarami dopplerowskimi.

    Architektura systemu

    Systemy obrazowania ultradźwiękowego przeszły długą drogę ewolucji od czasu powstania. Pierwsze urządzenia tego typu wykorzystywały pojedynczy przetwornik i układy skanowania mechanicznego, co oznaczało, że system posiadać musiał jedynie jeden kanał analizy sygnału. Architektura tego rodzaju systemu położyła podwaliny pod techniki obrazowania ultradźwiękowego. Schematycznie jest ona zaprezentowana na poniższym obrazku.

    Ultrasonograf zbudowany z wykorzystaniem Raspberry Pi


    System taki składa się z kilku modułów zbudowanych z dostępnych komercyjnie elementów. Taki zestaw tworzy podstawowy system obrazowania ultradźwiękowego. Do jego realizacji stworzono dwa dedykowane moduły, które sprzęgnięto następnie z komputerem Raspberry Pi:

    * Moduł Generowania Impulsów (TPM) - zaprojektowany do generowania precyzyjnych impulsów wysokiego napięcia, niezbędnych do wzbudzenia przetwornika ultradźwiękowego. Kontrolowany z pomocą modułu Arduino.
    * Moduł Przetwarzania Analogowego (APM) - stworzony do poprawnego przetwarzania sygnałów analogowych pochodzących z przetwornika, jednocześnie zapewniający dostęp do sygnałów analogowych z surowym sygnałem, jak i cyfrowego sygnału z obrobionymi danymi.
    * Raspberry Pi wyposażone zostało w dwa ADC (AD9200) działające z przeplotem, które kontrolowane są przez ten komputer. Każdy z tych przetworników analogowo-cyfrowych pracuje z prędkością 11 MSPS, co daje razem 22 MSPS. Wąskim gardłem jest transmisja danych z ADC do RAMu RPi poprzez piny GPIO. Przetworniki te 'zużywają' sporo pinów GPIO, co oznacza że zostaje nam tylko kilka wolnych, np. do zewnętrznego czujnika Halla dla silnika sterującego ruchem głowicy.

    Modułowa architektura, przyjęta w tym projekcie, ma tą zaletę, że pozwala na relatywne zmienianie i porównywanie ze sobą kolejnych wersji modułów. Każdy z modułów układu pełni wysokopoziomową funkcję, ale jednocześnie cały czas zapewnia dostęp do niskopoziomowych sygnałów pomiędzy poszczególnymi blokami. Jest to niezwykle istotne, jeśli chce się dokładnie poznać zasadę działania układu.

    Wcześniejsze eksperymenty wykorzystywały różne systemy akwizycji - oscyloskop komputerowy, mikrokontrolery STM32, szybkie ADC dla Beaglbone etc. Raspberry Pi wybrane zostało z uwagi na prostotę zastosowania, cenę i ogromne wsparcie środowiska, co jednocześnie zwiększa zasięg zainteresowania projektem.

    Potrzebne elementy

    * Płytka generująca impulsy dla przetwornika.
    * Front-end analogowy, który wzmacnia sygnały echa, zebrane przez sensory.
    * Moduł z przetwornikami ADC - w naszym wypadku dedykowany HAT dla Raspberry Pi z dwoma ADC o częstotliwości próbkowania 22 MSPS.
    * Raspberry Pi 0 lub W, do zarządzania systemem.
    * Płyta główna układu, do połączenia wszystkich modułów.

    Dodatkowo potrzebować możemy szeregu zworek itp. Przyda się także niewielki ekran OLED.

    Jako przetwornik wykorzystać można sondę mechaniczną typu ATL albo sam przetwornik piezoelektryczny z serwomotorem, do mechanicznego skanowania obrazowanej objętości.

    Uwagi

    1. To nie jest medyczny ultrasonograf. To amatorski zestaw rozwojowy, który wykorzystać można do badań nieniszczących czy nauki, ale nie w medycynie.
    2. Jakkolwiek autor zna się na elektronice, to jest pierwszy tego typu projekt jaki realizuje. To, że działa, nie oznacza, że jest w jakikolwiek sposób ukończony.
    3. Ultradźwięki mogą być niebezpieczne. Gdy budujemy skaner, czy dowolny inny system ultradźwiękowy, koniecznie zachowajmy ostrożność.

    Wykorzystanie echa ultradźwiękowego do badania interfejsów pomiędzy warstwami

    W medycznych ultrasonografach wykorzystuje się sygnały bardzo wysokiej częstotliwości do diagnozy pacjentów. Częstotliwości wykorzystywane typowo w ultrasonografach typowo wynoszą od 2 MHz do nawet 15 MHz, jakkolwiek w niektórych systemach wykorzystuje się częstotliwości jeszcze wyższe.

    Ultradźwięki generowane są poprzez mechaniczne oscylacje kryształów piezoelektrycznych, które są wyzwalane impulsami elektrycznymi. Przetwornik zmienia energię elektryczną w mechaniczną w postaci fal akustycznych.

    Ultrasonograf zbudowany z wykorzystaniem Raspberry Pi


    Fale ultradźwiękowe generowane są przez przetwornik i propagują przez badane tkanki w głąb ciała. Powracają one do przetwornika jako odbite echo z wnętrza ciała. Odbijają się one od interfejsów - granic pomiędzy poszczególnymi warstwami. Echa te konwertowane są następnie do sygnałów elektrycznych przez przetwornik - ten sam, który wysłał paczkę ultradźwięków. Sygnał ten jest następnie obrabiany - pierwszy stopień obróbki to ekstrakcja obwiedni sygnału zebranego przez przetwornik. Kolejnym zadaniem będzie zamiana tego sygnału na dwuwymiarowy obraz, jaki zobaczymy na ekranie.

    Tak jak napisaliśmy powyżej, ultradźwięki odbijają się od granic pomiędzy dwoma warstwami, o różnej gęstości. Im większa jest różnica w impedancjach tych warstw, tym mocniejszy będzie odbity sygnał echa. Do tego stopnia, że jeżeli różnica pomiędzy tymi warstwami będzie na prawdę duża, to ultradźwięki odbite zostaną w całości. To zjawisko powoduje, że niektóre obrazowane elementy rzucać będą cień na struktury znajdujące się poniżej. Z kolei jeśli różnice będą minimalne, bądź w ogóle ich nie będzie, to dane elementy będą w obrazie ultrasonograficznym zupełnie niewidoczne. Przykładem takich niewidocznych elementów są np. płyny ustrojowe, takie jak krew czy mocz.

    Tworzenie dwuwymiarowego obrazu

    Jeśli powtórzymy pojedyncze obrazowanie przemiatając jakiś szerszy obszar jesteśmy w stanie zrekonstruować dwuwymiarowy obraz ultradźwiękowy. Przemiatanie obszaru zrealizować można np. wbudowując w sondę serwomotor, który poruszać będzie przetwornikiem.

    Ultrasonograf zbudowany z wykorzystaniem Raspberry Pi


    Eksperymenty

    Co jeszcze można zrobić z tym sprzętem? Zestaw ten stworzony został głównie w celach pedagogicznych, więc wykorzystując go spróbujmy czegoś się nauczyć. Wykorzystać go można do szeregu ciekawych eksperymentów, co można zatem zrobić?

    * Wykorzystać można go do różnych trybów obrazowania ultradźwiękowego.
    * Jeśli wykorzystamy więcej modułów możemy je multipleksować czy też testować układy formowania wiązki.
    * Testować inne systemy obrabiania sygnałów.
    * Testować różne przetworniki - tak, aby zbadać ich sprawność, jak i w celu porównywania ich parametrów.
    * Realizacja testów nieniszczących na różnych obiektach.

    Testowanie systemu akwizycji

    Pierwsze próby systemu wykonano wykorzystując wbudowany przetwornik ADC układu STM32F205. Osiągnięto częstotliwość próbkowania na poziomie zaledwie 1,7 MSPS, jednakże to już wystarczyło do uzyskania całkiem dobrej rozdzielczości. Obrazowanie testowane było na płytce drukowanej z wlutowanymi goldpinami, jak pokazano na poniższym obrazku. Zanurzona ona była w wodzie, dla lepszego przenoszenia ultradźwięków.

    Ultrasonograf zbudowany z wykorzystaniem Raspberry Pi


    Eksperymenty z wykorzystaniem Raspberry Pi

    W kolejnym eksperymencie wykorzystano pojedynczy ADC o rozdzielczości 9 bitów, działający z prędkością 11 MSPS (drugi wlutowany ADC nie został uruchomiony na skutek pomyłki podczas lutowania).

    It can be noted that the ADC used in the experiments below is running at half its acquisition speed, due to a blunder - soldering two pins of the second ADC together. However, the 9-bit, 11Msps ADC works relatively well to analyse the raw signal as well as the enveloppe.

    Ultrasonograf zbudowany z wykorzystaniem Raspberry Pi


    Powyżej zaprezentowano układ testowy, jaki wykorzystywano. Na obrazku znajduje się też ADC spięty z 'Maliną'. Jako obrazowany obiekt wykorzystano pokazaną powyżej płytę drukowaną z wlutowanymi goldpinami. Tego rodzaju obiekty są także często wykorzystywane podczas testowania i kalibracji komercyjnych, medycznych systemów ultrasonograficznych

    Kosztorys

    Wykorzystanie prostego modułu z Linuxem pozwoliło na zmniejszenie kosztów układu do zakładanej kwoty poniżej 500 dolarów:

    * Prosty przetwornik z serwomotorem - używany element kupiony np. na eBay - około 80 dolarów.
    * Raspberry Pi 0 lub W - 10 dolarów.
    * Moduł z dwoma ADC dla uzyskania prędkości przetwarzania powyżej 20 MSPS - od 45 dolarów.
    * Moduł Goblin - system do wyznaczania obwiedni sygnału analogowego - 149 dolarów.
    * Moduł Tobo - generator impulsów wysokiego napięcia, do zasilania przetwornika - 120 dolarów.

    Całkowity koszt to około 400 dolarów.

    Rezultaty - sygnały i obrazy

    W systemie autor wykorzystywał dwa mechanizmy wykrywania obwiedni sygnału - poprzez przetwornik ADC i wykorzystując cyfrową jej detekcję. Obrazowano ponownie ten sam model PCB z goldpinami.

    Ultrasonograf zbudowany z wykorzystaniem Raspberry Pi


    Do systemu podpięto komercyjną, starą głowicę ultrasonograficzną. W systemie wykorzystywano przez pewien czas ADC z Beaglebone black, ale póćniej wykorzystano moduł HAT z przetwornikami ADC 24 MSPS dla Raspberry Pi. Układ wygląda następująco:

    Ultrasonograf zbudowany z wykorzystaniem Raspberry Pi


    System daje obrazy całkiem dobrej jakości:

    Ultrasonograf zbudowany z wykorzystaniem Raspberry Pi


    Czego nauczono się podczas realizacji projektu:

    Podczas realizacji projektu autor wiele się nauczył:

    * Zaczynaj od komercyjnie dostępnych modułów i elementów: o wiele prościej jest zestawić prototyp z komercyjnie dostępnych modułów, niż projektować go od podstaw.
    * Konstruuj układy modułowe: o wiele łatwiej projektować niewielkie, zamknięte moduły niż cały kompletny system. W ten sposób o wiele prościej jest też dodawać nowe moduły czy poprawiać funkcjonowanie istniejących elementów.
    * Dziel się z innymi - świat open-source jest świetny. Uczestnicz w nim, korzystając z doświadczeń innych.
    * Rób co Ci się podoba, nie rób tego, czego nie chcesz - to tylko hobby. Jeśli nie lubisz się czymś zajmować, to rozważ zlecenie tego komuś, nawet komercyjnie.
    * Dokumentuj: łatwo powiedzieć, trudniej zrobić. Każdy jednak powtórzy, że dokumentowanie projektu jest bardzo istotne. Obecnie wykorzystać do tego można systemy wsparcia, takie jak systemy kontroli wersji Git itp.

    Dalsze plany

    Jeśli chodzi o sprzęt autor zamierza:

    * Skonstruować bardziej złożony układ generacji impulsów wysokiego napięcia dla przetwornika.
    * Dołożyć do układy multiplekser, co umożliwiłoby współpracować układowi z wielokanałowymi sondami.
    * Przetestować układ z innymi sondami ultradźwiękowymi.
    * Finalnie, zestawić wszystkie moduły w jednym układzie, kompatybilnym z wyprowadzeniami Raspberry Pi 3.

    Jeśli chodzi natomiast o oprogramowanie kolejne kroki obejmują:

    * Dodanie bezprzewodowej kontroli systemu poprzez RPi.
    * Przechowywanie obrazów w formacie kompatybilnym z standardem DICOM.
    * Publiczne udostępnienie stworzonych narzędzi.

    Źródło: https://kelu124.gitbooks.io/echomods/content/RPI.html

    Cool? Ranking DIY
    Do you have a problem with Arduino? Ask question. Visit our forum Arduino.
    About Author
    ghost666
    Translator, editor
    Offline 
    Fizyk z wykształcenia. Po zrobieniu doktoratu i dwóch latach pracy na uczelni, przeszedł do sektora prywatnego, gdzie zajmuje się projektowaniem urządzeń elektronicznych i programowaniem. Od 2003 roku na forum Elektroda.pl, od 2008 roku członek zespołu redakcyjnego.
    ghost666 wrote 11688 posts with rating 9875, helped 157 times. Live in city Warszawa. Been with us since 2003 year.
  • Computer Controls
  • #2
    jousto
    Level 17  
    Zbudowanie i uruchomienie to jedno ale interpretacja wyników to całkiem inna bajka