CNDY Shield GRBL CNC Arduino UNO Guide pamaké

V1.2

CNDY Shield GRBL CNC

GRBL pinout dina Arduino Uno

Analog 0 = Tombol Abort*
Analog 1 = Tombol Feed Tahan* (SAFETY_DOOR dibagikeun kalawan feed ditahan. Diaktipkeun ku config define)
Analog 2 = Tombol Mimitian / Balikan deui Siklus *
Analogi 3 = Coolant Aktipkeun Kaluaran
Analogi 4 = (Pilihan) Kaluaran Coolant Halimun (atawa ALARM_STATE lampu diagnostik**)
Analog 5 = Input Probe*
Digital 13 = Arah Spindle
Digital 12 = Wates Switches Z-Axis*
Digital 11 = Spindle / Laser Aktipkeun PWM
Digital 10 = Wates Saklar Y-Axis*
Digital 9 = Limit Switches X-Axis*
Digital 8 = Stepper Motors Aktipkeun / Nonaktipkeun
Digital 7 = Arah Z-Axis
Digital 6 = Arah Y-Axis
Digital 5 = Arah X-Axis
Digital 4 = Lengkah Pulse Z-Axis
Digital 3 = Lengkah Pulse Y-Axis
Digital 2 = Lengkah Pulsa X-Axis

Fitur sumbu ganda pilihan

Pin Analog Uno 3 = A-axis DUAL_DIRECTION (baheulana Coolant Enable Output)
Uno Analog Pin 4 = A-axis DUAL_STEP (saméméhna janten Output Mist Coolant Opsional)
Uno Digital 13 = Coolant (ngaganti arah spindle.)

Saatos masang gudang grbl salaku perpustakaan di Arduino, uncomment kaluar garis handap dina config.h file dina folder perpustakaan grbl.

#define ENABLE_DUAL_AXIS // Default ditumpurkeun. Uncomment pikeun ngaktipkeun.

// Pilih hiji sumbu pikeun eunteung motor sejen. Ngan sumbu X sareng Y anu dirojong ayeuna.
#define DUAL_AXIS_SELECT Y_AXIS // Kudu X_AXIS atanapi Y_AXIS

CATETAN: wates sumbu dual dibagikeun kalawan (Z-Axis) wates pin sacara standar.

Fitur sumbu dual merlukeun hiji pin pulsa hambalan bebas beroperasi. Pin arah bebas teu mutlak diperlukeun tapi facilitates arah gampang inverting kalawan Grbl $$ setelan. Pin ieu ngagentos arah spindle sareng pin halimun coolant pilihan.

Fitur sumbu ganda pilihan ieu utamana pikeun siklus homing pikeun maluruh dua sisi gantry dual-motor sacara mandiri, nyaéta timer kuadrat. Ieu merlukeun switch wates tambahan pikeun motor kloning. Pikeun pasagi diri, duanana wates switch dina sumbu kloning kudu fisik diposisikan pikeun pemicu lamun gantry nyaeta pasagi. Kacida nyarankeun ngajaga motor salawasna diaktipkeun pikeun mastikeun gantry tetep pasagi jeung $1 = 255 setelan.

Pikeun Grbl dina Arduino Uno, switch wates sumbu kloning kedah dibagikeun sareng kabel sareng pin wates sumbu z kusabab kurangna pin anu sayogi. Siklus homing kedah bumi sumbu z sareng sumbu kloning dina siklus anu béda, anu parantos janten konfigurasi standar.

Fitur sumbu ganda jalan ku cara kloning kaluaran hambalan sumbu onto pasangan sejen tina hambalan jeung pin arah. Pulsa léngkah sareng arah motor kloning tiasa diatur sacara mandiri tina motor sumbu utama. Tapi pikeun ngahemat lampu kilat sareng mémori anu berharga, fitur sumbu ganda ieu kedah ngabagi setélan anu sami (step / mm, speed max, akselerasi) salaku motor indungna. Ieu NOT fitur pikeun sumbu kaopat bebas. Ukur klon motor.

PERHATOSAN: Pastikeun pikeun nguji arah motor sumbu ganda anjeun! Éta kedah disetél pikeun mindahkeun arah anu sami sateuacan ngajalankeun siklus homing munggaran anjeun atanapi gerak anu panjang! Motor anu gerak dina arah anu sabalikna tiasa nyababkeun karusakan anu serius pikeun mesin anjeun! Anggo fitur sumbu ganda ieu dina résiko anjeun nyalira.

CATETAN: fitur ieu merlukeun kurang leuwih 400 bait flash. Konfigurasi tangtu bisa kaluar tina lampu kilat pikeun pas dina Arduino 328p / Uno. Ngan sumbu X sareng Y anu dirojong. spindle variabel / modeu laser IS dirojong, tapi ngan pikeun hiji pilihan config. Inti XY, pin arah spindle, sareng coolant halimun M7 ditumpurkeun / henteu didukung.

Pikeun nyegah siklus homing ti racking sumbu dual, nalika hiji wates micu saméméh séjén alatan gagalna switch atawa noise, siklus homing otomatis abort lamun switch wates motor kadua urang teu micu dina tilu parameter jarak ditetepkeun di handap. Persentase panjang sumbu bakal otomatis ngitung jarak gagal salaku persentage tina perjalanan max sumbu non-dual séjén, nyaéta lamun pilih sumbu ganda X_AXIS dina 5.0%, mangka jarak gagal bakal diitung salaku 5.0% tina sumbu-y max perjalanan. Jarak gagal max sareng mnt mangrupikeun wates sabaraha jauh atanapi sakedik jarak gagal anu valid.

#define DUAL_AXIS_HOMING_FAIL_AXIS_LENGTH_PERCENT 5.0 // Ngambang (persen)
#define DUAL_AXIS_HOMING_FAIL_DISTANCE_MAX 25.0 // Ngambang (mm)
#define DUAL_AXIS_HOMING_FAIL_DISTANCE_MIN 2.5 // Ngambang (mm)

Catetan pikeun I2C Port

Analog 4 (A4) jeung Analog 5 (A5) dipaké pikeun port I2C dina Arduino Uno atanapi 328p. Ieu ngandung harti yén salami anjeun nganggo pungsi usik standar, coolant halimun, sumbu ganda, atanapi lampu diagnostik LED ALARM_STATE khusus, ngagunakeun I2C moal mungkin. Komunikasi sareng Arduino anu sanés pikeun ningkatkeun fungsionalitas kedah ngalangkungan sambungan séri dina D0 sareng D1.

Ngamimitian (Supir Stepper)

Mimiti, pikeun nyambungkeun motor stepper anjeun ka Grbl, anjeun peryogi sababaraha driver motor stepper pikeun ngawasa steppers sareng nyambungkeun input supir anjeun ka pin controller Arduino. Aya sababaraha panggerak anu tiasa ngalakukeun ieu, sayogi salaku tos siap diwangun, sawaréh tos diwangun, atanapi lengkep DIY. Supir stepper kedah ngabagi stepper aktipkeun pin (D8) ka pin Aktipkeun masing-masing, sedengkeun nu arah sareng léngkah pin pulsa (D2-D7) bakal perlu disambungkeun ka pin masing-masing dina drivers. Ngan pastikeun yén sakabéh drivers anjeun sarta Arduino babagi hiji taneuh umum (béntang grounded kalawan kakuatan supir motor anjeun). Ieu ngeunaan sadayana anu anjeun peryogikeun pikeun ngamimitian.

Homing & wates switch

Saatos éta, nalika anjeun mutuskeun yén anjeun siap atanapi hoyong pikeun ngaktipkeun homing jeung / atawa wates teuas, Anjeun bakal kedah nyambungkeun a switch wates normal-buka ka unggal pin wates (D9, D10, jeung D12). Homing jeung wates teuas ngagunakeun switch sarua. Pin wates ieu parantos dicekel luhur kalayan résistor pull-up internal, janten anu anjeun kedah laksanakeun nyaéta kabel kana taneuh. Janten nalika anjeun nutup saklar, saklar bakal narik pin wates ka taneuh. Upami anjeun hoyong gaduh saklar wates teuas dina duanana tungtung perjalanan hiji sumbu, ngan kawat dua saklar wates dina paralel ka pin wates sumbu jeung taneuh. Pastikeun anjeun gaduh saklar dipasang sateuacan nyobian ngalakukeun siklus homing, sarta pastikeun Anjeun latihan métode wiring alus pikeun ngaleutikan noise listrik éksternal dina pin input.

Prakték wiring anu saé tiasa kalebet nganggo kabel anu dilindungan atanapi clamp-on cores kabel ferrite, sarta ngagunakeun sababaraha kapasitor 0.1uF sajajar jeung saklar wates pikeun debouncing / nyaring noise. Ngajaga kawat motor jauh ti kawat switch wates ogé bisa jadi mangrupakeun ide nu sae.

Kasebut nyaéta dimungkinkeun pikeun ngonpigurasikeun GRBL pikeun ngagunakeun saklar wates anu ditutup sacara normal upami anjeun hoyong. Sababaraha ngarasa yén switch wates biasana ditutup bisa mantuan pikeun ngurangan kacilakaan catastrophic dina acara gagalna switch wates. Seueur pangguna ngaleungitkeun ngagunakeun saklar wates naon waé sareng gantina milih wates parangkat lunak.

Tombol kontrol

Dina Grbl v0.8 sarta engké, aya pin-kaluar tina mimiti siklus, feed ditahan, sarta reset paréntah runtime, sangkan anjeun tiasa gaduh tombol kontrol fisik dina mesin Anjeun. Sapertos pin wates, pin ieu dicekel luhur kalayan résistor pull-up internal, janten anu anjeun kedah laksanakeun nyaéta nyambungkeun saklar anu biasana dibuka ka unggal pin sareng ka taneuh. Sakali deui pastikeun anjeun ngalaksanakeun métode wiring alus pikeun ngaleutikan noise listrik éksternal dina pin input.

Spindle jeung Coolant Pins

Upami Anjeun gaduh kahayang atawa butuh spindle (D13) atawa kontrol coolant (A3 & A4) , Grbl bakal toggle pin kaluaran ieu luhur atawa low, gumantung kana paréntah G-kode nu dikirim ka Grbl. Kalawan v0.9 + sarta variabel spindle PWM diaktipkeun, pin D11 bakal kaluaran sauntuyan voltages ti 0V mun 5V gumantung speed spindle paréntah G-kode. 0V nunjukkeun spindle off dina hal ieu. Kusabab pin ieu sadayana aplikasi gumantung kana kumaha aranjeunna dianggo, kami bakal ngantepkeun anjeun pikeun nangtukeun kumaha ngadalikeun sareng nganggo ieu pikeun mesin anjeun. Anjeun oge bisa hack spindle jeung sumber kontrol coolant files pikeun gampang ngarobah cara gawéna lajeng compile sarta unggah Grbl Anjeun dirobah ngaliwatan Arduino IDE.

Lampu LED diagnostik

Mesin CNC komérsial sering gaduh sahenteuna hiji lantera LED diagnostik upami aya kacilakaan mesin atanapi kode alarem. Pikeun anu anyar dina mesin GRBL sareng DIY CNC, fitur ieu mangpaat pisan pikeun terang nalika ALARM_STATE parantos kajantenan (sapertos gagalna mesin kalayan homing sareng saklar wates diaktipkeun).

GRBL sacara standar teu gaduh lampu LED diagnostik. Ieu kusabab Ardunio UNO sareng chip 328p gaduh rohangan pamrograman terbatas sareng ampir sadayana rohangan ayeuna dianggo (sanaos henteu sadayana!). Henteu unggal fitur anu dipikahoyong tiasa dilaksanakeun dina alat mémori anu lemah sapertos kitu kadang pangorbanan kedah dilakukeun.

Salaku tambahan, sadaya palabuhan I / O anu sayogi ayeuna dianggo sareng sahenteuna hiji pin I / O diperyogikeun pikeun lampu sapertos kitu. Untungna fungsionalitas ieu bisa gampang ditambahkeun ku Hacking kode GRBL C sarta masih aya ngeunaan 3% memori sadia dina chip 328p!

Seueur mesin ayeuna henteu nganggo fitur MIST COOLANT pilihan dina Analog 4, ku kituna urang tiasa kalayan gampang ngartikeun deui pin ieu pikeun dianggo. Métode alternatif tiasa janten kode lampu LED sapertos kitu dina Arduino éksternal anu teras ngagaduhan sadaya palabuhan I / O anu sayogi dimana hiji tiasa nyambungkeun saloba lampu LED / Buzzers sakumaha anu dipikahoyong sareng tiasa komunikasi ngaliwatan Serial atanapi I2C.

Pikeun hack kodeu sumber GRBL pikeun ngagunakeun ALARM LED dina CNDY Shield punten lakukeun ieu:

Lengkah 1: Dina Linux atanapi Macintosh buka pangropéa téksu (dina Windows nganggo Notepad++) sareng édit file cpu_map.h file:

Robah ieu:

// Nangtukeun banjir jeung halimun coolant ngaktipkeun pin kaluaran.
#define COOLANT_FLOOD_DDR DDRC
#define COOLANT_FLOOD_PORT PORTC
#define COOLANT_FLOOD_BIT 3 // Pin Analog Uno 3
#define COOLANT_MIST_DDR DDRC
#definisikeun COOLANT_MIST_PORT PORTC
#define COOLANT_MIST_BIT 4 // Pin Analog Uno 4

Pikeun ieu:

// Nangtukeun banjir jeung halimun coolant ngaktipkeun pin kaluaran.
#define COOLANT_FLOOD_DDR DDRC
#define COOLANT_FLOOD_PORT PORTC
#define COOLANT_FLOOD_BIT 3 // Pin Analog Uno 3
//#define COOLANT_MIST_DDR DDRC
//#define COOLANT_MIST_PORT PORTC
//#define COOLANT_MIST_BIT 4 // Pin Analog Uno 4

/////////////////

// Nangtukeun ALARM LED OUTPUT
#define SIGNAL_LIGHT_DDR DDRC
#definisikeun SIGNAL_LIGHT_PORT PORTC
#define SIGNAL_LIGHT_BIT 4 // Pin Analog Uno 4

// #define signal_light(on) (SIGNAL_LIGHT_DDR |= (1<

// #define signal_light_init() signal_light(off)

#define signal_light_init signal_light_off

#define signal_light_on (SIGNAL_LIGHT_DDR |= SIGNAL_LIGHT_PORT |= (1<

#define signal_light_off (SIGNAL_LIGHT_DDR |= SIGNAL_LIGHT_PORT &= ~(1<

/////////////////

Lengkah 2: Dina Linux atanapi Macintosh buka pangropéa téksu (dina Windows nganggo Notepad++) sareng édit file protokol.c file:

Robah ieu:

// Executes paréntah ngajalankeun-waktos, lamun diperlukeun. Pungsi ieu utamana beroperasi salaku kaayaan Grbl urang
// mesin sareng ngadalikeun rupa-rupa fitur real-time anu ditawarkeun Grbl.
// CATETAN: Ulah ngarobah ieu iwal mun nyaho kahayang anjeun lakukeun! void protocol_exec_rt_system()
{

uint8_t rt_exec; // Variabel temp ulah nelepon volatile sababaraha kali.
rt_exec = sys_rt_exec_alarm; // Nyalin volatile sys_rt_exec_alarm.
lamun (rt_exec) {// Lebetkeun ngan lamun sagala bit bandéra bener

// Sistem alarem. Sagalana geus shutdown ku hal anu geus Isro parah salah. Laporan
// sumber kasalahan ka pamaké. Lamun kritis, Grbl disables ku ngasupkeun hiji taya wates
// loop dugi sistem reset / abort.

sys.state = STATE_ALARM; // Atur kaayaan alarm sistem

report_alarm_message(rt_exec);

Pikeun ieu:

// Executes paréntah ngajalankeun-waktos, lamun diperlukeun. Pungsi ieu utamana beroperasi salaku kaayaan Grbl urang
// mesin sareng ngadalikeun rupa-rupa fitur real-time anu ditawarkeun Grbl.
// CATETAN: Ulah ngarobah ieu iwal mun nyaho kahayang anjeun lakukeun!
void protocol_exec_rt_system()
{

uint8_t rt_exec; // Variabel temp ulah nelepon volatile sababaraha kali.
rt_exec = sys_rt_exec_alarm; // Nyalin volatile sys_rt_exec_alarm.

/////////////////////

// Nangtukeun ALARM LED OUTPUT
signal_light_init; //init LED dina kaayaan pareum
lamun (sys.state == STATE_ALARM) {signal_light_on;}
lain lamun (sys.state! = STATE_ALARM) {signal_light_off;}
// lain {signal_light_off;}

/////////////////////

lamun (rt_exec) {// Lebetkeun ngan lamun sagala bit bandéra bener
// Sistem alarem. Sagalana geus shutdown ku hal anu geus Isro parah salah. Laporan
// sumber kasalahan ka pamaké. Lamun kritis, Grbl disables ku ngasupkeun hiji taya wates
// loop dugi sistem reset / abort.
sys.state = STATE_ALARM; // Atur kaayaan alarm sistem
report_alarm_message(rt_exec);

Anu kami lakukeun nyaéta ngarobih fungsi anu ditetepkeun tina Analog 4 (A4) tina janten coolant halimun pilihan janten lampu LED kami. Teras we wrote kode dina C pikeun bisa nulis (PC4) Port C 4 (Analog4) tinggi atawa low gumantung kana naha ieu ngawartoskeun on atawa mareuman. Teras we wrote basajan lamun-sejenna pernyataan pikeun pariksa mesin kaayaan GRBL sarta ngabejaan urang naha urang aya dina ALARM_STATE aktip, jeung lamun urang ngahurungkeun LED.

Lamun sagalana mana ogé urang lajeng bisa compile dina Arduino IDE, unggah kode, sarta kami ayeuna bakal boga ALARM_STATE LED lampu diagnostik digawé! Urang optionally bisa nyambungkeun hiji éksternal LED Beacon Lampu pikeun nempatkeun luhur luhureun mesin nu bakal katingali sakuliah kamar.

Masalah anu mungkin

Ideally parobahan ieu bakal dilakukeun ku kode sumber grbl panganyarna sadia tur dijieun saméméh nambahkeun grbl "perpustakaan" kana Arduino IDE. Upami anjeun parantos ngagaduhan grbl dina folder perpustakaan Arduino anjeun, anjeun kedah ngotéktak sacara manual sareng ngahapus folder grbl atanapi ngédit files dina perpustakaan arduino. Dina mesin linux kuring "perpustakaan" kapanggih dina: /home/andrew/Arduino/libraries/grbl. Pelepasan grbl panganyarna tiasa dipendakan di https://github.com/gnea/grbl/releases. Hiji tiasa ngaunduh pos anu sayogi file sarta folder ngaranna grbl-1.1h.20190825 bisa kapanggih di jero. Di jero polder ieu polder anu namina grbl bakal janten anu anjeun hoyong tambahkeun kana Arduino IDE salaku "perpustakaan" "zip. file”. Pastikeun pikeun nyieun parobahan anjeun kana cpu_map.h jeung protocol.c files sateuacan Anjeun nambahkeun kana Arduino IDE. Upami teu kitu, anjeun bakal kedah ngédit éta files dina perpustakaan anjeun / folder grbl. Aya bug anu dipikanyaho pikeun fitur sumbu ganda dina pos grbl-1.1h file, éta dibereskeun lamun gantina ngundeur cabang grbl utama gantina. https://github.com/gnea/grbl

Pembaruan sareng kasalahan CNDY Shield

* V1.1: boga kasalahan silkscreen leutik dimana Spindle PWM na Spindle Arah anu swapped. Ieu geus dilereskeun dina V1.2.

V1.2 euweuh kapasitor réduksi noise pilihan dina garis 5v, sarta boga anyar dina garis tombol input séjén. V1.2 boga hiji LED pilihan kabel sajajar jeung Spindle PWM. Ieu bisa jadi mangpaat pikeun setups laser pikeun kaamanan.

Diropéa Aug-28-2021

Émbaran tambahan bisa kapanggih dina RabbitMountainResearch.com.

Dokumén / Sumberdaya

CNDY Shield GRBL CNC Arduino UNO [pdf] Pituduh pamaké
GRBL CNC, Arduino UNO

Rujukan

Ninggalkeun komentar

alamat surélék anjeun moal diterbitkeun. Widang diperlukeun ditandaan *