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

FabScan - skaner 3D open source

ghost666 28 Sep 2016 20:14 13218 6
Automation24
  • FabScan - skaner 3D open source
    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.
    FabScan - skaner 3D open source


    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.

    FabScan - skaner 3D open source FabScan - skaner 3D open source


    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:

    FabScan - skaner 3D open source


    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ę.

    FabScan - skaner 3D open source


    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.

    FabScan - skaner 3D open source


    Nazwa pinuOpis
    Wejście12V z modułu HAT jako wejście dla stabilizatora
    Biały kwadratMasa(GND)
    5 VWyjś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.

    FabScan - skaner 3D open source


    Nazwa pinuOpis
    Biały kwadratMasa (GND)
    5 VWyjś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
    Log in, to see the code


    I klucz repozytorium doi naszego zestawu kluczy:

    Code: bash
    Log in, to see the code


    Finalnie musimy odświeżyć listę pakietów:

    Code: bash
    Log in, to see the code


    W pierwszej kolejności instalujemy potrzebne pakiety:

    Code: bash
    Log in, to see the code


    A serwer aplikacji uruchamiamy wpisując

    Code: bash
    Log in, to see the code


    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
    Log in, to see the code


    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
    Log in, to see the code


    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
    Log in, to see the code


    Laser

    Ta sekcja, jak łatwo się domyślić, opisuje pozycję lasera, ale także dane dotyczące silnika krokowego.

    Code: json
    Log in, to see the code


    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
    Log in, to see the code


    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
    Log in, to see the code


    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
    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 11806 posts with rating 9944, helped 157 times. Live in city Warszawa. Been with us since 2003 year.
  • Automation24
  • #2
    Matheu
    Level 24  
    Fajnie, dobrze i prosto opracowana/ przetłumaczona instrukcja uruchamiania skanera. Ghost, dużo wysiłku w to włożyłeś!
    pozdr
    Maciek
  • Automation24
  • #3
    ghost666
    Translator, editor
    Matheu wrote:
    Fajnie, dobrze i prosto opracowana/ przetłumaczona instrukcja uruchamiania skanera. Ghost, dużo wysiłku w to włożyłeś!
    pozdr
    Maciek



    Dzięki! Skróciłem instrukcje, omijając pewne opcjonalne kroki - jak samodzielne przygotowanie obrazu systemu itp - mam nadzieję, że to nie czyni jej mniej przydatną :)
  • #4
    Sinisther
    Level 9  
    Jakieś testy co do dokładności są ? Ciekawe czy samemu z komponentów od chińczyka da radę jeszcze taniej zrobić :)
  • #5
    perfi
    Level 14  
    ghost666 wrote:
    Obudowa FabScanPi

    A z jakiej grubości sklejki jest zrobiona ta obudowa?
  • #6
    dragon_25
    Level 12  
    Grubość sklejki to 5 mm. :)
  • #7
    Motyk616
    Level 1  
    Zdecydowanie polecam, skaner jak za tą cenę jest idealny. Jakby ktoś miał jakieś dokładniejsze pytania, to zapraszam, zrobiłem taki sobie i znajomemu FabScan - skaner 3D open source