Turinys:

„Pasidaryk pats“/DIR LASER GALVO CONTROLLER: 5 žingsniai (su nuotraukomis)
„Pasidaryk pats“/DIR LASER GALVO CONTROLLER: 5 žingsniai (su nuotraukomis)

Video: „Pasidaryk pats“/DIR LASER GALVO CONTROLLER: 5 žingsniai (su nuotraukomis)

Video: „Pasidaryk pats“/DIR LASER GALVO CONTROLLER: 5 žingsniai (su nuotraukomis)
Video: Tesla Franz Von Holzhausen Keynote Address 2017 Audio Only W / Subs 2024, Lapkritis
Anonim
„Pasidaryk pats“žingsnis/lazerinis „GALVO“valdiklis
„Pasidaryk pats“žingsnis/lazerinis „GALVO“valdiklis

Sveiki, šioje instrukcijoje noriu parodyti, kaip galite sukurti savo žingsnio / režimo sąsają standartiniams ILDA galvo lazeriniams skaitytuvams.

Kaip jūs tikriausiai žinote, aš taip pat esu „pasidaryk pats“SLS-3D spausdintuvo ir „JRLS 1000 DIY SLS-3D-PRINTER“išradėjas, o kurdamas šias mašinas pradėjau domėtis, kaip šie spausdintuvai veiks, jei vietoj dekarto judėjimo sistemos naudosiu „Galvo“skaitytuvus. Tačiau šiais laikais aš neturėjau žinių, kaip užprogramuoti „Galvo“skaitytuvo valdiklį. Taigi aš panaudojau esamą programinę įrangą su dekartiniu judesiu.

Tačiau šiandien ir po tam tikrų tyrimų radau pamokymą, kuriame autorius naudoja „arduino“kurdamas „pasidaryk pats“lazerio „Galvo“šou. Maniau, kad tai yra būtent tai, ko aš ieškau, todėl užsakiau dalis, kaip nurodyta jo instrukcijoje, ir padariau keletą eksperimentų. Po kelių tyrimų sužinojau, kad „Arduino“neveiks taip gerai, kaip žingsnio / krypties sąsaja, todėl sumaišiau jį su STM32 mikrovaldikliu.

Atminkite, kad šis valdiklis yra tik prototipas, tačiau tinkamas daugeliui projektų. Pavyzdžiui, „pasidaryk pats“SLS 3D spausdintuve arba lazeriniame graviravime.

Galvo valdiklio savybės yra šios:

  • konvertavimas iš 5 V pakopų/nukreipimo signalų į ILDA standartą
  • 120 kHz įvesties dažnis (žingsnio / krypties signalai)
  • 12 bitų išvesties skiriamoji geba (0, 006 ° kampu)
  • konvertavimas iš polinių į linijines koordinates
  • suderinamas su bet kokiu judesio valdikliu, kuris sukurs žingsnio ir krypties signalą
  • centrinis išlyginimo kaištis (nustatymo rutina)

vaizdo įrašas apie lazerinį galvo valdiklį: (netrukus)

Jei jums patinka mano „Instructable“, balsuokite už mane „Remix“konkurse

1 žingsnis: „Galvo“valdiklio dalys

„Galvo“valdiklio elektroninės dalys:

Kiekis apibūdinimas Nuoroda Kaina
1x ILDA 20Kpps galvo galvanometro rinkinys „Aliexpress“ 56, 51€
1x 6 mm 650 nm lazerinis diodas „Aliexpress“ 1, 16€
kai kurie laidai - -
1x ST-Link V2 „Aliexpress“ 1, 92

Elektroninės grandinės dalys:

Čia yra visos reikalingos „Galvo“valdiklio dalys. Stengiausi visas dalis įsigyti kuo pigiau.

Kiekis apibūdinimas Pavadinimas grandinėje Nuoroda Kaina
1x STM32 „Blue-Pill“mikrovaldiklis "MĖLYNA PILVELĖ" „Aliexpress“ 1, 88€
1x MCP4822 12 bitų dviejų kanalų DAC MCP4822 „Aliexpress“ 3, 00€
2x TL082 dvigubas „OpAmp“ IC1, IC2 „Aliexpress“ 0, 97€
6x 1k rezistorius R1-R6 „Aliexpress“ 0, 57€
4 kartus 10k apdailos potenciometras R7-R10 „Aliexpress“ 1, 03€
kai kurie kaiščio antraštė - „Aliexpress“ 0, 46€

2 žingsnis: valdiklio teorija

Vaizdas
Vaizdas

Čia paaiškinsiu, kaip valdiklis veikia apskritai. Taip pat parodysiu kai kurias detales, pavyzdžiui, skaičiuojant teisingą kampą.

1. JUDIMŲ KONTROLIERIS

Judėjimo valdiklis yra ta dalis, kurioje sukursite žingsnio ir krypties signalus. Žingsnio/krypties valdymas dažnai naudojamas žingsninio variklio programose, tokiose kaip 3D spausdintuvai, lazeriai ar CNC frezavimo staklės.

Be žingsnio ir krypties signalų, norint, kad STM32 ir „Motioncontroller“sutiktų, reikia centrinio paskirstymo kaiščio. Taip yra todėl, kad galvos yra visiškai valdomos ir nereikia jokių galinių jungiklių.

2. STM32-mikrovaldiklis

STM32 mikrovaldiklis yra šio valdiklio širdis. Šis mikrovaldiklis turi atlikti keletą užduočių. Šios užduotys yra:

1 užduotis: išmatuoti signalus

Vaizdas
Vaizdas

Pirmoji užduotis - išmatuoti įvesties signalus. Šiuo atveju tai bus žingsnio ir krypties signalai. Kadangi nenoriu, kad judesio valdiklį ribotų įvesties dažnis, aš sukūriau 120 kHz grandinę (išbandyta). Norint pasiekti šį įvesties dažnį neprarandant duomenų, aš naudoju du aparatūros laikmačius TIM2 ir TIM3, esančius STM32, kad valdyčiau žingsnio / krypties sąsają. Be žingsnio ir krypties signalų, yra pasukimo signalas. Šį derinimą valdo išorinis STM32 pertraukimas.

2 užduotis: apskaičiuokite signalus

Dabar valdiklis turi apskaičiuoti signalus iki tinkamos DAC vertės. Kadangi „Galvo“sukurs netiesinę polinių koordinačių sistemą, reikia atlikti nedidelį skaičiavimą, kad būtų sukurta tiesinė priklausomybė tarp žingsnio ir tikrojo judančio lazerio. Čia parodysiu skaičiavimo eskizą:

Vaizdas
Vaizdas

Dabar turime rasti skaičiavimo formulę. Kadangi naudoju 12 bitų DAC, aš galiu išduoti įtampą nuo -5 - +5V 0 - 4096 žingsniais. „Galvo I have order“bendras nuskaitymo kampas yra 25 ° esant -5 - +5V. Taigi mano kampas phi yra nuo -12, 5 ° - +12, 5 °. Galiausiai turiu pagalvoti apie atstumą d. Aš asmeniškai noriu 100x100 mm nuskaitymo lauko, todėl mano d bus 50 mm. Didelis h bus phi ir d rezultatas. h yra 225,5 mm. Norėdami nustatyti atstumą d, palyginti su kampu phi, aš naudoju nedidelę formulę, kuri naudos liestines ir kampą iš radianų pavers į „DAC reikšmes“

Vaizdas
Vaizdas

Galiausiai man tereikia pridėti 2048 šališkumą, nes mano nuskaitymo laukas yra išlyginimas centre ir visi skaičiavimai atlikti.

3 užduotis: Siųsti vertes į DAC:

Kadangi mano naudojamas STM32 neturi integruoto DAC, aš naudoju išorinį DAC. Ryšys tarp DAC ir STM32 realizuojamas per SPI.

3. DAC

Grandinei aš naudoju tą patį 12 bitų DAC "MCP4822" kaip "deltaflo". Kadangi DAC yra vienpolis 0-4, 2V ir jums reikia -+5V bipolinio ILDA standarto, turite sukurti nedidelę grandinę su kai kuriais „OpAmps“. Aš naudoju „TL082 OpAmps“. Šį stiprintuvo grandinę turite sukurti du kartus, nes turite valdyti dvi galvos. Abu „OpAmps“maitinimo įtampa yra prijungta prie –15 ir +15 V įtampos.

Vaizdas
Vaizdas

4. GALVO

Paskutinė dalis yra gana paprasta. Dviejų OPAmps išėjimo įtampa bus prijungta prie „ILDA Galvo“tvarkyklių. Ir viskas, dabar jūs turėtumėte sugebėti valdyti galvos judesius ir krypties signalus

3 žingsnis: grandinė

Circuit
Circuit

Grandinei naudojau PCB prototipą.

Žingsnio ir krypties signalus galite tiesiogiai prijungti prie STM32, nes aš suaktyvinau vidinius nusileidimo rezistorius. Aš taip pat naudojau 5 V tolerantiškus kaiščius žingsniams, kryptims ir centrams.

Žemiau galite atsisiųsti visą grandinės schemą:

4 žingsnis: STM32 programavimas

STM32 yra programuojamas naudojant „Attolic TrueStudio“ir „CubeMX“. „TrueStudio“galima nemokamai naudotis ir ją galite atsisiųsti čia

Kadangi „TrueStudio“nėra toks paprastas, kaip, pavyzdžiui, „Arduino IDE“, aš sukūriau.hex failą, kurį tiesiog reikia įkelti į STM32 mikrovaldiklį.

Toliau paaiškinsiu, kaip atnaujinote failą į STM32 „BluePill“:

1. Atsisiųskite „STM32 ST-LINK Utility“: Programinę įrangą galite atsisiųsti čia

2. Įdiekite ir atidarykite „STM32 ST-LINK Utility“:

Vaizdas
Vaizdas

3. Dabar atidarykite „Galvo.hex“failą „ST-Link Utility“:

Vaizdas
Vaizdas

Po to turite prijungti STM32 „BluePill“prie ST-Link-V2. Prisijungę spustelėkite mygtuką „Prisijungti prie traget“:

Vaizdas
Vaizdas

Galiausiai spustelėkite „Atsisiųsti“. Dabar jūsų STM32 turėtų mirksėti teisingai.

Vaizdas
Vaizdas

Be to, „TrueStudio“pridėjau visus „Galvo_Controller“šaltinio failus

5 žingsnis: Prijunkite visas dalis mechaniškai ir išbandykite

Prijunkite visas dalis mechaniškai ir išbandykite
Prijunkite visas dalis mechaniškai ir išbandykite
Prijunkite visas dalis mechaniškai ir išbandykite
Prijunkite visas dalis mechaniškai ir išbandykite

Visas elektronines dalis sudėjau ant 4 mm aliuminio plokštės, kad geriau atrodytų:-)

Dabar aš jums parodysiu, kaip jums reikia sureguliuoti grandinės potenciometrus:

Iš pradžių šiek tiek informacijos apie ILDA standartą. ILDA standartas paprastai naudojamas lazerio šou, jį sudaro 5 V ir -5 V signalas. Abiejų signalų amplitudė yra ta pati, tačiau jų poliškumas yra kitoks. Taigi, mes turime sumažinti išvesties signalą iš DAC iki 5V ir -5V.

Sureguliuokite potenciometrą:

Vaizdas
Vaizdas

Čia galite pamatyti šios grandinės išėjimo įtampą esant įėjimo žingsnio dažniui 100 kHz ir esant pastoviam krypties signalui. Šioje nuotraukoje viskas gerai. Amplitudė svyruoja nuo 0 iki 5 V ir nuo 0 iki -5. Taip pat tikriausiai įtampa yra suderinta.

Dabar aš jums parodysiu, kas gali būti negerai reguliuojant potenciometrą:

Vaizdas
Vaizdas

Kaip matote dabar, abi įtampos tikriausiai nėra suderintos. Sprendimas yra reguliuoti poslinkio įtampą iš „OpAmp“. Tai galite padaryti sureguliuodami potenciometrus „R8“ir „R10“.

Kitas pavyzdys:

Vaizdas
Vaizdas

Kaip matote, dabar įtampa yra suderinta, tačiau amplitudė yra ne 5V, o 2V. Sprendimas yra sureguliuoti stiprinimo rezistorių iš „OpAmp“. Tai galite padaryti sureguliuodami potenciometrus „R7“ir „R9“.

Rekomenduojamas: