Բովանդակություն:

Raspberry Pi լազերային սկաներ. 9 քայլ (նկարներով)
Raspberry Pi լազերային սկաներ. 9 քայլ (նկարներով)

Video: Raspberry Pi լազերային սկաներ. 9 քայլ (նկարներով)

Video: Raspberry Pi լազերային սկաներ. 9 քայլ (նկարներով)
Video: TITANFALL 2 Ամբողջական ԽԱՂ | ՔԱՐՈԶԱՐՇԱՎ - Ընթացք / PS4 (Բոլոր օդաչուների սաղավարտները) 2024, Հուլիսի
Anonim
Image
Image
Raspberry Pi լազերային սկաներ
Raspberry Pi լազերային սկաներ

Լազերային սկաները Raspberry Pi- ի ներդրված համակարգային սարք է, որը կարող է թվայնացնել օբյեկտները.obj ցանցի ֆայլերի մեջ `3D տպագրության միջոցով վերարտադրման համար: Սարքը դա անում է ՝ օգտագործելով գծային լազեր և ինտեգրված PiCam համակարգչային տեսողությունը կատարելու համար: Լազերը տեղադրված է լազերից 45 աստիճան հեռավորության վրա և օբյեկտի մեկ ուղղահայաց հատվածի վրա ցուցադրում է վառ կարմիր գիծ: Տեսախցիկը հայտնաբերում է կտորի հեռավորությունը կենտրոնից ՝ ցանցի կտոր տալու համար: Օբյեկտը պտտվում է պտտվող սկուտեղի վրա և գործընթացը կրկնվում է մինչև ամբողջական օբյեկտի սկանավորումը: Ստեղծված.obj ֆայլը վերջապես ուղարկվում է օգտվողին էլեկտրոնային փոստով ՝ համակարգը դարձնելով լիովին ինքնուրույն և ներդրված:

Այս Instructable- ը կքննարկի, թե ինչպես է սարքը ստեղծվել, որոշ արդյունքներ և ապագա քայլեր:

Քայլ 1: Ոգեշնչում

Ոգեշնչում
Ոգեշնչում
Ոգեշնչում
Ոգեշնչում

Որպես եռանդուն արտադրող ՝ ես արդեն մի քանի տարի զբաղվում եմ 3D տպագրությամբ և կոշտ մոդելավորմամբ: Ես աշխատել եմ բազմաթիվ տարբեր նախատիպերի գործիքների հետ ՝ CNC երթուղիչներից մինչև լազերային կտրիչներ մինչև 3D տպիչներ: Մի սարք, որը իմ տեղական արտադրական տարածքը դեռ չի գնել, եղել է 3D սկաները, և ես կարող եմ ձեզ ասել, թե ինչու:

Ավելի էժանագինները (մի քանի հարյուր դոլար) անհուսալի էին, պահանջում էին կատարյալ պայմաններ և, այնուամենայնիվ, տալիս էին բավականին աղոտ արդյունքներ: Թանկարժեքները… լավ էին, թանկ էին ՝ մինչև մի քանի հազար դոլար, ինչը շատ դեպքերում չարժեր դրա գործառույթը: Բացի այդ, ավելի շատ, քան ոչ, ես նախընտրում եմ չափումներ կատարել և մոդել ստեղծել զրոյից, քան զբաղվել սկանավորման արդյունքում առաջացած մակերեսային ցանցի հետ:

Դրա պատճառով ես ուզում էի բյուջետային ինքնուրույն սկաներ կառուցել ՝ տեսնելու համար, թե որքան լավ կարող եմ առարկան սկանավորել ՝ օգտագործելով դարակի բաղադրիչները:

Որոշ հետազոտություններ կատարելուց հետո ես տեսա, որ շատ 3D սկաներներ օգտագործում են պտտվող հարթակ, այնուհետև տարբեր սենսորներ `կենտրոնից հեռավորությունը չափելու համար` պտտվող մոդել կառուցելու համար: Դրանցից շատերն օգտագործում էին երկակի տեսախցիկներ, որոնք նման էին Kinect- ին: Ի վերջո, ես պատահաբար հանդիպեցի Yscanner- ին, որը ցածր լուծաչափով սկաներ է և օգտագործում է լազեր: Պարզության և իրագործելիության տեսանկյունից, այս լազերային տեխնիկան, որի ընթացքում լազերը փոխվում է տեսախցիկի համեմատ, կենտրոնից հեռավորությունը չափելու համար, կարծես հստակ ճանապարհ էր դեպի առաջ:

Քայլ 2: Գործիքներ և մասեր

Մասեր:

  • Ազնվամորի Պի 35,00 դոլար
  • Raspberry Pi Camera V2 30,00 դոլար
  • LED, դիմադրիչներ և լարեր
  • Եռաչափ տպման թելիկ
  • 12x12x0.125 փայտե թիթեղներ
  • M3 սարքավորում
  • Stepper Motor - 14 դոլար
  • Line Laser - 8 դոլար
  • LN298 Stepper Motor Drivers - 2.65 դոլար
  • Մետաղական կոճակ - 5 դոլար

Գործիքներ:

  • Sոդման երկաթ
  • Լազերային կտրիչ
  • 3D տպիչ
  • Պտուտակահան
  • Տափակաբերան աքցան

Քայլ 3: Բարձր մակարդակի ձևավորում

Բարձր մակարդակի դիզայն
Բարձր մակարդակի դիզայն
Բարձր մակարդակի դիզայն
Բարձր մակարդակի դիզայն

Այս դիզայնի կենտրոնական բաղադրիչը գծային լազերն է, որն առաջանում է օբյեկտների ուղղահայաց հատվածի վրա: Այս պրոյեկցիան կարող է նկարվել ֆոտոխցիկի վրա, ուղղել դրա հեռանկարը, այնուհետև զտել մինչև պատկերի մշակումը: Պատկերի մշակման ժամանակ գծի յուրաքանչյուր հատվածի միջև հեռավորությունը օբյեկտի կենտրոնից կարելի է հավաքել: Radառագայթային կոորդինատներում այս պատկերը կհանգեցներ ինչպես r, այնպես էլ z բաղադրիչներին: Երրորդ չափումը ՝ Θ- ն, այնուհետև ձեռք է բերվում ՝ օբյեկտը նոր կտորի պտտելով: Այս հայեցակարգը ներկայացված է առաջին նկարում:

Վերոնշյալ նկարագրված գործողությունները կատարելու համար ես օգտագործեցի Raspberry Pi- ն որպես մեր կենտրոնական հաշվիչ միավոր: Ես Pi- ին կցեցի մի սանդղակի շարժիչ և շարժիչ, որը սնուցվում էր արտաքին 5 Վ լարման միջոցով և վերահսկվում էր Pi- ի GPIO կապումներով: Pi- ի 3.3 Վ գծի վրա տեղադրվեց գծային լազեր, իսկ Pi- ի տեսախցիկի մուտքին ամրացվեց PiCam: Վերջապես, տեղադրվեց մի պարզ քաշված կոճակ և կարգավիճակի LED, որն օգտագործողին ցույց կտա, թե ինչ վիճակում է համակարգը: Ամբողջական համակարգը ամփոփված է համակարգի բլոկ -դիագրամում:

Ի սկզբանե նախատեսվում էր էլեկտրոնիկան տեղադրել լազերային տուփի մեջ, որը պահվում էր T-slots և M3 սարքավորումների հետ միասին: Էլեկտրոնիկան թաքնված կլինի տեսադաշտից ներքևի խցիկում, իսկ կափարիչը թույլ կտա հեշտությամբ հասնել պտտվող սկուտեղի վրա գտնվող օբյեկտների տեղադրմանը: Այս կափարիչն անհրաժեշտ է համակարգում ներթափանցող լույսի նվազագույնի հասցնելու համար, քանի որ այս արտաքին լույսը կարող է աղմուկ առաջացնել վերջնական սկանավորման ժամանակ:

Քայլ 4: Սարքավորումներ

Սարքավորումներ
Սարքավորումներ
Սարքավորումներ
Սարքավորումներ
Սարքավորումներ
Սարքավորումներ

Ինչպես երևում էր վերևում, նախքան լազերային կտրում կամ 3D տպագրություն սկսելը, ես օգտագործեցի Autodesk Fusion 360 -ը ՝ մեր դիզայնի մանրամասն 3D մոդելը պատրաստելու համար: Որպես ակնարկ, սարքը պարզ տուփ է ՝ կափարիչով, լազերային կտրված ծխնիներով: Սարքի երկու հիմնական շերտ կա ՝ էլեկտրոնիկայի մահճակալը և հիմնական մահճակալը, երկու շերտերի միջև լարերի անցքեր ունեն:

Մեր տուփի մեծամասնությունը արտադրվել է լազերային դանակով, նախագծերը արտադրվել են Fusion 360 -ում և կտրված են Epilog Zing 40 W լազերային դանակի վրա: Մեր նախագծերը ցուցադրվում են վերը նշված նկարներում: Վերևից ձախ ՝ աջ շարժվելով, կտորներն են հիմնական մահճակալը, էլեկտրոնիկայի մահճակալը, կափարիչի համար երկու կտոր, հետևի մասը, առջևի հատվածը և երկու կողային մասերը: Գլխավոր մահճակալի վրա կա երեք հիմնական անջատում. Մեկը `սանդղակի շարժիչը տեղադրելու համար, մեկը` լազերից լարերը ուղղելու և մեկը `PiCam- ի լայն մալուխը: Մահճակալի կտորն ունի ամրացման անցքեր ՝ Pi- ն, տախտակը և շարժիչն ապահովելու համար, և ավելի մեծ անջատիչ ՝ սլաքի շարժիչ մուտք գործելու համար: Կափարիչի կտորները կպչում են պարզապես ՝ ձևավորելով վերևում տեսվող եռանկյուն կտորը, իսկ ծխնին պարզ արտամղում է, որը կողային տախտակների անցքի տրամագծի լայնությունն է: Հետևի կտորը և կողային մասերից մեկը կողային հատվածներ ունեն, որպեսզի Pi- ի (HDMI, USB, Ethernet, Power) պորտերը հեշտությամբ հասանելի լինեն: Առջևը պարզ կտոր է, որի մեջ ես ի վերջո անցքեր արեցի ձեռքի փորվածքով ՝ կոճակը և LED- ն ամրացնելու համար: Ինչպես երևում է բոլոր կտորների վրա, մեր մասերը միասին պահվում են M3 ապարատով ՝ օգտագործելով T-Joints և slots: Սա լազերային կտրված կտորները ուղղանկյուն և ապահով պահելու մեթոդ է: Մասերի լողակները համընկնում են մյուս կտորների բացերի հետ, իսկ եզրերի t- աձև կտրվածքը տարածք է տալիս, որպեսզի M3 ընկույզը խրվի դրանց մեջ ՝ առանց պտտվելու: Սա թույլ է տալիս մեզ օգտագործել M3 պտուտակը ՝ կտորները կողպելու համար շատ փոքր տեղաշարժվող սենյակի հետ միասին ՝ առանց հավաքման ամբողջովին մշտական լինելու:

Ես ընտրեցի մեր կտորների մեծամասնությունը անել լազերային դանակով `իր արագության և հեշտության պատճառով: Այնուամենայնիվ, ես դեռ ստիպված էի 3D կտոր տպել որոշ կտորների շնորհիվ `դրանց երկրաչափության պատճառով, որոնք ավելի դժվար կլիներ ստեղծել դանակի վրա: Առաջին կտորը գծային լազերային ամրակն էր: Այս կտորը պետք է տեղադրվեր հիմնական մահճակալի վրա ՝ տեսախցիկի տեսանկյունից 45 աստիճանի վրա և ունենար այնպիսի անցք, որ լազերը կարող էր սահուն շփում տեղավորել դրա մեջ: Ես նաև ստիպված էի ստեղծել շարժիչի ամրացում, քանի որ շարժիչի լիսեռը այնքան երկար էր: Լեռան շփումը տեղավորվեց լազերային կտրված կտորների մեջ և իջեցրեց շարժիչը ամրացված հարթությունը այնպես, որ պտտվող հարթակը համընկնի հիմնական մահճակալի հետ:

Քայլ 5: Էլեկտրոնիկա

Էլեկտրոնիկա
Էլեկտրոնիկա

Այս նախագծի էլեկտրամոնտաժային սարքավորումները շատ պարզ էին, քանի որ 3D սկաները չի պահանջում չափազանց շատ ծայրամասային սարքեր: Pi- ին միանալու համար անհրաժեշտ էր շարժիչ, կոճակ, LED, լազեր և տեսախցիկ: Ինչպես ցույց է տրված, ես համոզվեցի, որ ռեզիստորները շարքով միացնում եմ մեր օգտագործած յուրաքանչյուր կապում, որպեսզի կապանքները պաշտպանենք: GPIO- ի մեկ քորոց նվիրված էր կարգավիճակի LED- ի վերահսկմանը, որը լուսավորվում էր, երբ սարքը պատրաստ էր օգտագործման և զարկերակ էր PWM- ով, երբ սարքը գործում էր: Մեկ այլ GPIO կապիչ միացված էր քաշված կոճակին ՝ գրանցելով HIGH, երբ կոճակը չի սեղմվում, և LOW, երբ կոճակը սեղմվում էր: Ի վերջո, ես GPIO- ի չորս կապում նվիրեցի քայլող շարժիչը վարելուն:

Քանի որ մեր շարժիչը պետք է միայն որոշակի չափով քայլեր կատարեր ՝ առանց արագության վերահսկողություն պահանջելու, մենք ընտրեցինք ավելի պարզ քայլող շարժիչ (L298N), որը պարզապես բարձրացնում է կառավարման գծերը ՝ շարժիչի մուտքերին սնվելու համար: Աստիճան շարժիչները շատ ցածր մակարդակի վրա աշխատելու մասին իմանալու համար մենք վկայակոչեցինք ինչպես L298N տվյալների թերթը, այնպես էլ Arduino գրադարանը: Stepper շարժիչներն ունեն մագնիսական միջուկ ՝ փոփոխվող բևեռայնության ցցված մատներով: Չորս լարերը փաթաթված են ՝ վերահսկելու երկու էլեկտրամագնիսներ, որոնցից յուրաքանչյուրը շարժիչով շարժում է յուրաքանչյուր հակառակ մատը: Այսպիսով, մատների բեւեռայնությունը փոխելով, մենք կարողանում ենք մեկ քայլով առաջ մղել սլաքը: Այս գիտելիքով, թե ինչպես են քայլողներն աշխատում ապարատային մակարդակից, մենք կարողացանք շատ ավելի հեշտ վերահսկել քայլողները: Մենք որոշեցինք լաբորատորիայում ոչ թե Pi- ից, այլ 5V էլեկտրամատակարարումից անջատել մեր սուզվող շարժիչը, քանի որ դրա ընթացիկ առավելագույն հոսանքը կազմում է մոտ 0,8 Ա, ինչը ավելին է, քան Pi- ն կարող էր ապահովել:

Քայլ 6: Softwareրագրակազմ

Ծրագրային ապահովում
Ծրագրային ապահովում
Ծրագրային ապահովում
Ծրագրային ապահովում
Ծրագրային ապահովում
Ծրագրային ապահովում
Ծրագրային ապահովում
Ծրագրային ապահովում

Այս ծրագրի ծրագրակազմը կարելի է բաժանել չորս հիմնական բաղադրիչների, որոնք փոխազդում են միասին ՝ Պատկերի մշակում, Շարժիչային վերահսկում, eshանցի ստեղծում և Ներկառուցված գործառույթներ:

Որպես ծրագրակազմի ամփոփում, մենք կարող ենք նայել առաջին թվին: Երբ համակարգը բեռնվում է,.bashrc- ն ինքնաբերաբար մուտք է գործում Pi և սկսում գործարկել մեր պիթոնի ծածկագիրը: Համակարգը լուսավորում է կարգավիճակի լույսը, որպեսզի օգտագործողը իմանա, որ այն ճիշտ է գործարկվել և սպասում է կոճակի սեղմմանը: Դրանից հետո օգտագործողը կարող է տեղադրել սկանավորման ենթակա իրը և փակել կափարիչը: Կոճակը սեղմելուց հետո լուսադիոդային ազդանշանը ազդում է օգտվողին սարքի աշխատանքի մասին: Սարքը կշրջվի պատկերի մշակման և շարժիչի կառավարման միջև, մինչև ամբողջական պտույտը չավարտվի և չհավաքվեն օբյեկտի բոլոր տվյալները: Ի վերջո, ցանցը ստեղծվում է, և ֆայլը ուղարկվում է էլեկտրոնային փոստով ՝ նախապես ընտրված էլ. Սա վերսկսում է ցիկլը, և մեքենան պատրաստ է կատարել մեկ այլ սկան կոճակի սեղմումով:

Պատկերի մշակում

Առաջին բանը, որ իրականացվեց, գրավված պատկերի մշակումն էր, որպեսզի պատկերում պահված տեղեկատվությունը դուրս բերվեր այնպիսի ձևի, որը կարող էր օգտագործվել տարածության մեջ կետերի զանգված ստեղծելու համար: Դա անելու համար ես սկսեցի լուսանկարել հարթակի վրա գտնվող օբյեկտը, ինչպես նաև լազերային ֆոնային աղմուկը, որը փայլում էր տուփի հետևի մասում և ցրվում: Այս նկարն ուներ երկու հիմնական խնդիր `իր հումքի տեսքով: Նախ ՝ օբյեկտը դիտարկվում էր բարձրացված հեռանկարով անկյան տակ, և երկրորդ ՝ մեծ աղմուկ էր լսվում: Առաջին բանը, որ պետք է անեի, հաշվի առնել դիտման այս անկյունը, քանի որ լուսանկարն այնպես, ինչպես կա, թույլ չի տա որոշել օբյեկտի հետևողական բարձրությունը: Ինչպես երևում է երկրորդ նկարում, «L» գլխիվայր շրջված ձևի բարձրությունը համահունչ է. սակայն, քանի որ մի կողմը մյուսից երկար է, թվում է, որ նրանք ունեն տարբեր բարձրություններ դիտողին ամենամոտ եզրին:

Դա շտկելու համար ես ստիպված էի պատկերի աշխատանքային տարածքը վերածել ուղղանկյունի ՝ նախկինում եղած տրապիզոիդ ձևից: Դա անելու համար ես օգտագործեցի այս հղման տված ծածկագիրը, որը երբ տրվում է պատկեր և չորս կետ, պատկերը կտրում է չորս կետերի միջև և փոխակերպում կտրված պատկերը `փոխհատուցելու հեռանկարը: Այս փոխակերպումն օգտագործում է չորս կետերը ՝ ուղղաձիգ ձևի փոխարեն ՝ տրապիզոիդ տիպի ձևի փոխարեն, ինչպես երևում է երրորդ նկարում:

Հաջորդ խնդիրը, որը պետք է լուծվեր, ֆոնային աղմուկն էր ՝ արտաքին լույսի և լույսի տեսքով, որն արտացոլվում էր հենց լազերի կողմից: Դա անելու համար ես զտեցի լույսը ՝ օգտագործելով OpenCV- ի inRange () գործառույթը: Ես սահմանեցի շեմը `որոշակի մակարդակով միայն կարմիր լույս վառելը: Valueիշտ արժեքը ստանալու համար ես սկսեցի մեղմ շեմից և շարունակեցի բարձրացնել շեմի մակարդակը, մինչև որ միակ լույսը, որը վերցվում էր, սկանավորվող օբյեկտի լազերային լույսն էր: Այս պատկերը ստանալուց հետո յուրաքանչյուր շարքում գտա ամենապայծառ պիքսել ստացեք մեկ պիքսել տող մեկ տողում, որը սահմանակից էր լազերային գծի ձախ կողմին: Յուրաքանչյուր պիքսել այնուհետև վերածվեց գագաթի 3D տարածության մեջ և պահվեց զանգվածում, ինչպես նկարագրված է ցանցերի ստեղծման բաժնում: Այս քայլերի արդյունքները կարելի է տեսնել չորրորդ նկարում:

Շարժիչի վերահսկում

Այն բանից հետո, երբ կարողացա հաջողությամբ մշակել մեկ պատկեր ՝ օբյեկտի կտորը ստանալու համար, ես պետք է կարողանայի պտտել օբյեկտը ՝ այլ անկյունից նոր նկարելու համար: Որպեսզի դա անեմ, ես վերահսկեցի սլաքային շարժիչը հարթակից ներքև, որի վրա նստած է սկանավորվող օբյեկտը: Ես ստեղծեցի մեր քայլքի գործառույթի հիմքը `ստեղծելով փոփոխական, որը հետևում է շարժիչի վիճակը և միկրոսխեման` միացնելով շարժիչի չորս մուտքերից յուրաքանչյուրը:

Բոլոր մշակված պատկերներից ցանց ստեղծելու համար ես նախ պետք է մշակված պատկերի յուրաքանչյուր սպիտակ պիքսել փոխարկեի եռաչափ տարածության գագաթի: Քանի որ ես հավաքում եմ առարկայի առանձին շերտեր գլանաձև համաչափությամբ, իմաստ ուներ սկսել գլանաձև կոորդինատների հավաքումը: Սա իմաստ ուներ, քանի որ նկարի բարձրությունը կարող էր ներկայացնել z առանցքը, պտտվող սեղանի կենտրոնից հեռավորությունը ՝ R առանցքը, իսկ հետընթաց շարժիչի պտույտը ՝ թետա առանցքը: Այնուամենայնիվ, քանի որ մեր տվյալները պահում էի գլանաձեւ կոորդինատներում, ես ստիպված էի այս գագաթներից յուրաքանչյուրը վերածել քարտեզի կոորդինատների:

Այս գագաթները ստեղծվելուց հետո դրանք պահվում էին ցուցակում, և նշված ցուցակը պահվում էր մեկ այլ ցուցակում, որը պարունակում էր գագաթնակետերի ցուցակները, որոնք ստեղծվել էին յուրաքանչյուր նկարված պատկերի համար: Երբ բոլոր պատկերները մշակվեցին և վերածվեցին գագաթների, ես պետք է ընտրեի գագաթները, որոնք ես իրականում ցանկանում էի ներկայացված լինել վերջնական ցանցում: Ես ուզում էի, որ վերին և ստորին գագաթները ներառված լինեին, այնուհետև բանաձևի հիման վրա ես ընտրեցի գագաթների հավասարաչափ տարածված շարք ՝ յուրաքանչյուր պատկերի համար օգտագործելու համար: Քանի որ ոչ բոլոր գագաթային ցուցակներն էին նույն երկարությունը, ես ստիպված էի դրանք հավասարեցնել ՝ գտնելով ամենափոքր թվով գագաթներով ցուցակը և գագաթները հանելով բոլոր մյուս ցուցակներից մինչև դրանք բոլորը հավասար: ստեղծել ցանց: Ես ընտրեցի ձևավորել մեր ցանցը.obj ֆայլի ստանդարտով, քանի որ այն պարզ և 3D տպելի է:

Ներկառուցված գործառույթ

Սարքը գործելուց հետո ես հղկեցի այն ՝ ավելացնելով ամբողջական ներդրված ֆունկցիոնալությունը: Սա նշանակում էր հեռացնել ստեղնաշարը, մկնիկը և մոնիտորը և այն ունենալ անլար կերպով.obj ֆայլը մշակման ավարտից հետո: Սկսելու համար, ես փոխեցի.bashrc ծածկագիրը ՝ ավտոմատ մուտք գործելու և գործարկման ժամանակ գործարկելու հիմնական python ծրագիրը: Սա արվել է ՝ օգտագործելով sudo raspi-config և ընտրելով «Console Autologin», և ավելացնելով «sudo python /home/pi/finalProject/FINAL.py» տողը /home/pi/.bashrc- ին: Բացի այդ, ես նաև ավելացրեց կոճակ և կարգավիճակի LED ՝ օգտագործողի մուտքի և ելքի համար: Կոճակը թույլ կտա օգտագործողին ասել սարքին, թե երբ սկսել սկանավորումը, և LED- ն օգտագործողին կասի մեքենայի վիճակը: Եթե LED- ը միացված է, սարքը պատրաստ է սկսել նոր սկանավորում: Եթե LED- ը զարկերակային է, սարքն այժմ սկանավորում է: Եթե LED- ը գրասենյակային է, կա ծրագրային սխալ, որը պահանջում է համակարգի վերագործարկում: Ի վերջո, ես սարքին հնարավորություն տվեցի.obj ֆայլը ուղարկել էլ. Դա արվել է smtplib և էլփոստի գրադարանների միջոցով: Էլ.

Քայլ 7: Ինտեգրում

Ինտեգրում
Ինտեգրում

Սարքի տարբեր կտորներ արտադրելուց հետո այն հավաքեցի միասին: Վերոնշյալ պատկերը ցույց է տալիս հերթականությամբ.

ա) դրսում հավաքված տուփ

բ) ներսում հավաքված տուփ `տեսախցիկով և լազերային

գ) էլեկտրոնային մահճակալի ներքին տեսքը

դ) Pi- ի հետևի կողմը ՝ Pi նավահանգիստներին հասանելիությամբ և 5V շարժիչի մուտքով

ե) սարքի առջևում LED օղակով և կարգավիճակի լույսով սեղմել կոճակը

Քայլ 8: Արդյունքներ

Արդյունքները
Արդյունքները
Արդյունքները
Արդյունքները
Արդյունքները
Արդյունքները
Արդյունքները
Արդյունքները

Լազերային 3D սկաները կարողացավ պատշաճ ճշգրտությամբ սկանավորել օբյեկտները: Օբյեկտների առանձնահատկությունները հստակ և ճանաչելի են, և մասերը շատ հեշտ էր 3D տպել ՝ օգտագործելով կտրող ծրագրակազմ, ինչպիսին է Repetier- ը: Վերոնշյալ պատկերները ցույց են տալիս մի կտոր փայտի և ռետինե բադիկի որոշ նմուշներ:

Մեր ամենամեծ հայտնագործություններից և հաջողություններից մեկը, որը ես հայտնաբերեցի փորձարկման ընթացքում, սարքի հետևողականությունն էր: Միևնույն օբյեկտի բազմաթիվ փորձարկումների ընթացքում սկաները կարողացավ արտադրել.obj ֆայլ, որն ամեն անգամ շատ նման էր, նույնիսկ եթե մենք փոքր -ինչ փոխեցինք օբյեկտի տեղադրությունը: Ինչպես երևում է երեք առանձին սկաներից, դրանք բոլորը շատ նման են ՝ գրավելով նույն մանրամասներն ու նույն քանակի մանրամասները: Ընդհանուր առմամբ, ես շատ տպավորված էի մեր համակարգի հետևողականությամբ և ամրությամբ:

Փոփոխականներից մեկը, որն իսկապես կարողացա կարգավորել, սկաների լուծումն է: Քանի որ սանդղակի մեջ կա 400 քայլ, ես կարող եմ ընտրել, թե որքան մեծ է յուրաքանչյուր ΔΘ անկյունային լուծումը թելադրելու համար: Լռելյայն, ես ունեմ անկյունային բանաձևը 20 կրկնում, այսինքն ՝ յուրաքանչյուր շրջանակ, շարժիչը պտտվում է 20 քայլով (400/20 = 20): Սա ընտրվել է հիմնականում ի շահ ժամանակի. Անհրաժեշտ է մոտ 45 վայրկյան `այս կերպ սկան կատարելու համար: Այնուամենայնիվ, եթե ես ուզում եմ շատ ավելի բարձր որակի սկան, ես կարող եմ կրկնությունների քանակը հասցնել մինչև 400 -ի: Սա շատ ավելի շատ միավոր է տալիս մոդելը կառուցելու համար ՝ դարձնելով շատ ավելի մանրամասն սկանավորում: Ի լրումն անկյունային բանաձևի, ես կարող եմ նաև ուղղել ուղղահայաց բանաձևը, կամ թե քանի տարբեր կետեր եմ ես ընտրում լազերային հատվածի երկայնքով: Timeամանակի նմանատիպ հետաքրքրության համար ես այս կանխադրվածը դրել եմ 20 -ի վրա, բայց կարող եմ ավելացնել այն ավելի լավ արդյունքների համար: Խաղալով անկյունային լուծման և տարածական լուծման այս պարամետրերի հետ, ես կարողացա կազմել վերջին նկարում ստորև բերված տարբեր սկաների արդյունքները: Յուրաքանչյուր պիտակ ձևաչափված է այնպես, որ դա անկյունային լուծում է x տարածական լուծում: Ինչպես երեւում է սկանավորման կանխադրված պարամետրերում, բադի հատկությունները ճանաչելի են, բայց մանրամասն չեն: Այնուամենայնիվ, երբ ես բարձրացնում եմ լուծաչափը, անհատական ճշգրիտ հատկությունները սկսում են ցուցադրվել, ներառյալ բադի աչքերը, կտուցը, պոչը և թևերը: Ամենաբարձր լուծաչափով պատկերի սկանավորումը տևեց մոտ 5 րոպե: Այսքան բարձր իրագործելի բանաձևը տեսնելը շատ մեծ հաջողություն էր:

Սահմանափակումներ

Չնայած ծրագրի հաջող արդյունքներին, նախագծման և իրականացման դեռ կան մի քանի սահմանափակումներ: Լազերի կիրառմամբ բազմաթիվ խնդիրներ են առաջանում, թե ինչպես է լույսը ցրվում: Շատ առարկաներ, որոնք ես փորձում էի սկանավորել, որոնք կիսաթափանցիկ, փայլուն կամ շատ մութ էին, անհանգստացնող էին, թե ինչպես է լույսը անդրադարձնում մակերեսից: Եթե առարկան կիսաթափանցիկ լիներ, լույսը կլանված ու ցրված կլիներ, ինչը կտրուկ աղմկոտ ընթերցում էր: Փայլուն և մութ առարկաներում լույսը կա՛մ կարտացոլվեր, կա՛մ կլանված կլիներ այնքան, որքան դժվար կլիներ վերցնել այն: Ավելին, քանի որ ես օգտագործում եմ տեսախցիկ ՝ օբյեկտների առանձնահատկությունները ֆիքսելու համար, նրա զգայարանները սահմանափակվում են նրա տեսողությամբ, ինչը նշանակում է, որ գոգավոր առարկաները և սուր անկյունները հաճախ արգելափակվում են օբյեկտի այլ մասերի կողմից: Սա ցուցադրվում է մեր ռետինե բադի օրինակով, քանի որ պոչը երբեմն կորցնում է իր կորությունը սկանավորման ժամանակ: Տեսախցիկը կարող է նաև հայտնաբերել միայն մակերեսային կառուցվածքներ, ինչը նշանակում է, որ անցքեր կամ ներքին երկրաչափություններ չեն կարող ֆիքսվել: Այնուամենայնիվ, սա սովորական խնդիր է, որն ունեն նաև բազմաթիվ այլ սկանավորման լուծումներ:

Հաջորդ քայլերը

Թեև ես գոհ էի մեր նախագծի արդյունքներից, բայց մի քանի բան կար, որ կարելի էր իրականացնել այն ավելի լավը դարձնելու համար: Սկսնակների համար, ներկա վիճակում, սկան լուծումը կարող է փոխվել միայն մեր կոդի կոշտ ծածկագրված լուծման փոփոխականները փոխելով: Նախագիծը ավելի ներդաշնակ դարձնելու համար կարող է ներառվել բանաձևի պոտենցիոմետր, որպեսզի օգտվողը կարողանա փոխել բանաձևը ՝ առանց մոնիտորն ու ստեղնաշարը միացնելու սկաներին:Բացի այդ, սկաները ստեղծում է պատկերներ, որոնք երբեմն կարող են մռայլ տեսք ունենալ: Դա շտկելու համար կարող են իրականացվել ցանցի հարթեցման տեխնիկա `անկանոնություններն ու կոշտ անկյունները հարթելու համար: Վերջապես, ես գտա, որ պիքսելային կոորդինատները լավ չեն սփռվում իրական աշխարհում: Իմ ստեղծած ցանցերը 6 -ից 7 անգամ ավելի մեծ էին, քան իրական օբյեկտը: Ապագայում ձեռնտու կլինի ցանցերի լայնացման եղանակ կիրառել, որպեսզի դրանք ավելի ճշգրիտ լինեն օբյեկտի իրական չափին:

Քայլ 9: Ռեսուրսներ

Ես ընդգրկել եմ ծածկագիրը, STL ֆայլերը տպագրության համար, և DXF ֆայլերը `նախագծի ամբողջության համար:

Raspberry Pi մրցույթ 2020
Raspberry Pi մրցույթ 2020
Raspberry Pi մրցույթ 2020
Raspberry Pi մրցույթ 2020

Առաջին մրցանակ Raspberry Pi մրցույթ 2020 -ում

Խորհուրդ ենք տալիս: