Sostituire porta parallela con Arduino UNO

Salve amici!
Sto cercando disperatamente un tutorial che spieghi come interfacciare un Pc linux con Emc2 a una scheda tre assi con Tb 6560 (si la solita..) senza usare la porta parallela in quanto temo che il mio vecchio PC stia per "zompare"..
Quelli nuovi non hanno più la lpt1..
Sono certo che insieme troveremo la soluzione per configurare !

Hai le specifiche del protocollo (come e quali dati vengono spediti alla) dell Tb 6560? Puoi dirottare i dati che escono sulla paralella alla usb?
Ciao Uwe

Qui dovresti trovare tutto quello che ti serve.

biggsman:
Sono certo che insieme troveremo la soluzione per configurare !

Primo sintomo della sindrome di Gundam... :open_mouth:

Grazie amici!

Caro Astrobeed:
avevo già scaricato e provato tutti i file zip senza risultati..
penso che siano da usare con Leonardo ed io possiedo un Uno e non so come modificare vista la grande differenza di pins

Caro uwefwed:
vorrei uasre Arduino al posto della lpt1 poichè sui computer più moderni non c'è più

Caro leo 72

Questa non l' ho capita anche se era il mio cartonegiapponese preferito

Primo sintomo della sindrome di Gundam...

Dopo un paio di settimane di ricerche infruttuose faccio appello all' unità di intenti!

Quindi vorrei:

Pc linux con ubuntu 10.04 e Emc2
porta USB
Arduino
Scheda cinese
Cnc Mill

il problema è che non so cosa succede nella cartella my-mill fra .ini .ino python e hal..
che confusione!

biggsman:
Caro leo 72

Questa non l' ho capita anche se era il mio cartonegiapponese preferito

Primo sintomo della sindrome di Gundam...

La sindrome di Gundam è un modo goliardico per dire che una persona si cimenta in un progetto al di là delle proprie possibilità confidando, anzi facendo affidamento, sull'aiuto degli altri utenti del forum :wink:

A parte le battute, ho trovato quest'altro progetto:

Sotto al video c'è un link ad un sito. Si vede l'uso di un Arduino 2009, quindi dovrebbe essere possibile (se sono disponibili sorgenti e schemi) di replicare tutto sulla Uno.

Comunque fai una ricerca su Google, di materiale ne ho trovato un pò, ma siccome non so come operi questo software, non ho indagato.
Altri link:

... oppure compri una scheda con la parallela e risolvi...

paulus1969:
... oppure compri una scheda con la parallela e risolvi...

Che poi costa anche di meno di un Arduino.
Ciao Uwe

cioè?

biggsman:
cioè?

Nel primo post hai scritto: "Quelli nuovi non hanno più la lpt1"
Ma nessuno vieta di aggiungerla comprando una scheda parallela, che costa pochissimo.
Logicamente devi avere un case con lo spazio, non puoi farlo su un portatile.

hai ragione.. mi son spiegato male!
Si può fare. il mio intento è quello di usare un netbook visto che non servono pc potentissimi..

Allora potresti usare un USB - porta parallela.
Attenzione però: alcuni emulano solo una parte e vanno bene per le stampanti.
Almeno così mi hanno detto, mai provato.

infatti ne ho già comprate due per poi scoprire che no possono funzionare in quanto non hanno un vero e proprio indirizzo..
Ma secondo voi è possibile usare Arduino a questo punto?

biggsman:
infatti ne ho già comprate due per poi scoprire che no possono funzionare in quanto non hanno un vero e proprio indirizzo..
Ma secondo voi è possibile usare Arduino a questo punto?

Come giá detto non é un problema attaccare Arduino all'USB e fargli settare 12 uscite. Il problema é far dirottare i dati del programma alla COM dove é attacato Arduino e sapere quali pin devono essere messi H o L.
Comunque se dici che gli adattatori USB-paralella non funzionano perché non hanno " un vero e proprio indirizzo" Ti dico che con Arduino non sará diverso.
Ciao Uwe

infatti la cosa difficile è configurare il file .ini, .hal e .py nella cartella my-mill, ma ci sto riuscendo.. :astonished:

Non vedo l'ora di leggere un tuo futuro post dove dici di esserci riuscito!

ok fine settimana scriverà i passaggi..

Non posso insegnare come ma... vi dico come ho fatto:

Ho installato LinuxCNC (dicono che funziona anche la versione simulatore ma non l' ho provata..)
Penso che vada bene anche se installata su chiavetta sebbene sia un po' lenta a caricare.
Ho scaricato da:

[Url GitHub - dewy721/EMC-2-Arduino: Arduino + LinuxCNC = Your very own FREE high-end CNC controller. Url](http://Url GitHub - dewy721/EMC-2-Arduino: Arduino + LinuxCNC = Your very own FREE high-end CNC controller. Url)

e scompattato "EMC-2-Arduino-master" sul desktop e scelto la versione /downloads/EmcArduino_07b.
Esistono le istruzioni ma installano una macchina che funziona in pollici mentre io preferisco i mm..
Avvio Stepconf e creo una configurazione macchina (lascio spuntato: Crea un collegamento (symlink) etc)) che chiamo Tris (3 assi.. ma funziona ugualmente per Poker, 4 assi!)
Avanti..
Su opzioni Configurazione Avanzata spunto solo "include componente interfaccia utente Halui" (non ricordo perchè ma qualcuno lo consiglia..)
Avanti..
Su "Setup porta parallela" lascio così pochè dopo disabiliterò
Avanti..
Configurare ogni asse secondo le proprie abitudini (velocità dimensioni corsa etc..)
Ora abbiamo la nostra cartella col link sul desktop.
Nella cartella sul dektop trovo un file chiamato 9axis_arduino
apro con gedit o pluma e modifico la riga

PORT = "/dev/ttyACM0"
mettendo la stessa che uso per l' editor di arduino (qui, nel mio caso ho messo appunto ACM0 per Arduino Uno)

salvo e poi lo copio nella cartella /usr/bin/

sudo cp ~/Downloads/EmcArduino_07b/9axis_arduino /usr/bin

e lo rendo avviabile come previsto..

sudo chmod +x /usr/bin/9axis_arduino

copio pure (sovrascrivendo) il file custom.hal nella cartella "Tris" sempre sul desktop

Apro Tris.hal con l' editor e metto un diesis (o cancelletto #) prima di TUTTE le righe che contengono parport e salvo

Installo nella cartella libraries di sketchbook (contenuta nella directori home) la libreria digitalWriteFast (versione safe:
Google Code Archive - Long-term storage for Google Code Project Hosting.) e rinomino tutti digitalWriteFast2 con digitalWriteFast tutti i digitalReadFast2 con digitalReadFast..

A questo punto ho modificato il file EmcArduino_07b.ino:

Trovo e sostituisco stepsPerInch con stepsPermm (ne ho trovati 27..)
e aggiusto a 400 (200 passi a half-step = 400 passi giro perchè i miei motori funzinano così)

definsco a quali pin di step o collegato la scheda (fisicamente)

#define stepPin0 2
#define stepPin1 4
#define stepPin2 6
#define stepPin3 -1
#define stepPin4 -1
#define stepPin5 -1
#define stepPin6 -1
#define stepPin7 -1
#define stepPin8 -1
e la direzione

// dir pins (required)
#define dirPin0 3
#define dirPin1 5
#define dirPin2 7
#define dirPin3 -1
#define dirPin4 -1
#define dirPin5 -1
#define dirPin6 -1
#define dirPin7 -1
#define dirPin8 -1

sicché: asse x comandato da pin 2 (step) e pin 3 (direction)
asse y comandato da pin 4 (step) e pin 5 (direction)
asse x comandato da pin 6 (step) e pin 7 (direction)

qui ho invertito con false l' azione di Y e Z perchè MarkII gira così..

#define idleIndicator 13

// Invert direction of movement for an axis by setting to false.
boolean dirState0=true;
boolean dirState1=false;
boolean dirState2=false;
boolean dirState3=true;
boolean dirState4=true;
boolean dirState5=true;
boolean dirState6=true;
boolean dirState7=true;
boolean dirState8=true;

beh mi pare sia tutto!

Ciao,
Ho letto la guida e ho dato un occhiata, ma non proverò nemmeno ad utilizzarlo con la mia macchina.

Il controllo che hai linkato è privo di ogni tipo di gestione della velocità ,non fa distinzione neanche tra G0 e G1(rapido/lavorazione) e non gestisce in alcun modo l'accelerazione dei motori.
E' un vero peccato, perchè è molto interessante come progetto, ma del tutto inutile per l'utilizzo con macchine di un certo livello.
Forse invece di gestire 900000 assi avrebbero fatto bene ad implementare questo tipo di gestione, ma magari la loro esigenza era diversa.
Dubito anche che con un Arduino uno si possa gestire decentemente quanto sopra esposto(in merito all'accelerazione), magari forse con la 2.
Grazie comunque per aver condiviso quanto hai sperimentato, io nella mia macchina per il momento continuo ad utilizzare la parallela.

Continuo a farlo pure io!
La differenza tra l' utilizzo della parallela e Arduino in termini di spostamenti è quasi simile ma il rumore prodotto è insopportabile!
Adesso che mi ci fai pensare potrebbe essere proprio dovuto alla mancanza di una gestione dell' accellerazione..
Cosa intendi con

Dubito anche che con un Arduino uno si possa gestire decentemente quanto sopra esposto(in merito all'accelerazione), magari forse con la 2.

:astonished: