CNC-ritning maskin (4 / 5 steg)

Steg 4: Att göra CNC flytta ordentligt



Programmering del av detta projekt har gjorts helt i VHDL och jag föredragit att skriva min egen komponent implementeringar, men du hittar olika kodexempel för att kontrollera RC servon / DC-motorer.

Vi kommer att behöva genomföra en PWM (Pulse bredd modulering) för att kontrollera båda typer av motorer. Om du inte är bekant med det. prova att söka på internet för mer information. Du kan också läsa om hur servon och DC motorer arbete, om du vill veta mer.

PWM perioden kommer att vara olika för varje typ av motor så i slutändan får vi 2 olika koder för pwm för enkelhet.

Kontrollera en DC-Motor

DC-Motor styrs genom H bron. I H Bridge databladet ser vi att input aktivera PIN-koden ska anslutas till en PWM-signal och dess period bör vara 2 kHz. Eftersom den Arty intern klockan har 100MHz frekvens, för att få önskad clock löptid 2 KHz delar vi 100 MHz / 2 KHz = 50000. Så jag använde en räknare från 0 till 49999 som fräschar uppdaterar sig när 50000 nås och styrkor PWM utgången signal 1 och en flagga '1'. För intermittensen har jag använt en annan räknare som börjar räkna enligt den fyllning faktorn när flaggan är "1"och när den är klar det styrkor flaggan tillbaka till "0". Faktorerna som fyllning lagras i en array som en konstant i PWMs arkitekturen.

Eftersom vi behöver DC-motor att stoppa efter det flyttade vissa steg, ska PWM signalen vara 0 i detta fall så har jag lagt en annan insignalen som berättar om motorn ska gå eller inte. Om inte, vi satt utdata PWM till 0.

I detta steg i projektet är PWM på DC lite irrelevant. Dess betydelse kommer att ses under de närmaste veckorna när DC motor kodare och PID kontroll kommer att genomföras.

För nu, kommer riktningen av motorn automatiskt ställas in enligt knappen intryckt.

Vi kontrollerar både DC-motorer på samma sätt.

Kontrollera ett RC-Servo

I den här implementeringen av projektet krävs endast 1 servo - upp-ner servo. Pen selector servo visas i följande vecka.

Servon ingång PWM bör ha en 2ms period. Detta innebär en frekvens på 50 Hz. Precis som innan vi får matten och vi 2000000 räkning. Principen är densamma som tidigare förutom att denna gång inte bryr vi oss om PWM signalen förblir densamma (faktiskt vi gör, men inte på det sättet vi vårdas DC Motor), eftersom en viss faktor fyllning ger oss en viss grad för Servo.

Servo flyttas enligt indata från växeln styrelser. Det går antingen upp eller ned (i denna position ska pennan på papperet och rita).

En del som förenar alla ovanstående komponenter implementeras och kallas CNC.

=== CNC koden ===

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

ROM är array (0 till 4) heltal;

konstant my_nums:

ROM: =

(0 = > 0,--0 DC

1 = > 12500,--25 DC

2 = > 25000,--50DC

3 = > 37500,--75 DC

4 = > 50000--100 DC);

signal pwm_temp: std_logic: = "0";

signal pwm_temp_cnt: heltal: = 0;

signal duty_temp: heltal: = 0;

signal flag2: std_logic: = "0";

signal selector: heltal: = 0;

börja

processen (clk)

börja

IF(RISING_EDGE(CLK)) sedan

om väljaren = 0 då

pwm_temp < = "0";

elsif pwm_temp_cnt = 50000 då

pwm_temp < = '1';

pwm_temp_cnt < = 0;

flag2 < = '1';

annat

pwm_temp_cnt < = pwm_temp_cnt + 1.

slutet om;

om flag2 = '1' då

om duty_temp = my_nums(selector) sedan

pwm_temp < = "0";

duty_temp < = 0;

flag2 < = "0";

annat

duty_temp < = duty_temp + 1;

slutet om;

slutet om;

slutet om;

Avsluta process;

processen (move_DC)

börja

IF(RISING_EDGE(CLK)) sedan

fall move_DC är

När '1' = > selector < = 3;

När "0" = > selector < = 0;

När andra = > selector < = selector;

avsluta fallet;

slutet om;

Avsluta process;

pwm_clk < = pwm_temp;

---DC motor huvudkomponenten---

komponent PWM_DC är

Port (clk: i STD_LOGIC;

pwm_clk: ut STD_LOGIC;

move_DC: i STD_LOGIC);

slutet komponent;

signal moveDC: std_logic: = "0";

börja

PWM: pwm_dc port karta (clk, en_out, moveDC);

---RIKTNING SWITCH---

process(BTN)

börja

IF(RISING_EDGE(CLK)) sedan

fall btn är

När "10" = > dir_out < = '1';

moveDC < = '1';

När "01" = > dir_out < = "0";

moveDC < = '1';

När andra = > dir_out < = "0";

moveDC < = "0";

avsluta fallet;

slutet om;

Avsluta process;

---RC Servo huvudkomponenten---

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

signal pwm_temp: std_logic: = "0";

signal pwm_temp_cnt: heltal: = 0;

signal duty_temp: heltal: = 0;

signal flag2: std_logic: = "0";

signal sv: std_logic_vector (3 b 0): = (andra = > '0');

signal knappen: heltal: = 0;

börja

processen (clk)

börja

IF(RISING_EDGE(CLK)) sedan

om pwm_temp_cnt = 2000000 då

pwm_temp < = '1';

pwm_temp_cnt < = 0;

flag2 < = '1';

annat

pwm_temp_cnt < = pwm_temp_cnt + 1.

slutet om;

om flag2 = '1' då

om duty_temp = my_nums(button) sedan

pwm_temp < = "0";

duty_temp < = 0;

flag2 < = "0";

annat

duty_temp < = duty_temp + 1;

slutet om;

slutet om;

slutet om;

Avsluta process;

processen (sw) påbörjas

IF(RISING_EDGE(CLK)) sedan

fall sw är

När '1' = > knappen < = 4;

När "0" = > knappen < = 3;

När andra = > knappen < = knappen;

avsluta fallet;

slutet om;

Avsluta process;

pwm_clk < = pwm_temp;

Skapa en huvudkomponent som kommer port karta den DC motor primära styrenheten 2 gånger, en för X-axeln och en för Y-axeln och 1 gången huvudkomponenten RC servo.

Se Steg
Relaterade Ämnen

Att göra en ritning maskin från skivspelare

Detta Instructable gjordes av Mr Mortensens 3: e klass klass på River Rock Elementary i Lehi, Utah. Detta är vår första gången att göra en Instructable, så vi hoppas ni gillar det!VÄNLIGEN RÖSTA PÅ OSS!Detta är inte vår idé, men det är vår ta på en i...

Hemgjord trä Mini svarv DIY dubbdockan borrmaskin spindel CNC Mill maskin

Hemgjord trä Mini svarv DIY dubbdockan borrmaskin spindel CNC Mill maskinSteg 1: DIY Chuck Spindelhuset spindlig svarv av Aluminium och träDIY Chuck Spindelhuset spindlig svarv av Aluminium och träSteg 2: DIY Dynamic dubbdockan av trä och trasiga bor...

Polargraph ritning maskin

