Sonda touch per CNC

Ciao a tutti.
Siccome sto avendo un problema con una sonda Z-touch autocostruita per la mia CNC (pure questa autocostruita), sto pensando se possa valerne la pena utilizzare arduino per risolvere il problema.
Situazione:
Per azzerare l'asse Z uso semplicemente una piattina di alluminio di spessore noto e un morsetto a coccodrillo sulla punta: quando la punta tocca la piattina, chiude il circuito e quello è il punto zero.
Ma ho anche la necessità di testare la superficie di lavoro (essendo autocostruita la CNC non è ortogonale al massimo) per registrare le variazioni di altezza del piano e adattare il gcode.
Per farlo utilizzo una sonda autocostruita: semplicemente un pin di alluminio (un rivetto) collegato ad un microswitch: quando la punta tocca la superficie, chiude lo switch e registra la coordinata. L'operazione va fatta tot volte (più punti più precisione).
Purtoppo la sonda mi restituisce dei valori non coerenti (ad es. alle coordinate 0;0 se pure Z fosse azzerato la sonda registra ad es un +0.7 invece che 0.
Probabilmente (sto facendo delle verifiche) il problema è dovuto alla velocità di discesa della sonda (circa 1mm/sec), mentre nella procedura della piattina scende ad una velocità di 0.05 mm/sec. Ritengo che a causa della velocità la trasmissione del segnale non sia così immediata (anche se la cosa mi suona male) e di conseguenza la misura rilevata è sballata.
Però so anche che finchè testo una superficie di 5cmq con 4 punti (griglia 2x2) andare ad una velocità di 0.05 mm/sec si può fare, ma se già la superficie diventa una 10 x 10 cm e i punti di rilevamento 25 (griglia 5x5) viaggiare a 0.05 mm/sec diventa un suicidio.....
Pertanto la mia domanda è:
Utilizzare arduino per rilevare la chiusura del circuito e quindi far mandare da arduino il segnale alla scheda di controllo potrebbe risolvere il problema della velocità?

Andrea

Secondo me il problema è proprio nella sonda... non credo che un sistema del genere possa avere una ripetibilità della misura "utile" e indipendente dalle condizioni a contorno.
In particolare il microswitch: non sai mai esattamente quando chiude oltre ad avere pure il rimbalzo a creare problemi.

Di solito i sensori a contatto di precisione sono costruiti in modo diverso: ad esempio io ne ho un paio (industriali) dove c'è una microsfera tenuta in posizione da una molla che chiude il contatto. Appena il sensore tocca la superficie da tastare la sfera si scosta quel tanto che basta per aprire il contatto.. Il sensore ha una ripetibilità di 1 micrometro (0,001mm).

Non dovrebbe essere troppo complesso riprodurre in fai-da-te un sistema del genere

Temo che non risolversi molto

Io ipotizzo che la causa della differenza sia l'errore di inseguimento del sistema azionamento-motore-cinematismi

Errore che a base velocità è trascurabile, ma già alla velocità di 1mm/s diventa significativo

Se fosse così devi cambiare approccio

Arrivi a velocità alte, un paio di mm prima ti fermi e vai a toccare a bassa velocità

Oppure arrivi veloce tocchi, ti ritrae e ricerchi il tocco lentamente questo secondo tocco sarà quello vero

Io non programmo CNC, non so se quello che dico è possibile, ma temo sia l'unica strada

Quando ero nella robotica (non a Madrid, per chi ricorda, ma a Turbigo) ho avuto spesso problemi simili, con assi pesanti e robot "anzianotti"

EDIT

oltre naturalmente alla giusta affermazione di cotestant

Standardoil:
Oppure arrivi veloce tocchi, ti ritrae e ricerchi il tocco lentamente questo secondo tocco sarà quello vero

Concordo, anche secondo me questa è la procedura migliore per azzerare un asse o l'offset di un tool.
Lo script GCODE non è nemmeno troppo complesso da realizzare.

Si anche io ipotizzavo un problema del genere, ma meglio avere conferme.
Anche sul tipo di sonda che suggerisce cotestant: ero tentato di realizzarne una di questo tipo (del resto se in ambito professionale le fanno così un motivo c'è); però sono del tipo NC, mentre invece adesso io gestisco una del tipo NO.
Preferirei mantenere il tipo NO per alcuni motivi di uso personale:

  • quando azzero la punta sul materiale, come detto uso una lamina, e quindi simulo la chiusura di un contatto
  • Tra gli usi della CNC, dovrei dedicarla anche a incidere PCB, nel qual caso il test di superficie lo farei usando la punta come sonda e la basetta come piattina, quindi anche in questo caso simulerei la chiusura di un contatto

Proverò (se la mia cultura me lo consente) ad orientarmi verso il Gcode con doppio tocco

jocman:
però sono del tipo NC

Proverò (se la mia cultura me lo consente) ad orientarmi verso il Gcode con doppio tocco

I fine corsa in linea generale è sempre meglio usarli in configurazione NC perché offrono un livello di sicurezza migliore.
Se il microswitch o l’ingresso del microcontrollore si danneggia e non hai il livello di segnale atteso hai una condizione di errore PRIMA di avviare il movimento e puoi evitare di fare danni o più semplicemente ti risparmi qualche utensile.
Se hai bisogno di una mano con il GCODE chiedi pure. Che controller usa il CNC?

Infatti i miei fine corsa sono settati come NC proprio per evitare incidenti.
Avrei voluto fare la stessa cosa per la sonda, ma come detto per l'uso che ne faccio al momento il NO mi sembra la soluzione unica.
In verità ho provato a realizzare una sonda come quella professionale che citavi, solo invertendo la filosofia e facendola NO.
Mi spiace che non ho una foto sotto mano....in pratica utilizzavo sempre un rivetto come pin, a cui ho saldato un filo, e utilizzo una molla di una penna come resistenza alla pressione, infilata sul colletto del rivetto (cioè sulla parte che si deforma quando si fissa il rivetto).
In questo modo, il bordo del rivetto impedisce alla molla di espandersi.
Quando la sonda tocca il materiale, il rivetto sale comprimendo la molla, finchè non tocca il secondo contatto posto circa 3 mm più in alto e chiudendo il circuito.
In teoria dovrebbe essere la versione NO della sonda che dici, ma in pratica ottengo lo stesso problema di quella col microswitch (i valori sballati)....

Il controller che uso è una Mesa 7i76E, con dei servo ibridi.

Circa il Gcode, apprezzerei volentieri un aiuto, non sono molto ferrato in materia. La CNC la uso per i miei hobby, ma se devo dire che sono addentro quel mondo, direi una bugia.

Andrea

Finecorsa commerciali precisi mi vengono in mente gli Omron, quelli senza leva ma solo con il perno, Z15G qualcosa, alcuni hanno una corsa di 0.4mm fra aperto e chiuso, ed un'ottima ripetitivita' (alcune CNC li usano come finecorsa) ... ma non puoi usare la chiusura del contatto anche per azzerare rispetto al piano di lavoro ? ... oppure non e' di metallo ?

Sempre la Omron fa interruttori a sfera, ma credo costicchino un po ...

Non conosco il prodotto ma da quanto ho visto online sembrerebbe essere solo una scheda di interfaccia tra driver e "qualcosa". La usi con un PC, che sò tipo con LinuxCNC o Mach3 o simili?
Perché in tal caso, sono quasi sicuro che trovi senza problema qualche script già pronto all'uso.

Stiamo andando un bel po' Off Topic.... adesso Guglielmo ci sgriderà :smiley:

Si stiamo andando off topic....

Brevemente, rispondo:

@Etemenanki
Purtroppo il piano della CNC è si di alluminio, ma i materiali che uso sono legno e plexy. L'unica occasione che ho di usare il piano per chiudere il contatto è quando lavoro con i PCB.

@Cotestatnt
Si la Mesa mi fa da interfaccia tra macchina e PC (con LinuxCNC come software)

Comunque sto pensando una sonda DIY del tipo suggerito inizialmente magari con invertitore di segnale (con un transistor e qualche resistenza ci dovrei arrivare credo....).
Ci lavorerò un pò su.

Per non rischiare il cazziatone da off topic, lo chiuderei qui.

Grazie a tutti per i suggerimenti e il supporto.

Andrea

cotestatnt:
Stiamo andando un bel po' Off Topic.... adesso Guglielmo ci sgriderà :smiley:

... sono qui che osservo ... :smiling_imp:

Guglielmo

Come consigliava Standaroil, arrivi, riveli, torni indietro di uno o due mm. e poi tocchi di nuovo a bassissima velocità.
I centri di lavoro di un ventennio fa facevano quasi tutti cosi.