Lutowanie elementów do montażu powierzchniowego może być często sporym wyzwaniem, szczególnie że niektóre elementy mają wyprowadzenia co 0,4 mm lub mniej, tak jak w przypadku obudów TQFP a liczba pinów sięgać może setek. W takich przypadkach dedykowany do lutowania mikroskop jest bardzo przydatnym narzędziem.
Niestety tego rodzaju mikroskopy są dosyć drogie, dlatego też warto spróbować tego rodzaju przyrząd skonstruować samodzielnie. W poniższym artykule omówimy projekt tego rodzaju systemu z oparciu o Raspberry Pi Zero, które nadaje strumień wideo Full HD bezpośrednio do odpowiedniego monitora. System ten wykazuje pomijalne opóźnienia, co pozwala bezproblemowo lutować z jego wykorzystaniem. Jeśli do przesyłania strumienia wideo wykorzystać chcemy WiFi to wtedy opóźnienia są większe - około pół sekundy, co umożliwia jedynie wykorzystanie mikroskopu do do inspekcji polutowanych już płytek drukowanych.
Dodatkowo, jeśli chcemy można mikroskop uczynić w pełni przenośnym. Dzięki dołączeniu zasilania bateryjnego i nadawaniu wideo przez WiFi mikroskop można używać jako w pełni przenośny system do inspekcji PCB i innych drobnych elementów.
Krok 1: Narzędzia i potrzebne elementy
Aby zbudować mikroskop potrzebować będziemy (ceny w przybliżeniu):
1 x Komputer Raspberry Pi Zero [10?]
1 x Moduł Raspberry Pi Camera [8?] - Jako że trzeba przerobić moduł z kamerą lepiej jest zakupić starszą wersję z sensorem 5 MP - autor nie daje gwarancji, że taka samą możliwość modyfikacji daje nowy moduł z sensorem 8 MP. Dzięki modyfikacji możliwe będzie ostrzenie na przedmiotach znajdujących się bardzo blisko.
1 x Kabel do kamery dla Raspberry Pi Zero [2?] - RPi Zero ma inne gniazdo do podłączenia kamery, przez co potrzebny jest specjalny kabel-adaptor do podłączenia kamery do tego modułu.
1 x Plastikowa suwmiarka - im tańsza tym lepsza.
1 x Plastikowa linijka o szerokości mniejszej niż długość szczęk suwmiarki. Długość około 10..15 cm będzie odpowiednia.
1 x Aluminiowa obudowa [4?] - do wykorzystania jako podstawka. Musi być to pudełko, aby móc włożyć do środka obciążenie, które umożliwi stabilne ustawienie mikroskopu.
1 x Kabel HDMI i adapter HDMI do miniHDMI albo kabel HDMI-miniHDMI
1 x Zasilacz 5 V z wyjściem microUSB. Wystarczy zasilacz o wydajności prądowej około 500 mA, jako że malina pobiera nie więcej niż 400 mA naet podczas nadawania strumienia wideo poprzez WiFi, ale najlepiej jest zakupić zasilacz 1 A dla bezpieczeństwa.
1 x karta MicroSD [5?] - wystarczy i pojemności nawet 4 GB, ale dobrze aby była dobrej jakości i klasy 10.
4 x Śruby M2 wraz z nakrętkami.
Dodatkowo potrzebne będą:
* Pistolet z klejem na ciepło.
* Opaski zaciskowe.
* Dremel lub podobne narzędzie z dyskiem do cięcia plastiku i wiertłem pod śrubki M2.
* Brzeszczot lub inne narzędzie do przycięcia śrub do odpowiedniej długości.
* Śrubokręt.
Jeśli chcemy skonstruować przenośny mikroskop to dokupić musimy dodatkowo:
1 x Ogniwo LiPo [8?] - pojemność zależy od tego ile chcemy używać mikroskopu po jednokrotnym naładowaniu. Obliczając czas pracy pamiętajmy, że przetwornica nie ma 100% skuteczności.
1 x Ładowarka ogniw LiPo i przetwornica 5 V [20?] - Do tego projektu autor wykorzystał Adafruit PowerBoost 1000C, jednakże istnieją tańsze alternatywy.
1 x 40-Pinowe złącz z goldpinami (męskie)
1 x 40-Pinowe gniazdo do goldpinów (damskie)
1 x 8-Pinowe złącze męskie
1 x 8-Pinowe złącze damskie
1 x Kawałek płytki uniwersalnej, na której zlutujemy ze sobą piny i gdzie zamontujemy ładowarkę i przetwornicę 5 V.
1 x Opornik 1K
1 x Opornik 10K
1 x Tranzystor BC547 lub inny tranzystor NPN ogólnego przeznaczenia
1 x Przełącznik chwilowy DPST
Dodatkowo przydadzą się nam:
* Trochę kabelka
* Lutownica
* Obcinaczki do kabli
Całkowity koszt wersji stacjonarnej to około 30 euro, dodatkowe 30 euro potrzebne jest do skonstruowania wersji przenośnej mikroskopu.
Krok 2: Przygotowanie karty MicroSD
Przygotowania systemu dla RPi rozpocząć musimy od wgrania obrazu na kartę microSD. Najlepiej jest po prost pobrać aktualną wersję Raspbiana Lite z raspberry.org i wgrać ją na kartę SD. Jeśli robimy to pod Linuxem, to po ściągnięciu obrazu wystarczy wpisać w konsoli:
gdzie X to nazwa urządzenie pod jakim zgłasza się karta SD. Przed wgrywaniem obrazu upewnijmy się, że to urządzenie to na pewno karta microSD. Jeśli jest ona zamontowana to przed wgrywaniem obrazu musimy odmontować ją w systemie:
Pod Windowsem skorzystać możemy z narzędzi takich jak na przykład Win32DiskImager który posłuży nam do wgrania rozpakowanego obrazu na kartę. Więcej informacji o tym jak to zrobić znajdziemy w dokumentacji RPi.
Z kolei pod MacOSem wykorzystać możemy program Etcher, który pozwala wgrać obraz na kartę microSD. Można też wykorzystać polecenie dd w konsoli, jednakże jego wykorzystanie w OS X jest trochę inne niż pod Linuxem.
Konfiguracja Wi-Fi
Po wgraniu obrazu na kartę microSD możemy skonfigurować połączenie z siecią WiFi i włączyć SSH.
Po pierwsze musimy stworzyć pusty folder pod nazwą SSH na bootowalnej partycji systemu. Pod Windowsem partycja ta będzie najpewniej jedyną widoczną partycją, gdyż system ten nie widzi partycji ext4. Jeśli nie widzimy partycji na karcie wystarczy wyjąć i włożyć ponownie kartę do czytnika w komputerze.
Następnie wewnątrz foldery tworzymy plik tekstowy nazywający się wpa_supplicant.conf, gdzie wpisujemy ustawienia połączenia bezprzewodowego. Plik wygląda następująco:
* proto może przyjmować wartość RSN, WPA2, WPA lub WPA1 zależnie od konfiguracji sieci WiFi.
* key_mgmt przyjąć może wartość WPA-PSK lub WPA-EAP.
* pairwise przyjmuje wartości takie jak CCMP dla WPA2 lub TKIP dla WPA1.
* auth_alg najpewniej przyjmie wartość OPEN, pozostałe opcje to LEAP i SHARED.
Pozostałe parametry są dosyć zrozumiałem.
Teraz odmontujmy/wyjmijmy kartę microSD z komputera i włóżmy do 'Maliny'. Teraz podłączmy wszystko do modułu - monitor HDMI, kamerę i finalnie zasilacz. Po kilku sekundach komputer powinien uruchomić się i połączyć automatyczne do zdefiniowanej sieci WiFi. Na ekranie powinniśmy zobaczyć numer IP, jaki komputer dostał od serwera DHCP w sieci.
Krok 3: Połączenie poprzez SSH
Jeśli nie podłączyliśmy monitora do komputera, to istnieje kilka innych sposobów na sprawdzenie jakie IP zostało przydzielone do komputera. Jednym z nich jest sprawdzenie danych na routerze - to gdzie znajdują się te informacje zależy od modelu urządzenia, więc nie będziemy tego opisywać.
Innym rozwiązaniem jest skorzystanie z Linuxowego polecenia nmap:
Gdzie x.x.x.x to adres IP naszej sieci WiFi, na przykłąd 192.168.1.0 a y to liczba jedynek w masce sieciowej w zapisie binarnym. Na przykład dla maski 255.255.255.0 liczba jedynek wynosi 24 i taką wartość wpisujemy. W tej konkretnej sieci komenda wygląda następująco:
Zwraca ona następujące informacje:
Jak łatwo możemy odczytać z skanu sieci lokalnej IP naszego Raspberry Pi to 192.168.1.4.
Istnieje także Windowsowa wersja nmapa, podobnie jak w Mac OS X.
Po uzyskaniu numeru IP 'Maliny' możemy połączyć się z nią przez SSH. W przypadku Linuxa i OS X wystarczy, że wpiszemy w konsoli:
Pod Windowsem skorzystać możemy na przykład z PuTTY.
Domyślne hasło użytkownika pi to raspberry
Krok 4: Konfiguracja systemu
Opisane poniżej kroki to ogólna konfiguracja Raspberry Pi, jaką powinno się wykonać za każdym razem gdy uruchamiany nowy system. Po pierwsze musimy zmienić hasło użytkownika pi z domyślnego. Wpisujemy w terminalu:
Następnie ustawiamy wartości lokalizacji:
Następnie konfigurujemy strefę czasową:
I finalnie - aktualizujemy system:
Teraz możemy włączyć kamerę, aby to zrobić przechodzimy do konfiguratora:
W menu wybieramy Interfacing Options a następnie Camera option. Na pytanie czy uruchomić kamerę odpowiadamy Yes i wybieramy OK, wychodzimy z menu i restartujemy komputer. Po resecie i ponownym podłączeniu się do systemu po SSH przetestować możemy czy kamera została poprawnie włączona. Wpisujemy komendę:
W tym momencie powinniśmy zobaczyć na wyjściu HDMI obraz z kamery. Wyłączy się on po naciśnięciu Ctrl+C. Możemy przerzucać obraz w pionie i poziomie dodając przełączniki -vf lub -hf.
Konfiguracja statycznego IP
Aby ustawić statyczne IP Raspberry Pi musimy edytować plik /etc/dhcpcd.conf. Wykorzystać do tego możemy na przykład edytor nano:
Na końcu pliku dodajemy:
W zmiennej domain_name_servers dodać możemy kilka serwerów oddzielając numery IP spacjami. Dodać możemy np. IP DNSa Google (8.8.8.8) jako zapasowy. Naciskamy CTRL+X aby wyjść z nano, y aby zapisać i Enter aby potwierdzić.
Teraz restartować możemy klienta DHCP:
Sesja SSH może w tym momencie się zawiesić - nie ma się co przejmować, bo przecież zmieniliśmy IP komputera. Zmieńmy IP jakie wykorzystujemy do połączenia się z 'Maliną' po SSH i już.
Krok 5: Instalacja GStreamera
Istnieje szereg sposobów na jakie można przesyłać strumień wideo z Raspberry Pi po sieci, jednakże tym, który zapewnia najmniejsze opóźnienia jest wykorzystanie GStreamera. Aby zainstalować to oprogramowanie w konsoli wpisać wystarczy:
Pobranie i instalacja tego softu może chwilę zająć, gdyż program ma dosyć szerokie zależności. Po instalacji można od razu z niego skorzystać. Aby z jego pomocą przekierować obraz z kamery do wyjścia HDMI i po sieci WiFi naraz wystarczy w linii komend wpisać:
Spowoduje to wygenerowanie strumienia RTP na IP Raspberry Pi na porcie 5000, który może być odbierany z wykorzystaniem dowolnego komputera z zainstalowanym GStreamerem. W konsoli odbiorcy wpisać wystarczy:
Instalacja tego programu na dowolnej maszynie z Debianem przebiega tak samo jak opisano powyżej. Inne dystrybucje Linuxa także powinny mieć ten progrram w swoich repozytoriach. Istnieją też wersje programu dla systemów operacyjnych Windows i Mac OS X.
Krok 6: Konfiguracja strumienia - automatyczny start przy bootowaniu
Oczywiście, wykorzystując podaną w poprzednim kroku komendę możemy włączać transmisję w dowolnym momencie, jednakże wymaga to połączenia się do Raspberry Pi pi SSH i nie jest ogólnie zbyt wygodne. Lepiej jest skonfigurować komputer tak, aby automatycznie załączał przesyłanie strumienia wideo do odbiorników HDMI i WiFi po załadowaniu systemu operacyjnego.
Aby zrealizować automatyczny start transmisji najpierw musimy korzystając z nano stworzyć plik:
wewnątrz którego wpisujemy dwie linijki kodu:
Przełączniki -vf i -hf przerzucają obraz w pionie i poziomie, jak napisano powyżej. Zależnie od ustawienia kamery względem obiektu mogą (acz nie muszą) one być konieczne. Po wpisaniu zawartości skryptu zamykamy nano zapisując plik. Następnie musimy nadać mu prawo do uruchamiania:
Następnie stworzyć musimy kolejny plik: plik usługi systemowej w systemd:
Do pliku tego kopiujemy następującą zawartość:
Zapisujemy plik i wychodzimy z nano. Przetestować działanie usługi możemy wpisując w konsoli:
Jeśli wszystko działa jak powinno to możemy dodać dodać wpis automatycznego jej uruchamiania przy starcie systemu:
Krok 7: Konfigurowanie plików jako tylko do odczytu
Dużym problemem kart SD i generalnie dysków FLASH jest skończona liczba operacji zapisu i odczytu przed jego uszkodzeniem. Zaleca się, aby dane na karcie SD oznaczone były jako tylko do odczytu, co z jednej strony przedłuży żywotność karty, a z drugiej umożliwi nam wyłączanie urządzenia bez inicjowania poprawnej sekwencji wyłączenia systemu.
Po pierwsze, aby to zrobić, musimy usunąć część pakietów. Skorzystajmy w tym celu z następującej komendy:
Dalej, musimy zastąpić rsysloga demonem syslogd busyboxa, który pozwoli nam na trzymanie logów z działania systemu w pamięci, a nie na dysku. Instalujemy taki syslog:
Teraz aby odczytać logi systemowe wystarczy skorzystać z komendy logread.
Teraz przemieścić musimy /etc/resolv.conf do /tmp, który montowany będzie w pamięci, gdyż pozostać musi w on pozwalać na zapis:
Inny plik, który musi pozostać edytowalny to /var/lib/systemd/random-seed, zatem podobnie jak powyżej:
jako że plik random-seed nie jest normalnie generowany przy starcie systemu a zawartość /tmp jest ulotna, to musimy koniecznie wprowadzić do pliku usługi systemd0random-seed kilka zmian, najprościej jest edytować plik konfigurcyjny z pomocą nano:
na końcu pliku dodajemy:
Dzięki czemu plik ten wygląda teraz tak:
Teraz możemy przeładować usługę:
Kolejną zmianą jest edycja pliki /etc/fstab.
Do wpisów dla partycji /dev/mmcblk0p1 oraz dev/mmcblk0p2 dodać musimy pzełącznik ro (read-only - tylko do odczytu). Następnie dodać musimy kilka wpisów, aby foldery /tmp, /var/log czy /var/tmp montowane były w pamięci operacyjnej. Po wprowadzeniu omawianych zmian plik wyglądać powinien mnie-więcej tak:
Finalnie edytować możemy plik cmdline.txt,
Na końcu pliku dodajemy opcje fastboot noswap ro, aby wyłączyć sprawdzanie systemu plików, swap i zmusić aby system plików samontowany był jako tylko do odczytu. Plik /boot/cmdline.txt powinien zawierać wtedy takie wpisy:
Teraz możemy zrestartować system - zmiany powinny być widoczne po uruchomieniu się systemu.
Komendy takie jak:
Powinny zwrócić odpowiedź, że "Read-only file system". Jeśli jest tak, to bezpiecznie możemy odłączać zasilanie od naszego Raspberry Pi w dowolnym momencie bez ryzyka uszkodzeń karty czy utraty danych.
Aby tymczasowo zamontować system z możliwością dokonywania zmian wystarczy wpisać komendę:
Po wprowadzeniu zmian można zmienić ustawienie z powrotem na ro:
Jeśli chcemy wykonywać aktualizacje systemu, warto pamiętać, aby zamontować /boot i / z możliwością zapisu, gdyż to są miejsca, gdzie zapisywane są nowe wersje firmware i jądra systemu.
Ten krok to ostatni etap zabawy z oprogramowaniem. Tera przejść możemy do konstrukcji mechanicznej i przeróbki optyki kamery.
Krok 8: Modyfikacja modułu kamery
Aby kamera mogła pracować jako mikroskop musi ona być zdolna do obrazowania obiektów, znajdujących się bardzo blisko oraz zapewniać powiększenie. Aby było to możliwe musimy zmienić odległość pracy obiektywu.
Obiektyw kamery jest wkręcony w jej obudowę i zabezpieczony niewielką ilością kleju. Musimy usunąć obiektyw, złapmy więc go delikatnie szczypcami i poruszajmy aby klej puścił. Gdy już stanie się to, to możemy bez problemu wykręcić obiektyw z obudowy kamery i oczyścić go z resztek kleju. Po dokonaniu tej operacji wkręćmy go w obudowę, ale jedynie odrobinę, aby tylko nie wypadł po odwróceniu do góry nogami modułu. Włączmy Raspberry Pi i podłączmy monitor, aby obserwować obraz z kamery.
Musimy teraz ustawić obiektyw tak, aby kamera była w stanie złapać obraz na elementach będących około 10 cm od obiektywu. Nie warto jest zmniejszać tej odległości mocniej gdyż taka odległość pracy jest optymalna, aby móc pracować pod tym mikroskopem. Jeśli podczas pracy będziemy chcieli zmienić odległość - nie ma problemu, zawsze można dokonać regulacji, więc nie ma co się martwić perfekcyjnym ustawieniem w danej chwili.
Krok 9: Montaż mikroskopu
Teraz przystąpić możemy do montażu mikroskopu. Najpierw wywiercić musimy w górnej części szczęk suwmiarki dwa otwory wielkości zakupionych śrubek. Taką samą parę otworów wiercimy w boku aluminiowej obudowy. Po wykonaniu obu par otworów możemy zamontować suwmiarkę do obudowy-podstawy mikroskopu.
W kolejnym kroku montażu mikroskopu musimy wyciąć w suwmiarce szczelinę wielkości linijki. Najlepiej robić to bardzo delikatnie, gdyż w innym przypadku łatwo złamać plastikowy element suwmiarki lub wyciać zbyt duży otwór. Po wykonaniu tej operacji możemy wsunąć linijkę w szczękę suwmiarki, jak pokazano na zdjęciach.
Teraz możemy zamontować na linijce moduł kamery. W tym celu wykonajmy w niej cztery otwory o takim rozstawie jak w module do obrazowania i przykręćmy przygotowanymi wcześniej śrubami moduł kamery do linijki.
Po przygotowaniu wszystkich elementów możemy finalnie zmontować wszystko w całość. Przykręcamy suwmiarkę do metalowej podstawy, jeśli jeszcze tego nie zrobiliśmy i montujemy linijkę w szczelinie w suwmiarce, mocując ją następnie odrobiną kleju na gorąco, aby się nie poruszała. Dobrze jest nałożyć klej z obu stron oraz z góry i z dołu.
Finalnie, do ruchomej części suwmiarki (tej samej, na której znajduje się moduł kamery) zamocować możemy Raspberry Pi Zero. Najwygodniej jest przymocować komputer z pomocą opasek zaciskowych. Po zamontowaniu RPi na suwmiarce możemy podłączyć kamerę do komputera.
Odległość pomiędzy kamerą a obrazowanym przedmiotem najprościej jest regulować przesuwając suwmiarkę w górę i w dół. Dodatkowo można dostrajać odległość obrazowania poruszając minimalnie obiektywem kamery.
Krok 10: Jak sprawić, aby urządzenie było przenośne
Jeśli chcemy, aby nasz mikroskop był przenośny musimy w pierwszej kolejności zasilić z baterii moduł Rasberry Pi.
Autor wykorzystał w tym celu moduł PowerBoost 1000C wraz z odpowiednią baterią. Moduł ten wyposażony jest w przydatną funkcję ? przetwornica weń wbudowana aktywowana jest stanem wysokim na jednym z pinów. W momencie gdy na pinie tym występuje stan niski przetwornica nie działa.
Jednocześnie skonfigurować możemy jeden z pinów GPIO Rasberry Pi jako wyjście ? dzięki temu gdy Raspberry Pi będzie załączone to będzie tam stan wysoki, a gdy komputer wyłączy się to może także wyłączy przetwornicę dzięki temu możemy, łącząc te dwie funkcje obu urządzeń, zrealizować programowy wyłącznik mikroskopu.
Zacznijmy od części programowej. Musimy najpierw włączyć pin GPIO jako wyjście i ustawić je w stan wysoki, tak aby podtrzymywało załączenie przetwornicy od momentu uruchomienia komputera do wyjścia z systemu.
Realizacja tego zadania jest bardzo prosta, wystarczy zedytować plik /etc/config.txt:
dodając na końcu taką linijkę:
Teraz po każdym załączeniu maliny pin GPIO26 (pin numer 37 na wyprowadzeniu z komputera) będzie w stanie wysokim. Zmierzmy napięcie między nim a masą po załączeniu komputera - woltomierz powinien wskazywać 3,3 V. Po wyłączeniu komputera poleceniem shutdown pin wskazywać powinien 0 V.
Gdy już to zrobiliśmy napisać musimy prosty skrypt monitorujący stan innego z pinów, który zostanie skonfigurowany jako wejście. To będzie nasz wyłącznik. W tym celu wykorzystajmy bibliotekę wiringpi. Zainstalujmy ją:
I korzystając z nano stwórzmy skrypt:
Wygląda on następująco:
Oczywiście, po zapisaniu i wyjściu z nano musimy uczynić go wykonywalnym:
Musimy wiedzieć, że odczytywany pin 24 to pin GPIO19 czyli 35 pin na listwie GPIO w Raspberry Pi. Jeśli oznaczenie te są dla nas trudne do zrozumienia wystarczy zajrzeć do dokumentacji Raspberry Pi.
Następnie tworzymy plik systemd dla usługi systemowej:
W którym wpisujemy:
Finalnie, możemy uruchomić stworzoną usługę i skonfigurować ją do autostartu przy bootowaniu systemu:
Na koniec montujemy system tylko do odczytu, wracając do stanu wyjściowego, jeśli o prawa do zapisu chodzi:
Krok 11: Zasilanie z baterii
Ostatnim etapem jest podpięcie przetwornicy wraz z baterią do Raspberry Pi. Dodatkowo skonstruować musimy prosty układ z tranzystora NPN, dwóch oporników i przycisku chwilowego (np. microswitach), tak jak pokazano na schemacie.
Koniecznie trzeba też wlutować listwy pinowe do Raspberry Pi i gniazdko do tej listy na płytkę uniwersalną, a także piny dla PowerBoost. Dzięki temu przetwornica na płytce uniwersalnej nakładana będzie na 'Malinę', która zasilana będzie napięciem +5 V z przetwornicy poprzez odpowiednie goldpiny komputera.
Po zlutowaniu ze sobą elementów można połączyć wszystkie moduły w całość. W pierwszej kolejności umieszczamy RPi wraz z przetwornicą na suwmiarce i przypinamy ją spinkami. Następnie przypinamy do tego baterię, także mocując ją spinkami. Teraz możemy już podłączyć wszystko razem - zasilanie, przetwornicę, baterię i oczywiście kamerę. Na końcu wkładamy do modułu kartę microSD.
Teraz jesteśmy gotowi do pierwszego uruchomienia. Aby uruchomić system naciskamy i przytrzymujemy przycisk załączania przez około osiem sekund. Po załadowaniu się systemu komputer już sam zadba o podtrzymanie pracy przetwornicy. Aby wyłączyć system naciskamy po prostu ten sam przycisk.
Krok 12: Propozycje ulepszenia
Każdy układ zawsze można poprawić. W przypadku mikroskopu bardzo pożądane byłoby np. usunięcie dodatkowych źródeł światła z okolic kamery. Nie ma to dużego znaczenia do samego lutowania, ale jeśli chcemy robić z jego pomocą także zdjęcia to dobrze jest zadbać, aby na obrazie nie widzieć dodatkowych odbić. Jednym z nich jest czerwona dioda na module z kamerą, która odbija się w obrazowanym przedmiocie. Na szczęście łatwo jest jej się pozbyć programowo. Musimy zedytować plik /boot/config.txt korzystając z nano:
na końcu pliku dodajemy po prostu:
Teraz po resecie dioda nie będzie się już zapalała.
Większym problemem jest dioda LED w przetwornicy. Jest ona dosyć jasna i nie dość, że psuje nasze zdjęcia to męczy podczas pracy. Można usunąć diodę LED lub zmienić opornik 1 k? na większy, przez co dioda będzie słabiej świecić.
Inną modyfikacją, jest zmiana powiększenia kamery. Jeśli chcemy możemy dołożyć trochę pieniędzy do budżetu projektu i zakupić inny moduł kamery z regulowaną odległością pracy - takie są dostępne już za 20 euro. Taki moduł, jako że będzie miał dużo większy zakres regulacji da naszemu mikroskopowo o wiele więcej elastyczności.
Źródło: http://www.instructables.com/id/Raspberry-Pi-Zero-HDMIWiFi-Soldering-Microscope/
Niestety tego rodzaju mikroskopy są dosyć drogie, dlatego też warto spróbować tego rodzaju przyrząd skonstruować samodzielnie. W poniższym artykule omówimy projekt tego rodzaju systemu z oparciu o Raspberry Pi Zero, które nadaje strumień wideo Full HD bezpośrednio do odpowiedniego monitora. System ten wykazuje pomijalne opóźnienia, co pozwala bezproblemowo lutować z jego wykorzystaniem. Jeśli do przesyłania strumienia wideo wykorzystać chcemy WiFi to wtedy opóźnienia są większe - około pół sekundy, co umożliwia jedynie wykorzystanie mikroskopu do do inspekcji polutowanych już płytek drukowanych.
Dodatkowo, jeśli chcemy można mikroskop uczynić w pełni przenośnym. Dzięki dołączeniu zasilania bateryjnego i nadawaniu wideo przez WiFi mikroskop można używać jako w pełni przenośny system do inspekcji PCB i innych drobnych elementów.
Krok 1: Narzędzia i potrzebne elementy
Aby zbudować mikroskop potrzebować będziemy (ceny w przybliżeniu):
1 x Komputer Raspberry Pi Zero [10?]
1 x Moduł Raspberry Pi Camera [8?] - Jako że trzeba przerobić moduł z kamerą lepiej jest zakupić starszą wersję z sensorem 5 MP - autor nie daje gwarancji, że taka samą możliwość modyfikacji daje nowy moduł z sensorem 8 MP. Dzięki modyfikacji możliwe będzie ostrzenie na przedmiotach znajdujących się bardzo blisko.
1 x Kabel do kamery dla Raspberry Pi Zero [2?] - RPi Zero ma inne gniazdo do podłączenia kamery, przez co potrzebny jest specjalny kabel-adaptor do podłączenia kamery do tego modułu.
1 x Plastikowa suwmiarka - im tańsza tym lepsza.
1 x Plastikowa linijka o szerokości mniejszej niż długość szczęk suwmiarki. Długość około 10..15 cm będzie odpowiednia.
1 x Aluminiowa obudowa [4?] - do wykorzystania jako podstawka. Musi być to pudełko, aby móc włożyć do środka obciążenie, które umożliwi stabilne ustawienie mikroskopu.
1 x Kabel HDMI i adapter HDMI do miniHDMI albo kabel HDMI-miniHDMI
1 x Zasilacz 5 V z wyjściem microUSB. Wystarczy zasilacz o wydajności prądowej około 500 mA, jako że malina pobiera nie więcej niż 400 mA naet podczas nadawania strumienia wideo poprzez WiFi, ale najlepiej jest zakupić zasilacz 1 A dla bezpieczeństwa.
1 x karta MicroSD [5?] - wystarczy i pojemności nawet 4 GB, ale dobrze aby była dobrej jakości i klasy 10.
4 x Śruby M2 wraz z nakrętkami.
Dodatkowo potrzebne będą:
* Pistolet z klejem na ciepło.
* Opaski zaciskowe.
* Dremel lub podobne narzędzie z dyskiem do cięcia plastiku i wiertłem pod śrubki M2.
* Brzeszczot lub inne narzędzie do przycięcia śrub do odpowiedniej długości.
* Śrubokręt.
Jeśli chcemy skonstruować przenośny mikroskop to dokupić musimy dodatkowo:
1 x Ogniwo LiPo [8?] - pojemność zależy od tego ile chcemy używać mikroskopu po jednokrotnym naładowaniu. Obliczając czas pracy pamiętajmy, że przetwornica nie ma 100% skuteczności.
1 x Ładowarka ogniw LiPo i przetwornica 5 V [20?] - Do tego projektu autor wykorzystał Adafruit PowerBoost 1000C, jednakże istnieją tańsze alternatywy.
1 x 40-Pinowe złącz z goldpinami (męskie)
1 x 40-Pinowe gniazdo do goldpinów (damskie)
1 x 8-Pinowe złącze męskie
1 x 8-Pinowe złącze damskie
1 x Kawałek płytki uniwersalnej, na której zlutujemy ze sobą piny i gdzie zamontujemy ładowarkę i przetwornicę 5 V.
1 x Opornik 1K
1 x Opornik 10K
1 x Tranzystor BC547 lub inny tranzystor NPN ogólnego przeznaczenia
1 x Przełącznik chwilowy DPST
Dodatkowo przydadzą się nam:
* Trochę kabelka
* Lutownica
* Obcinaczki do kabli
Całkowity koszt wersji stacjonarnej to około 30 euro, dodatkowe 30 euro potrzebne jest do skonstruowania wersji przenośnej mikroskopu.
Krok 2: Przygotowanie karty MicroSD
Przygotowania systemu dla RPi rozpocząć musimy od wgrania obrazu na kartę microSD. Najlepiej jest po prost pobrać aktualną wersję Raspbiana Lite z raspberry.org i wgrać ją na kartę SD. Jeśli robimy to pod Linuxem, to po ściągnięciu obrazu wystarczy wpisać w konsoli:
Code: bash
gdzie X to nazwa urządzenie pod jakim zgłasza się karta SD. Przed wgrywaniem obrazu upewnijmy się, że to urządzenie to na pewno karta microSD. Jeśli jest ona zamontowana to przed wgrywaniem obrazu musimy odmontować ją w systemie:
Code: bash
Pod Windowsem skorzystać możemy z narzędzi takich jak na przykład Win32DiskImager który posłuży nam do wgrania rozpakowanego obrazu na kartę. Więcej informacji o tym jak to zrobić znajdziemy w dokumentacji RPi.
Z kolei pod MacOSem wykorzystać możemy program Etcher, który pozwala wgrać obraz na kartę microSD. Można też wykorzystać polecenie dd w konsoli, jednakże jego wykorzystanie w OS X jest trochę inne niż pod Linuxem.
Konfiguracja Wi-Fi
Po wgraniu obrazu na kartę microSD możemy skonfigurować połączenie z siecią WiFi i włączyć SSH.
Po pierwsze musimy stworzyć pusty folder pod nazwą SSH na bootowalnej partycji systemu. Pod Windowsem partycja ta będzie najpewniej jedyną widoczną partycją, gdyż system ten nie widzi partycji ext4. Jeśli nie widzimy partycji na karcie wystarczy wyjąć i włożyć ponownie kartę do czytnika w komputerze.
Następnie wewnątrz foldery tworzymy plik tekstowy nazywający się wpa_supplicant.conf, gdzie wpisujemy ustawienia połączenia bezprzewodowego. Plik wygląda następująco:
country=<COUNTRY_CODE>
network={
ssid=<SSID>
psk=<PASSWORD>
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
auth_alg=OPEN
}
* proto może przyjmować wartość RSN, WPA2, WPA lub WPA1 zależnie od konfiguracji sieci WiFi.
* key_mgmt przyjąć może wartość WPA-PSK lub WPA-EAP.
* pairwise przyjmuje wartości takie jak CCMP dla WPA2 lub TKIP dla WPA1.
* auth_alg najpewniej przyjmie wartość OPEN, pozostałe opcje to LEAP i SHARED.
Pozostałe parametry są dosyć zrozumiałem.
Teraz odmontujmy/wyjmijmy kartę microSD z komputera i włóżmy do 'Maliny'. Teraz podłączmy wszystko do modułu - monitor HDMI, kamerę i finalnie zasilacz. Po kilku sekundach komputer powinien uruchomić się i połączyć automatyczne do zdefiniowanej sieci WiFi. Na ekranie powinniśmy zobaczyć numer IP, jaki komputer dostał od serwera DHCP w sieci.
Krok 3: Połączenie poprzez SSH
Jeśli nie podłączyliśmy monitora do komputera, to istnieje kilka innych sposobów na sprawdzenie jakie IP zostało przydzielone do komputera. Jednym z nich jest sprawdzenie danych na routerze - to gdzie znajdują się te informacje zależy od modelu urządzenia, więc nie będziemy tego opisywać.
Innym rozwiązaniem jest skorzystanie z Linuxowego polecenia nmap:
Code: bash
Gdzie x.x.x.x to adres IP naszej sieci WiFi, na przykłąd 192.168.1.0 a y to liczba jedynek w masce sieciowej w zapisie binarnym. Na przykład dla maski 255.255.255.0 liczba jedynek wynosi 24 i taką wartość wpisujemy. W tej konkretnej sieci komenda wygląda następująco:
Code: bash
Zwraca ona następujące informacje:
Starting Nmap 6.47 ( http://nmap.org ) at 2017-04-16 12:34 EEST
Nmap scan report for 192.168.1.1
Host is up (0.00044s latency).
MAC Address: 12:95:B9:47:25:4B (Intracom S.A.)
Nmap scan report for 192.168.1.2
Host is up (0.0076s latency).
MAC Address: 1D:B8:77:A2:58:1F (HTC)
Nmap scan report for 192.168.1.4
Host is up (0.00067s latency).
MAC Address: 88:27:F9:43:11:EF (Raspberry Pi Foundation)
Nmap scan report for 192.168.1.180
Host is up.
Nmap done: 256 IP addresses (4 hosts up) scanned in 2.13 seconds
Jak łatwo możemy odczytać z skanu sieci lokalnej IP naszego Raspberry Pi to 192.168.1.4.
Istnieje także Windowsowa wersja nmapa, podobnie jak w Mac OS X.
Po uzyskaniu numeru IP 'Maliny' możemy połączyć się z nią przez SSH. W przypadku Linuxa i OS X wystarczy, że wpiszemy w konsoli:
Code: bash
Pod Windowsem skorzystać możemy na przykład z PuTTY.
Domyślne hasło użytkownika pi to raspberry
Krok 4: Konfiguracja systemu
Opisane poniżej kroki to ogólna konfiguracja Raspberry Pi, jaką powinno się wykonać za każdym razem gdy uruchamiany nowy system. Po pierwsze musimy zmienić hasło użytkownika pi z domyślnego. Wpisujemy w terminalu:
Code: bash
Następnie ustawiamy wartości lokalizacji:
Code: bash
Następnie konfigurujemy strefę czasową:
Code: bash
I finalnie - aktualizujemy system:
Code: bash
Teraz możemy włączyć kamerę, aby to zrobić przechodzimy do konfiguratora:
Code: bash
W menu wybieramy Interfacing Options a następnie Camera option. Na pytanie czy uruchomić kamerę odpowiadamy Yes i wybieramy OK, wychodzimy z menu i restartujemy komputer. Po resecie i ponownym podłączeniu się do systemu po SSH przetestować możemy czy kamera została poprawnie włączona. Wpisujemy komendę:
Code: bash
W tym momencie powinniśmy zobaczyć na wyjściu HDMI obraz z kamery. Wyłączy się on po naciśnięciu Ctrl+C. Możemy przerzucać obraz w pionie i poziomie dodając przełączniki -vf lub -hf.
Konfiguracja statycznego IP
Aby ustawić statyczne IP Raspberry Pi musimy edytować plik /etc/dhcpcd.conf. Wykorzystać do tego możemy na przykład edytor nano:
Code: bash
Na końcu pliku dodajemy:
interface wlan0
static ip_address=<IP-RASPBERRY-PI>
static routers=<IP-ROUTERA>
static domain_name_servers=<IP-ROUTERA>
W zmiennej domain_name_servers dodać możemy kilka serwerów oddzielając numery IP spacjami. Dodać możemy np. IP DNSa Google (8.8.8.8) jako zapasowy. Naciskamy CTRL+X aby wyjść z nano, y aby zapisać i Enter aby potwierdzić.
Teraz restartować możemy klienta DHCP:
Code: bash
Sesja SSH może w tym momencie się zawiesić - nie ma się co przejmować, bo przecież zmieniliśmy IP komputera. Zmieńmy IP jakie wykorzystujemy do połączenia się z 'Maliną' po SSH i już.
Krok 5: Instalacja GStreamera
Istnieje szereg sposobów na jakie można przesyłać strumień wideo z Raspberry Pi po sieci, jednakże tym, który zapewnia najmniejsze opóźnienia jest wykorzystanie GStreamera. Aby zainstalować to oprogramowanie w konsoli wpisać wystarczy:
Code: bash
Pobranie i instalacja tego softu może chwilę zająć, gdyż program ma dosyć szerokie zależności. Po instalacji można od razu z niego skorzystać. Aby z jego pomocą przekierować obraz z kamery do wyjścia HDMI i po sieci WiFi naraz wystarczy w linii komend wpisać:
Code: bash
Spowoduje to wygenerowanie strumienia RTP na IP Raspberry Pi na porcie 5000, który może być odbierany z wykorzystaniem dowolnego komputera z zainstalowanym GStreamerem. W konsoli odbiorcy wpisać wystarczy:
Code: bash
Instalacja tego programu na dowolnej maszynie z Debianem przebiega tak samo jak opisano powyżej. Inne dystrybucje Linuxa także powinny mieć ten progrram w swoich repozytoriach. Istnieją też wersje programu dla systemów operacyjnych Windows i Mac OS X.
Krok 6: Konfiguracja strumienia - automatyczny start przy bootowaniu
Oczywiście, wykorzystując podaną w poprzednim kroku komendę możemy włączać transmisję w dowolnym momencie, jednakże wymaga to połączenia się do Raspberry Pi pi SSH i nie jest ogólnie zbyt wygodne. Lepiej jest skonfigurować komputer tak, aby automatycznie załączał przesyłanie strumienia wideo do odbiorników HDMI i WiFi po załadowaniu systemu operacyjnego.
Aby zrealizować automatyczny start transmisji najpierw musimy korzystając z nano stworzyć plik:
Code: bash
wewnątrz którego wpisujemy dwie linijki kodu:
Code: bash
Przełączniki -vf i -hf przerzucają obraz w pionie i poziomie, jak napisano powyżej. Zależnie od ustawienia kamery względem obiektu mogą (acz nie muszą) one być konieczne. Po wpisaniu zawartości skryptu zamykamy nano zapisując plik. Następnie musimy nadać mu prawo do uruchamiania:
Code: bash
Następnie stworzyć musimy kolejny plik: plik usługi systemowej w systemd:
Code: bash
Do pliku tego kopiujemy następującą zawartość:
[Unit]
Description=Network Video Streaming
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/local/bin/network-streaming.sh
StandardOutput=journal+console
User=pi
Restart=on-failure
[Install]
WantedBy=multi-user.target
Zapisujemy plik i wychodzimy z nano. Przetestować działanie usługi możemy wpisując w konsoli:
Code: bash
Jeśli wszystko działa jak powinno to możemy dodać dodać wpis automatycznego jej uruchamiania przy starcie systemu:
Code: bash
Krok 7: Konfigurowanie plików jako tylko do odczytu
Dużym problemem kart SD i generalnie dysków FLASH jest skończona liczba operacji zapisu i odczytu przed jego uszkodzeniem. Zaleca się, aby dane na karcie SD oznaczone były jako tylko do odczytu, co z jednej strony przedłuży żywotność karty, a z drugiej umożliwi nam wyłączanie urządzenia bez inicjowania poprawnej sekwencji wyłączenia systemu.
Po pierwsze, aby to zrobić, musimy usunąć część pakietów. Skorzystajmy w tym celu z następującej komendy:
Code: bash
Dalej, musimy zastąpić rsysloga demonem syslogd busyboxa, który pozwoli nam na trzymanie logów z działania systemu w pamięci, a nie na dysku. Instalujemy taki syslog:
Code: bash
Teraz aby odczytać logi systemowe wystarczy skorzystać z komendy logread.
Teraz przemieścić musimy /etc/resolv.conf do /tmp, który montowany będzie w pamięci, gdyż pozostać musi w on pozwalać na zapis:
Code: bash
Inny plik, który musi pozostać edytowalny to /var/lib/systemd/random-seed, zatem podobnie jak powyżej:
Code: bash
jako że plik random-seed nie jest normalnie generowany przy starcie systemu a zawartość /tmp jest ulotna, to musimy koniecznie wprowadzić do pliku usługi systemd0random-seed kilka zmian, najprościej jest edytować plik konfigurcyjny z pomocą nano:
Code: bash
na końcu pliku dodajemy:
ExecStartPre=/bin/echo "" > /tmp/random-seed
Dzięki czemu plik ten wygląda teraz tak:
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/lib/systemd/systemd-random-seed load
ExecStop=/lib/systemd/systemd-random-seed save
ExecStartPre=/bin/echo "" > /tmp/random-seed
Teraz możemy przeładować usługę:
Code: bash
Kolejną zmianą jest edycja pliki /etc/fstab.
Do wpisów dla partycji /dev/mmcblk0p1 oraz dev/mmcblk0p2 dodać musimy pzełącznik ro (read-only - tylko do odczytu). Następnie dodać musimy kilka wpisów, aby foldery /tmp, /var/log czy /var/tmp montowane były w pamięci operacyjnej. Po wprowadzeniu omawianych zmian plik wyglądać powinien mnie-więcej tak:
proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults,ro 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime,ro 0 1
# a swapfile is not a swap partition, no line here
# use dphys-swapfile swap[on|off] for that
tmpfs /tmp tmpfs nosuid,nodev 0 0
tmpfs /var/log tmpfs nosuid,nodev 0 0
tmpfs /var/tmp tmpfs nosuid,nodev 0 0
Finalnie edytować możemy plik cmdline.txt,
Code: bash
Na końcu pliku dodajemy opcje fastboot noswap ro, aby wyłączyć sprawdzanie systemu plików, swap i zmusić aby system plików samontowany był jako tylko do odczytu. Plik /boot/cmdline.txt powinien zawierać wtedy takie wpisy:
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait fastboot noswap ro
Teraz możemy zrestartować system - zmiany powinny być widoczne po uruchomieniu się systemu.
Komendy takie jak:
Code: bash
Powinny zwrócić odpowiedź, że "Read-only file system". Jeśli jest tak, to bezpiecznie możemy odłączać zasilanie od naszego Raspberry Pi w dowolnym momencie bez ryzyka uszkodzeń karty czy utraty danych.
Aby tymczasowo zamontować system z możliwością dokonywania zmian wystarczy wpisać komendę:
Code: bash
Po wprowadzeniu zmian można zmienić ustawienie z powrotem na ro:
Code: bash
Jeśli chcemy wykonywać aktualizacje systemu, warto pamiętać, aby zamontować /boot i / z możliwością zapisu, gdyż to są miejsca, gdzie zapisywane są nowe wersje firmware i jądra systemu.
Ten krok to ostatni etap zabawy z oprogramowaniem. Tera przejść możemy do konstrukcji mechanicznej i przeróbki optyki kamery.
Krok 8: Modyfikacja modułu kamery
Aby kamera mogła pracować jako mikroskop musi ona być zdolna do obrazowania obiektów, znajdujących się bardzo blisko oraz zapewniać powiększenie. Aby było to możliwe musimy zmienić odległość pracy obiektywu.
Obiektyw kamery jest wkręcony w jej obudowę i zabezpieczony niewielką ilością kleju. Musimy usunąć obiektyw, złapmy więc go delikatnie szczypcami i poruszajmy aby klej puścił. Gdy już stanie się to, to możemy bez problemu wykręcić obiektyw z obudowy kamery i oczyścić go z resztek kleju. Po dokonaniu tej operacji wkręćmy go w obudowę, ale jedynie odrobinę, aby tylko nie wypadł po odwróceniu do góry nogami modułu. Włączmy Raspberry Pi i podłączmy monitor, aby obserwować obraz z kamery.
Musimy teraz ustawić obiektyw tak, aby kamera była w stanie złapać obraz na elementach będących około 10 cm od obiektywu. Nie warto jest zmniejszać tej odległości mocniej gdyż taka odległość pracy jest optymalna, aby móc pracować pod tym mikroskopem. Jeśli podczas pracy będziemy chcieli zmienić odległość - nie ma problemu, zawsze można dokonać regulacji, więc nie ma co się martwić perfekcyjnym ustawieniem w danej chwili.
Krok 9: Montaż mikroskopu
Teraz przystąpić możemy do montażu mikroskopu. Najpierw wywiercić musimy w górnej części szczęk suwmiarki dwa otwory wielkości zakupionych śrubek. Taką samą parę otworów wiercimy w boku aluminiowej obudowy. Po wykonaniu obu par otworów możemy zamontować suwmiarkę do obudowy-podstawy mikroskopu.
W kolejnym kroku montażu mikroskopu musimy wyciąć w suwmiarce szczelinę wielkości linijki. Najlepiej robić to bardzo delikatnie, gdyż w innym przypadku łatwo złamać plastikowy element suwmiarki lub wyciać zbyt duży otwór. Po wykonaniu tej operacji możemy wsunąć linijkę w szczękę suwmiarki, jak pokazano na zdjęciach.
Teraz możemy zamontować na linijce moduł kamery. W tym celu wykonajmy w niej cztery otwory o takim rozstawie jak w module do obrazowania i przykręćmy przygotowanymi wcześniej śrubami moduł kamery do linijki.
Po przygotowaniu wszystkich elementów możemy finalnie zmontować wszystko w całość. Przykręcamy suwmiarkę do metalowej podstawy, jeśli jeszcze tego nie zrobiliśmy i montujemy linijkę w szczelinie w suwmiarce, mocując ją następnie odrobiną kleju na gorąco, aby się nie poruszała. Dobrze jest nałożyć klej z obu stron oraz z góry i z dołu.
Finalnie, do ruchomej części suwmiarki (tej samej, na której znajduje się moduł kamery) zamocować możemy Raspberry Pi Zero. Najwygodniej jest przymocować komputer z pomocą opasek zaciskowych. Po zamontowaniu RPi na suwmiarce możemy podłączyć kamerę do komputera.
Odległość pomiędzy kamerą a obrazowanym przedmiotem najprościej jest regulować przesuwając suwmiarkę w górę i w dół. Dodatkowo można dostrajać odległość obrazowania poruszając minimalnie obiektywem kamery.
Krok 10: Jak sprawić, aby urządzenie było przenośne
Jeśli chcemy, aby nasz mikroskop był przenośny musimy w pierwszej kolejności zasilić z baterii moduł Rasberry Pi.
Autor wykorzystał w tym celu moduł PowerBoost 1000C wraz z odpowiednią baterią. Moduł ten wyposażony jest w przydatną funkcję ? przetwornica weń wbudowana aktywowana jest stanem wysokim na jednym z pinów. W momencie gdy na pinie tym występuje stan niski przetwornica nie działa.
Jednocześnie skonfigurować możemy jeden z pinów GPIO Rasberry Pi jako wyjście ? dzięki temu gdy Raspberry Pi będzie załączone to będzie tam stan wysoki, a gdy komputer wyłączy się to może także wyłączy przetwornicę dzięki temu możemy, łącząc te dwie funkcje obu urządzeń, zrealizować programowy wyłącznik mikroskopu.
Zacznijmy od części programowej. Musimy najpierw włączyć pin GPIO jako wyjście i ustawić je w stan wysoki, tak aby podtrzymywało załączenie przetwornicy od momentu uruchomienia komputera do wyjścia z systemu.
Realizacja tego zadania jest bardzo prosta, wystarczy zedytować plik /etc/config.txt:
Code: bash
dodając na końcu taką linijkę:
dtoverlay=gpio-poweroff,gpiopin=26,active_low
Teraz po każdym załączeniu maliny pin GPIO26 (pin numer 37 na wyprowadzeniu z komputera) będzie w stanie wysokim. Zmierzmy napięcie między nim a masą po załączeniu komputera - woltomierz powinien wskazywać 3,3 V. Po wyłączeniu komputera poleceniem shutdown pin wskazywać powinien 0 V.
Gdy już to zrobiliśmy napisać musimy prosty skrypt monitorujący stan innego z pinów, który zostanie skonfigurowany jako wejście. To będzie nasz wyłącznik. W tym celu wykorzystajmy bibliotekę wiringpi. Zainstalujmy ją:
Code: bash
I korzystając z nano stwórzmy skrypt:
Code: bash
Wygląda on następująco:
Code: bash
Oczywiście, po zapisaniu i wyjściu z nano musimy uczynić go wykonywalnym:
Code: bash
Musimy wiedzieć, że odczytywany pin 24 to pin GPIO19 czyli 35 pin na listwie GPIO w Raspberry Pi. Jeśli oznaczenie te są dla nas trudne do zrozumienia wystarczy zajrzeć do dokumentacji Raspberry Pi.
Następnie tworzymy plik systemd dla usługi systemowej:
Code: bash
W którym wpisujemy:
[Unit]
Description=Power Button Monitoring
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/local/sbin/power-button.sh
StandardOutput=journal+console
Restart=on-failure
[Install]
WantedBy=multi-user.target
Finalnie, możemy uruchomić stworzoną usługę i skonfigurować ją do autostartu przy bootowaniu systemu:
Code: bash
Na koniec montujemy system tylko do odczytu, wracając do stanu wyjściowego, jeśli o prawa do zapisu chodzi:
Code: bash
Krok 11: Zasilanie z baterii
Ostatnim etapem jest podpięcie przetwornicy wraz z baterią do Raspberry Pi. Dodatkowo skonstruować musimy prosty układ z tranzystora NPN, dwóch oporników i przycisku chwilowego (np. microswitach), tak jak pokazano na schemacie.
Koniecznie trzeba też wlutować listwy pinowe do Raspberry Pi i gniazdko do tej listy na płytkę uniwersalną, a także piny dla PowerBoost. Dzięki temu przetwornica na płytce uniwersalnej nakładana będzie na 'Malinę', która zasilana będzie napięciem +5 V z przetwornicy poprzez odpowiednie goldpiny komputera.
Po zlutowaniu ze sobą elementów można połączyć wszystkie moduły w całość. W pierwszej kolejności umieszczamy RPi wraz z przetwornicą na suwmiarce i przypinamy ją spinkami. Następnie przypinamy do tego baterię, także mocując ją spinkami. Teraz możemy już podłączyć wszystko razem - zasilanie, przetwornicę, baterię i oczywiście kamerę. Na końcu wkładamy do modułu kartę microSD.
Teraz jesteśmy gotowi do pierwszego uruchomienia. Aby uruchomić system naciskamy i przytrzymujemy przycisk załączania przez około osiem sekund. Po załadowaniu się systemu komputer już sam zadba o podtrzymanie pracy przetwornicy. Aby wyłączyć system naciskamy po prostu ten sam przycisk.
Krok 12: Propozycje ulepszenia
Każdy układ zawsze można poprawić. W przypadku mikroskopu bardzo pożądane byłoby np. usunięcie dodatkowych źródeł światła z okolic kamery. Nie ma to dużego znaczenia do samego lutowania, ale jeśli chcemy robić z jego pomocą także zdjęcia to dobrze jest zadbać, aby na obrazie nie widzieć dodatkowych odbić. Jednym z nich jest czerwona dioda na module z kamerą, która odbija się w obrazowanym przedmiocie. Na szczęście łatwo jest jej się pozbyć programowo. Musimy zedytować plik /boot/config.txt korzystając z nano:
Code: bash
na końcu pliku dodajemy po prostu:
disable_camera_led=1
Teraz po resecie dioda nie będzie się już zapalała.
Większym problemem jest dioda LED w przetwornicy. Jest ona dosyć jasna i nie dość, że psuje nasze zdjęcia to męczy podczas pracy. Można usunąć diodę LED lub zmienić opornik 1 k? na większy, przez co dioda będzie słabiej świecić.
Inną modyfikacją, jest zmiana powiększenia kamery. Jeśli chcemy możemy dołożyć trochę pieniędzy do budżetu projektu i zakupić inny moduł kamery z regulowaną odległością pracy - takie są dostępne już za 20 euro. Taki moduł, jako że będzie miał dużo większy zakres regulacji da naszemu mikroskopowo o wiele więcej elastyczności.
Źródło: http://www.instructables.com/id/Raspberry-Pi-Zero-HDMIWiFi-Soldering-Microscope/
Cool? Ranking DIY