FabScan to skaner 3D open source. Projekt ten zaczął powstawać w 2010 roku w Aachen w Niemczech. FabScanPi to nowej generacji laserowy skaner 3D oparty o minikomputer Raspberry Pi. Do jego skonstruowania wystarczy Raspberry Pi wersja 2 oraz dedykowana kamera, dzięki czemu FabScan może być samodzielnym, zintegrowanym z Internetem skanerem 3D. Aby uruchomić takie urządzenie można pobrać obraz instalacji ISO ze strony projektu oraz zakupić gotowy kit ze strony Watterott Electronics, który zawiera wszystkie potrzebne elementy: Raspberry Pi, moduł HAT do sterowania silnikiem i laserami, uchwyt kamery oraz drewnianą, wycinaną laserowo obudowę. Możemy także zmontować taki skaner samodzielnie. Aby do tego przystąpić potrzebne będą nam:
* Raspberry Pi 2 lub Raspberry Pi 3
* Silnik krokowy typu NEMA 17 o kroku 1.8° (200 kroków na obrót).
* Montaż dla modułów Pololu
* Driver silnika krokowego (rekomendowany jest driver Silent Step Stick).
* Moduł laserowy z projektorem linii zasilany 5 V.
* Serwomotor na 9 V (póki co jego obsługa nie jest zaimplementowana w oprogramowaniu)/
* Moduł FabScanPi HAT dla Raspberry Pi.
* Przetwornica impulsowa DC/DC z 12 V na 5 V.
* Kamera Raspberry Pi v2
* 50 cm taśma podłączeniowa do kamery
* Uchwyt kamery z LEDami do oświetlenia
* Obudowa FabScanPi
* Odpowiednie śrubki i nakrętki (tabelka z potrzebnymi elementami znajduje się na stronie projektu)
* Zasilacz 12 V o wydajności co najmniej 2 A.
Montaż obudowy
Moduł FabScanPi HAT
Moduł FabScanPi jest zasadniczo połączenie Arduino i Shielda FabScan dla niego, który pozwalał na kontrolę nad poprzednimi wersjami prezentowanego skanera 3D. Moduł ten zapewnia możliwość podłączenia wszystkich wymaganych elementów (silników, serwomotorów, diod LED oraz laserów). Podłączony on jest do wyprowadzeń RaspberryPi i komunikuje się z RPi poprzez port szeregowy wyprowadzony na goldpinach (GPIO14 i GPIO15). Oprogramowanie na zwartym w module mikrokontrolerze może byc także uaktualniane poprzez to połączenie.
Podłączenie silników krokowych
Na rynku dostępne są różne rodzaje silników krokowych - większość z nich z 4 lub 6 wyprowadzeniami. Aby podłączyć posiadany przez nas silnik krokowy, musimy zidentyfikować jak jest uzwojony i które uzwojenie jest gdzie. Najlepiej jest informacje znaleźć te w karcie katalogowej. Wtedy pary oznaczone jako 1A i 1B oraz 2A i 2B podłączamy do kontrolera tak, jzak zaprezentowano to na schemacie poniżej.
Podłączenie lasera
Do modułu HAT dedykowanego do FabScanPi podłączyć można dwa lasery, ale póki co oprogramowanie obsługuje tylko jeden laser. Podłączamy go do portu 1, zgodnie z oznaczeniami zaprezentowanymi poniżej:
Przycisk bezpieczeństwa
Przycisk ten służy do zabezpieczenia układu - wyłącza on laser, w momencie gdy otwarta zostanie pokrywa urządzenia. Przycisk ten podłączyć można do układu tak, jak pokazano na zdjęciu. Jeśli nie zdecydujemy się na podłączenie tego rodzaju zabezpieczenia zamiast przycisku zamontować musimy zworkę.
Podłączenie zasilacza
Do działania FabScanPi potrzebuje zasilaczy 12 V DC i 5 V DC. Istnieje kilka sposobów na jakie zrealizować można zasilanie skanera 3D:
Opcja A (rekomendowana): Podłącz 12 V DC do modułu HAT, a w dedykowanym miejscu w module zainstaluj przetwornicę 12 V/5 V, która pracować może z prądem co najmniej 2 A.
Opcja B: Podłącz 12 V DC do modułu HAT, a dodatkowe zasilanie 5 V do Raspberry Pi poprzez złącze microUSB w minikomputerze.
Opcja C: Podłącz 12 V DC do modułu HAT, jak powyżej oraz dodatkowo 5 V do pinów, gdzie podpięty powinien być stabilizator impulsowy (np. z drugiego zasilacza). Ważne jest, aby zasilacz mógł pracować z prądem wyjściowym równym co najmniej 2 A.
Instalacja oprogramowania FabScanPi
Najszybszą i najprostszą drogą do zainstalowania systemu jest pobranie obrazu gotowego systemu i przeniesienie go na kartę SD. W tym celu potrzebować będziemy:
* Komputera z czytnikiem kart SD.
* Kart microSD o pojemności co najmniej 8 GB.
* Oprogramowanie do sformatowania karty SD i zainstalowania na niej danych z obrazu
* Obraz najnowszego Raspbiana FabScanPi
Zależnie od tego z jakich narzędzi korzystamy proces instalacji obrazu będzie inny. Po zainstalowaniu obrazu możemy włozyć kartę microSD RPi i korzystać z urządzenia.
Jeśli natomiast chcemy zainstalować oprogramowanie do skanera 3D na istniejącej instalacji Raspbiana postępujmy zgodnie z poniższymi krokami:
1. Dodajemy repozytorium fabscan do listy źródeł:
I klucz repozytorium doi naszego zestawu kluczy:
Finalnie musimy odświeżyć listę pakietów:
W pierwszej kolejności instalujemy potrzebne pakiety:
A serwer aplikacji uruchamiamy wpisując
Pliki konfiguracyjne programu
Pliki te znaleźć można można w /etc/fabscanpi/default.config.json. Zawartość tego pliku sformatowana jest jako JSON i można edytować ją dowolmnym narzędziem (nano, vim itp.), ale uwaga - JSON jest bardzo czuły na niepoprawne formatowanie.
Foldery
W tej sekcji zmieniać można folder wyjściowy skanera oraz miejsce, gdzie zlokalizowany jest interfejs użytkownika. Te pozycje lepiej jest omijać, jeśli nie ma się pełnej pewności,c o się robi.
Serial
Ta sekcja pozwala na konfigurację portu szeregowego, jaki wykorzystany jest do komunikacji. Domyślnie jest pusta, ponieważ oprogramowanie automatycznie wykrywa port z jakiego ma skorzystać. Jeśli nie korzystamy z Arduino UNO lub innej kompatybilnej płytki można zmienić te ustawienia na odpowiednie. Tak samo, jeśli nasz system nie wykrywa podłączonego Arduino poprawnie (błędy widoczne będą w /var/log/fabscanpi/fabscan.log) możemy skonfigurować tą sekcję i dodać w konfigu atrybut port.
Opcja autoflash dotyczy automatycznego ładowania firmware do Arduino/modułu HAT FabScanPi. Jeśli korzystamy z niestandardowej płytki powinniśmy zmienić to na false i załadować firmware manualnie.
Kamera
Sekcja ta pozwala naustawienie parametrów pracy kamery. Domyślnie jest to PICAM, ale przeprowadzono pewne eksperymenty np. z kamerką internetową C270, jakkolwiek nie jest to dalej rozwijane.
Parametr device nie jest używany z PICAM, należy go skonfigurować jeśli korzystamy z innej kamery i mamy podłączonych kilka kamer do systemu.
Parametr Preview Resolution to rozdzielczość podglądu, czyli obrazu jaki widzimy w oknie ustawie. Resolution to rozdzielczość z jakiej korzysta skaner podczas pracy. Warto zwrócić uwagę, zmieniając ten parametr, że PICAM nie wspiera wszystkich rozdzielczości.
Position to pozycja, która podawana jest w centymetrach. W dalszej części dokumentacji, na stronie projektu, znaleźć można informacje jak zmierzyć te 3 wartości. Parametr dimension mówi o tym jak duży obraz dostrzega kamera. Można to zmierzyć wkładając przed kamerę do obudowy (na tylną jej ścianę) miarę i odczytując zakres jaki jest widoczny. Parametr ten służy do obliczania realnych wielkości obiektów z skanu.
Laser
Ta sekcja, jak łatwo się domyślić, opisuje pozycję lasera, ale także dane dotyczące silnika krokowego.
Stolik obrotowy
Sekcja ta opisuje parametry stolika obrotowego w świecie rzeczywistym. Pozycja dokładniej opisana jest na stronie projektu, a parametr steps definiuje ile kroków wykonać trzeba, aby w pełni obrócić stolik. Domyślnie driver silnika krokowego zdefiniowany jest do pracy z mikrokrokiem z podziałem 1/16, co oznacza, że silnik krokowy o 200 krokachg na obrót pozwoli wykonać 3200 kroków stolikiem, zanim ten obróci się o 360°.
Skaner
Ta sekcja definiuje zmienne globalne skanera i inne związane z tym wartości. Zmienna process_number mówi o tym, ile maksymalnie procesów może być wykorzystane do przeliczania danych skanów. Wartość 4 jest dobrym rozwiązaniem dla Raspberry Pi 2 z uwagi na 4 fizyczne rdzenie procesora tego minikomputera. Dobrze jest niezmieniać tej wartości, gdyż np. zwiększenie ilości procesów niekoniecznie przekłada się na przyspieszenie obliczeń. Zmienna meshlab dotyczy oprogramowania o tej samej nazwie, ale nie jest ono póki co wspierane i rezerwuje to tylko miejsce dla późniejszych funkcji.
Pierwsze próby działania skanera dobrze jest przeprowadzić z pomocą domyślnych zmiennych, jeśli korzystamy z standardowego projektu. W naszym systemie, jeśliu wykonaliśmy go samodzielnie, pewne odległości mogą być inne, co oznacza, że konieczne musi być wprowadzenie zmian w konfiguracji systemu.
Źródło: http://mariolukas.github.io/FabScanPi-Server/
* Raspberry Pi 2 lub Raspberry Pi 3
* Silnik krokowy typu NEMA 17 o kroku 1.8° (200 kroków na obrót).
* Montaż dla modułów Pololu
* Driver silnika krokowego (rekomendowany jest driver Silent Step Stick).
* Moduł laserowy z projektorem linii zasilany 5 V.
* Serwomotor na 9 V (póki co jego obsługa nie jest zaimplementowana w oprogramowaniu)/
* Moduł FabScanPi HAT dla Raspberry Pi.
* Przetwornica impulsowa DC/DC z 12 V na 5 V.
* Kamera Raspberry Pi v2
* 50 cm taśma podłączeniowa do kamery
* Uchwyt kamery z LEDami do oświetlenia
* Obudowa FabScanPi
* Odpowiednie śrubki i nakrętki (tabelka z potrzebnymi elementami znajduje się na stronie projektu)
* Zasilacz 12 V o wydajności co najmniej 2 A.
Montaż obudowy
Moduł FabScanPi HAT
Moduł FabScanPi jest zasadniczo połączenie Arduino i Shielda FabScan dla niego, który pozwalał na kontrolę nad poprzednimi wersjami prezentowanego skanera 3D. Moduł ten zapewnia możliwość podłączenia wszystkich wymaganych elementów (silników, serwomotorów, diod LED oraz laserów). Podłączony on jest do wyprowadzeń RaspberryPi i komunikuje się z RPi poprzez port szeregowy wyprowadzony na goldpinach (GPIO14 i GPIO15). Oprogramowanie na zwartym w module mikrokontrolerze może byc także uaktualniane poprzez to połączenie.
Podłączenie silników krokowych
Na rynku dostępne są różne rodzaje silników krokowych - większość z nich z 4 lub 6 wyprowadzeniami. Aby podłączyć posiadany przez nas silnik krokowy, musimy zidentyfikować jak jest uzwojony i które uzwojenie jest gdzie. Najlepiej jest informacje znaleźć te w karcie katalogowej. Wtedy pary oznaczone jako 1A i 1B oraz 2A i 2B podłączamy do kontrolera tak, jzak zaprezentowano to na schemacie poniżej.
Podłączenie lasera
Do modułu HAT dedykowanego do FabScanPi podłączyć można dwa lasery, ale póki co oprogramowanie obsługuje tylko jeden laser. Podłączamy go do portu 1, zgodnie z oznaczeniami zaprezentowanymi poniżej:
Przycisk bezpieczeństwa
Przycisk ten służy do zabezpieczenia układu - wyłącza on laser, w momencie gdy otwarta zostanie pokrywa urządzenia. Przycisk ten podłączyć można do układu tak, jak pokazano na zdjęciu. Jeśli nie zdecydujemy się na podłączenie tego rodzaju zabezpieczenia zamiast przycisku zamontować musimy zworkę.
Podłączenie zasilacza
Do działania FabScanPi potrzebuje zasilaczy 12 V DC i 5 V DC. Istnieje kilka sposobów na jakie zrealizować można zasilanie skanera 3D:
Opcja A (rekomendowana): Podłącz 12 V DC do modułu HAT, a w dedykowanym miejscu w module zainstaluj przetwornicę 12 V/5 V, która pracować może z prądem co najmniej 2 A.
Nazwa pinu | Opis |
Wejście | 12V z modułu HAT jako wejście dla stabilizatora |
Biały kwadrat | Masa(GND) |
5 V | Wyjście 5 V z stabilizatora w module FabScanPi HAT |
Opcja B: Podłącz 12 V DC do modułu HAT, a dodatkowe zasilanie 5 V do Raspberry Pi poprzez złącze microUSB w minikomputerze.
Opcja C: Podłącz 12 V DC do modułu HAT, jak powyżej oraz dodatkowo 5 V do pinów, gdzie podpięty powinien być stabilizator impulsowy (np. z drugiego zasilacza). Ważne jest, aby zasilacz mógł pracować z prądem wyjściowym równym co najmniej 2 A.
Nazwa pinu | Opis |
Biały kwadrat | Masa (GND) |
5 V | Wyjście zewnętrznego zasilacza 5 V |
Instalacja oprogramowania FabScanPi
Najszybszą i najprostszą drogą do zainstalowania systemu jest pobranie obrazu gotowego systemu i przeniesienie go na kartę SD. W tym celu potrzebować będziemy:
* Komputera z czytnikiem kart SD.
* Kart microSD o pojemności co najmniej 8 GB.
* Oprogramowanie do sformatowania karty SD i zainstalowania na niej danych z obrazu
* Obraz najnowszego Raspbiana FabScanPi
Zależnie od tego z jakich narzędzi korzystamy proces instalacji obrazu będzie inny. Po zainstalowaniu obrazu możemy włozyć kartę microSD RPi i korzystać z urządzenia.
Jeśli natomiast chcemy zainstalować oprogramowanie do skanera 3D na istniejącej instalacji Raspbiana postępujmy zgodnie z poniższymi krokami:
1. Dodajemy repozytorium fabscan do listy źródeł:
Code: bash
I klucz repozytorium doi naszego zestawu kluczy:
Code: bash
Finalnie musimy odświeżyć listę pakietów:
Code: bash
W pierwszej kolejności instalujemy potrzebne pakiety:
Code: bash
A serwer aplikacji uruchamiamy wpisując
Code: bash
Pliki konfiguracyjne programu
Pliki te znaleźć można można w /etc/fabscanpi/default.config.json. Zawartość tego pliku sformatowana jest jako JSON i można edytować ją dowolmnym narzędziem (nano, vim itp.), ale uwaga - JSON jest bardzo czuły na niepoprawne formatowanie.
Foldery
W tej sekcji zmieniać można folder wyjściowy skanera oraz miejsce, gdzie zlokalizowany jest interfejs użytkownika. Te pozycje lepiej jest omijać, jeśli nie ma się pełnej pewności,c o się robi.
Code: json
Serial
Ta sekcja pozwala na konfigurację portu szeregowego, jaki wykorzystany jest do komunikacji. Domyślnie jest pusta, ponieważ oprogramowanie automatycznie wykrywa port z jakiego ma skorzystać. Jeśli nie korzystamy z Arduino UNO lub innej kompatybilnej płytki można zmienić te ustawienia na odpowiednie. Tak samo, jeśli nasz system nie wykrywa podłączonego Arduino poprawnie (błędy widoczne będą w /var/log/fabscanpi/fabscan.log) możemy skonfigurować tą sekcję i dodać w konfigu atrybut port.
Opcja autoflash dotyczy automatycznego ładowania firmware do Arduino/modułu HAT FabScanPi. Jeśli korzystamy z niestandardowej płytki powinniśmy zmienić to na false i załadować firmware manualnie.
Code: json
Kamera
Sekcja ta pozwala naustawienie parametrów pracy kamery. Domyślnie jest to PICAM, ale przeprowadzono pewne eksperymenty np. z kamerką internetową C270, jakkolwiek nie jest to dalej rozwijane.
Parametr device nie jest używany z PICAM, należy go skonfigurować jeśli korzystamy z innej kamery i mamy podłączonych kilka kamer do systemu.
Parametr Preview Resolution to rozdzielczość podglądu, czyli obrazu jaki widzimy w oknie ustawie. Resolution to rozdzielczość z jakiej korzysta skaner podczas pracy. Warto zwrócić uwagę, zmieniając ten parametr, że PICAM nie wspiera wszystkich rozdzielczości.
Position to pozycja, która podawana jest w centymetrach. W dalszej części dokumentacji, na stronie projektu, znaleźć można informacje jak zmierzyć te 3 wartości. Parametr dimension mówi o tym jak duży obraz dostrzega kamera. Można to zmierzyć wkładając przed kamerę do obudowy (na tylną jej ścianę) miarę i odczytując zakres jaki jest widoczny. Parametr ten służy do obliczania realnych wielkości obiektów z skanu.
Code: json
Laser
Ta sekcja, jak łatwo się domyślić, opisuje pozycję lasera, ale także dane dotyczące silnika krokowego.
Code: json
Stolik obrotowy
Sekcja ta opisuje parametry stolika obrotowego w świecie rzeczywistym. Pozycja dokładniej opisana jest na stronie projektu, a parametr steps definiuje ile kroków wykonać trzeba, aby w pełni obrócić stolik. Domyślnie driver silnika krokowego zdefiniowany jest do pracy z mikrokrokiem z podziałem 1/16, co oznacza, że silnik krokowy o 200 krokachg na obrót pozwoli wykonać 3200 kroków stolikiem, zanim ten obróci się o 360°.
Code: json
Skaner
Ta sekcja definiuje zmienne globalne skanera i inne związane z tym wartości. Zmienna process_number mówi o tym, ile maksymalnie procesów może być wykorzystane do przeliczania danych skanów. Wartość 4 jest dobrym rozwiązaniem dla Raspberry Pi 2 z uwagi na 4 fizyczne rdzenie procesora tego minikomputera. Dobrze jest niezmieniać tej wartości, gdyż np. zwiększenie ilości procesów niekoniecznie przekłada się na przyspieszenie obliczeń. Zmienna meshlab dotyczy oprogramowania o tej samej nazwie, ale nie jest ono póki co wspierane i rezerwuje to tylko miejsce dla późniejszych funkcji.
Code: json
Pierwsze próby działania skanera dobrze jest przeprowadzić z pomocą domyślnych zmiennych, jeśli korzystamy z standardowego projektu. W naszym systemie, jeśliu wykonaliśmy go samodzielnie, pewne odległości mogą być inne, co oznacza, że konieczne musi być wprowadzenie zmian w konfiguracji systemu.
Źródło: http://mariolukas.github.io/FabScanPi-Server/
Cool? Ranking DIY