Sari la conținut
ELFORUM - Forumul electronistilor

controller cnc cu microcontroler pic, a mai facut cineva?


coco243

Postări Recomandate

  • Răspunsuri 34
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • coco243

    15

  • mars01

    9

  • Liviu M

    8

  • Mircea

    2

Top autori în acest subiect

Salut,

 

Te poti inspira de aici: https://github.com/grbl/grbl/wiki

Este pentru Arduino dar nu te impiedica nimeni sa portezi codul pentru PIC sau sa te inspiri pentru un proiect de conceptie personala.

 

Iar daca intentia este de a realiza un controller CNC in conjunctie cu MACH3 atunci va trebui sa studiezi SDK-ul oferit de cei de la Newfangled Solutions http://www.machsupport.com/software/downloads-updates/.

Link spre comentariu

Mersi de raspuns,

 

Asa la prima vedere solutia cu MACH 3 este mai profi. Ma insel?

Plus ca impresia mea este ca programarea PIC-urilor este mai sanatoasa decat cea cu Arduino. Sincer am programt PIC-uri la nivel de activare de iesiri atat in cod

ASM cat si in cod C, oricum doar la nivel Basic, dar oricum sunt multumit de acest pas. Pt Arduino poate ca nu trebuie programator ( momentan nici nu sunt interesat) am inteles

ca te conectezi direct prin USB, dar mi se pare mai sanatos sa programez in C sau ASM decat sa Compilez nu stiu ce alt cod.

 

Oricum multumesc foarta mult pentru resurse, continui sa le citesc sa imi fac o parere mai realista.

Editat de coco243
Link spre comentariu

Arduino este doar un bootloader, o placa de dezvoltare bazata pe controlere Atmel si un set de abstractizari software / biblioteci de functii realizate in C si/sau C++ asa ca nu e mare tragedie de portat codul Arduino in cod C pentru PIC.

Link spre comentariu

Se poate pune bootloader si pe PIC-uri, caci multe au USB.Eu folosesc o aplicatie Mikroe pentru PIC familia 18. Pot posta daca te intereseaza. E util bootloaderul cand lucrezi SMT si faci multe teste si programari. Dar oricum tot 2 pini ocupa, precum un ICSP, ignorand MCLR-ul.

Editat de thunderer
Link spre comentariu

Momentan, citesc ghidul de instalare si utilizare de la mach3, ca sa mi fac i idee, apoi o sa ma uit si la varianta de portare de pe arduino ca sa mi fac o idee.Mersi mult de documentatie Mars, macar acum am un punct de plecare.Am sa tin cont si de bootloaderul ala de pic uri thunderer, momentan raman pe varianta de programator.Multumesc pentru informatii.

Link spre comentariu

Am citit despre varianta cu Mach3 si cea cu grbl.

Din ce am inteles varianta 1 foloseste un PC pt a simula un CNC, iar la varianta 2 nu este necesar acest lucru.

 

Momentan mi se pare mai potrivit sa tranfer G-codul direct in microcontroller, ca sa nu trebuiasca cu calculator dedicat pentru simulare de CNC.

 

Va rog frumos asa cum m-ati ajutat cu un punct de plecare la inceput, ajutati-ma si cu un punct de plecare pentru portarea codului grbl pe un PIC.

 

 

Multumesc,

Link spre comentariu

Mai intai alegi un uC PIC care sa fie comparabil dpdv hardware cu un ATmega328. Adica sa aiba cel putin acelasi numar de pini IO, timere, frecventa reala de functioanre (MIPS).

Dupa care te apuci si iei la periat toate fisierele care sunt in proiect. Acolo unde identifici functii specifice Arduino, le inlocuiesti cu functii echivalente definite de tine.

Unde este cazul faci adaptari dar respectand logica programului.

 

Portarea din Arduino (un mic de C si C++) in C pentru PIC a proiectului GRBL presupune:

- stii sa programezi Arduino (esti familiar cu functiile Arduino cat si cu conceptele de baza din C++ si/sau C)

- stii sa programezi un controller PIC

- cunosti foarte bine proiectul GRBL 

 

Spor la studiu.

Link spre comentariu

in fisierul grbl.h se defineste    "#include <avr/io.h>" , de unde descarc avr/io.h? ca pe site-ul de la grbl nu il gasesc.

Il are fiecare tip de procesor de la atmel?

Mersi.

Editat de coco243
Link spre comentariu

Din cate am inteles  "#iclude <avr/io.h>" este echivalentul #include<pxxfxxx>. Ma insel?

 

dar hederul pxxfxxx.h de la microchip facand o comparatie le echivaleaza si pe astea? :

<avr/pgmspace.h>

<avr/interrupt.h>

<avr/wdt.h>

 

Mersi

Editat de coco243
Link spre comentariu

O sa incerc, dar stau si ma gandesc de ce nu a mai facut cineva asta...

Nu a facut nimeni asta pentru ca rezultatul va fi un semi esec ... Nu am testat GRBL dar sunt aproape sigur ca e bun doar sa misti niste motoare nimic mai mult.

Sunt curios cate CNC-uri ai costruit ( sau folosit)  pana acum si cu ce software/ hardware.

Link spre comentariu

De construit nu am construit niciunul.

De folosit am folosit un CNC FANUC (industrial).

Ce sa spun, mi-ar placea mult sa fiu in stare sa fac electronica pentru un CNC. Adica un CNC caruia sa nu-i trebuiasca un calculator gazda sa-l simuleze.

Desi am tot cautat si tot cautat pe net nu am gasit inca pe cineva care sa fi construit un CNC cu pic-uri si care sa explice cum l-a facut si la muritori. Gasesc doar franturi de informatii dar nimic cap-coada finalizat. Sunt  dezamagit.

Sunt constient ca dispun de cunostinte minime in materie de uControlere, comunicatii, trnasformare G-code in miscari catre driverele motoarelor, C dar sunt dispus sa

muncesc pentru a reusi, sper sa fiu capabil sa o duc la capat si va rog sa ma ajutati daca puteti sa merg pana la capat. ( Sper sa nu alerg dupa o himera )

Ma gandesc totusi ca poate se poate realiza un tranfer G-code in miscari catre servomotoare care sa formeze pana la urma un CNC. Sper sa gasesc timpul, inspiratia

si ajutorul persoanelor potrivite pentru a merge mai departe si pana la urma sa fie posibil ce vreau eu sa fac, caci poate vreau si eu ceva imposibil de realizat

in regim DIY.

 

Deci astept in continuare ajutorul si indrumarile voastre.

Editat de coco243
Link spre comentariu

Din cate am inteles  "#iclude <avr/io.h>" este echivalentul #include<pxxfxxx>. Ma insel?

 

dar hederul pxxfxxx.h de la microchip facand o comparatie le echivaleaza si pe astea? :

<avr/pgmspace.h>

<avr/interrupt.h>

<avr/wdt.h>

 

Mersi

 

Portarea codului o faci trecand prin fiecare fisier sursa (.c), linie cu linie. Atunci cand dai de o functie care nu este definita in fisierele sursa, este clar ca trebuie sa cauti in biblioteci cum sunt acelea pe care le-ai postat.

In acel moment ai doua variante: ori cauti o functie echivalenta oferita de compilatorul C pentru PIC folosit (daca exista) ori cel mai probabil, vei crea singurel functia respectiva.

 

Concret insa, bibliotecile de functii la care faci referinta contin functii:

wdt.h - functii pentru apelarea modulului WatchDog

interrupt.h - functii pentru lucrul cu intreruperi

pgmspace.h - functii AVR pentru stocare date in memori flash a controllerului.

 

Functiile care tin de wdt.h, interrupt.h sunt usor de substituit cu unele echivalente pentru PIC dar pentru cele din pgmspace.h probabil ca va trebui sa gasesti o solutie inlocuitoare. Va trebui sa te informezi daca nu a facut cineva o biblioteca de scris in memoria flash a controllerului. Parca uC-urile din seria 18F si unele din seria 16F permit scrierea flash-ului la runtime si mikroC parca are unele functii pentru aceasta (biblioteca FLASH) dar probabil ca nu se pot pur si simplu inlocui ci trebuie facute unele adaptari.

 

Dar daca tot se face munca aceasta de portare probabil ca mai bine ar fi sa alegi un PIC32 (uC de la Microchip pe 32 de biti) care ofera mult mai multa performanta comparativ cu uC-urile pe 8bit (lucru de care ai nevoie cand este vorba de generarea de pulsuri pentru controlul unor motoare CNC). Si inca si mai bine ar fi sa introduci un CPLD / FPGA in proiect pentru a benficia de pe urma paralelismului in executie.

Editat de mars01
Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări