Inhoudsopgave:

DIY STEP / DIR LASER GALVO-CONTROLLER - Ajarnpa
DIY STEP / DIR LASER GALVO-CONTROLLER - Ajarnpa

Video: DIY STEP / DIR LASER GALVO-CONTROLLER - Ajarnpa

Video: DIY STEP / DIR LASER GALVO-CONTROLLER - Ajarnpa
Video: Step/Dir to DAC for Galvo Driver 2024, November
Anonim
DIY STEP/DIR LASER GALVO-CONTROLLER
DIY STEP/DIR LASER GALVO-CONTROLLER

Hoi, in deze Instructable wil ik je laten zien hoe je je eigen step / dir-interface kunt bouwen voor ILDA-standaard galvo-laserscanners.

Zoals je misschien weet ben ik ook de uitvinder van de "DIY-SLS-3D-Printer" en de "JRLS 1000 DIY SLS-3D-PRINTER" en terwijl ik deze machines aan het bouwen was, begon ik te knutselen over hoe deze printers zullen presteren, als ik een Galvo Scanners zal gebruiken in plaats van een cartesiaans bewegingssysteem. Maar in deze dagen had ik niet de kennis om een controller voor een galvo scanner te programmeren. Dus ik heb een bestaande firmware met cartesiaanse beweging gebruikt.

Maar vandaag en na wat onderzoek vond ik een instructable waarbij de auteur een Arduino gebruikt om een DIY Laser Galvo-show te maken. Ik dacht dat dit precies is wat ik zoek, dus ik heb de onderdelen besteld zoals in zijn instructable en heb wat experimenten gedaan. Na wat onderzoek kwam ik erachter dat de Arduino niet zo goed zal presteren als stap / richting-interface, dus heb ik hem geremixt voor de STM32-microcontroller.

Houd er rekening mee dat deze controller slechts een prototype is, maar voor veel projecten kan worden gebruikt. Bijvoorbeeld in een DIY SLS 3D-printer of een lasergraveerder.

De kenmerken van de Galvo-controller zijn:

  • conversie van 5V step/dir signalen naar ILDA standaard
  • 120 kHz ingangsfrequentie van (Stap/Richting signalen)
  • 12bit Uitgangsresolutie (0, 006° per hoek)
  • conversie van poolcoördinaten naar lineaire coördinaten
  • compatibel met elke bewegingscontroller die een stap- en richtingsignaal creëert
  • centreerpen (homing-routine)

video van laser galvo controller: (binnenkort beschikbaar)

Als je mijn Instructable leuk vindt, stem dan op mij in de Remix-wedstrijd

Stap 1: Onderdelen die u nodig hebt voor de Galvo-controller

Elektronische onderdelen voor de galvo-controller:

Hoeveelheid Beschrijving Koppeling Prijs
1x ILDA 20Kpps galvo galvanometerset Aliexpress 56, 51€
1x 6 mm 650 nm laserdiode Aliexpress 1, 16€
sommige draden - -
1x ST-Link V2 Aliexpress 1, 92

Elektronische onderdelen voor het circuit:

Hier zijn alle benodigde onderdelen voor de galvo-controller. Ik heb geprobeerd om alle onderdelen zo goedkoop mogelijk te verkrijgen.

Hoeveelheid Beschrijving Naam op circuit Koppeling Prijs
1x STM32 "Blue-Pill"-microcontroller "BLAUWE PIL" Aliexpress 1, 88€
1x MCP4822 12 bit dual channel DAC MCP4822 Aliexpress 3, 00€
2x TL082 dubbele OpAmp IC1, IC2 Aliexpress 0, 97€
6x 1k Weerstand R1-R6 Aliexpress 0, 57€
4x 10k trim-potentiometer R7-R10 Aliexpress 1, 03€
sommige pin-header - Aliexpress 0, 46€

Stap 2: De theorie van de controller

