Talaan ng mga Nilalaman:

Raspberry Pi Laser Scanner: 9 Mga Hakbang (na may Mga Larawan)
Raspberry Pi Laser Scanner: 9 Mga Hakbang (na may Mga Larawan)

Video: Raspberry Pi Laser Scanner: 9 Mga Hakbang (na may Mga Larawan)

Video: Raspberry Pi Laser Scanner: 9 Mga Hakbang (na may Mga Larawan)
Video: On the traces of an Ancient Civilization? 🗿 What if we have been mistaken on our past? 2024, Hulyo
Anonim
Image
Image
Raspberry Pi Laser Scanner
Raspberry Pi Laser Scanner

Ang Laser Scanner ay isang aparato na naka-embed na Raspberry Pi na nakapag-digitize ng mga bagay sa.obj mesh file para sa pagpaparami gamit ang 3D print. Ginagawa ito ng aparato sa pamamagitan ng paggamit ng isang linya ng laser at isang pinagsamang PiCam upang maisagawa ang paningin sa computer. Ang laser ay nakaposisyon ng 45 degree askew mula sa laser at naglalabas ng isang maliwanag na pulang linya sa isang patayong hiwa ng bagay. Nakita ng camera ang distansya ng hiwa mula sa gitna upang magbigay ng isang slice ng mesh. Ang bagay ay naiikot sa umiikot na tray at ang proseso ay paulit-ulit hanggang sa mai-scan ang buong bagay. Ang nabuong.obj file ay sa wakas ay na-email sa gumagamit, ginagawa ang system na ganap na nakapag-iisa at naka-embed.

Dadaanin ang Instructable na ito sa kung paano binuo ang aparato, ilang mga resulta, at mga hakbang sa hinaharap.

Hakbang 1: Inspirasyon

Inspirasyon
Inspirasyon
Inspirasyon
Inspirasyon

Bilang isang masugid na gumagawa, naging 3D pag-print at solidong pagmomodelo ako sa maraming taon na ngayon. Nagtrabaho ako sa maraming iba't ibang mga tool ng prototyping mula sa mga router ng CNC hanggang sa mga pamutol ng laser sa mga 3D printer. Ang isang aparato na hindi pa nabibili ng aking lokal na makerspace ay isang 3D scanner - at masasabi ko sa iyo kung bakit.

Ang mga mas murang mga (ilang daang dolyar) ay hindi maaasahan, nangangailangan ng mga perpektong kondisyon, at nakagawa pa rin ng magagandang mga resulta na walang pag-asa. Ang mga mahal ay… mabuti, mahal, umaabot hanggang sa libu-libong dolyar, ginagawa itong pagpapaandar na hindi katumbas ng halaga sa maraming mga kaso. Bukod dito, mas maraming beses kaysa sa hindi, pinili kong magsukat at magdisenyo ng isang modelo mula sa simula kaysa makitungo sa ibabaw ng mata na nabuo mula sa isang pag-scan.

Dahil dito, nais kong bumuo ng isang standalone scanner ng badyet upang makita kung gaano ko kahusay mai-scan ang isang bagay gamit ang mga bahagi ng istante.

Matapos magsagawa ng ilang pagsasaliksik, nakita ko na maraming mga 3D scanner ang gumamit ng isang umiikot na platform at pagkatapos ay iba't ibang mga iba't ibang mga sensor upang masukat ang distansya mula sa gitna upang makabuo ng isang umiikot na modelo. Marami sa mga ito ang ginamit ng mga dalawahang kamera na katulad ng sa Kinect. Sa kalaunan ay nadapa ko ang Yscanner na isang mababang resolusyon ng scanner na gumagamit ng isang laser. Sa pagtingin sa pagiging simple at pagiging posible, ang diskarteng ito ng laser, kung saan ang isang laser ay sininang na offset na may kaugnayan sa isang kamera upang masukat ang distansya mula sa gitna, ay mukhang isang malinaw na landas pasulong.

Hakbang 2: Mga Tool at Bahagi