Denna maskin, en variant på den hängande-pennplotter är en iögonfallande och medvetet naiva försök att bryta sig ur det orörda, pixel perfekta, färg korrigerade utrymme som finns i våra datorer. Det är en ritning maskin, som tar en penna (ett mänskli...

Världens enklaste ritning maskin

ett par år tillbaka var jag ges möjlighet att få min egen art studio. Med mitt eget utrymme att göra var vad jag ville (mer eller mindre) en stor nyhet för mig. Det första jag gjorde var att göra en dum matta. Jag fortsatte sedan fylla det med ewaste...

Arduino Mini CNC Plotter-maskin från dvd-enheter

I detta projekt kommer jag visa dig hur man enkelt bygga din egen billiga Arduino Mini CNC Plotter!Detta projekt är en uppdatering från min tidigare cnc, med bättre konstruktion och med mer precision.Jag bestämde mig att göra detta detaljerad guide a...

Brain Wave ritning maskin

Denna maskin byggdes ursprungligen för en Galleri show som jag hade förra terminen. Det tar input från en EEGEN hjärnvågorna scanner och används för att styra placeringen av en markör i realtid.Denna maskin är baserad på polargraph av Euphy. Polargra...

Mjuk och cnc ritning

Draw + ett klick! = Polystyren formhttp://costycnc.xhost.ro/http://www.Facebook.com/costy.CNC.3Krav:-Anteckningar (eller annan textredigerare)eller-Måla (eller annan grafik-redaktör)eller-WEBCAM (handritade text/form tagits med kameran)INGEN ANNAN KO...

EtchABot: En mångsidig CNC Etch en skiss

EtchABot använder en Arduino för att förvandla en Etch A Sketch till en själv radera CNC (Computer Numerical Control) ritade maskin. Det har långt ifrån först motoriserade Etch A Sketch på internet. Andra projekt har använt stegmotorer för att förvan...

Hot Glue Gun Extruder för din CNC-maskin eller 3D-skrivare

3D-utskrifter fortfarande kostar några dollar och kan vara utom räckhåll för hobbiest som inte har någon budget. Målet med detta instructable är att konstruera en FDM (brända Deposition Modeling) skrivare extruder (en nyckelkomponent) med hjälp av en...

DIY CNC Router planer: Hur man bygger

Obs: Jag Ursprungligen postat detta på min konst och hantverk blogg, Gör det med Jason, och du är välkommen att gå besök och kolla in min andra tutorials, recensioner och steg för steg ritning och målning lektioner.Ända sedan jag såg min första CNC,...

CNC Router barstol

I detta Instructable kommer du att:Setup CNC RouterLadda en DXF-fil och generera G-kod maskinen använder för att klippa ut avföringenKlipp ut en bar pall med CNC RouterSteg 1: Samla leveranserna Du behöver:CNC-Router och kontrollera datorn med Cut 2D...

En skissa maskin ur en låda

bör skissa, inte utarbeta, eftersom skisser är gjorda för någon typ av ritning, utarbetande, du namn den.Det är så lätt som det blir, en kartong, några extra tjock kartong från en annan låda, en spegel och en bit glas eller genomskinlig akryl.Klipp u...

Vägg monterbar brädspel Design för CNC Mill

har du någonsin vunnit en episk brädspel natt? Har du velat Visa upp segern på ditt vardagsrum vägg? Tja, med detta instructable, kan du bygga din egen vägg monterbar brädspel som kommer att vara avundsjuka på dina gäster och stolthet av din familj.J...

Cirkelträning Scribe ritning Robot

Är processen att dra kretsar med ledande bläck pennor för nära besläktade kroppsarbete för dig?Eller vill du bara se en cool grej hända?Detta kan vara lösningen för dig. Vid ett av våra hackerspace februari bygga nätter w / Krets Scribebeslutade vi a...

CNC krets enkelt!

Denna krets kan användas för att styra två stegmotorer eller mer beroende på hur många lätt stepper drivrutiner du använder. Jag gjorde detta som en Arduino Uno sköld men kan också sättas samman på en skärbräda. Jag använder denna krets för att göra...

Rita maskin med Arduino

Min första användning av Arduino i ett projekt. En skoluppgift att göra en ritning maskin. Detta var 2 veckors projekt, så snälla ursäkt trådarna som jag inte hade tid för att löda något.Jag tycker om beröringsfria-gränssnitt. Jag använde en fotocell...

En ånga punk stil lotteri maskin

Här dela mitt senaste projekt, en väldigt cool stream punk stil ritning maskin.Ta gärna en titt på videon för att få hur fungerar det.Och om du vill göra en, Följ den nedan några steg.Steg 1: En VideoHär är en liten video som hjälper dig att få ut me...

Rita maskin

hur jag gjorde min ritning maskin, och i processen gjorde konstnärerna föråldrade. När jag flyttade in i min nya studio, jag hade inga viktiga projekt annalkande, och var ännu inte bekväm i rymden. Jag byggde denna "ritning maskin" så att jag ku...

Shapeoko 2, Arduino UNO R3, grbl 9g, 8 bit lasergravyr diod foto

Mig och min son utvecklat uppfann/ett nytt koncept "On-The flyga" 8-bitars laserdiod gravyr bilder över två år sedan. Med detta begrepp släcks Laser-diod aldrig genom hela bilden gravyr process. Det varierar bara kraften upp och ner för att prod...