Afbeelding
Afbeelding

Hier zal ik je uitleggen hoe de controller in het algemeen werkt. Ik zal ook enkele details laten zien, bijvoorbeeld de berekening van de rechte hoek.

1. BEWEGINGSCONTROLLER

De bewegingscontroller is het onderdeel waar u de stap- en richtingsignalen maakt. De step/direction controll wordt vaak gebruikt in stappenmotortoepassingen zoals 3D-printers, lasers of CNC-frezen.

Naast de stap- en richtingsignalen is er behoefte aan een centrale uitlijnpin om de STM32 en de Motioncontroller consistent te maken. Dat komt omdat de galvo's absoluut gecontroleerd zijn en er geen eindschakelaars nodig zijn.

2. STM32-microcontroller

De STM32-microcontroller is het hart van deze controller. Deze microcontroller heeft verschillende taken te doen. Deze taken zijn:

Taak 1: Meet signalen

Afbeelding
Afbeelding

De eerste taak is het meten van de ingangssignalen. In dit geval zijn het stap- en richtingseinen. Omdat ik niet wil dat de motion-controller wordt beperkt door de ingangsfrequentie, heb ik de schakeling ontworpen voor 120 kHz (getest). Om deze ingangsfrequentie te bereiken zonder gegevens te verliezen, gebruik ik twee hardwaretimers TIM2 en TIM3 op de STM32 om de stap / richting-interface te beheren. Naast de stap- en richtingseinen is er het uitlijnsein. Deze uitlijning wordt gecontroleerd door een externe interrupt op de STM32.

Taak 2: Bereken de signalen

Nu moet de controller de signalen berekenen naar de juiste waarde voor de DAC. Omdat de galvo een niet-lineair polair coördinatensysteem zal creëren, is een kleine berekening nodig om een lineaire afhankelijkheid te creëren tussen stap en werkelijk bewogen laser. Hier zal ik u een schets van de berekening laten zien:

Afbeelding
Afbeelding

Nu moeten we de formule voor de berekening vinden. Omdat ik een 12bit DAC gebruik, kan ik een spanning van -5 - +5V afgeven in 0 - 4096 stappen. De galvo die ik heb besteld heeft een totale scanhoek van 25° bij -5 - +5V. Dus mijn hoek phi ligt in een bereik van -12, 5° - +12, 5°. Ten slotte moet ik nadenken over de afstand d. Ik wil persoonlijk een scanveld van 100x100mm, dus mijn d wordt 50mm. De hoge h is het resultaat van phi en d. h is 225, 5 mm. Om de afstand d in relatie te brengen tot de hoek phi heb ik een kleine formule gebruikt, die de raaklijnen zal gebruiken en de hoek van radialen zal omzetten in "DAC-waarden"

Afbeelding
Afbeelding

Ten slotte hoef ik alleen een afwijking van 2048 toe te voegen, omdat mijn scanveld uitlijning in het midden is en alle berekeningen zijn gedaan.

Taak 3: Stuur waarden naar de DAC:

Omdat de STM32 die ik heb gebruikt geen ingebouwde DAC heeft, heb ik een externe DAC gebruikt. De communicatie tussen de DAC en de STM32 wordt gerealiseerd via SPI.

3. DAC

Voor het circuit gebruik ik dezelfde 12bit DAC "MCP4822" als deltaflo. Omdat de DAC unipolair 0-4, 2V is en je -+5V bipolair nodig hebt voor de ILDA-standaard, moet je een klein circuit bouwen met wat OpAmps. Ik gebruik TL082 OpAmps. Je moet deze versterkerschakeling twee keer bouwen, omdat je twee galvo's moet aansturen. De twee OpAmps zijn aangesloten op -15 en +15V als voedingsspanning.

Afbeelding
Afbeelding

4. GALVO

Het laatste deel is vrij eenvoudig. De uitgangsspanning van de twee OPAmps wordt aangesloten op de ILDA Galvo-drivers. En dat was het, nu zou je de galvo's moeten kunnen besturen met stap- en richtingaanwijzers

Stap 3: Het circuit

Het circuit
Het circuit

Voor de schakeling heb ik een prototype PCB gebruikt.

Je kunt de stap- en richtingsignalen direct op de STM32 aansluiten, omdat ik interne pull-down weerstanden heb geactiveerd. Ook heb ik 5V-tolerante pinnen gebruikt voor de stap-, richtings- en middenpinnen.

U kunt het volledige schema van de schakeling hieronder downloaden:

Stap 4: Programmeren van de STM32

De STM32 is geprogrammeerd met Attolic TrueStudio en CubeMX. TrueStudio is gratis te gebruiken en je kunt het hier downloaden

Omdat TrueStudio niet zo eenvoudig is als bijvoorbeeld de Arduino IDE, heb ik een.hex-bestand gegenereerd, dat je gewoon moet uploaden naar de STM32-microcontroller.

Hieronder zal ik uitleggen hoe je het bestand uploadt naar de STM32 "BluePill":

1. Download "STM32 ST-LINK Utility": u kunt de software hier downloaden:

2. Installeer en open "STM32 ST-LINK Utility":

Afbeelding
Afbeelding

3. Open nu het bestand Galvo.hex in de ST-Link Utility:

Afbeelding
Afbeelding

Daarna moet je de STM32 "BluePill" aansluiten op de ST-Link-V2. Eenmaal verbonden, klik op de "Verbinden met traget-knop":

Afbeelding
Afbeelding

Klik ten slotte op "Downloaden". Nu zou uw STM32 correct moeten worden geflitst.

Afbeelding
Afbeelding

Bovendien heb ik alle bronbestanden voor de Galvo_Controller in TrueStudio bijgevoegd

Stap 5: Sluit alle onderdelen mechanisch aan en test het

Sluit alle onderdelen mechanisch aan en test het
Sluit alle onderdelen mechanisch aan en test het
Sluit alle onderdelen mechanisch aan en test het
Sluit alle onderdelen mechanisch aan en test het

Ik heb alle elektronische onderdelen op een aluminium plaat van 4 mm geplaatst voor een beter uiterlijk:-)

Nu zal ik je laten zien hoe je de potentiometers op het circuit waarschijnlijk moet aanpassen:

Eerst wat achtergrondinformatie over de ILDA-standaard. De ILDA-standaard wordt meestal gebruikt voor lasershows en bestaat uit een 5V- en een -5v-signaal. De beide signalen hebben dezelfde amplitude, maar met een gewijzigde polariteit. Dus wat we moeten doen, is het uitgangssignaal van de DAC inkorten naar 5V en -5V.

Stel de potentiometer af:

Afbeelding
Afbeelding

Wat je hier kunt zien is de uitgangsspanning van deze schakeling bij een ingangsstapfrequentie van 100 kHz en met een constant richtingssignaal. Op deze foto is alles in orde. De amplitude gaat van 0 tot 5V en van 0 tot -5. Ook de spanningen zijn waarschijnlijk uitgelijnd.

Nu zal ik je laten zien wat er mis kan gaan tijdens het afstellen van de potentiometer:

Afbeelding
Afbeelding

Zoals je nu kunt zien, zijn beide spanningen waarschijnlijk niet uitgelijnd. De oplossing is om de offset-spanning van de OpAmp aan te passen. Dat doe je door de potmeters "R8" en "R10" in te stellen.

Een ander voorbeeld:

Afbeelding
Afbeelding

Zoals je nu kunt zien zijn de spanningen waarschijnlijk uitgelijnd, maar de amplitude is niet 5V maar 2V. De oplossing is om de versterkingsweerstand van de OpAmp aan te passen. Dat doe je door de potmeters "R7" en "R9" in te stellen.

Aanbevolen: