Sisukord:

DIY laserjuhtimismoodul Arduino jaoks: 14 sammu (piltidega)
DIY laserjuhtimismoodul Arduino jaoks: 14 sammu (piltidega)

Video: DIY laserjuhtimismoodul Arduino jaoks: 14 sammu (piltidega)

Video: DIY laserjuhtimismoodul Arduino jaoks: 14 sammu (piltidega)
Video: 30 лучших советов и рекомендаций по Windows 10 на 2020 год 2024, November
Anonim
Image
Image

Selles juhendis demonstreerin kaheteljelise ühe peegliga laserkiire juhtimismooduli ehitamist, kasutades 3D-prinditud osi ja eBay odavaid komponente.

Sellel projektil on sarnasusi Arduino lasershowga, millel on täielik XY juhtimine, ja Arduino lasershowga, millel on päris Galvos, kuid ma usun, et see on esimene, kes kasutab odavate solenoididega 3D -trükitud kujundust. Panen kõik disainifailid GPLv3 alla, et disaini saaks täiustada ja täiustada.

Kuigi praegu olen alles mooduli kokku pannud ja mõne väga lihtsa testkoodi kirjutanud, loodan, et ühel päeval suudan selle järgmisele tasemele viia, lisades vektorgraafikakoodi oma varasemast Arduino juhendist, ülikiirest analoogpingest.

1. toiming: koguge kokku mitte-3D prinditud osad

Lasersõlm koosneb järgmistest osadest:

  • 4 mikro solenoidi
  • Üks 1/2 tolline peegel
  • Neli M3 kruvi

Konkreetsed solenoidid, mida ma kasutasin, osteti eBayst hinnaga 1,45 dollarit. Ümmargune peegel leiti HobbyLobby käsitöökäigust - 25 -pakk pakkis mulle vähem kui 3 dollarit. Peeglid leiate ka eBayst.

Samuti vajate eBayst taas odavat laserpointerit. Lilla laser koos pimedas helendava vinüülplaadiga on selle projekti jaoks suurepärane kombinatsioon!

Abistavate käte komplekt ei ole vajalik, kuid on väga kasulik laserpointeri hoidmiseks ja positsioneerimiseks. Toitenuppu all hoides saab kasutada suurt köiteklambrit.

Teil on vaja Arduino (ma kasutasin Arduino Nano) ja solenoidide juhtimise viisi. Nagu VajkF on kommentaarides öelnud, võite kasutada eelnevalt valmistatud H-silda, näiteks L298 või L9110 baasil. Need on mõne dollari eest eBays kergesti saadaval ja neid saab kasutada ka mootorite ja robootikaprojektide juhtimiseks.

Kuna mul polnud H-silda, ehitasin oma draiveri diskreetsetest komponentidest:

  • Neli bipolaarset NPN -transistorit (kasutasin MPS3704)
  • Neli takistit (ma kasutasin 1,2 kΩ takistit)
  • Neli dioodi (kasutasin 1N4004)
  • 9V aku ja aku pistik

Elektroonilised komponendid olid pärit minu laborist, nii et mul ei ole nende eest täpset hinda, kuid kui teil pole osi juba olemas või saate neid puhastada, on tõenäoliselt kulutõhusam kasutada eelehitatud H-silda. Sellegipoolest esitan teie enda ehitamise skeemid.

Samm: printige peegli juhtimismoodul 3D -vormingus

3D -prindige peegli juhtimismoodul
3D -prindige peegli juhtimismoodul
3D -prindige peegli juhtimismoodul
3D -prindige peegli juhtimismoodul

Laserjuhtimismoodul koosneb kahest 3D -prinditud osast: alus nelja solenoidi kinnitamiseks ja liigendplatvorm peegli jaoks.

Olen lisanud teile kaks STL -faili 3D -printimiseks, samuti FreeCAD -failid, kui teil on vaja kujundust muuta. Kogu sisu on GPLv3 all, seega võite vabalt oma täiustusi teha ja neid jagada!

Samm: pange lasermoodul kokku

Pange kokku lasermoodul
Pange kokku lasermoodul
Pange kokku lasermoodul
Pange kokku lasermoodul
Pange kokku lasermoodul
Pange kokku lasermoodul
  • Kasutage kuuma liimi, et kinnitada neli solenoidi alumisele osale.
  • Peegli kinnitamiseks ülemise detaili keskele kasutage kuuma liimi.
  • Sisestage metallkolvid solenoididesse ja seejärel asetage ülemine osa postidele (kuid ärge keerake seda alla). Pöörake ülemist tükki veidi ja tõstke iga kolb oma kohale väikese kruvikeerajaga. Ketta huul peaks libisema kolvi soonde. Olge ettevaatlik, kuna 3D -prinditud hinged on väga habras. Kannatlikkuse ja võib -olla mõne ebaõnnestunud katse korral peaksite suutma paigutada kõik neli kolbi ilma hingede keerutamata või survestamata.
  • Kui kõik kolvid on paigutatud, sisestage osaliselt M3 kruvid, kuid enne nende pingutamist vajutage iga kolbi õrnalt alla ja veenduge, et peegel kaldub vabalt. Kui see ei liigu vabalt ega jää kinni, võib osutuda vajalikuks eemaldada ülemine plaat, eemaldada üks või mitu solenoidi lahti ja kinnitada see kerge väljapoole suunatud nurga all (selleks võib abi olla vaherõngaste asetamisest selle ja keskse posti vahele).

Samm 4: printige laserpointeri krae

Printige laserpointeri krae
Printige laserpointeri krae
Printige laserpointeri krae
Printige laserpointeri krae

Laserpointeri krae sobib laserpointeri pea peale. Seejärel saate kasutada abikäte komplekti kraest haaramiseks ja laseri paigutamiseks täpselt oma pingile.

Samm: pange juhtkets kokku

Pange juhtkets kokku
Pange juhtkets kokku

Ajamiahel on näidatud skemaatiliselt. Nagu varem öeldud, on minu versioon ehitatud diskreetsetest komponentidest, kuid võite kasutada ka hõlpsasti kättesaadavat H-silda. Kui otsustate ise ehitada, peate sellest vooluringist ehitama neli koopiat, ühe iga nelja solenoidi jaoks.

Iga vooluahel ühendatakse Arduino tihvtiga, kaks vasaku ja parema solenoidi juhtimiseks ning kaks üles ja alla solenoidide jaoks. Need tuleb ühendada PWM -toega tihvtidega, näiteks:

  • Pin 9: üles solenoid
  • Tihvt 3: alumine solenoid
  • Tihvt 11: vasak solenoid
  • Tihvt 10: parem solenoid

Kõigi nelja solenoidjuhi vooluahela juhtimiseks saab kasutada ühte 9 V akut või kasutada töölaua toiteallikat. Arduino saab USB -toite tühjaks ja seda ei tohiks ühendada 9 V aku positiivse küljega. Aku negatiivset külge kasutatakse aga maapealse võrdlusena ja see tuleks ühendada Arduino GND-tihvtiga ja transistoride emitteriga.

6. toiming: laadige proovikood üles

Laadige proovikood üles
Laadige proovikood üles

Näidiskoodi on värskendatud järgmiste funktsioonidega:

  • Reguleerib PWM sagedust nii, et mehhanism oleks madalatel kiirustel peaaegu vaikne. Liikumistesti 1 sumin on täielikult kadunud!
  • Lisab Schimpfi paberil põhinevad pingevõrrandid, et "lineariseerida" solenoidide mittelineaarset reaktsiooni.

Olen lisanud ka selle ajaveebi koodi põhjal Lorenz Attractori rakenduse.

Tulemuste truudus jätab üsna palju soovida, kuid ma töötan selle kallal!:)

Järgnevad sammud illustreerivad mõnda koodis kasutatud tehnikat.

Samm: helitugevuse vähendamine

Minu liikumistestis 1 on kuulda tugevat suminat, eriti üles -alla liikumise ajal. Selgub, et selle põhjustas Arduino vaikimisi PWM -i hakkimissagedus, mis jääb kuuldavasse vahemikku. Mähise pinge kiire sisse- ja väljalülitamine paneks need sellel sagedusel vibreerima, muutes need väikesteks valjuhäälditeks.

Selle probleemi lahendamiseks suurendasin koodis PWM sagedust:

#define PWM_FREQ_31372Hz 0x01 // Seab PWM sageduseks 31372,55 Hz #define PWM_FREQ_3921Hz 0x02 // Määrab PWM sageduse 3921,16 Hz #define PWM_FREQ_980Hz 0x03 // Määrab PWM sageduse väärtuseks 980CW = T80CC Hz & 0b11111000) | sagedus; // Seadista taimer1 (tihvtid 9 ja 10) sagedus TCCR2B = (TCCR2B & 0b11111000) | sagedus; // Määra taimer2 (tihvtid 3 ja 11) sagedus}

Arduino PWM sageduse seadistamine on kasulik nipp solenoidide või mootorite vaigistamiseks. Katsetage erinevate sagedusvalikutega, et näha, milline neist annab teile parima tulemuse. Kuigi see hõlmab täpsemat programmeerimist, on siin hea ressurss taimerite töö kohta.

8. samm: pingete häälestamine moonutuste vähendamiseks

Pingete häälestamine moonutuste vähendamiseks
Pingete häälestamine moonutuste vähendamiseks

Minu esialgsed liikumistestid näitasid, et solenoidide reaktsioon oli oluliselt moonutatud. Liikumistestis 3 (joonis vasakul) sai ringikujuline spiraal hoopis ristkülikukujuliseks sakiliste servadega võrguks.

Selle probleemi lahendamine nõudis natuke matemaatikat, kuid suutsin veebist leida hämmastava paberi, mis aitas mul probleemist piisavalt hästi aru saada, et seda tarkvara abil lahendada.

Järgnev juhendab teid läbi protsessi, mille ma läbi tegin, et süsteemi häälestada ja sellest tulenevate jälgede välimust parandada!

9. samm: tarkvara täiustamine matemaatika abil

Tarkvara täiustamine matemaatika abil
Tarkvara täiustamine matemaatika abil
Tarkvara täiustamine matemaatika abil
Tarkvara täiustamine matemaatika abil

Süsteemi häälestamise saladuseks osutus suurepärane paber nimega "A Detailed Explanation of Solenoid Force", mille on kirjutanud Paul H. Schimpf Ida -Washingtoni ülikoolist (link). Eelkõige andis võrrand 17 mulle solenoidjõu erinevates tingimustes.

Järgmisi termineid oli lihtne mõõta:

  • R - minu solenoidi takistus
  • l - solenoidi pikkus
  • x - kolvi nihe solenoidis
  • V - solenoidi pinge

Samuti teadsin, et solenoidi poolt rakendatav jõud peab tasakaalustama kaheteljelise peegli 3D-trükitud vedrude jõu. Vedru jõudu reguleerib Hooke'i seadus, mis on järgmine:

F = -kx

Kuigi ma ei teadnud k väärtust, teadsin vähemalt, et jõud, mille ma Schimpfi paberist võrrandist 17 välja sain, pidi võrduma Hooke seadusest tuleneva jõuga.

Alfa (α) väärtus oli keeruline. Kuigi võrrandid 13 ja 14 näitasid, kuidas neid väärtusi arvutada solenoidi (A) pindalast, pöörete arvust (N) ja magnetilise läbilaskvuse väärtustest (μ), ei tahtnud ma elektromagnetoidi loendamiseks lõhkuda. pöörete arv, samuti ei teadnud ma materjali, millest mu solenoidi südamik tehti.

Samm: odav komponentide tester päästab päeva

Odav komponentide tester päästab päeva!
Odav komponentide tester päästab päeva!
Odav komponentide tester päästab päeva!
Odav komponentide tester päästab päeva!
Odav komponentide tester päästab päeva!
Odav komponentide tester päästab päeva!

Selgus aga, et võrrandid 15 ja 16 andsid mulle vajaliku. Mul oli odav M328 komponentide tester, mille olin eBayst ostnud 10 dollari eest. See suutis seda kasutada minu solenoidi induktiivsuse mõõtmiseks ja leidsin, et armatuuri erinevatel sügavustel sisse surudes andsin mulle erinevad induktsiooniväärtused.

Selle mõõtmine täielikult sisestatud armatuuriga andis mulle väärtuse L (0).

Minu solenoidi pikkus oli 14 mm, seega mõõtsin armatuuriga induktiivsust viies asendis ja see andis mulle L (x) jaoks erinevad väärtused:

  • L (0,0) = 19,8 mH
  • L (3,5) = 17,7 mH
  • L (7,0) = 11,1 mH
  • L (10,5) = 9,3 mH
  • L (14) = 9,1 mH

Seejärel kasutasin arvutustabeli abil oma väärtuste joonistamist võrrandi 15 ja 16 väärtusega konkreetse μr valiku jaoks ja seejärel muutsin oma valikut, kuni leidsin hea vaste. See juhtus, kui μr oli 2,9, nagu on näidatud graafikul.

Samm: leidke kevadkonstant K, lahendage probleem

Image
Image
Praeguste probleemide ja võimalike lahenduste analüüs
Praeguste probleemide ja võimalike lahenduste analüüs

Ainus tundmatu oli K, vedrukonstant. Mõõtsin seda, rakendades ühe kaheteljelise komplekti ühele solenoidile 9V ja mõõtes peegli alla tõmbamise kaugust. Nende väärtustega suutsin lahendada K võrrandid, mis leidsin umbes 10,41.

Mul olid nüüd väärtused, mida vajasin solenoidi tõmbe arvutamiseks erinevates kohtades piki käiku. Seades F (x) võrdseks vedrujõuga Hooke'i seadusest, saan lahendada vajaliku pinge V.

Graafik näitab solenoidi mis tahes soovitud asendisse x viimiseks vajalikku pinget.

Paremal, kus pinge on null ja asend on 3 mm, vastab see solenoidi neutraalsele puhkepunktile, kui 3D -prinditud hinged on täielikult lõdvestunud. Graafikul vasakule liikumine vastab armatuuri tõmbamisele solenoidi vastu 3D-prinditud hingede tõmbe vastu-see nõuab esialgu suuremat pinget, kuid armatuuri solenoidi sügavamale sattudes tõmme tõuseb ja nõutav sõidupinge väheneb.

See seos on kindlasti mittelineaarne, kuid Schimpfi paberi võrranditega saan kirjutada oma Arduino koodi, et väljastada õiged pinged, nii et tala läbipaine on lineaarne:

float positionToVoltage (ujuk x) {

// hingede poolt avaldatava jõu taastamine (Hooke'i seadus) soovitud x juures. const float spring_F = -spring_K * (x - kevad_X0); // Pinge nii, et solenoidi tõmbejõud vastaks // hingede taastamisjõule))); }

See viib palju ümmarguse spiraalini kui minu esialgsel liikumistestil. Missioon täidetud!

Samm 12: Küsimused ja vastused diskreetkomponente kasutava juhtahela kohta

Miks ma ei saa solenoidi otse Arduino külge ühendada?

Iseasi, kui palju voolu Arduino suudab kahjustamata tekitada. See on umbes 40 mA tihvti kohta. Teades, et Arduino töötab 5 V pingel, saame kasutada Ohmi seadust, et arvutada koormuse (antud juhul solenoidi) nõutav minimaalne takistus. 5 volti jagamine 0,040 ampriga annab meile 125 oomi. Kui koormusel on suurem vastupanu, saame selle otse Arduino külge ühendada, vastasel juhul ei saa. Väikese solenoidi takistus on tavaliselt 50 oomi, nii et me ei saa seda otse Arduinost juhtida. Kui me seda teeksime, tõmbaks see 100 mA, mis on selgelt liiga palju.

Miks te kasutate solenoidi jaoks 9 V, kuid Arduino jaoks 5 V?

Arduino töötab 5 V juures, kuid seda on solenoidi jaoks natuke liiga vähe. Transistori kasutamine võimaldab meil valida solenoidi jaoks pinge, mis ei sõltu Arduino jaoks kasutatavast 5 V pingest.

Kuidas ma tean, kas transistor sobib selle projekti jaoks?

Nagu Arduino puhul, on peamine nõue, et solenoidi läbiv vool ei ületaks transistori maksimaalseid väärtusi (eriti kollektori voolu). Halvima stsenaariumi saame hõlpsalt välja arvutada, mõõtes solenoidi takistust ja jagades seejärel toitepinge sellega. Solenoidide 9 V toitevoolu ja 50 oomi solenoidtakistuse korral paneb halvima stsenaariumi korral pinge 180 mA. Näiteks MPS3704 on määratud maksimaalsele kollektorivoolule 600 mA, mis annab meile umbes 3 varu.

Kuidas määrata Arduino väljundi ja transistori aluse vahelise takistuse minimaalne väärtus?

Arduino väljund ühendab bipolaarsete transistoride põhijala läbi voolu piirava takisti. Kuna Arduino töötab 5 V pingel, saame taas kasutada Ohmi seadust, et arvutada alla 40 mA voolu piiramiseks vajalik takistus. See tähendab, et jagage 5 volti 0,04 ampriga, et saada väärtus vähemalt 125 oomi. Kõrgemad takisti väärtused vähendavad voolu, andes seega veelgi suurema ohutusvaru.

Kas selle takistuse jaoks on maksimaalne väärtus, mida ma ei tohiks ületada?

Selgub, jah. Transistoril on voolutugevus. Näiteks kui võimendus on 100, tähendab see, et kui me paneme alusse 1 mA, siis voolab kuni 100 mA läbi koormuse, mida transistor kontrollib. Kui paneme alusse 1,8 mA, siis voolab koormusest kuni 180 mA. Kuna me varem arvutasime, et 9 V juures voolab solenoidist läbi 180 mA, siis baasvool 1,8 mA on "magus koht" ja vähem ning meie solenoid ei lülitu täielikult sisse.

Me teame, et Arduino väljastab 5 V ja me tahame, et 1,8 mA voolu voolaks, seega kasutame takistuse (R = V/I) arvutamiseks Ohmi seadust (R = V/I). 5V jagatud 1,8 mA -ga annab takistuseks 2777 oomi. Arvestades meie eeldusi, eeldame, et takistus peab jääma vahemikku 125 kuni 2777 - valides midagi 1000 oomi, annab see meile igal juhul üsna hea ohutusvaru.

13. samm: praeguste probleemide ja võimalike lahenduste analüüs

Praeguste probleemide ja võimalike lahenduste analüüs
Praeguste probleemide ja võimalike lahenduste analüüs

Praegune prototüüp näitab potentsiaali, kuid endiselt on mitmeid probleeme:

  1. Liikumine mööda X- ja Y -telge ei tundu olevat risti.
  2. Peegli suuna muutmisel toimub hüpe.
  3. Eraldusvõime on üsna madal ja seal on nähtavad treppide sammumustrid.
  4. Suuremate liikumiskiiruste korral moonutavad laseriteed vibratsioon ja helin.

Probleem 1) võib olla põhjustatud 3D -prinditud painduvate hingede konstruktsioonist, mis edastavad liikumist mööda ühte telge risti.

Väljaanne 2) on tingitud veokolbide ja peegliplatvormi vahelise sideme lõtvusest, mis põhjustab peegli tõmblemise ja vahelejätmise X- ja Y -telje vahelistel üleminekutel. See äkiline liikumine toob kaasa tumenenud X -kujulise lõhe, kus laserpunkt teeb kiiremat kontrollimatut liigutust.

Probleem 3) ilmneb seetõttu, et vaikimisi Arduino PWM -il on ainult 255 taset ja üsna paljud neist on pingekõvera kuju tõttu raisatud. Seda saab oluliselt parandada, kasutades taimerit1, mis on 16-bitine ja suudab 65536 unikaalset väärtust.

Probleem 4) ilmneb seetõttu, et peegel ja solenoidi libisev armatuur (kolvid) moodustavad märkimisväärse koguse liikuvat massi.

Kuna küsimused 1) ja 2) on seotud mehaanilise konstruktsiooniga, võib üks võimalus olla metallkolvide eemaldamine ja nende asendamine väikeste haruldaste muldmetallidega, mis on kinnitatud otse kallutusplaadile. Solenoidid oleksid avatud mähis, mis meelitaks või tõrjuks magnetid ilma füüsilist kontakti tekitamata. See tooks kaasa sujuvama liikumise ja välistaks tõmblemise võimaluse, vähendades samal ajal kogumassi.

4. probleemi esmane lahendus on massi vähendamine, kuid kõik ülejäänud probleemid võivad olla suunatud otse tarkvarasse, rakendades tarkvarasse liikumisjuhtimisprofiili, et kiirendada ja aeglustada peeglit kontrollitaval viisil. Seda tehakse juba laialdaselt 3D -printeri püsivaras ja sarnased meetodid võivad ka siin toimida. Siin on mõned liikumisjuhtimisega seotud ressursid, kuna see kehtib 3D -printerite kohta.

  • "Liikumise juhtimisprofiilide matemaatika", Chuck Lewin (link)
  • "Tõmbleva juhitava liikumise selgitus", (link)

Ma kahtlustan, et trapetsikujulise liikumisjuhtimisprofiili lisamine võimaldaks peeglit juhtida palju suuremal kiirusel ilma helina- ja vibratsioonita.

14. samm: tulevane töö ja võimalikud rakendused

Kuigi nendele probleemidele lahenduste väljatöötamine võtab märkimisväärselt palju tööd, loodan, et see avatud lähtekoodiga talajuhtimismoodul võib saada taskukohaseks alternatiiviks galvanomeetril põhinevatele projektidele sellistes rakendustes nagu:

  • Odavad laser -showd DJ -dele ja VJ -dele.
  • Elektromehaaniline vektorkuvar vanade arkaadmängude jaoks, näiteks Vectrex.
  • DIY vaigutüüpi SLA 3D-printer, mis suudab RepRapi liikumise vaimus printida oma laserroolimooduli.
  • Digitaalne panoraamimine või optiline pildistabilisaator kaamerate jaoks.
Arduino võistlus 2017
Arduino võistlus 2017
Arduino võistlus 2017
Arduino võistlus 2017

Teine auhind Arduino võistlusel 2017

Soovitan: