3D-skanneri kahdella kameralla. DIY D skanneri

Jälleen kerran kauppa tarjoutui ottamaan jotain tarkistettavaksi. Koska olen pitkään ollut kiinnostunut kysymyksestä tämän asian käyttämisestä koristeellisen 3D-tulostuksen tarpeisiin, valitsin skannerin.

Joten itse skannerin on kehittänyt espanjalainen yritys BQ, joka on nyt lopettanut sen tukemisen (väitetysti kiinalaisten väärennösten takia, mutta se on kyseenalaista. Nyt tätä skanneria myy myös amerikkalainen CowTech. Lähteitä skannerin osien 3D-tulostukseen ovat vapaasti saatavilla osoitteessa (siellä linkkejä ohjelmistoihin ja elektroniikkaan).

Paketissa meillä on tämä "löysä":

Kokoonpano on yksinkertainen, mutta siinä on muutama seikka:
1. Ei tarvitse kiirehtiä kaikkien muttereiden kiristämiseen - joudut myös säätämään geometrisia mittoja - laserien lähentymistä paikan keskellä, etäisyyttä levysoittimeen.
2. Telineessäni kamera "heilui" hieman, millimetrin murto-osan verran - mutta tämä riitti vääristämään kuvaa. Eliminoituu lisäämällä vaahtomateriaalia.
4. Kääntöpöytä oli läpinäkyvä eikä siinä ollut pinnoitetta (kuten alkuperäisessä) - maalasin sen plastidipillä.
5. Tarkista kalibroinnin shakkitaulukuviot. En tiedä kuinka ne tulostivat sarjani, mutta neliöiden mittasuhteet olivat väärät. Otin sen Internetistä ja painoin sen itse.
6. Kameran tarkennusta ei ole säädetty etäisyyteen tasoon nähden. Otin kannen pois ja säädin tarkennuksen paikalleen.











Kuten näette, skannerin "aivot" ovat tavallinen Arduino Uno yhdistettynä ZUM Scan -suojaan ja A4988-askelmoottoriohjaimeen. Tilaa hallinnoi BQ:n alkuperäinen Horus-ohjelmisto.

Kokoamisen jälkeen skanneri kävi läpi kalibrointitoimenpiteet alkuperäisessä Horus-ohjelmistossa.

Koska tiesin jo tähän aikaan, että skannauksen laatu riippuu paljon valaistuksen laadusta (vakaus, hajautus, värilämpötila), huolehdin etukäteen pienestä valolaatikosta, jotta ainakin enemmän tai vähemmän vertailukelpoiset olosuhteet olisivat. kokeiluun.

Valittuani "ehdokkaat" koe-esiintyjiin valmistauduin.

Kohdetta koskevat vaatimukset ovat seuraavat:
1. Esineen on oltava suurempi kuin 5x5 cm, mutta pienempi kuin 20x20 cm
2. Kohteen tulee olla läpinäkymätön ja liikkumaton
3. Esine saa painaa enintään 3 kg

Vaikea skannata:
1. Kiiltävät, kirkkaat esineet
2. Esineet ovat liian tummia
3. Esineet, joiden pinnat ovat epäselviä (kuten täytetyt eläimet)

Skannauksen tuloksena on PLY-muodossa oleva pistepilvi (joka sitten on muutettava pinnaksi). Tässä voit valmistella STL-tiedoston.

Luettuani skannaukset päätin kokeilla sitä yksinkertaisella lieriömäisellä esineellä.
Useiden yritysten jälkeen tulin vakuuttuneeksi siitä, että minulla oli yhteinen ongelma - oikean ja vasemman laserin pistepilvet eivät täsmänneet, ja mittasuhteissa oli ongelma.



Emme löytäneet tässä asiassa mitään muuta hyödyllistä kuin yrittää kalibroida verkkokameran asetukset (ne eivät kalibroidu, kun kalibrointivelho on käynnissä) (Jeesus-niminen kaveri BQ-tuesta ei ole vastannut kysymyksiin pitkään aikaan). Tätä varten sinun on otettava useita kuvia kalibrointitaulukon eri paikoissa. Minä tein. Tilanne on parantunut, mutta ei täysin.
Minun piti muokata manuaalisesti kalibrointitiedostoa (calibration.json Horus-a-kansiossa) ja yrityksen ja erehdyksen avulla skannata sylinterimäinen objekti varmistaakseni, että pilvet täsmäävät.
Ja kaikki näyttää olevan kunnossa:



Mutta ei - monimutkaisissa kohteissa pilvipalat eivät joskus vieläkään täsmää, ja muodostuu monia "sokeita" vyöhykkeitä:





Lisäksi on selvää, että kirkkaan punaisten kohteiden skannaus on mahdotonta, ainakin tavallisilla lasereilla.

Voit tietysti jatkaa skannauksen kokeilua erillisillä lasereilla ja yrityksiä yhdistää tämä kaikki kolmannen osapuolen ohjelmistoihin ja sitten yrittää saattaa se STL:lle käyttökelpoiseen muotoon.

Kaikki tämä tuo mieleeni yhden vitsin pulloissa olevista laivoista.

Kuinka teet veneitä pulloissa?
-Laitan hiekkaa, silikaattiliimaa, tikkuja pulloon ja ravistelen.
Siitä tulee kaikenlaista paskaa, ja joskus - veneitä.


Yleisesti ottaen ymmärsin, että en ole tällaisen luovuuden kannattaja, ja epäilen, että skannerin vallassa olevia esineitä on helpompi mallintaa tyhjästä.

Ja monimutkaiset - skanneri ei pysty selviytymään monimutkaisista normaalitilassa; kaksi laseria ei riitä siihen - kuolleet kulmat jäävät. Tämän ongelman poistamiseksi sinun on skannattava muissa asennoissa ja taisteltava sitten taas pilvien yhdistämisen kanssa. Ei kiitos.

Tästä johtuen asia soveltuu vain laserskannauksen perusteiden opiskeluun, muuhun se on täysin hyödytön. Ei, tietenkään on mahdollista saada jotain samanlaista ääriviivalla kuin alkuperäinen malli, mutta siinä kaikki (ja tässä otetaan huomioon kaikki pilvikäsittelyn tamburiinit). Ei turhaan, että espanjalaiset hylkäsivät tämän asian.
Kauppa pelasi varman päälle - kuvauksessa todetaan rehellisesti, että tulos riippuu planeettojen sijainnista ja Sonya-tädin tunnelmasta kolmannesta kerroksesta. Avoin lähdekoodi ja kaikki, tanssitaan yhdessä. Ei kiitos.

Johtopäätös on, että älä ota sitä, mutta jos haluat äärimmäistä metsästystä, koota se itse samasta asiasta, josta vitsin ystävä tekee veneitä.

Tuote toimitettiin myymälän arvostelun kirjoittamista varten. Katsaus on julkaistu Sivustosääntöjen kohdan 18 mukaisesti.

Aion ostaa +9 Lisää suosikkeihin Pidin arvostelusta +101 +156

FabScan on avoimen lähdekoodin tee-se-itse laser 3D-skanneri. Kokosin omani MDF-levyistä ja erilaisista saatavilla olevista materiaaleista ja päätin esimerkiksi laatia luomisprosessin puolestasi.

Vaihe 1: Mitä tarvitset




Virallista FabScan-skanneria varten tarvitset:

  • Arduino UNO
  • Askelmoottori A4988
  • FabScan-Shield 3D-laserskannerimoduuli Arduinolle
  • 5mW punainen lasermoduuli
  • Virtalähde 12V - 1A
  • Logitech C270 verkkokamera

Laatikon luomiseen tarvitset 4 MDF-arkkia, joiden mitat ovat 600*300*5 mm.

Projektissani käytin:

  • Arduino UNO
  • Bipolaarinen askelmoottori - NEMA 17 (200 askelta)
  • Askelmoottori A4988
  • 5mW punainen lasermoduuli
  • Virtalähde 12V - 2A
  • Logitech C270 verkkokamera

Koska käytämme FabScan-ohjelmistoa, suosittelen pysymään niiden osaluettelossa; löydät helposti kaikki FabScan-viite 3D-skannerin dokumentaatiot Internetistä.

Vaihe 2: Kokoa gallerialaatikko 3D-skanneria varten




Näytä 4 muuta kuvaa





Käytin Dremeliä ja mielikuvitustani skannerilaatikon kokoamiseen. Tämä ei ole niin yksinkertaista, koska oikean 3D-kuvan saamiseksi kameran, laserin ja askelmoottorin on oltava oikeissa asennoissa. Jos et halua vaivautua, voit ostaa vain valmiita osia, mutta se ei ole halpaa.

Vaihe 3: Moduulien liittäminen


Laitteiston kokoaminen on melko yksinkertaista:
Liitä FabScan-moduuli Arduinoon ja aseta A4988-moottori ensimmäiseen asentoonsa. Liitä moottori lähtönastoihin ja lasermoduuli analogiseen nastaan ​​A4. Liitä lopuksi virtalähde ja USB-kaapeli.

Jos päätät koota skannerin osaluetteloni mukaan:
Sitten sinun on kytkettävä A4988-moottori Arduinon nastoihin 10, 11, 9, 8 (jos haluat, nastat voidaan vaihtaa) ja kytke lasermoduuli nastaan ​​A4. Liitä lopuksi myös virtalähde ja USB-kaapeli.

Vaihe 4: Koodi Arduinolle

Käytämme FabScanin virallista koodia. Lataa se Arduinoon ja olet valmis.

Jos sinulla on Codebender-laajennus asennettuna, voit ladata koodin Arduinoon seuraamalla tätä linkkiä.

Jos kokoat skannerin osaluetteloni mukaan, napsauta Muokkaa-painiketta ja toimi seuraavasti:

  • Lisää rivejä #include const int stepsPerRevolution = 200;//muuta moottorisi askelmäärää Stepper myStepper(stepsPerRevolution, 10, 11,8,9);
  • Korvaa step()-funktio seuraavalla: void step() ( myStepper.setSpeed(1); myStepper.step(1); )

Vaihe 5: Tietokoneohjelmisto






Käytämme "FabScan Ubuntu Live DVD" -kuvaa. Voit ladata sen. Tässä kuvassa FabScan-ohjelmisto on jo esiasennettu. Kuva voidaan kirjoittaa muistitikulle, kuinka tämä tehdään, löytyy Internetistä.

Tärkeä huomautus: Jos valitsit "Kokeile Ubuntua" -vaihtoehdon, tallenna tiedostosi ennen kuin sammutat tietokoneesi!

Katso liitteenä olevat kuvat ja noudata ohjeita:

  • Valitse portti SerialPortista
  • Valitse kamera Kamerasta
  • Tiedosto - Ohjauspaneeli
  • Napsauta tunnistuslaser (älä laita mitään skanneriin tässä vaiheessa) ja valitse Ota käyttöön.
  • Napsauta "Fetch Frame" ja varmista, että sininen vaakaviiva koskettaa levysoittimen yläosaa ja keltainen vaakaviiva koskettaa levysoittimen alaosaa. Pystysuoran keltaisen viivan tulee kulkea levysoittimen keskustan läpi. Löysä kamera voi aiheuttaa vääristyneitä skannauksia!

Sulje asettamisen jälkeen ohjauspaneelin ikkuna, aseta kohde skanneriin ja napsauta aloita skannaus -painiketta.

3D-kuvan tallentaminen:
Kun skannaus on valmis, voit tallentaa 3D-objektin tiedostoon .pcd- tai .ply-muodossa. Voit myös tallentaa sen stl-muodossa, mutta sitä ei tueta kaikilla alustoilla. Voit myös avata aiemmin skannatun kohteen valitsemalla Tiedosto - OpenPointCloud.

Mitä tehdä 3D-tiedostoille?
Voit avata ne MeshLabissa ja tulostaa ne 3D-tulostimella.
Objektien tulostaminen MeshLabissa:

  • Tallenna objekti .ply-muodossa
  • Avaa tiedosto MeshLabissa
  • Laske normaalit MeshLabissa (Suodattimet/Pistejoukko/Laske normaalit pistejoukoille)
  • Rekonstruoi pinta käyttämällä Poisson-rekonstruktiota (Filters/Point Set/Surface Reconstruction: Poisson)
  • Valmis

FabScan on avoimen lähdekoodin DIY 3D-laserskanneri.

Projekti alkoi Francis Engelmannin kandidaattiprojektin kehittämisen aikana. Hankkeen virallinen sivu löytyy.

Tämän projektin perusteella kehitettiin analogi, jota käsitellään artikkelissa. MDF-levyä käytetään nyrkkeilyyn. Sähköinen täyttö on myös hieman erilainen.

Arduino-ohjelma on otettu alkuperäisestä projektista. Joten kiitos FabScan-tiimille erinomaisesta avoimen lähdekoodin 3D-skannerista!

Joten aloitetaan.

Vaaditut komponentit

Alkuperäisen FabScan-projektin osat ja komponentit:

  • A4988 askelmoottoriohjain;
  • Shield FabScan;
  • NEMA 17 bipolaarinen askelmoottori (200 askelmaa);
  • Virtalähde 12 V - 1 A;
  • Logitech C270 verkkokamera.

Runkoon tarvitset 4 MDF-arkkia. Mitat - 600 mm x 300 mm. Paksuus - 5 mm. Tarkempia tietoja.

Tässä käsikirjassa käytetyt osat ja kokoonpanot:

  • (200 askelta);
  • Askelmoottorin ohjain L298N;
  • 5 mW lasermoduuli - valmistaja Punainen viiva;
  • Virtalähde 12 V - 2 A;
  • Logiteck C270 verkkokamera.

Eli emme yksinkertaisesti käytä FabScan-suojaa ja käytämme eri askelmoottoriohjainmoduulia

Kotelon kehittäminen 3D-skannerille

3D-skannerimme rungon kehitysprosessi ja tulos näkyvät valokuvissa. Suurin vaikeus on kameran, lasermoduulin ja askelmoottorin tarkin asennus. Jos haluat helpottaa elämääsi, voit tilata nämä osat hintaan 35 euroa.

3D-skannerikokoonpano







1. Suojalla.

Asenna FabScan shield Arduinoon. A4988-askelmoottoriohjain on asennettu mukana toimitetuille kiskoille. Askelmoottori on kytketty tyyppikilven vastaaviin koskettimiin. Lasermoduuli on kytketty analogiseen nastaan ​​A4. Tämän jälkeen voit liittää virta- ja USB-kaapelin. Tarkemmat ohjeet löytyy.

2. Ilman suojaa.

Jos päätät rakentaa skannerin ilman suojausta, kytke L298-askelmoottoriohjain Arduinon nastoihin 10, 11, 9, 8 (periaatteessa näitä nastat voidaan muuttaa luonnoksen asianmukaisilla muokkauksilla). Lasermoduuli on kytketty Arduinon nastaan ​​A4. Kaikki. Voit kytkeä virta- ja USB-kaapelin.


Luonnos Arduinolle

Tärkeä muistiinpano! Jos käytät "Kokeile Ubuntua" -vaihtoehtoa, varmista, että tallennat tiedostosi ennen kuin sammutat tietokoneen!

Noudata ohjeita, joista on kuvat alla:

  • Valitse SerialPort;
  • Valitse Kamera;
  • Tiedosto - Ohjauspaneeli;
  • Napsauta havaitsevaa laseria (älä aseta mitään esineitä skannerin eteen toistaiseksi) ja valitse "ota käyttöön";
  • Napsauta "Fetch Frame" ja varmista, että sininen vaakaviiva koskettaa levysoittimen yläosaa ja keltainen vaakaviiva koskettaa levysoittimen pohjaa. Lisäksi keltaisen pystysuoran viivan on yhdyttävä kääntöpöydän keskustaan. Jos kameraa ei ole asennettu oikein, skannaustulos ei ole selkeä!

Sulje ikkuna asettamisen jälkeen, aseta kohde 3D-skanneriin ja napsauta Aloita skannaus -painiketta.

Huomautus: Tässä oppaassa on lisätietoja konfiguraatio.xml-tiedoston määrittämisestä.

3D-kuvan tallentaminen

Kun 3D-skannaus on valmis, voit tallentaa skannatun 3D-objektin .pcd- tai .ply-tunnisteella. Voit myös tallentaa sen 3D-stl-tiedostona, mutta tämä ominaisuus ei ole käytettävissä kaikilla alustoilla. Voit avata aiemmin skannatun ja tallennetun objektin valitsemalla Tiedosto - OpenPointCloud.

Mitä seuraavaksi?

MeshLabin avulla voit käsitellä skannatun 3D-objektin ja tulostaa sen 3D-tulostimella!

Kun käsittelet tiedostoa MeshLabissa:

1. Varmista, että tallennat objektin .ply-tiedostona.

2. Avaa tiedosto MeshLabilla.

3. Laske MeshLabissa normaalit (Suodattimet/Pistejoukko/Laske normaalit).

4. Rakenna sen jälkeen pinta uudelleen Poisson-rekonstruktiolla (Filters/Point Set/Surface Reconstruction: Poisson)

Lopullinen koottu rakenne näkyy alla olevassa kuvassa.


Video alkuperäisestä FabScan 3-D -skannerista toiminnassa:

Suuri kiitos FabScan-tiimille upeasta avoimen lähdekoodin skannerista Arduinossa!

Jätä kommenttisi, kysymyksesi ja jaa henkilökohtainen kokemus alla. Keskusteluissa syntyy usein uusia ideoita ja projekteja!

Se on analogi kuuluisalle FabScan-laserskannerille, jonka on kehittänyt Francis Engelmann. Kirjoittaja käytti MDF-levyä tällaisen skannerin laatikona, joka myös täytteenä on hieman erilainen kuin alkuperäinen.

Alkuperäinen ohjelma on Arduinolle, se on otettu alkuperäisestä projektista.

Materiaalit ja työkalut skannerin luomiseen:

4 arkkia MDV 600X300 mm, paksuus 5 mm (ne tarvitaan kotelon luomiseen);
- askelmoottori (NEMA 17 200 portaan);
- Ajuri askelmoottorille L298N;
- 5 mW lasermoduuli (käytetty valmistajalta Red Line);
- laitteen virransyöttöön tarvitaan 12 V - 2 A jännite;
- verkkokameramalli Logiteck C270.






Alkuperäinen kotitekoinen tuote käyttää A4988-askelmoottoriohjainta, ja mitä tulee askelmoottoriin, se on myös NEMA 17. Muuten kotitekoisen tuotteen elementit ovat täsmälleen samat kuin alkuperäisessä versiossa.

Skannerin valmistusprosessi:

Ensimmäinen askel. Kehon tekeminen
Koko skannerin kotelon luomisprosessi näkyy kuvassa. Tärkeintä tässä asiassa on tarkkuus. Lasermoduuli, askelmoottori ja web-kamera tulee sijoittaa selkeästi oikeille paikoille projektin mukaisesti.













Vaihe kaksi. Kytkemme sähkölaitteet


Laitteet voidaan kytkeä kahdella tavalla, suojalla ja ilman. Tarkastellaanpa kutakin näistä vaihtoehdoista tarkemmin.

Liitäntä ilman suojaa
Jos päätät koota laitteen ilman suojaa, niin L298-askelmoottorin johdot liitetään Arduino-nastoihin numeroilla 10, 11, 9, 8. Periaatteessa voit käyttää muita koskettimia, mutta sinun on tehtävä muutoksia luonnokseen.
Mitä tulee lasermoduuliin, se on kytkettävä Arduino-ohjaimen nastaan ​​A4. Tämän jälkeen voit liittää USB-kaapelin ja virran.

Liitäntä suojalla
Sinun on asennettava FabScan-suoja Arduinoon. Mitä tulee askelmoottoriohjaimeen, se on asennettava tätä varten tarkoitettuihin kiskoihin. Askelmoottorin koskettimet on kytketty vastaaviin tyyppikilven koskettimiin.
Lasermoduuli on liitettävä Arduinon nastaan ​​A4. Siinä kaikki, sen jälkeen kytke virta- ja USB-kaapeli.

Vaihe kolme. Luonnoksen asentaminen
Nyt sinun on ladattava ja asennettava FabScanin virallinen luonnos. Arduinon päivittämiseksi sinun on ladattava Codebender-laajennus ja napsauta sitten "Suorita Arduinossa" -painiketta. Tässä tapauksessa luonnos voidaan asentaa suoraan selaimen kautta viralliselta verkkosivustolta.


Jos kilpiä ei käytetty, sinun on napsautettava Muokkaa-painiketta ja lisättävä sitten seuraavat rivit:

const int stepsPerRevolution = 200; // Muuta tätä parametria säätääksesi askelmäärän askelmoottorin akselin kierrosta kohden

Stepper myStepper(vaiheetPerRevolution, 10, 11,8,9);
Korvaa step()-funktio:

myStepper.setSpeed(1);

myStepper.step(1);

Vaihe neljä. Skanneri ohjelmisto
Ohjelman asentamiseksi sinun on ladattava "FabScan Ubuntu Live DVD" -kuva, asennuksen jälkeen se tulee näkyviin ohjelmisto FabScan.

Sinun on tehtävä joitain asetuksia ohjelmassa:

Ensin sinun on valittava SerialPort;
- valitse sitten Kamera;
- sen jälkeen Tiedosto - Ohjauspaneeli;
- napsauta sitten havaitse laser ja valitse "ota käyttöön" (esteitä ei tarvitse asettaa laserin eteen);
- No, napsauta nyt "Hae kehys", kun taas sinisen vaakaviivan tulisi koskettaa pyörivän pöydän alaosaa. Keltaisen viivan tulee olla taulukon keskellä. Jos kameraa ei ole asennettu oikein, kuva tulee olemaan Huono laatu.












Siinä kaikki, ohjelma on määritetty. Nyt voit laittaa jonkin kohteen skanneriin ja painaa sen jälkeen Aloita skannaus -painiketta.

Vaihe viisi. Tallenna kuva
Kun kohteen skannaus on valmis, kuva voidaan tallentaa .pcd- tai .ply-muodossa. Voit myös tallentaa sen stl-muodossa, mutta tämä riippuu käyttämästäsi alustasta.
Jos haluat avata aiemmin tallennetun objektin, sinun on valittava Tiedosto - OpenPointCloud.

) päätimme kokeilla sen kokoamista ja, jos mahdollista, parantaa sen muotoilua. Emme voineet edes kuvitella, mitä siitä tulisi, saati kuvitella, että voittaisimme sillä useita tieteellisiä ja teknisiä näyttelyitä. Mutta järjestyksessä. Ketä kiinnostaa tietää lopputulos, tervetuloa kissaan (paljon kuvia).

Ensimmäinen prototyyppi

Ensin päätimme kerätä laseretäisyysmittari. Se tehtiin radioamatöörifoorumin artikkelin perusteella. Vain laserosoitin ja kamera. Java-kielellä kirjoitettiin ohjelma kuvien käsittelyyn. Yhtä mittausta varten otettiin kaksi valokuvaa: laserilla ja ilman. Niiden vertailun jälkeen pystyimme varmasti löytämään laserpisteen. Kun tämä toimi, etäisyysmittari asennettiin alustalle, joka pystyi pyörimään kahdessa tasossa. Ennen kuin näytän, mitä sain, minun täytyy varoittaa - kesäkoulussa ei ole paljon materiaalia, joten kokosimme prototyypin siitä, mitä meillä oli:

Kamera on heti näkyvissä, ja laser on sen yläpuolella oleva messingisylinteri. Alustan pyörittämiseen käytimme kahta askelmoottoria, jotka vuorostaan ​​liitettiin Atmega32-mikrokontrollerin ohjauskorttiin. Laser oli kytketty siihen. Itse kortti liitettiin tietokoneeseen USB->UART-sovittimen kautta. Tietokoneella oleva ohjelma otti kuvia, käsitteli niitä, syötti saatujen pisteiden koordinaatit tiedostoon ja lähetti komennot ohjauskortille.

Tulos oli mielenkiintoinen. Kyllä, löysimme etäisyyden. Kyllä, voisimme "kohdistaa" mihin tahansa kohtaan skannerin yläpuolella olevalla pallonpuoliskolla. Ja ilollamme ei ollut rajoja. Mutta kun arvioimme tämän pallonpuoliskon skannausajan, se osoittautui 48 tunniksi. Eikä kyse ole kamerasta. Eikä edes Javalla. Ongelmana oli, että asennus oli niin heikko, että se heilui jokaisen käännöksen jälkeen viiden sekunnin ajan. Minun piti ottaa mittaus, kääntyä ympäri ja odottaa viisi sekuntia, kunnes se lakkasi heilumasta. Ja lisäksi kameran kirjasto käynnisti ja sammutti sen ennen jokaista kuvaa. Tämä kesti 1-2 sekuntia. Mutta kesäkoulu oli loppumassa, eikä ollut aikaa tehdä sitä uudelleen: se oli jo iltana ennen projektin määräaikaa. Tai pikemminkin aamulla. Seuraavana päivänä esittelimme projektimme kilpailussa tieteellisen tuomariston edessä ja voitimme yllättäen. Luultavasti tämän voiton ansiosta päätimme jatkaa työtämme tämän projektin parissa.

Versio kaksi

Itse asiassa kesä on ohi ja kouluvuosi on alkanut. Työnhalu katosi. Asennus suunniteltiin valmistuvan seuraavaan kilpailuun, joka oli kuukauden päästä. Kuukausi. Ja sitten yhtäkkiä kolme päivää. Mutta kuukauden sisällä päätimme muuttaa asetusta. Kokoa se tiukasti, asenna laserosoittimeen linssi, joka luo laserviivan. Tämä mahdollistaisi 720 pisteen skannaamisen kerralla (skannerissa oli HD-kamera). Vain kolme päivää ovat tehneet omat säätönsä:

Toinen skanneri on koottu muovisista viivoista, liimasta, maalarinteipistä ja se pysyy paikallaan vain sinisellä sähköteipillä. Linssin sijaan on koeputki. Vihreä laser loistaa tässä koeputkessa. Heijastunut säde luo näytölle enemmän tai vähemmän tasaisen laserraidan. Etäisyysmittari on kiinnitetty vain yhteen moottoriin, joka pyörittää sitä vaakatasossa. Ohjauskortti korvattiin STM32VLDiscoveryllä. Tiedän vain STM32:n paremmin, ja lisäksi Atmega paloi loppuun ja ohjelmoija oli kadonnut kauan sitten. Ei näytä kovin hyvältä, mutta toimii! Värähtely väheni ja nopeus kasvoi vastaavasti. Mutta ei paljon. Täällä löydettiin erittäin mielenkiintoinen saalis - kiinalainen laserosoitin ei käynnistynyt heti, vaan lisäsi tehoaan vähitellen sekunnin kuluessa. Siten toinen värähtelee, toinen lämmittää laseria, toinen ottaa kuvan, ja niitä on kaksi. Joten saamme 4 sekuntia. Mutta yhdessä mittauksessa löydämme jopa 720 pisteen etäisyydet! Skannausprosessi näytti tältä:

Ja tulos on tällainen:

Kuva ei näytä kovin mielenkiintoiselta, mutta muki oli ohjelmassa runsas. Sitä voisi katsoa eri näkökulmista.

Mikä on todellinen kilpailu? Mutta ei mitään! Lopetimme skannauksen kello 4 aamulla, ja klo 9 osastolla huomasimme laserin palaneen. Kuten kävi ilmi, kun kannoimme sitä hotellilta osastolle, siihen pääsi sade, ja kun se käynnistettiin, se paloi. Ja kun se ei toimi, se näyttää niin pahalta, että on vaikea uskoa sanoja "se toimi 5 tuntia sitten". Olimme järkyttyneitä. Halu jatkaa katosi laserin savun mukana. Mutta silti se kerättiin...

Kolmas versio

Ja se koottiin jälleen kilpailua varten. Lisäksi valmistauduimme siihen pitkään ja perusteellisesti. Yli viikko. Ja tässä tulos:

Ensimmäinen asia, joka pistää silmään, on se, että nyt emme skannaa skannerin ympärillä olevaa aluetta, vaan esinettä, joka pyörii alustalla. Saimme myös tarvittavan linssin, kokosimme kaiken oikein, kirjoitimme ohjelman uudelleen ja vaihdoimme myös debug-kortin kotitekoiseen. Ja nyt otamme vain yhden kuvan mittausta kohden. Laser on riittävän tehokas ja linssi riittävän hyvä paikantamaan laserin yksilöllisesti valokuvassa. Tämän ansiosta emme odota laserin lämpenemistä - se on aina päällä. Ja nyt kytkemme kameran päälle vain kerran. Eli aika kuluu enimmäkseen alustan pyörittämiseen ja kuvan käsittelyyn. Ohjelmaan on lisätty valikko tarkkuuden valintaa varten. Skannausaika on kahdesta kymmeneen minuuttiin. Riippuen valitusta tarkkuudesta. Maksimitarkkuudella käy ilmi, että alusta pyörii 0,5 astetta askelta kohti ja etäisyys määritetään 0,33 mm:n tarkkuudella. Alustaa ohjaa askelmoottori vaihteiston kautta. Itse alusta on iso levy, ja moottorin akselin kumirulla on pieni. Moottoria ja laseria ohjattiin STM32F050F4-mikro-ohjaimella kenttätransistorit. Artikkelin alussa on skannaus tällä skannerilla saadusta lelusta. Koska skanneri tuottaa pistepilven .obj-muodossa, voimme kolmiomittauksen jälkeen tulostaa skannatun kohteen 3D-tulostimelle, kuten samasta valokuvasta näkyy. Näytöllä näemme mallin kolmion jälkeen. Mallille ei tehty manuaalista työtä.

Voitimme kilpailun. Ja hän osallistui kansainväliseen Intel ISEF -kilpailuun. Joten aloimme työstää seuraavaa skanneria.

Neljäs versio

Päällä Tämä hetki Tämä uusin versio kokoamamme skanneri. Vertailun vuoksi alustalla on toinen versio. Yritimme lähestyä neljännen skannerin kehitystä niin perusteellisesti kuin pystyimme. Asennus piirretty CAD:lla, osat laserleikattu, kaikki maalattu, ulkopuolelta ei jäänyt mitään turhaa. Muutokset: Alusta on nyt itse asiassa vaihde. Se on leikattu pleksilasista ja siinä on 652 hammasta reunoilla. Tämä ratkaisee ongelman, joka vahingoitti vakavasti skannauksia edellisessä skannerissa: kumirulla luisui hieman, minkä vuoksi alusta ei useinkaan kiertynyt 360 astetta. Skannaukset olivat joko "leikattuja" tai päällekkäisiä. Täällä tiesimme aina tarkalleen, kuinka lava pyörii. Laserteho tehtiin säädettäväksi ohjelmistolla. Tämän ansiosta oli mahdollista muuttaa laserin tehoa lennossa välttäen tarpeettomien osien valaistumista heikossa valaistuksessa. Hallitaksemme kaikkea elektroniikkaa päätimme olla erottamatta uusi lauta, mutta käytä vain F401RE-Nucleo-virheenkorjausohjelmaa. Siinä on asennettuna ST-LinkV2.1, joka toimii debuggerina ja USB->UART-sovittimena.

Tarkkuus oli hämmästyttävä: kulmaresoluutio 0,14 astetta. 0,125 mm:n etäisyydellä. Skannausalue on sylinteri, jonka korkeus on 20 cm ja halkaisija 30 cm. Kaikkien osien ja laserleikkauksen hinta sen luomishetkellä (toukokuu 2014) oli alle 4 000 ruplaa.

Käytön aikana asetamme sen maksimitarkkuuteen vain kerran. Skannaus kesti 15-20 minuuttia. Saimme lähes 2 miljoonaa pistettä. Kannettava tietokone kieltäytyi laskemasta mallia pistepilvestä. Koetta ei toistettu.

Johtopäätös

Lähitulevaisuudessa aiomme jatkaa projektin parissa, joten viimeistelemme sekä ohjelman että asennuksen. Toivottavasti kirjoitamme siitä pian askel askeleelta kokoonpano, julkaisemme piirustuksia, ohjelmia ja kaikkea muuta. Tämä ei enää mahdu tähän artikkeliin.

Kiitos kaikille loppuun asti lukeneille!

UPD:
Kollegamme löysi skannerin toiminnasta videon, jonka kuvasimme ISEF:ssä:

Kyllä, suurin osa videosta ei ole kiinnostava, mutta lopussa on malli kannettavalla tietokoneella.

Ja tässä on esimerkkejä skannatuista objekteista. Mutta ne kaikki kuuluvat skannerin kolmanteen versioon.
Dropbox
Model.obj-tiedostosta näet selvästi, mitä tapahtuu, kun tämä kumirulla luistaa moottorin päälle - koiralla on kolme silmää. Skannaus pysäytettiin, mikä aiheutti katkeamisen. Kaikki tiedostot ovat pistepilviä. Voit avata sen MeshLabin avulla. Malleja ei käsitelty käsin. Täysin raakadataa. Ylhäältä näet "valkoisia pisteitä" - alueita, joissa ei ole pisteitä. Kamera ei näe niitä. Valkoisia pilkkuja näkyy myös muualla. Ne näkyvät joko liian tummilla alueilla tai kun pinnat menevät päällekkäin. Esimerkiksi tiedostossa stn_10.obj vuohen sarvet menevät päällekkäin, minkä vuoksi sarvien sisäpintaa ei skannattu.




Yläosa