Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
Salut, în acest instructabil, vreau să vă arăt cum puteți construi propria interfață pas / dir pentru scanere laser galvo standard ILDA.
După cum s-ar putea să știți, sunt și inventatorul „DIY-SLS-3D-Printer” și al „JRLS 1000 DIY SLS-3D-PRINTER” și, în timp ce construiam aceste mașini, am început să mă gândesc la performanța acestor imprimante, dacă voi folosi un scaner Galvo în locul unui sistem de mișcare carteziană. Cu toate acestea, în aceste zile nu am avut cunoștințele de a programa un controler pentru un scaner galvo. Așa că am folosit un firmware existent cu mișcare carteziană.
Dar astăzi și după unele cercetări, am găsit un instructabil în care autorul folosește un arduino pentru a crea un spectacol DIY Laser Galvo. Am crezut că exact asta caut, așa că am comandat piesele ca în instructabilul său și am făcut câteva experimente. După câteva cercetări, am aflat că Arduino nu va funcționa atât de bine ca interfața pas / direcție, așa că l-am remixat pentru microcontrolerul STM32.
Vă rugăm să vă amintiți că acest controler este doar un prototip, dar poate fi utilizat pentru o mulțime de proiecte. De exemplu, într-o imprimantă 3D SLS DIY sau un gravor cu laser.
Caracteristicile controlerului Galvo sunt:
- conversie de la semnale de pas / dir de 5V la standart ILDA
- Frecvența de intrare 120kHz a (semnalelor pas / direcție)
- Rezoluție de ieșire pe 12 biți (0, 006 ° per unghi)
- conversia de la coordonate polare la liniare
- compatibil cu orice controler de mișcare care va crea un semnal de direcție și pas
- pin de aliniere central (rutină de aderare)
video cu controler laser galvo: (în curând)
Dacă îți place Instructable-ul meu, te rog să mă votezi în Concursul de Remixuri
Pasul 1: Piese de care aveți nevoie pentru controlerul Galvo
Piese electronice pentru controlerul galvo:
Cantitate | Descriere | Legătură | Preț |
---|---|---|---|
1x | Set galvanometru galvo ILDA 20Kpps | Aliexpress | 56, 51€ |
1x | 6mm 650nm Laserdiode | Aliexpress | 1, 16€ |
niste | fire | - | - |
1x | ST-Link V2 | Aliexpress | 1, 92 |
Piese electronice pentru circuit:
Iată toate piesele necesare pentru controlerul galvo. Am încercat să obțin toate piesele cât mai ieftine posibil.
Cantitate | Descriere | Nume pe circuit | Legătură | Preț |
---|---|---|---|---|
1x | Microcontroler STM32 "Blue-Pill" | „ALBASTRĂ-PILOVĂ” | Aliexpress | 1, 88€ |
1x | MCP4822 DAC dual channel pe 12 biți | MCP4822 | Aliexpress | 3, 00€ |
2x | TL082 dual OpAmp | IC1, IC2 | Aliexpress | 0, 97€ |
6x | Rezistor 1k | R1-R6 | Aliexpress | 0, 57€ |
4x | 10k-potențiometru de decupare | R7-R10 | Aliexpress | 1, 03€ |
niste | antet pin | - | Aliexpress | 0, 46€ |
Pasul 2: Teoria controlorului
Aici vă voi explica, cum funcționează controlerul în general. De asemenea, voi arăta câteva detalii, de exemplu, calculul unghiului drept.
1. CONTROLUL DE MOCIUNE
Controlerul de mișcare este partea în care veți crea semnalele de direcție și pas. Controlul pasului / direcției este adesea utilizat în aplicații cu motor pas cu pas, cum ar fi imprimante 3D, lasere sau freze CNC.
În plus față de semnalele de pas și direcție, este nevoie de un pin de aliniere central pentru a face ca STM32 și Motioncontroller să fie compatibile. Acest lucru se datorează faptului că galvo-urile sunt controlate în mod absolut și nu este nevoie de nicio întrerupătoare de limită.
2. STM32-microcontroler
Microcontrolerul STM32 este inima acestui controler. Acest microcontroler are mai multe sarcini de făcut. Aceste sarcini sunt:
Sarcina 1: Măsurați semnalele
Prima sarcină este de a măsura semnalele de intrare. În acest caz, vor fi semnale de pas și direcție. Deoarece nu vreau ca controlerul de mișcare să fie limitat de frecvența de intrare, am proiectat circuitul pentru 120kHz (testat). Pentru a obține această frecvență de intrare fără a pierde date, folosesc două temporizatoare hardware TIM2 și TIM3 pe STM32 pentru a gestiona interfața pas / direcție. În plus față de semnalele de pas și direcție există semnalul de aliniere. Această aliniere este controlată de o întrerupere externă pe STM32.
Sarcina 2: Calculați semnalele
Acum controlerul trebuie să calculeze semnalele la valoarea corectă pentru DAC. Deoarece galvo va crea un sistem de coordonate polare neliniare, este necesar un mic calcul pentru a crea o dependență liniară între pas și laserul real deplasat. Aici vă voi arăta o schiță a calculului:
Acum trebuie să găsim formula pentru calcul. Deoarece folosesc un DAC de 12 biți, pot da o tensiune de la -5 - + 5V în 0 - 4096 pași. Comanda Galvo I have are un unghi total de scanare de 25 ° la -5 - + 5V. Deci unghiul meu phi este în intervalul de la -12, 5 ° - +12, 5 °. În cele din urmă, trebuie să mă gândesc la distanța d. Vreau personal un câmp de scanare de 100x100mm, așa că d-ul meu va fi de 50mm. Înaltul h va fi rezultatul phi și d. h este 225, 5mm. Pentru a aduce distanța d în raport cu unghiul phi, am folosit o mică formulă, care va folosi tangențele și va converti unghiul din radiani în „valori DAC”
În cele din urmă, trebuie doar să adaug o prejudecată de 2048, deoarece scanarea mea este alinierea centrală și toate calculele sunt terminate.
Sarcina 3: Trimiteți valori către DAC:
Deoarece STM32 pe care l-am folosit nu are construire în DAC, am folosit un DAC extern. Comunicarea dintre DAC și STM32 se realizează prin SPI.
3. DAC
Pentru circuit folosesc același DAC pe 12 biți "MCP4822" ca deltaflo. Deoarece DAC este unipolar 0-4, 2V și aveți nevoie de - + 5V bipolar pentru standardul ILDA, trebuie să construiți un circuit mic cu câteva OpAmps. Folosesc TL082 OpAmps. Trebuie să construiți acest circuit amplificator de două ori, pentru că trebuie să controlați doi galvo. Cele două OpAmp-uri sunt conectate la -15 și + 15V ca tensiune de alimentare.
4. GALVO
Ultima parte este destul de simplă. Tensiunea de ieșire a celor două OPAmps va fi conectată la driverele ILDA Galvo. Și atât, acum ar trebui să puteți controla galvo-urile cu semnale de direcție și pas
Pasul 3: Circuitul
Pentru circuit am folosit un prototip PCB.
Puteți conecta semnalele de pas și direcție direct la STM32, deoarece am activat rezistențe interne de tragere. De asemenea, am folosit știfturi tolerante de 5V pentru știfturile de pas, direcție și centru.
Puteți descărca schema completă a circuitului de mai jos:
Pasul 4: Programarea STM32
STM32 este programat cu Attolic TrueStudio și CubeMX. TrueStudio este gratuit și îl puteți descărca de aici
Deoarece TrueStudio nu este atât de simplu ca, de exemplu, Arduino IDE, am generat un fișier.hex, pe care trebuie pur și simplu să îl încărcați pe microcontrolerul STM32.
În cele ce urmează vă voi explica cum ați introdus fișierul în STM32 „BluePill”:
1. Descărcați „STM32 ST-LINK Utility”: Puteți descărca software-ul de aici
2. Instalați și deschideți „STM32 ST-LINK Utility”:
3. Acum deschideți fișierul Galvo.hex în ST-Link Utility:
După aceea, trebuie să conectați STM32 „BluePill” la ST-Link-V2. Odată conectat, faceți clic pe butonul „Conectați-vă la traget”:
În cele din urmă, faceți clic pe „Descărcați”. Acum, STM32 ar trebui să fie intermitent corect.
În plus, am atașat toate fișierele sursă pentru Galvo_Controller în TrueStudio
Pasul 5: Conectați toate piesele mecanic și testați-le
Am așezat toate piesele electronice pe o placă de aluminiu de 4 mm pentru un aspect mai bun:-)
Acum vă voi arăta cum trebuie să reglați potențiometrele de pe circuit probabil:
La început câteva informații de bază despre standardul ILDA. Standardul ILDA este de obicei folosit pentru spectacole cu laser și constă dintr-un semnal de 5V și -5v. Ambele semnale au aceeași amplitudine, dar cu polaritate modificată. Deci, trebuie să tăiem semnalul de ieșire de la DAC la 5V și -5V.
Reglați potențiometrul:
Ceea ce puteți vedea aici este tensiunea de ieșire a acestui circuit la o frecvență de pas de intrare de 100kHz și cu un semnal de direcție constantă. În această imagine totul este în regulă. Amplitudinea merge de la 0 la 5V și de la 0 la -5. De asemenea, tensiunile sunt aliniate probabil.
Acum vă voi arăta ce s-ar putea greși în timp ce reglați potențiometrul:
După cum puteți vedea acum, ambele tensiuni nu sunt aliniate probabil. Soluția este de a regla tensiunea offset de la OpAmp. Faceți acest lucru reglând potențiometrele „R8” și „R10”.
Alt exemplu:
După cum puteți vedea acum, tensiunile sunt aliniate probabil, dar amplitudinea nu este de 5V, ci de 2V. Soluția este de a regla rezistența de câștig de la OpAmp. Faceți acest lucru reglând potențiometrele „R7” și „R9”.