Mga Bahagi:

  • Raspberry Pi $ 35.00
  • Raspberry Pi Camera V2 $ 30.00
  • Mga LED, Resistor at Wires
  • 3D filament ng pag-print
  • 12x12x0.125 mga sheet ng kahoy
  • M3 hardware
  • Stepper Motor - $ 14
  • Line Laser - $ 8
  • LN298 Stepper Motor Drivers - $ 2.65
  • Metal Pushbutton - $ 5

Mga tool:

  • Panghinang
  • Laser pamutol
  • 3d printer
  • Screwdriver
  • Mga Plier

Hakbang 3: Disenyo ng Mataas na Antas

Disenyo ng Mataas na Antas
Disenyo ng Mataas na Antas
Disenyo ng Mataas na Antas
Disenyo ng Mataas na Antas

Ang gitnang bahagi ng disenyo na ito ay ang linya ng laser na nagpapatakbo sa isang patayong hiwa ng mga bagay. Ang projection na ito ay maaaring makuha sa picamera, ipatama ang pananaw nito, at pagkatapos ay i-filter bago ang pagproseso ng imahe. Sa pagproseso ng imahe, ang distansya sa pagitan ng bawat segment ng linya mula sa gitna ng bagay ay maaaring makolekta. Sa mga coordinate ng radial, ang larawang ito ay magbubunga ng parehong mga sangkap ng r at z. Ang pangatlong dimensyon, Θ, ay nakakamit sa pamamagitan ng pag-ikot ng bagay sa isang bagong hiwa. Ang konseptong ito ay ipinapakita sa unang pigura.

Upang maisagawa ang mga inilarawan na pagkilos sa itaas, gumamit ako ng isang Raspberry Pi bilang aming sentral na yunit ng computing. Nag-attach ako ng isang stepper motor at isang driver ng motor sa Pi, na pinalakas ng isang panlabas na 5V na supply at kinokontrol ng mga pin ng GPIO ng Pi. Ang isang linya ng laser ay inilagay sa linya ng 3.3 V sa Pi at isang PiCam ay naka-attach sa input ng camera sa Pi. Panghuli, isang simpleng naka-pull down na pindutan ang na-install at isang LED status upang ipahiwatig sa gumagamit kung ano ang estado ng system. Ang buong system ay na-buod sa isang diagram ng block ng system.

Mula sa simula, pinlano na itabi ang mga electronics sa isang laser cut box na gaganapin kasama ang T-slots at M3 hardware. Ang electronics ay maitatago mula sa paningin sa isang ilalim na kompartimento at ang isang takip ay magpapahintulot sa madaling pag-access sa paglalagay ng object sa umiikot na tray. Ang takip na ito ay kinakailangan upang mabawasan ang dami ng ilaw na tumutulo sa system, dahil ang panlabas na ilaw na ito ay maaaring makagawa ng ingay sa huling pag-scan.

Hakbang 4: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Tulad ng nakikita sa itaas, bago ko sinimulan ang pagputol ng laser o pag-print ng 3D, ginamit ko ang Autodesk Fusion 360 upang makagawa ng isang detalyadong modelo ng 3D ng aming disenyo. Bilang isang pangkalahatang ideya, ang aparato ay isang simpleng kahon na may takip na may mga laser cut hinge. Mayroong dalawang pangunahing mga layer ng aparato: ang electronics bed at ang pangunahing kama, na may mga butas para sa mga wires upang tumakbo sa pagitan ng dalawang mga layer.

Ang karamihan sa aming kahon ay gawa sa isang pamutol ng laser, na may mga disenyo na ginawa sa Fusion 360 at gupitin sa isang pamutol ng laser na Epilog Zing 40 W. Ang aming mga disenyo ay ipinapakita sa mga numero sa itaas. Mula sa kaliwang tuktok na paglipat ng kanan, ang mga piraso ay ang pangunahing higaan, ang electronics bed, dalawang piraso para sa takip, sa likod na piraso, sa harap na piraso, at sa dalawang bahagi ng gilid. Sa pangunahing kama, mayroong tatlong pangunahing mga ginupit: isa para sa pag-mount ng stepper motor, isa sa mga ruta ng ruta mula sa laser, at isa upang i-ruta ang malawak na cable ng PiCam. Ang piraso ng kama ay may mga butas na tumataas para sa pag-secure ng Pi, breadboard, at driver ng motor at isang mas malaking cutout upang ma-access ang stepper motor. Ang mga piraso ng takip ay nag-snap magkasama upang mabuo ang tatsulok na piraso na nakikita sa itaas at ang bisagra ay isang simpleng pagpilit na lapad ng diameter ng butas ng mga gilid na board. Ang piraso sa likuran at isa sa mga piraso ng gilid ay may mga puwang sa gilid upang ang mga port ng Pi (HDMI, USB, Ethernet, Power) ay madaling ma-access. Ang harap ay isang simpleng piraso na kalaunan ay gumawa ako ng mga butas gamit ang isang drill ng kamay upang mai-mount ang pindutan at LED. Tulad ng nakikita sa lahat ng mga piraso, ang aming mga bahagi ay pinagsama-sama ng M3 hardware gamit ang T-Joints at slots. Ito ay isang paraan ng paghawak ng mga piraso ng laser cut na ortohogonally at ligtas. Ang mga palikpik ng mga piraso ay nakahanay kasama ang mga puwang ng iba pang mga piraso at ang hugis na t-cut sa mga gilid ay nagbibigay ng puwang para sa isang M3 nut na ma-jam sa kanila nang hindi umiikot. Pinapayagan kaming gamitin ang isang M3 turnilyo upang i-lock ang mga piraso kasama ang napakaliit na silid na walang pag-iingat ng pagpupulong.

Pinili kong gawin ang karamihan ng aming mga piraso ng isang laser cutter dahil sa bilis at kadalian nito. Gayunpaman, kinailangan ko pa ring mag-print ng 3D ng ilang mga piraso dahil sa kanilang 3D geometry na magiging mas mahirap lumikha sa cutter. Ang unang piraso ay ang may-hawak ng linya ng laser. Ang piraso na ito ay mai-mount sa pangunahing kama sa 45 degree mula sa view ng camera at magkaroon ng isang butas na tulad ng laser ay maaaring snuggly pagkikiskisan magkasya dito. Kailangan ko ring lumikha ng motor mount dahil ang haba ng poste ng motor. Ang pag-mount ng alitan ay umaangkop sa mga piraso ng hiwa ng laser at ibinaba ang eroplano na nakakabit ang motor sa ganoon na ang umiikot na platform ay na-flush ng pangunahing kama.

Hakbang 5: Elektronika

Elektronika
Elektronika

Ang mga kable ng hardware ng proyektong ito ay napaka-simple dahil ang 3D scanner ay hindi nangangailangan ng masyadong maraming mga peripheral. Ang isang motor, pindutan, LED, laser, at camera ay kailangang maikonekta sa Pi. Tulad ng ipinakita, tinitiyak kong ikonekta ang mga resistors sa serye sa bawat pin na ginamit namin upang maprotektahan ang mga pin. Ang isang pin ng GPIO ay nakatuon sa pagkontrol sa katayuan LED, na magpapasindi kapag handa na ang aparato na magamit at magpatakbo ng pulso sa PWM kapag tumatakbo ang aparato. Ang isa pang pin ng GPIO ay nakakonekta sa isang naka-pull-up na pindutan, nagrerehistro ng TAAS kapag ang pindutan ay hindi pinindot at LOW kapag pinindot ang pindutan. Panghuli, inilaan ko ang apat na mga pin ng GPIO sa pagmamaneho ng stepper motor.

Dahil ang aming motor ay kinailangan lamang na hakbangin ang isang tiyak na lawak nang hindi nangangailangan ng kontrol sa bilis, pumili kami para sa isang mas simpleng stepper motor driver (L298N) na pinapataas lamang ang mga linya ng kontrol upang makakain sa mga input ng motor. Upang malaman ang tungkol sa kung paano patakbuhin ang mga stepper motor sa isang napakababang antas, tinukoy namin ang parehong sheet ng data ng L298N at ang Arduino library. Ang stepper motor's ay may isang magnetic core na may pertruding daliri ng alternating polarity. Ang apat na mga wire ay nakabalot upang makontrol ang dalawang electromagnets na kung saan ang bawat kapangyarihan sa bawat ibang kalabang daliri sa motor. Kaya, sa pamamagitan ng paglipat ng polarity ng mga daliri, nagagawa naming itulak ang stepper ng isang hakbang. Sa kaalamang ito kung paano gumana ang mga stepper mula sa isang antas ng hardware, nakontrol namin ang mga steppers nang mas madali. Pinili namin upang paandarin ang aming stepper motor mula sa isang 5V supply ng kuryente sa lab kaysa sa Pi dahil sa maximum na kasalukuyang gumuhit na mga 0.8 A, na higit pa sa maaaring ibigay ng Pi.

Hakbang 6: Software

Software
Software
Software
Software
Software
Software
Software
Software

Ang software para sa proyektong ito ay maaaring hatiin sa apat na pangunahing mga sangkap na magkakasamang nakikipag-ugnay: Pagpoproseso ng Imahe, Pagkontrol sa Motor, Paglikha ng Mesh, at Mga Pag-embed na Pag-andar.

Bilang isang buod ng software, maaari kaming tumingin sa unang figure. Tulad ng system boots, ang.bashrc ay awtomatikong nag-log in sa Pi at nagsisimulang tumakbo ang aming python code. Ang ilaw ng system ang ilaw ng katayuan upang ipaalam sa gumagamit na ito ay na-boot nang tama at naghihintay para sa pindutan ng pindutan. Pagkatapos ay mailalagay ng gumagamit ang item upang mai-scan at isara ang takip. Matapos itulak ang pindutan, ang mga pulso ng LED upang ipaalam sa gumagamit na gumagana ang aparato. Mag-loop ang aparato sa pagitan ng pagpoproseso ng imahe at kontrol ng motor hanggang sa makumpleto ang buong pag-ikot at nakolekta ang lahat ng data ng object. Sa wakas, ang mesh ay nilikha at ang file ay na-email sa isang preselected na email. Ire-restart nito ang ikot at handa na ang makina upang magsagawa ng isa pang pag-scan sa pagpindot sa isang pindutan.

Pagpoproseso ng Larawan

Ang unang ipinatupad ay ang pagpoproseso ng isang nakunan ng imahe upang makuha ang impormasyong nakaimbak sa imahe sa isang form na maaaring magamit upang lumikha ng isang hanay ng mga puntos sa kalawakan. Upang magawa ito, nagsimula ako sa pamamagitan ng pagkuha ng larawan ng bagay sa platform kasama ang lahat ng ingay sa background na nilikha ng laser na nagniningning sa likurang kahon at nagkakalat. Ang larawang ito ay mayroong dalawang pangunahing problema sa hilaw nitong anyo. Una, ang bagay ay tiningnan sa isang anggulo na may mataas na pananaw at pangalawa, mayroong maraming ingay sa background. Ang unang bagay na kailangan kong gawin ay account para sa anggulo ng pagtingin na ito dahil ang paggamit ng larawan bilang ay hindi magpapahintulot sa amin upang matukoy ang isang pare-parehong taas ng object. Tulad ng nakikita sa pangalawang pigura, ang taas ng nakabaligtad na "L" na hugis ay pare-pareho; gayunpaman dahil sa isang gilid na mas mahaba kaysa sa kabilang panig ay lilitaw silang magkakaiba ng taas sa gilid na pinakamalapit sa manonood.

Upang ayusin ito, kailangan kong ibahin ang workspace sa imahe sa isang rektanggulo mula sa trapezoidal na hugis na dating ito. Upang magawa ito, ginamit ko ang code na ibinigay ng link na ito, na kung bibigyan ng isang imahe at apat na puntos, ina-crop ang imahe sa pagitan ng apat na puntos at binago ang na-crop na imahe upang mabayaran ang pananaw. Ang pagbabagong ito ay gumagamit ng apat na puntos upang lumikha ng isang rektanggulo sa halip na isang hugis ng uri ng trapezoid tulad ng nakikita sa pangatlong pigura.

Ang susunod na problema na kailangang malutas ay ang ingay sa background sa anyo ng ilaw sa labas at ilaw na makikita ng mismong laser. Upang magawa ito, sinala ko ang ilaw gamit ang inRange () na pagpapaandar ng OpenCV. Itinakda ko ang threshold upang pumili lamang ng pulang ilaw sa isang tiyak na antas. Upang makuha ang tamang halaga, nagsimula ako sa isang malambot na threshold at patuloy na nadaragdagan ang antas ng threshold hanggang sa ang tanging ilaw na nakuha ay ang ilaw ng laser sa bagay na na-scan. Kapag nagkaroon ako ng imaheng ito, nahanap ko ang pinakamaliwanag na pixel sa bawat hilera upang kumuha ng isang linya ng isang pixel bawat hilera na hangganan sa kaliwang pinaka-bahagi ng linya ng laser. Ang bawat pixel ay na-convert sa isang tuktok sa 3D space at nakaimbak sa isang array, tulad ng inilarawan sa seksyon ng paglikha ng mesh. Ang mga resulta ng mga hakbang na ito ay maaaring makita sa ika-apat na pigura.

Pagkontrol sa Motor

Matapos na matagumpay na maproseso ang isang solong imahe upang makuha ang hiwa ng bagay, kailangan kong paikutin ang bagay upang kumuha ng isang bagong larawan na may ibang anggulo. Upang magawa ito, kinontrol ko ang stepper motor sa ibaba ng platform kung saan nakaupo ang bagay na na-scan. Bumuo ako ng isang pundasyon ng aming stepping function sa pamamagitan ng paglikha ng isang variable upang subaybayan ang estado ng motor at microstepping sa pamamagitan ng pag-toggle ng bawat isa sa apat na mga input ng motor.

Upang lumikha ng isang mata mula sa lahat ng mga naprosesong imahe, kinailangan ko munang i-convert ang bawat puting pixel sa naprosesong imahe sa isang tuktok sa 3D space. Dahil nangongolekta ako ng mga indibidwal na hiwa ng bagay na may cylindrical symmetry, may katuturan upang simulan upang mangolekta ng mga cylindrical coordinate. May katuturan ito dahil ang taas ng larawan ay maaaring kumatawan sa z-axis, ang distansya mula sa gitna ng umiikot na mesa ay maaaring kumatawan sa R-axis, at ang pag-ikot ng stepper motor ay maaaring kumatawan sa theta-axis. Gayunpaman, dahil naimbak ko ang aming data sa mga cylindrical coordinate, kinailangan kong baguhin ang bawat isa sa mga vertex na ito sa mga coordinate ng cartesian.

Kapag nilikha ang mga vertex na ito, naimbak ang mga ito sa isang listahan at sinabi na ang listahan ay naimbak sa isa pang listahan na naglalaman ng mga listahan ng vertex na nilikha para sa bawat larawang nakuha. Kapag naproseso na ang lahat ng mga imahe at na-convert sa mga vertex, kailangan kong piliin ang mga vertex na talagang nais kong kinatawan sa huling mesh. Nais kong isama ang tuktok na vertex at ilalim na vertex at pagkatapos ay batay sa resolusyon na pinili ko ang isang pantay na spaced na bilang ng mga vertex na gagamitin para sa bawat imahe. Dahil hindi lahat ng mga listahan ng vertex ay magkapareho ang haba, kinailangan ko silang palabasin sa pamamagitan ng paghahanap ng listahan na may pinakamaliit na bilang ng mga vertex at alisin ang mga vertex mula sa lahat ng iba pang mga listahan hanggang sa pantay silang lahat. Sa nilikha ang mga listahan ng vertex nagawa ko na lumikha ng isang mata. Pinili kong i-format ang aming mata sa pamantayan ng.obj file dahil ito ay simple at 3D na naka-print.

Naka-embed na Pag-andar

Matapos gumana ang aparato, pinakintab ko ito sa pamamagitan ng pagdaragdag ng buong naka-embed na pag-andar. Nangangahulugan ito ng pag-alis ng keyboard, mouse, at monitor, at pagkakaroon ng wireless na pagpapadala sa amin ng.obj file matapos ang pagproseso. Upang magsimula, binago ko ang.bashrc code upang awtomatikong mag-log in at ilunsad ang pangunahing programa ng sawa sa pagsisimula. Ginawa ito sa pamamagitan ng paggamit ng sudo raspi-config at pagpili ng "Console Autologin" at sa pamamagitan ng pagdaragdag ng linya na "sudo python /home/pi/finalProject/FINAL.py" sa /home/pi/.bashrc. Bilang karagdagan dito, nagdagdag ng isang pindutan at katayuan LED para sa pag-input at output ng gumagamit. Hahayaan ng pindutan ang gumagamit na sabihin sa aparato kung kailan magsisimulang mag-scan at sasabihin ng LED sa gumagamit ang estado ng makina. Kung ang LED ay nakabukas, ang aparato ay handa na upang magsimula ng isang bagong pag-scan. Kung ang LED ay pumutok, ang aparato ay kasalukuyang nag-scan. Kung ang LED ay opisina, mayroong isang error sa software, na tumatawag para sa isang restart ng system. Panghuli, pinagana ko ang aparato upang maipadala ang.obj file sa pamamagitan ng email. Ginawa ito sa pamamagitan ng paggamit ng mga smtplib at email library. Ang kakayahang magpadala ng mga email ay nagbigay sa amin ng isang napaka-maginhawa at wireless na paraan upang maihatid ang ginawa file sa gumagamit upang ma-access sa maraming iba't ibang mga platform.

Hakbang 7: Pagsasama

Pagsasama
Pagsasama

Matapos ang paggawa ng iba't ibang mga piraso ng aparato, pinagsama-sama ko ito. Ang figure sa itaas ay nagpapakita ng pagkakasunud-sunod:

(a) naka-ipon na kahon sa labas

(b) binuo kahon sa loob ng camera at laser

(c) paningin sa loob ng electronics bed

(d) likod ng Pi na may access sa Pi port at ang 5V motor input

(e) pindutan ng itulak na may singsing na LED at ilaw ng katayuan sa harap ng aparato

Hakbang 8: Mga Resulta

Mga Resulta
Mga Resulta
Mga Resulta
Mga Resulta
Mga Resulta
Mga Resulta
Mga Resulta
Mga Resulta

Ang laser 3D scanner ay nakapag-scan ng mga bagay na may disenteng kawastuhan. Ang mga tampok ng mga object ay natatangi at makikilala at ang mga bahagi ay napakadaling mag-print ng 3D gamit ang isang slicing software tulad ng Repetier. Ang mga numero sa itaas ay nagpapakita ng ilang mga sample na pag-scan ng isang piraso ng kahoy at isang ducky na goma.

Ang isa sa aming pinakamalaking mga natuklasan at tagumpay na natuklasan ko sa panahon ng pagsubok ay ang pagkakapare-pareho ng aparato. Sa buong maramihang mga pagsubok ng parehong bagay, ang scanner ay nakagawa ng isang.obj file na halos magkatulad sa bawat oras, kahit na medyo binago namin ang pagkakalagay ng object. Tulad ng nakikita sa tatlong magkakahiwalay na pag-scan, lahat sila ay magkatulad na hitsura, kinukuha ang parehong mga detalye at parehong dami ng detalye. Sa pangkalahatan ay napahanga ako sa pagkakapare-pareho at katatagan ng aming system.

Ang isa sa mga variable na talagang nais kong ibagay ay ang paglutas ng mga pag-scan. Dahil mayroong 400 mga hakbang sa stepper, mapipili ko kung gaano kalaki ang bawat isa ΔΘ upang idikta ang angular na resolusyon. Bilang default, mayroon akong angular na resolusyon na nakatakda sa 20 mga pag-ulit, nangangahulugang ang bawat frame, ang motor ay umiikot ng 20 mga hakbang (400/20 = 20). Pangunahin itong napili sa interes ng oras - tumatagal ng halos 45 segundo upang makumpleto ang isang pag-scan sa ganitong paraan. Gayunpaman, kung nais ko ang isang mas mataas na kalidad na pag-scan, maaari kong taasan ang bilang ng mga pag-ulit hanggang sa 400. Nagbibigay ito ng maraming higit pang mga point upang maitayo ang modelo, na gumagawa para sa isang mas detalyadong pag-scan. Bilang karagdagan sa angular na resolusyon, maaari ko ring ayusin ang patayong resolusyon, o kung gaano karaming iba't ibang mga punto ang pinili ko upang mag-poll kasama ang hiwa ng laser. Para sa isang katulad na interes sa oras, mayroon akong default na nakatakda sa 20 ngunit maaari ko itong dagdagan para sa mas mahusay na mga resulta. Sa paglalaro ng mga parameter na ito ng angular resolusyon at spatial na resolusyon, nakapag-ipon ako ng mga resulta ng iba't ibang mga pag-scan sa ibaba sa huling pigura. Ang bawat label ay nai-format na tulad na ito ang angular na resolusyon x spatial na resolusyon. Tulad ng nakikita sa mga setting ng default na pag-scan, ang mga tampok ng pato ay makikilala ngunit hindi detalyado. Gayunpaman, sa pagdaragdag ko ng resolusyon, nagsisimulang ipakita ang mga indibidwal na tumpak na tampok, kasama na ang mga mata, tuka, buntot, at mga pakpak sa pato. Ang pinakamataas na imahe ng resolusyon ay tumagal ng halos 5 minuto upang i-scan. Ang pagkakita sa mataas na ito ng isang nakakamit na resolusyon ay isang napakalaking tagumpay.

Mga limitasyon

Sa kabila ng matagumpay na mga resulta ng proyekto, mayroon pa ring ilang mga limitasyon ng disenyo at pagpapatupad. Sa paggamit ng laser ay may maraming mga isyu sa kung paano ang disperse ng ilaw. Maraming mga bagay na sinubukan kong i-scan na maaaring translucent, makintab, o madilim na pinatunayan na nakakagambala sa kung paano sumasalamin ang ilaw sa ibabaw. Kung ang bagay ay translucent, ang ilaw ay maihihigop at nagkalat, na ginagawang isang napakaingay na pagbabasa ng mga hiwa. Sa makintab at madilim na mga bagay, ang ilaw ay maaaring masasalamin o maihihigop sa punto na kung saan ito ay magiging mahirap na kunin. Bukod dito, dahil gumagamit ako ng isang camera upang makuha ang mga tampok ng mga bagay, ang sensing nito ay limitado ng linya ng paningin nito, nangangahulugang ang mga malukong bagay at matalim na mga anggulo ay madalas na hinarangan ng iba pang mga bahagi ng bagay. Ipinapakita ito sa aming halimbawa ng goma na pato dahil ang buntot minsan ay mawawala ang kurbada nito sa pag-scan. Maaari lamang makita ng camera ang mga istruktura sa ibabaw na nangangahulugang ang mga butas o panloob na mga geometry ay hindi maaaring makuha. Gayunpaman, ito ay isang pangkaraniwang problema na mayroon ding maraming iba pang mga solusyon sa pag-scan.

Mga Susunod na Hakbang

Bagaman natutuwa ako sa mga resulta ng aming proyekto, may ilang mga bagay na maaaring ipatupad upang mapabuti ito. Para sa mga nagsisimula, sa kasalukuyang estado, ang resolusyon ng pag-scan ay mababago lamang sa pamamagitan ng pagbabago ng mga variable na hard code na resolusyon sa aming code. Upang gawing mas naka-embed ang proyekto, maaaring maisama ang isang potensyomiter ng resolusyon upang mabago ng gumagamit ang resolusyon nang hindi kinakailangang mag-plug sa isang monitor at keyboard sa scanner. Bilang karagdagan, lumilikha ang scanner ng mga imaheng minsan ay maaaring mukhang jagged. Upang ayusin ito, ang mga diskarte sa mesh smoothing ay maaaring ipatupad upang makinis ang mga iregularidad at malupit na sulok. Panghuli, nalaman kong ang mga coordinate ng pixel ay hindi masukat nang maayos sa totoong mundo. Ang meshes na nilikha ko ay 6 hanggang 7 beses na mas malaki kaysa sa aktwal na object. Sa hinaharap magiging kapaki-pakinabang ang pagpapatupad ng isang paraan ng pag-scale ng meshes upang mas tumpak ang mga ito sa totoong laki ng bagay.

Hakbang 9: Mga Mapagkukunan

Isinama ko ang code, mga file ng STL para sa pag-print, at mga file ng DXF para sa paggupit para sa kabuuan ng proyekto.

Raspberry Pi Contest 2020
Raspberry Pi Contest 2020
Raspberry Pi Contest 2020
Raspberry Pi Contest 2020

Unang Gantimpala sa Raspberry Pi Contest 2020

Inirerekumendang: