Indholdsfortegnelse:

DIY STEP/DIR LASER GALVO CONTROLLER: 5 trin (med billeder)
DIY STEP/DIR LASER GALVO CONTROLLER: 5 trin (med billeder)

Video: DIY STEP/DIR LASER GALVO CONTROLLER: 5 trin (med billeder)

Video: DIY STEP/DIR LASER GALVO CONTROLLER: 5 trin (med billeder)
Video: Homemade Cyclotron 2024, November
Anonim
DIY STEP/DIR LASER GALVO CONTROLLER
DIY STEP/DIR LASER GALVO CONTROLLER

Hej, i denne Instructable vil jeg vise dig, hvordan du kan bygge din egen trin / dir -grænseflade til ILDA standard galvo laserscannere.

Som du måske ved, er jeg også opfinderen af "DIY-SLS-3D-printeren" og "JRLS 1000 DIY SLS-3D-PRINTER", og mens jeg byggede disse maskiner, begyndte jeg at gruble over, hvordan disse printere vil fungere, hvis jeg vil bruge en Galvo -scannere i stedet for et kartesisk bevægelsessystem. Men i disse dage havde jeg ikke viden om at programmere en controller til en galvo -scanner. Så jeg har brugt en eksisterende firmware med kartesisk bevægelse.

Men i dag og efter lidt research fandt jeg en instruerbar, hvor forfatteren bruger en arduino til at lave et DIY Laser Galvo -show. Jeg troede, det var præcis det, jeg leder efter, så jeg har bestilt delene som i hans instruerbare og lavet nogle eksperimenter. Efter nogle undersøgelser fandt jeg ud af, at Arduino ikke vil fungere så godt som trin / retning -grænseflade, så jeg remixede det til STM32 mikrokontroller.

Husk, at denne controller bare er en prototype, men kan bruges til mange projekter. For eksempel i en DIY SLS 3D -printer eller en lasergraver.

Funktionerne i Galvo -controlleren er:

  • konvertering fra 5V trin/dir -signaler til ILDA standard
  • 120 kHz indgangsfrekvens for (trin- / retningssignaler)
  • 12bit udgangsopløsning (0, 006 ° pr. Vinkel)
  • konvertering fra polære til lineære koordinater
  • kompatibel med enhver bevægelsescontroller, der skaber et trin- og retningssignal
  • center alignment pin (homing routine)

video af laser galvo controller: (kommer snart)

Hvis du kan lide min Instructable, skal du stemme på mig i Remix -konkurrencen

Trin 1: Dele, du har brug for til Galvo -controlleren

Elektroniske dele til galvo -controlleren:

Antal Beskrivelse Link Pris
1x ILDA 20Kpps galvo galvanometersæt Aliexpress 56, 51€
1x 6 mm 650 nm laserdiode Aliexpress 1, 16€
nogle ledninger - -
1x ST-Link V2 Aliexpress 1, 92

Elektroniske dele til kredsløbet:

Her er alle nødvendige dele til galvo -controlleren. Jeg forsøgte at skaffe alle dele så billigt som muligt.

Antal Beskrivelse Navn på kredsløb Link Pris
1x STM32 "Blue-Pill" mikrokontroller "BLÅ-PILL" Aliexpress 1, 88€
1x MCP4822 12 bit dobbelt kanal DAC MCP4822 Aliexpress 3, 00€
2x TL082 dobbelt OpAmp IC1, IC2 Aliexpress 0, 97€
6x 1k modstand R1-R6 Aliexpress 0, 57€
4x 10k trim-potentiometer R7-R10 Aliexpress 1, 03€
nogle pin header - Aliexpress 0, 46€

Trin 2: The Controller theory

Billede
Billede

Her vil jeg forklare, hvordan controlleren fungerer generelt. Jeg vil også vise nogle detaljer, f.eks. Beregning af den rigtige vinkel.

1. MOTION-CONTROLLER

Bevægelseskontrolleren er den del, hvor du vil oprette trin- og retningssignalerne. Trin/retningskontrollen bruges ofte i trinmotorapplikationer som 3D-printere, lasere eller CNC-møller.

Ud over trin- og retningssignalerne er der behov for en centerjusteringsstift for at gøre STM32 og Motioncontroller konsistent. Det er fordi galvoen er absolut kontrolleret, og der ikke er behov for nogen endestopkontakter.

2. STM32-mikrokontroller

STM32 -mikrokontrolleren er hjertet i denne controller. Denne mikrokontroller har flere opgaver at gøre. Disse opgaver er:

Opgave 1: Mål signaler

Billede
Billede

Den første opgave er at måle indgangssignalerne. I dette tilfælde vil det være trin- og retningssignaler. Fordi jeg ikke vil have, at bevægelsescontrolleren bliver begrænset af indgangsfrekvensen, har jeg designet kredsløbet til 120 kHz (testet). For at opnå denne inputfrekvens uden at miste data bruger jeg to hardware -timere TIM2 og TIM3 på STM32 til at styre trin / retning -grænsefladen. Ud over trin- og retningssignalerne er der justeringssignalet. Denne justering styres af en ekstern afbrydelse på STM32.

Opgave 2: Beregn signalerne

Nu skal controlleren beregne signalerne til den rigtige værdi for DAC. Fordi galvoen vil skabe et ikke -lineært polært koordinatsystem, er en lille beregning nødvendig for at skabe en lineær afhængighed mellem trin og faktisk flyttet laser. Her vil jeg vise dig en skitse af beregningen:

Billede
Billede

Nu skal vi finde formlen til beregningen. Fordi jeg bruger en 12bit DAC, kan jeg afgive en spænding fra -5 - +5V i 0 - 4096 trin. Galvo jeg har ordre har en samlet scanningsvinkel på 25 ° ved -5 - +5V. Så min vinkel phi er i et område fra -12, 5 ° - +12, 5 °. Endelig skal jeg tænke på afstanden d. Jeg vil personligt have et scanningsfelt på 100x100mm, så min d vil være 50mm. Den høje h vil være resultatet af phi og d. h er 225, 5 mm. For at bringe afstanden d i forhold til vinklen phi brugte jeg en lille formel, som vil bruge tangenterne og konvertere vinklen fra radianer til "DAC-værdier"

Billede
Billede

Endelig behøver jeg kun at tilføje en bias på 2048, fordi mit scanningsfelt er centerjustering, og alle beregningerne er udført.

Opgave 3: Send værdier til DAC:

Fordi STM32 jeg har brugt ikke har nogen indbygget DAC, har jeg brugt en ekstern DAC. Kommunikationen mellem DAC og STM32 realiseres over SPI.

3. DAC

Til kredsløbet bruger jeg den samme 12bit DAC "MCP4822" som deltaflo. Fordi DAC er unipolar 0-4, 2V, og du har brug for -+5V bipolar til ILDA -standarden, skal du bygge et lille kredsløb med nogle OpAmps. Jeg bruger TL082 OpAmps. Du skal bygge dette forstærkerkredsløb to gange, fordi du skal styre to galvoer. De to OpAmps er forbundet til -15 og +15V som deres forsyningsspænding.

Billede
Billede

4. GALVO

Den sidste del er ret enkel. Udgangsspændingen for de to OPAmps tilsluttes ILDA Galvo -driverne. Og det er det, nu skulle du være i stand til at styre galvoen med trin- og retningssignaler

Trin 3: Kredsløbet

Kredsløbet
Kredsløbet

Til kredsløbet har jeg brugt en prototype PCB.

Du kan tilslutte trin- og retningssignalerne direkte til STM32, fordi jeg har aktiveret interne pull down -modstande. Jeg har også brugt 5V tolerante stifter til trin, retning og midterstifter.

Du kan downloade hele skematikken over kredsløbet herunder:

Trin 4: Programmering af STM32

STM32 er programmeret med Attolic TrueStudio og CubeMX. TrueStudio er gratis at bruge, og du kan downloade den her

Fordi TrueStudio ikke er så enkelt som f.eks. Arduino IDE, har jeg genereret en.hex -fil, som du simpelthen skal uploade til STM32 -mikrokontrolleren.

I det følgende vil jeg forklare, hvordan du uploader filen til STM32 "BluePill":

1. Download "STM32 ST-LINK Utility": Du kan downloade softwaren her

2. Installer og åbn "STM32 ST-LINK Utility":

Billede
Billede

3. Åbn nu Galvo.hex-filen i ST-Link Utility:

Billede
Billede

Derefter skal du slutte STM32 "BluePill" til ST-Link-V2. Når du er tilsluttet, skal du klikke på knappen "Opret forbindelse til traget":

Billede
Billede

Klik til sidst på "Download". Nu skal din STM32 blinke korrekt.

Billede
Billede

Derudover har jeg vedhæftet alle kildefilerne til Galvo_Controller i TrueStudio

Trin 5: Tilslut alle delene mekanisk og test det

Tilslut alle delene mekanisk og test det
Tilslut alle delene mekanisk og test det
Tilslut alle delene mekanisk og test det
Tilslut alle delene mekanisk og test det

Jeg har placeret alle de elektroniske dele på en 4 mm aluminiumsplade for et bedre udseende:-)

Nu vil jeg vise dig, hvordan du sandsynligvis skal justere potentiometrene på kredsløbet:

Først lidt baggrundsinformation om ILDA -standarden. ILDA -standarden bruges normalt til lasershows og består af et 5V og et -5v signal. Begge signaler har samme amplitude, men med ændret polaritet. Så hvad vi skal, er at trimme udgangssignalet fra DAC til 5V og -5V.

Juster potentiometeret:

Billede
Billede

Det, du kan se her, er udgangsspændingen for dette kredsløb ved en input -trinfrekvens på 100 kHz og med et konstant retningsignal. I dette billede er alt fint. Amplituden går fra 0 til 5V og fra 0 til -5. Også spændingerne er sandsynligvis justeret.

Nu vil jeg vise dig, hvad der kan gå galt, mens du justerer potentiometeret:

Billede
Billede

Som du kan se nu, er begge spændinger sandsynligvis ikke justeret. Løsningen er at justere offset -spændingen fra OpAmp. Det gør du ved at justere potentiometrene "R8" og "R10".

Et andet eksempel:

Billede
Billede

Som du kan se nu, er spændingerne sandsynligvis justeret, men amplituden er ikke 5V, men 2V. Løsningen er at justere forstærkningsmodstanden fra OpAmp. Det gør du ved at justere potentiometrene "R7" og "R9".

Anbefalede: