3D-skanner med to kameraer. DIY D-skanner

Nok en gang tilbød butikken seg å ta noe til vurdering. Siden jeg lenge har vært interessert i spørsmålet om å bruke denne tingen for behovene til dekorativ 3D-utskrift, valgte jeg en skanner.

Så selve skanneren ble utviklet av det spanske selskapet BQ, som nå har sluttet å støtte den (angivelig på grunn av kinesiske forfalskninger, men det er tvilsomt. Nå selges denne skanneren også av amerikanske CowTech. Kilder for 3D-utskrift av skannerdeler er fritt tilgjengelig på (det lenker til programvare og elektronikk).

I settet har vi denne "løs":

Monteringen er grei, men det er noen punkter:
1. Det er ikke nødvendig å skynde seg for å stramme alle mutterne - du må også justere de geometriske dimensjonene - konvergensen til laserne i midten av stedet, avstanden til dreieskiven.
2. På stativet mitt "vinglet" kameraet litt, med en brøkdel av en millimeter - men dette var nok til å skjeve bildet. Eliminert ved å legge til skummateriale.
4. Platespilleren var gjennomsiktig og hadde ikke belegg (som i originalen) - jeg malte den med plastidip.
5. Sjekk kalibreringssjakkbrettmønstrene. Jeg vet ikke hvordan de skrev ut den fra settet mitt, men proporsjonene til rutene var dårlige. Jeg tok den fra Internett og trykket den på nytt selv.
6. Kamerafokus er ikke justert til avstanden til plattformen. Jeg tok av dekselet og justerte fokus på plass.











Som du kan se, er "hjernen" til skanneren en vanlig Arduino Uno kombinert med et ZUM Scan-skjold og en A4988-trinnmotordriver. Gården administreres av innfødt Horus-programvare fra BQ.

Etter montering gikk skanneren gjennom kalibreringsprosedyrer i opprinnelig Horus-programvare.

Siden jeg allerede på dette tidspunktet visste at kvaliteten på skanningen i stor grad avhenger av lyskvaliteten (stabilitet, diffusitet, fargetemperatur), passet jeg på forhånd med å ha en liten lysboks for i det minste å gi mer eller mindre sammenlignbare forhold for testing.

Etter å ha valgt ut "kandidater" til auditions, gjorde jeg meg klar.

Kravene til objektet er som følger:
1. Objektet må være større enn 5x5 cm, men mindre enn 20x20cm
2. Objektet må være ugjennomsiktig og ubevegelig
3. Gjenstanden må ikke veie mer enn 3 kg

Vanskelig å skanne:
1. Skinnende, lysende gjenstander
2. Gjenstander er for mørke
3. Gjenstander med uskarpe overflater (som kosedyr)

Resultatet av skanningen er en sky av punkter i PLY-format (som deretter må konverteres til en overflate). Det er her du forbereder STL-filen.

Etter å ha lest skanningene bestemte jeg meg for å prøve den med en enkel sylindrisk gjenstand.
Etter flere forsøk ble jeg overbevist om at jeg hadde et vanlig problem - punktskyene fra høyre og venstre laser stemte ikke overens, og det var et problem med proporsjonene.



Vi kunne ikke finne noe nyttig om denne saken annet enn å prøve å kalibrere webkamerainnstillingene (de er ikke kalibrert når kalibreringsveiviseren kjører) (en fyr som heter Jesus fra BQ support har ikke svart på spørsmål på lenge). For å gjøre dette må du ta flere bilder med forskjellige posisjoner av kalibreringsbordet. Jeg gjorde. Situasjonen har bedret seg, men ikke helt.
Jeg måtte manuelt redigere kalibreringsfilen (calibration.json i Horus-a-mappen) og ved prøving og feiling skanne et sylindrisk objekt for å sikre at skyene stemte.
Og alt ser ut til å være i orden:



Men nei - på komplekse objekter samsvarer noen ganger fortsatt ikke skyfragmenter, og mange "blinde" soner dannes:





I tillegg er det åpenbart at skanning av knallrøde objekter vil være umulig, i hvert fall med standard lasere.

Du kan selvfølgelig fortsette å eksperimentere med skanning med separate lasere og forsøk på å kombinere alt dette i tredjepartsprogramvare, og deretter prøve å bringe det til en form som er levedyktig for STL.

Alt dette minner meg om en vits om skip på flasker.

Hvordan lager du båter på flaske?
-Jeg legger sand, silikatlim, pinner i flasken og rister den.
Det viser seg all slags dritt, og noen ganger - båter.


Generelt innså jeg at jeg ikke er en tilhenger av denne typen kreativitet, og jeg har en mistanke om at det er lettere å modellere objekter fra bunnen av som er innenfor en skanners kraft.

Og komplekse - skanneren kan ikke takle komplekse i normal modus to lasere er ikke nok for det - blinde flekker forblir. For å eliminere dette problemet, må du skanne i andre posisjoner og deretter igjen slite med å kombinere skyene. Nei takk.

Som et resultat er tingen bare egnet for å studere det grunnleggende om laserskanning, for noe mer er det helt ubrukelig. Nei, selvfølgelig, det er mulig å få noe som ligner på den originale modellen, men det er alt (og dette tar hensyn til alle tamburinene med skybehandling). Det er ikke for ingenting at spanjolene forlot denne saken.
Butikken spilte det trygt - beskrivelsen sier ærlig at resultatet avhenger av planetenes posisjon og humøret til tante Sonya fra tredje etasje. Åpen kildekode og alt det der, la oss danse sammen. Nei takk.

Konklusjonen er ikke å ta det, men ønsker du ekstrem jakt, sett sammen det selv av det samme som vennen i vitsen lager båter av.

Produktet ble levert for å skrive en anmeldelse av butikken. Anmeldelsen ble publisert i samsvar med punkt 18 i nettstedsreglene.

Jeg planlegger å kjøpe +9 Legg til i favoritter Jeg likte anmeldelsen +101 +156

FabScan er en åpen kildekode, gjør-det-selv laser 3D-skanner. Jeg satte sammen mine fra MDF-plater og forskjellige tilgjengelige materialer, og som et eksempel bestemte jeg meg for å legge ut opprettelsesprosessen for deg.

Trinn 1: Hva du trenger




For den offisielle FabScan-skanneren trenger du:

  • Arduino UNO
  • Trinnmotor A4988
  • FabScan-Shield 3D laserskannermodul for Arduino
  • 5mW rød lasermodul
  • Strømforsyning 12V - 1A
  • Logitech C270 webkamera

For å lage en boks trenger du 4 ark MDF som måler 600*300*5 mm.

I prosjektet mitt brukte jeg:

  • Arduino UNO
  • Bipolar trinnmotor - NEMA 17 (200 trinn)
  • Trinnmotor A4988
  • 5mW rød lasermodul
  • Strømforsyning 12V - 2A
  • Logitech C270 webkamera

Siden vi skal bruke FabScan-programvare, anbefaler jeg at du holder deg til delelisten deres, og du kan enkelt finne all dokumentasjonen for FabScan-referanse 3D-skanneren på Internett.

Trinn 2: Sette sammen galleriboksen for 3D-skanneren




Vis 4 bilder til





Jeg brukte en Dremel og fantasien min til å sette sammen skannerboksen. Dette er ikke så enkelt, for for å få riktig 3D-bilde må kamera, laser og trinnmotor være i riktig posisjon. Hvis du ikke vil bry deg, kan du bare kjøpe ferdige deler, men det vil ikke være billig.

Trinn 3: Koble til modulene


Å montere maskinvaren er ganske enkel:
Koble FabScan-modulen til Arduino, og sett A4988-motoren til sin første trinnposisjon. Koble motoren til utgangspinnene og lasermodulen til den analoge pinnen A4. Til slutt kobler du til strømforsyningen og USB-kabelen.

Hvis du bestemmer deg for å sette sammen skanneren i henhold til delelisten min:
Deretter må du koble A4988-motoren til pinnene 10, 11, 9, 8 på Arduinoen (om ønskelig kan pinnene endres), og koble lasermodulen til pinne A4. På slutten kobler du også til strømforsyningen og USB-kabelen.

Trinn 4: Kode for Arduino

Vi vil bruke den offisielle koden fra FabScan. Last den opp til Arduino og du er ferdig.

Hvis du har installert Codebender-plugin, kan du laste opp koden til Arduino ved å følge denne lenken.

Hvis du setter sammen skanneren i henhold til delelisten min, klikk på Rediger-knappen og gjør følgende:

  • Legg til linjer #include const int stepsPerRevolution = 200;//endre til antall trinn i motoren din Stepper myStepper(stepsPerRevolution, 10, 11,8,9);
  • Erstatt step()-funksjonen med følgende: void step() ( myStepper.setSpeed(1); myStepper.step(1); )

Trinn 5: Datamaskinprogramvare






Vi vil bruke "FabScan Ubuntu Live DVD"-bildet. Du kan laste den ned. I dette bildet er FabScan-programvaren allerede forhåndsinstallert. Bildet kan skrives til en flash-stasjon; hvordan du gjør dette kan du finne på Internett.

Viktig merknad: Hvis du velger alternativet "Prøv Ubuntu", lagrer du filene dine før du slår av datamaskinen!

Se på de vedlagte bildene og følg trinnene:

  • Velg porten i SerialPort
  • Velg kameraet i Kamera
  • Fil - Kontrollpanel
  • Klikk på oppdage laser (ikke legg noe i skanneren på dette stadiet) og velg "aktiver"
  • Klikk på "Fetch Frame" og sørg for at den blå horisontale linjen berører toppen av platespilleren og den gule horisontale linjen berører bunnen. Den vertikale gule linjen skal gå gjennom midten av dreieskiven. Et løst kamera kan forårsake forvrengte skanninger!

Etter innstillingen, lukk kontrollpanelvinduet, plasser objektet i skanneren og klikk på start skanning-knappen.

Lagrer 3D-bilde:
Når skanningsprosessen er fullført, kan du lagre 3D-objektet til en fil i .pcd- eller .ply-format. Du kan også lagre det i stl-format, men det støttes ikke på alle plattformer. Du kan også åpne et tidligere skannet element ved å velge Fil - OpenPointCloud.

Hva skal jeg gjøre med 3D-filer?
Du kan åpne dem i MeshLab og skrive dem ut på en 3D-printer.
Slik skriver du ut objekter i MeshLab:

  • Lagre objektet i .ply-format
  • Åpne filen i MeshLab
  • I MeshLab beregner du normaler (filtre/punktsett/beregn normaler for punktsett)
  • Rekonstruer overflaten ved hjelp av giftrekonstruksjon (filtre/punktsett/overflaterekonstruksjon: Poisson)
  • Klar

FabScan er en åpen kildekode, DIY 3D-laserskanner.

Prosjektet startet under utviklingen av Francis Engelmanns bachelorprosjekt. Den offisielle prosjektsiden er lokalisert.

Basert på dette prosjektet ble det utviklet en analog, som diskuteres i artikkelen. MDF brukes til boksing. Den elektroniske fyllingen er også noe annerledes.

Arduino-programmet er hentet fra det opprinnelige prosjektet. Så takk til FabScan-teamet for en utmerket åpen kildekode 3D-skanner!

Så la oss komme i gang.

Nødvendige komponenter

Deler og komponenter for det originale FabScan-prosjektet:

  • Trinnmotordriver A4988;
  • Skjold FabScan;
  • NEMA 17 bipolar trinnmotor (200 trinn);
  • Strømforsyning 12 V - 1 A;
  • Logitech C270 webkamera.

Til kroppen trenger du 4 ark MDF. Dimensjoner - 600 mm x 300 mm. Tykkelse - 5 mm. Mer detaljert informasjon.

Deler og sammenstillinger brukt i denne håndboken:

  • (200 trinn);
  • Trinnmotordriver L298N;
  • 5 mW lasermodul - produsent Rød linje;
  • Strømforsyning 12 V - 2 A;
  • Logiteck C270 webkamera.

Det vil si at vi rett og slett ikke vil bruke FabScan-skjoldet og bruke en annen trinnmotordrivermodul

Utvikling av et hus for en 3D-skanner

Prosessen og resultatet av å utvikle kroppen til 3D-skanneren vår vises på bildene. Hovedproblemet er den mest nøyaktige installasjonen av kameraet, lasermodulen og trinnmotoren. Hvis du vil gjøre livet ditt enklere, kan du bestille disse delene for 35 euro.

3D-skannermontering







1. Med skjold.

Installer FabScan-skjold på Arduino. A4988-trinnmotordriveren er installert på de medfølgende skinnene. Trinnmotoren er koblet til de tilsvarende kontaktene på typeskiltet. Lasermodulen kobles til analog pinne A4. Etter dette kan du koble til strøm- og USB-kabelen. Mer detaljerte instruksjoner er tilgjengelige.

2. Uten skjold.

Hvis du bestemmer deg for å bygge skanneren uten å bruke et skjold, koble L298-trinnmotordriveren til pinnene 10, 11, 9, 8 på Arduino (i prinsippet kan disse pinnene endres med passende redigeringer i skissen). Lasermodulen er koblet til pin A4 på Arduino. Alle. Du kan koble til strøm og USB-kabel.


Skisse for Arduino

Viktig notat! Hvis du bruker alternativet "Prøv Ubuntu", sørg for at du lagrer filene dine før du slår av din personlige datamaskin!

Følg instruksjonene, bilder av disse er gitt nedenfor:

  • Velg SerialPort;
  • Velg Kamera;
  • Fil - Kontrollpanel;
  • Klikk oppdage laser (ikke plasser noen objekter foran skanneren foreløpig) og velg "aktiver";
  • Klikk "Fetch Frame" og sørg for at den blå horisontale linjen berører toppen av platespilleren og den gule horisontale linjen berører bunnen av platespilleren. I tillegg må den gule vertikale linjen falle sammen med midten av dreieskiven. Hvis kameraet ikke er riktig installert, vil ikke skanneresultatet være klart!

Etter innstillingen, lukk vinduet, plasser objektet i 3D-skanneren og klikk på Start skanning-knappen.

Merk: tilleggsmateriell om oppsett av configuration.xml-filen er presentert i denne veiledningen.

Lagre 3D-bilder

Når 3D-skanningsprosessen er fullført, kan du lagre det skannede 3D-objektet med en .pcd- eller .ply-utvidelse. Du kan også lagre den som en 3D stl-fil, men denne funksjonen er ikke tilgjengelig på alle plattformer. Du kan åpne et tidligere skannet og lagret objekt ved å velge Fil - OpenPointCloud.

Hva blir det neste?

Du kan bruke MeshLab til å behandle et 3D-skannet objekt og skrive det ut på en 3D-skriver!

Når du behandler en fil i MeshLab:

1. Pass på at du lagrer objektet som en .ply-fil.

2. Åpne filen med MeshLab.

3. I MeshLab beregner du normalene (filtre/punktsett/beregn normaler).

4. Etter det, gjenoppbygg overflaten med Poisson-rekonstruksjon (filtre/punktsett/overflaterekonstruksjon: Poisson)

Den endelige sammensatte strukturen er vist på bildet nedenfor.


Video av den originale FabScan 3D-skanneren i drift:

Tusen takk til FabScan-teamet for den fantastiske åpen kildekode-skanneren på Arduino!!!

Legg igjen kommentarer, spørsmål og del personlig erfaring under. Nye ideer og prosjekter blir ofte født i diskusjoner!

Det er en analog av den berømte FabScan laserskanneren, som ble utviklet av Francis Engelmann. Forfatteren brukte MDF som boks for en slik skanner som for fyllingen, den er også litt forskjellig fra originalen.

Det originale programmet er for Arduino, det ble hentet fra det originale prosjektet.

Materialer og verktøy for å lage en skanner:

4 ark MDV 600X300 mm, tykkelse 5 mm (de er nødvendige for å lage saken);
- trinnmotor (NEMA 17 for 200 trinn);
- driver for trinnmotor L298N;
- 5 mW lasermodul (brukt fra produsenten Red Line);
- for å drive enheten trenger du en kilde på 12 V - 2 A;
- webkamera modell Logiteck C270.






Det originale hjemmelagde produktet bruker en A4988 trinnmotordriver, og når det gjelder trinnmotoren er det også NEMA 17. Ellers er elementene i det hjemmelagde produktet nøyaktig de samme som i originalversjonen.

Produksjonsprosess for skanner:

Steg en. Å lage kroppen
Hele prosessen med å lage et hus for skanneren kan sees på bildet. Det viktigste i denne saken er nøyaktighet. Lasermodulen, trinnmotoren og webkameraet skal være plassert tydelig på de riktige stedene, i henhold til prosjektet.













Trinn to. Vi kobler til elektrisk utstyr


Det er to måter å koble til utstyr på, med og uten skjold. La oss se nærmere på hvert av disse alternativene.

Tilkobling uten skjerm
Hvis du bestemmer deg for å montere enheten uten å bruke et skjold, er ledningene til L298-trinnmotoren koblet til Arduino-pinnene nummerert 10, 11, 9, 8. I prinsippet kan du bruke andre kontakter, men du må lage endringer i skissen.
Når det gjelder lasermodulen, må den kobles til pinne A4 på Arduino-kontrolleren. Etter dette kan du koble til USB-kabelen og strøm.

Tilkobling med skjerm
Du må installere FabScan-skjoldet på Arduino. Når det gjelder trinnmotordriveren, må den installeres på skinnene som er gitt for dette. Trinnmotorkontaktene er koblet til de tilsvarende kontaktene på typeskiltet.
Lasermodulen må kobles til pinne A4 på Arduino. Det er alt, etter det kobler du til strøm- og USB-kabelen.

Trinn tre. Montering av skissen
Nå må du laste ned og installere den offisielle skissen for FabScan. For å flashe Arduino, må du laste ned Codebender-plugin og deretter klikke på "Kjør på Arduino"-knappen. I dette tilfellet kan skissen installeres direkte gjennom nettleseren fra det offisielle nettstedet.


Hvis skjoldet ikke ble brukt, må du klikke på Rediger-knappen og deretter legge til følgende linjer:

const int stepsPerRevolution = 200; // endre denne parameteren for å justere antall trinn per rotasjon av steppermotorakselen

Stepper myStepper(stegPerrevolusjon, 10, 11,8,9);
Erstatt step()-funksjonen:

myStepper.setSpeed(1);

myStepper.step(1);

Trinn fire. Skannerprogramvare
For å installere programmet må du laste ned "FabScan Ubuntu Live DVD"-bildet, etter installasjonen vil det vises programvare FabScan.

Du må gjøre noen innstillinger i programmet:

Først må du velge SerialPort;
- velg deretter Kamera;
- etter det Fil - Kontrollpanel;
- klikk deretter på oppdage laser og velg "aktiver" (det er ikke nødvendig å plassere noen objekter foran laseren);
- vel, klikk nå på "Fetch Frame", mens den blå horisontale linjen skal berøre bunnen av det roterende bordet. Den gule linjen skal være i midten av bordet. Hvis kameraet ikke er riktig installert, blir bildet Dårlig kvalitet.












Det er alt, programmet er konfigurert. Nå kan du legge et objekt inn i skanneren, og deretter trykke på Start skanning-knappen.

Trinn fem. Lagre bildet
Etter at skanningen av objektet er fullført, kan bildet lagres i .pcd- eller .ply-format. Du kan også lagre den i stl-format, men dette avhenger av plattformen du bruker.
For å åpne et objekt som tidligere ble lagret, må du velge Fil - OpenPointCloud.

) bestemte vi oss for å prøve å montere den og, hvis mulig, forbedre designet. Vi kunne ikke engang forestille oss hva som ville komme ut av det, langt mindre forestille oss at vi ville vinne flere vitenskapelige og ingeniørutstillinger med det. Men i rekkefølge. Som er interessert i å vite resultatet, velkommen til katten (mange bilder).

Første prototype

Først bestemte vi oss for å samle laser avstandsmåler. Den ble laget basert på en artikkel på et amatørradioforum. Bare en laserpeker og et kamera. Et program ble skrevet i Java for å behandle bilder. For én måling ble det tatt to bilder: med og uten laser. Etter å ha sammenlignet dem, kunne vi definitivt finne laserpunktet. Når dette fungerte, ble avstandsmåleren montert på en plattform som kunne rotere i to plan. Før jeg viser deg hva jeg har, må jeg advare deg - det er ikke mye materiell på sommerskolen, så vi satt sammen en prototype fra det vi hadde:

Kameraet er umiddelbart synlig, og laseren er den messingsylinderen over det. For å rotere plattformen brukte vi to trinnmotorer, som igjen var koblet til et kontrollkort på en Atmega32 mikrokontroller. Laseren var koblet til den. Selve brettet ble koblet til datamaskinen via en USB->UART-adapter. Programmet på datamaskinen tok bilder, behandlet dem, la inn koordinatene til de oppnådde punktene i en fil og sendte kommandoer til kontrollkortet.

Resultatet var interessant. Ja, vi fant avstanden. Ja, vi kan "målrette" et hvilket som helst punkt i halvkulen over skanneren. Og vår glede visste ingen grenser. Men da vi vurderte skanningstiden for denne halvkulen, viste det seg å være 48 timer. Og det handler ikke om kameraet. Og ikke engang i Java. Problemet var at installasjonen var så spinkel at den vinglet etter hver sving i fem sekunder. Jeg måtte ta en måling, snu og vente fem sekunder til den sluttet å svaie. Og i tillegg skrudde biblioteket for kameraet det på og av før hvert opptak. Dette tok 1-2 sekunder. Men sommerskolen tok slutt, og det var ikke tid til å gjøre om det: det var allerede kvelden før prosjektet skulle planlegges. Eller rettere sagt morgen. Dagen etter presenterte vi prosjektet vårt i en konkurranse foran en vitenskapelig jury og vant uventet. Det var sannsynligvis på grunn av denne seieren at vi bestemte oss for å fortsette arbeidet med dette prosjektet.

Versjon to

Faktisk er sommeren over og skoleåret har begynt. Arbeidslysten forsvant. Installasjonen var planlagt ferdigstilt til neste konkurranse, som var en hel måned unna. Måned. Og så plutselig tre dager. Men innen en måned bestemte vi oss for å endre innstillingen. Sett den godt sammen, installer en linse på laserpekeren, som vil lage en laserlinje. Dette ville tillate skanning av 720 punkter på en gang (skanneren hadde et HD-kamera). Bare tre dager har gjort sine egne justeringer:

Den andre skanneren er satt sammen av plastlinjaler, lim, maskeringstape og holdes kun på plass av blå elektrisk tape. I stedet for en linse er det et reagensrør. En grønn laser skinner på dette reagensrøret. Den reflekterte strålen skaper en mer eller mindre jevn laserstripe på skjermen. Avstandsmåleren er kun festet til én motor, som roterer den i et horisontalt plan. Kontrollkortet ble erstattet med STM32VLDiscovery. Det er bare det at jeg kjenner STM32 bedre, og dessuten brant Atmega ut, og programmereren gikk tapt for lenge siden. Det ser ikke veldig bra ut, men det fungerer! Vibrasjonene avtok og hastigheten økte tilsvarende. Men ikke mye. En veldig interessant fangst ble oppdaget her - den kinesiske laserpekeren slo seg ikke på umiddelbart, men økte gradvis kraften i løpet av et sekund. Dermed et sekund for å svinge, et sekund for å varme opp laseren, et sekund for å ta et bilde, og det er to av dem. Så vi får 4 sekunder. Men i en måling finner vi avstander på opptil 720 poeng! Skanningsprosessen så omtrent slik ut:

Og resultatet er slik:

Bildet ser ikke særlig interessant ut, men kruset var omfangsrikt i programmet. Du kan se det fra forskjellige vinkler.

Hva er den faktiske konkurransen? Men ingenting! Vi var ferdige med å skanne alt klokken 04.00, og klokken 9 på standen oppdaget vi at laseren var utbrent. Som det viste seg, mens vi bar den fra hotellet til standen, kom det regn inn i den, og når den ble slått på, brant den ut. Og når det ikke fungerer, ser det så ille ut at det er vanskelig å tro på ordene "det fungerte for 5 timer siden." Vi var opprørte. Ønsket om å fortsette forsvant med en laserrøyk. Men likevel ble det samlet inn...

Tredje versjon

Og den ble satt sammen igjen til konkurransen. Dessuten forberedte vi oss lenge og grundig. Mer enn en uke. Og her er resultatet:

Det første som fanger oppmerksomheten er at nå skanner vi ikke området rundt skanneren, men et objekt som roterer på plattformen. Vi fikk også den nødvendige linsen, monterte alt riktig, skrev om programmet og byttet også ut feilsøkingskortet med et hjemmelaget. Og nå tar vi bare ett bilde per måling. Laseren er kraftig nok og linsen er god nok til å lokalisere laseren unikt i et fotografi. Takket være dette venter vi ikke på at laseren skal varmes opp - den er alltid på. Og nå slår vi på kameraet bare én gang. Det vil si at tiden brukes mest på å rotere plattformen og behandle bildet. En meny for valg av nøyaktighet er lagt til programmet. Skannetiden er fra to til ti minutter. Avhengig av valgt nøyaktighet. Med maksimal nøyaktighet viser det seg at plattformen roterer 0,5 grader per trinn, og avstanden bestemmes med en nøyaktighet på 0,33 mm. Plattformen drives av en trinnmotor gjennom en girkasse. Selve plattformen er en stor skive, og gummivalsen på motorakselen er liten. Motoren og laseren ble kontrollert av en STM32F050F4 mikrokontroller via felteffekttransistorer. Helt i begynnelsen av artikkelen er en skanning av leketøyet oppnådd med denne skanneren. Siden skanneren produserer en punktsky i .obj-format, kan vi etter triangulering skrive ut det skannede objektet på en 3D-printer, som kan sees på det samme fotografiet. På skjermen kan vi se modellen etter triangulering. Det ble ikke utført manuelt arbeid på modellen.

Vi vant konkurransen. Og han ga deltakelse til den internasjonale konkurransen Intel ISEF. Så vi begynte å jobbe med neste skanner.

Fjerde versjon

dette øyeblikket Dette siste versjon skanner som vi satt sammen. Til sammenligning er det en andre versjon på plattformen. Vi prøvde å nærme oss utviklingen av den fjerde skanneren så grundig vi kunne. Installasjonen ble tegnet i CAD, delene ble laserskåret, alt var malt, ingenting unødvendig stakk ut fra utsiden. Endringer: Plattformen er nå faktisk et gir. Den er skåret ut av plexiglass og har 652 tenner langs kantene. Dette løser et problem som alvorlig skadet skanner i den forrige skanneren: gummivalsen ville skli litt, og det er grunnen til at plattformen ofte ikke roterte 360 ​​grader. Skanningene ble enten "kuttet ut" eller overlappet. Her visste vi alltid nøyaktig hvor rotert plattformen var. Laserkraften ble gjort justerbar av programvare. Takket være dette var det mulig å endre laserkraften i farten, og unngå belysning av unødvendige deler i forhold med lite lys. For å kontrollere all elektronikk bestemte vi oss for ikke å skille oss nytt styre, men bare bruk feilsøkingen F401RE-Nucleo. Den har ST-LinkV2.1 installert, som fungerer som en debugger og USB->UART-adapter.

Nøyaktigheten var fantastisk: Vinkeloppløsning 0,14 grader. I en avstand på 0,125 mm. Skanningsområdet er en sylinder med en høyde på 20 cm og en diameter på 30 cm. Prisen på alle deler og laserskjæring på tidspunktet for opprettelsen (mai 2014) var mindre enn 4000 rubler.

Under bruk setter vi den bare til maksimal nøyaktighet én gang. Skanningen varte i 15-20 minutter. Vi fikk nesten 2 millioner poeng. Den bærbare datamaskinen nektet å beregne modellen fra punktskyen. Eksperimentet ble ikke gjentatt.

Konklusjon

I nær fremtid planlegger vi å gjenoppta arbeidet med prosjektet, og derfor vil vi sluttføre både programmet og installasjonen. Jeg håper vi skriver om det snart trinnvis montering, vi vil legge ut tegninger, programmer og alt annet. Dette vil ikke lenger passe inn i denne artikkelen.

Takk til alle som leser til slutt!

UPD:
En kollega fant en video om bruken av skanneren som vi filmet på ISEF:

Ja, det meste av videoen er ikke interessant, men på slutten er det en modell på en bærbar datamaskin.

Og her er eksempler på skannede objekter. Men de tilhører alle den tredje versjonen av skanneren.
Dropbox
I model.obj-filen kan du tydelig se hva som skjer når denne gummirullen sklir på motoren - hunden har tre øyne. Skanningen ble stoppet og forårsaket en utskjæring. Alle filer er punktskyer. Du kan åpne den ved å bruke MeshLab. Modellene ble ikke behandlet for hånd. Helt rådata. Fra oven kan du se "hvite flekker" - områder uten prikker. Kameraet ser dem ikke. Hvite flekker kan også sees andre steder. De vises enten i områder som er for mørke eller når overflater overlapper hverandre. For eksempel, i filen stn_10.obj overlapper geitens horn hverandre, og det er grunnen til at den indre overflaten av hornene ikke ble skannet.




Topp