CNC tekening Machine (4 / 5 stap)

Stap 4: Maken de CNC goed verplaatsen


Het programmeergedeelte van dit project volledig in VHDL gebeurd is, en ik de voorkeur om te schrijven van mijn eigen component implementaties, hoewel u verschillende voorbeelden van code vindt voor het beheersen van de RC servo's / DC motoren.

Voor het beheersen van beide soorten motoren zullen we om een PWM (Pulsbreedtemodulatie). Als u niet bekend bent met het proberen te zoeken op het internet voor meer informatie. U kan ook lezen over hoe de servo's en DC motoren werk, als u wilt meer weten.

Het PWM-periode zullen afwijken voor elk type motor dus in het einde we 2 verschillende codes voor pwm voor eenvoud hebben.

Beheersing van een DC-Motor

De DC-Motor wordt gecontroleerd door de H-brug. In H brug gegevensblad zien we dat de invoer inschakelen pin moet worden aangesloten op een PWM-signaal en de periode van 2 KHz. Omdat de Arty interne klok 100MHz frequentie heeft, om de gewenste klok periode van 2 KHz zal verdelen we 100 MHz / 2 KHz = 50000. Dus gebruikte ik een teller van 0 tot 49999 die verfrist zich wanneer 50000 is bereikt en krachten de output PWM signaal '1' en een vlag '1'. Ik heb een andere teller die volgens de vulling factor tellen begint als de vlag ' 1 is 'en wanneer het eindigt het krachten die de vlag terug naar ' 0' gebruikt voor de taakcyclus. De vulling factoren worden opgeslagen in een array als een constante in de PWMs architectuur.

Want we de gelijkstroommotor om te stoppen moeten nadat deze bepaalde stappen hebt verplaatst, moet het PWM-signaal 0 in dit geval dus ik een andere ingangssignaal die vertelt ons dat voegde als de motor moet worden verplaatst of niet. Als dat niet het geval is, we uitvoer PWM op 0 ingesteld.

In deze stap van het project is de PWM op de DC een beetje irrelevant. Het belang ervan zal blijken in de komende weken wanneer de DC motor encoder en de PID-controle zal worden uitgevoerd.

Voor nu, worden de richting van de motor automatisch ingesteld volgens de ingedrukte knop.

Wij controle beide gelijkstroommotoren op dezelfde manier.

Beheersing van een RC-Servo

In deze uitvoering van het project slechts 1 servo nodig is - de servo omhoog / omlaag. De pen selector servo wordt getoond in de volgende week.

De servo's input PWM moeten een 2ms periode. Dit betekent dat een 50 Hz frequentie. Net voordat we de wiskunde en wij krijgen 2000000 tellen. Het principe is hetzelfde als voorheen, behalve dat deze keer we niet schelen als het PWM-signaal blijft hetzelfde (eigenlijk we doen, maar niet op de manier waarop we de DC-Motor verzorgd), omdat een bepaalde factor vullen ons een zekere voor de Servo geeft.

De servo gaat volgens een input vanuit de schakelaar van de planken. Het zal ofwel omhoog of omlaag gaan (in deze positie de pen zal worden op het papier en trekken).

Een component die alle bovenstaande onderdelen met elkaar verbindt is geïmplementeerd en CNC wordt genoemd.

=== De CNC-Code ===

---------------DC motor pwm-----------------------

type ROM is matrix (0 tot en met 4) van integer;

constant my_nums:

ROM: =

(0 = > 0,--0 DC

1 = > 12500,--25 DC

2 = > 25000,--50DC

3 = > 37500,--75 DC

4 = > 50000--100 DC);

signaal-pwm_temp: std_logic: = "0";

signaal pwm_temp_cnt: integer: = 0;

signaal duty_temp: integer: = 0;

signaal veld Markering2: std_logic: = "0";

signaal selector: integer: = 0;

beginnen

proces (clk)

beginnen

IF(RISING_EDGE(CLK)) vervolgens

als selector = 0 then

pwm_temp < = "0";

elsif pwm_temp_cnt = 50000 then

pwm_temp < = '1';

pwm_temp_cnt < = 0;

veld Markering2 < = '1';

anders

pwm_temp_cnt < = pwm_temp_cnt + 1;

einde als;

als veld Markering2 = '1' then

Als duty_temp = my_nums(selector) then

pwm_temp < = "0";

duty_temp < = 0;

veld Markering2 < = "0";

anders

duty_temp < = duty_temp + 1;

einde als;

einde als;

einde als;

proces beëindigen;

proces (move_DC)

beginnen

IF(RISING_EDGE(CLK)) vervolgens

geval move_DC is

Wanneer '1' = > selector < = 3;

Wanneer "0" = > selector < = 0;

Wanneer anderen = > selector < = selector;

einde geval;

einde als;

proces beëindigen;

pwm_clk < = pwm_temp;

---DC motor primair onderdeel---

onderdeel PWM_DC

Poort (clk: in STD_LOGIC;

pwm_clk: uit STD_LOGIC;

move_DC: in STD_LOGIC);

einde component;

signaal-moveDC: std_logic: = "0";

beginnen

PWM: pwm_dc poort kaart (clk, en_out, moveDC);

---RICHTING SCHAKELAAR---

Process(btn)

beginnen

IF(RISING_EDGE(CLK)) vervolgens

zaak btn is

Wanneer "10" = > dir_out < = '1';

moveDC < = '1';

Wanneer "01" = > dir_out < = "0";

moveDC < = '1';

Wanneer anderen = > dir_out < = "0";

moveDC < = "0";

einde geval;

einde als;

proces beëindigen;

---RC Servo primair onderdeel---

constant my_nums: ROM: = ()
0 = > 80000,--0-1 = > 145000,--45 2 = > 165000,--90 3 = > 175000,--135 DC 4 = > 200000--180 DC);

signaal-pwm_temp: std_logic: = "0";

signaal pwm_temp_cnt: integer: = 0;

signaal duty_temp: integer: = 0;

signaal veld Markering2: std_logic: = "0";

signaal-nl: std_logic_vector (3 downto 0): = (anderen = > '0');

signaal knop: integer: = 0;

beginnen

proces (clk)

beginnen

IF(RISING_EDGE(CLK)) vervolgens

Als pwm_temp_cnt = 2000000 then

pwm_temp < = '1';

pwm_temp_cnt < = 0;

veld Markering2 < = '1';

anders

pwm_temp_cnt < = pwm_temp_cnt + 1;

einde als;

als veld Markering2 = '1' then

Als duty_temp = my_nums(button) then

pwm_temp < = "0";

duty_temp < = 0;

veld Markering2 < = "0";

anders

duty_temp < = duty_temp + 1;

einde als;

einde als;

einde als;

proces beëindigen;

proces (sw) beginnen

IF(RISING_EDGE(CLK)) vervolgens

zaak sw is

Wanneer '1' = > knop < = 4;

Wanneer "0" = > knop < = 3;

Wanneer anderen = > knop < = knop;

einde geval;

einde als;

proces beëindigen;

pwm_clk < = pwm_temp;

Een hoofdbestanddeel die kaart zal poort de DC motor primaire domeincontroller 2 keer maakt, één voor de X-as en één voor de Y-as en 1 keer de belangrijkste component van RC servo.

Gerelateerde Artikelen

Maken van een tekening Machine uit platenspelers

Maken van een tekening Machine uit platenspelers

Dit Instructable werd gemaakt door Mr. Mortensen de 3de klas op River Rock Elementary in Lehi, Utah. Dit is onze eerste keer maken van een Instructable, dus we hope u like it!PLEASE VOTE VOOR ONS!Dit is niet ons idee, maar het is ons te nemen over ee
Zelfgemaakte CNC frezen machine v2 - arduino uno GRBL

Zelfgemaakte CNC frezen machine v2 - arduino uno GRBL

Hier wilde ik mijn tweede cnc freesbank te presenteren. Op dit moment is het klaar 1 as met controle arduino GRBL. Uiteindelijk, I 'm gonna toevoegen dat meer stappen gebouwd mijn machine in de volgorde van hun creatie. Het doel van dit project is om
Polargraph tekening Machine

Polargraph tekening Machine

Deze machine, een variatie op de opknoping-penplotter is een opvallende en opzettelijk naïeve poging om te breken uit de ongerepte, pixel perfect, kleur gecorrigeerd ruimte die binnen onze computers bestaat. Het is een tekening machine, die neemt een
Zelfgemaakte houten Mini draaibank DIY Conveyor Cordless Drill spindel CNC Mill Machine

Zelfgemaakte houten Mini draaibank DIY Conveyor Cordless Drill spindel CNC Mill Machine

Zelfgemaakte houten Mini draaibank DIY Conveyor Cordless Drill spindel CNC Mill MachineStap 1: DIY Chuck Headstock spindel draaibank door Aluminium en houtDIY Chuck Headstock spindel draaibank door Aluminium en houtStap 2: DIY dynamische Conveyor doo
Werelds simpelste tekening Machine

Werelds simpelste tekening Machine

een paar jaar terug was ik de gelegenheid om mijn eigen kunstatelier geboden. Met mijn eigen ruimte te doen was (min of meer) wat ik wilde een grote nieuwigheid voor mij. Het eerste wat dat ik deed was het maken van een domme deken. Ik ging toen te w
Een CNC teken voor mijn Venture 17 zeilboot

Een CNC teken voor mijn Venture 17 zeilboot

dit is gewoon een beetje Instructable voor het teken besluitvormingsproces op een DIY CNC machine.  Ik bouwde deze machine een paar maanden geleden en ben nog steeds leren manieren om leuke dingen mee.  De mogelijkheden zijn eindeloos met een van dez
Arduino Mini CNC Plotter Machine uit de dvd drijft

Arduino Mini CNC Plotter Machine uit de dvd drijft

In dit project zal ik u tonen hoe gemakkelijk het bouwen van uw eigen voordelige Arduino Mini CNC Plotter!Dit project is een update van mijn eerdere cnc, met betere bouw en met meer nauwkeurigheid.Heb ik besloten om deze gedetailleerde gids om u het
Uit de lade naar CNC frezen Machine

Uit de lade naar CNC frezen Machine

ik was op zoek op instructables om een goedkope CNC machine te maken.Ik heb verschillende voorbeelden gevonden en hebben besloten om te maken mezelf met alleen de delen van een bureau-lade (Excl. elektronica en station).Mijn oude huis Bureau heeft ee
Tabel voor Mini CNC frezen Machine vacuüm

Tabel voor Mini CNC frezen Machine vacuüm

moe om te boren in uw Milling Machine tabel?Moe van het uitzetten uit waar ondersteunt en klemmen zich bevinden?Kijk geen verdere, want u hebt de juiste plaats gevonden.Ik zal u tonen hoe te maken van een effectieve vacuüm tabel voor u CNC Machine.St
Gemakkelijk te bouwen Desk Top 3 as CNC frezen Machine

Gemakkelijk te bouwen Desk Top 3 as CNC frezen Machine

hier is een manier om een computer gestuurde freesbank. Dat zet de echte kracht van een besturingselement van de computer in de handen van de gemiddelde mens verspanen. Klein genoeg om in te stellen op het Bureau maar schaalbare op een ander formaat.
Hersenengolf tekening Machine

Hersenengolf tekening Machine

Deze machine werd oorspronkelijk gebouwd voor een galerie-show die ik had laatste semester. Het is de input van een EEG brainwave scanner en gebruikt het om te controleren de positie van een marker in real-time.Deze machine is gebaseerd op de polargr
Genieten van zachte en cnc tekening

Genieten van zachte en cnc tekening

Draw + één klik! = Polystyreen vormhttp://costycnc.xhost.ro/http://www.Facebook.com/Costy.CNC.3Vereisten:-Kladblok (of een andere tekst-editor)of-Verf (of andere grafische-editor)of-WEBCAM (handgetekende/tekstshape vastgelegd met de camera)GEEN ANDER
Combinatie CNC Machine en 3D-Printer

Combinatie CNC Machine en 3D-Printer

Hoe maak je eigen 2D CNC machine die in een 3D-Printer en terug naar een CNC-machine in minder dan een uur converteert. Kost minder dan een CNC machine of de 3D-printer! (~ $ 1.000,00 bedraagt) Bovendien, zal het ontwerp verder gaan dan de traditione
As stofkap voor de CNC-Machine voor het frezen van Mini

As stofkap voor de CNC-Machine voor het frezen van Mini

na wordt op deze site al geruime tijd, en het gebruik van andermans tutorials, dacht ik dat ik iets dat veel mensen helpen kan moeten bijdragen. Als dit ontwerp niet voor uw computer werkt, kunt u het altijd wijzigen zodat het zal werken.Dit is een n