Robotica e CNC


Consigli per le macchine CNC

Chi avesse bisogno di consigli sui motori da usare, sui componenti meccanici o su come montarli e acquistarli, può rivolgersi a Fabio di Arezzo che negli ultimi anni ha raccolto molta esperienza sulle frese CNC e le macchine per incisioni con i laser.

Nelle prossime immagini si vedono alcune sue realizzazioni. Cliccando le immagini si ingrandiscono e si può notare che sono macchine combinate, cioè che si può montare sia un laser che una fresa.

Cnc machine     CNC machine      CNC with laser

Scrivete a Fabio per consigli, per acquistare insieme componenti o per farvi procurare da lui dei kit di componenti. Oppure potreste anche accordarvi per costruire delle parti o delle macchine complete.

Fabio di Arezzo – Civitella in Val di Chiana (AR) – fabio.cve31@gmail.com


Radar e bracci robotici


Questo è il primo sonar di Mauro Riboni, l’applicazione ThereminoRadar è nata da questo prototipo. Ringraziamo ancora Mauro, per averci coinvolto e per aver insistito, fino a farlo funzionare.
Download del ThereminoRadar qui: /downloads/automation#radar e informazioni sui sensori qui: /hardware/inputs/sensors#usound

– – – – – – –

Mauro Riboni sta anche sperimentando diverse versioni di bracci meccanici. Le sue meccaniche sono studiate e realizzate molto bene. Questa è una versione con servo di grande potenza. Questi servo non sono adatti per scrivere a causa della loro dead band, ma sono ottimi per prendere e sollevare oggetti. I due servo alla base e la costruzione molto robusta, permettono di sollevare oggetti abbastanza pesanti.

– – – – – – –



Uno dei primi prototipi di ThereminoArm. Questa versione usava ancora un Master e uno Slave, perché i primi Master non avevano PIN configurabili. Ora si fa tutto con il solo Master e avanzano anche due PIN. Aggiornamento dell’aprile 2017: il nuovo firmware dei Master, aumenta il numero di PIN da 6 a 12, quindi ora avanzano ben otto PIN per usi generici. Inoltre i nuovi firmware possono pilotare anche i motori stepper.

Si possono quindi costruire bracci robotici molto precisi utilizzando piccoli motori stepper e cinghie dentate. Si consiglia di usare un rapporto di demoltiplicazione molto alto, almeno cinque ma meglio se si riesce ad arrivare a dieci. In questo modo i 200 passi per giro diventeranno 2000 passi per giro e si potrà ottenere una precisione di 0.7 mm con bracci lunghi mezzo metro. Precisione che aumenterà a circa un decimo di mm e oltre utilizzando i microstep.

– – – – – – –

Un Robot non è necessariamente un braccio articolato. Con un po’ di fantasia, si possono comporre macchine semplicissime ed efficaci.

Un robot “didattico” costruito dagli allievi dell’istituto I.C. di Corniglio

La motivazione proposta dell’istituto I.C. di Corniglio è: “…ricongiungere il mondo digitale col mondo reale e concreto” ed è proprio per questo che è nato il sistema Theremino. Un caloroso grazie per le vostre ricerche!


Sketch e Firmware

Molti dopo aver imparato il linguaggio sketch di Arduino, ci hanno scritto che vorrebbero usarlo, anche per Theremino. Purtroppo il linguaggio sketch è stato pensato, solo per i processori dell’Arduino e trapiantandolo su altri “micro”, diventerebbe così diverso, da perdere ogni possibilità, di scambiare i programmi tra i due.

I nostri PIC si programmano in C o in C++, usando un IDE standard e compilatori standard, noi usiamo il GNU Compiler, che è Open Source.

Per quanto la enorme popolarità di Arduino, possa farci apparire “diversi”, in realtà è vero proprio il contrario, è Arduino che usa un linguaggio non standard, fatto apposta per Arduino e valido solo per Arduino.

Gli sketch non sono vera programmazione del firmware, ma una programmazione semplificata, che nasconde tutto il “contorno”. Con gli sketch, l’efficienza è le possibilità di manovra, sono limitate.

Inoltre gli sketch provocano una deformazione didattica, si impara a usare una astrazione del micro, al posto del micro stesso. Per imparare a usare un micro, si dovrebbero studiare i data-sheet del costruttore, non le istruzioni di Arduino.

Detto questo, per fortuna, il firmware del sistema Theremino, non richiede programmazione. Siamo nel 20xx e si suppone che gli InOut di un PC, così come il firmware di un telefonino, o di una lavatrice, siano funzionanti “come sono”, senza doverli ri-programmare ogni volta, a seconda che si vogliano lavare camicie, oppure blue jeans.


Spostamento di prospettiva

Lo spostamento di prospettiva, tra Arduino e Theremino è di fatto, spostare l’intelligenza dal firmware al software. Questo spostamento moltiplica per mille la velocità disponibile, la potenza di calcolo, la memoria, e la facilità di programmazione.

Per questo approccio, si deve essere costantemente collegati a un PC (o un NetBook, un eeeBox, un Tablet, un MiniPC o un Raspberry Pi, come spiegato qui: blog/standalone-applications#standalone, e anche qui: downloads/notes-on-software#computers)

Molti dispositivi, come le stampanti, i monitor e i mouse, sono costantemente collegati al PC e tutti lo trovano “normale”. Eppure molti pensano che un “dispositivo”, come ad esempio un braccio robotico, o una stampante 3D, dovrebbero essere autonomi, e probabilmente anche a pile…


Bracci robotici e intelligenza

Facciamo l’esempio, guarda caso, di un “braccio robotico”. Molti costruttori di bracci robotici Arduinici, si sono accorti che il loro braccio “autonomo a pile”, alla fine fa sempre la stessa cosa. Cosa gli manca? La comunicazione e il software, algoritmi potenti che tengono in contatto i dati 3D, con il mondo esterno, sensori, WebCams, microfoni, capire i GCode, e comunicare con altre applicazioni, in tempo reale.

I micro non sono concepiti per gestire file 3D, o decodificare segnali audio, non hanno potenza adeguata, per suonare file midi, o decodificare il video di una WebCam. E se anche li si costringe a farlo, lo fanno male. Detto con altre parole: “Il luogo adatto per il cervello, non è vicino ai muscoli”

Un altro motivo, che rende molto furbo, collegare stabilmente bracci e stampanti 3D al PC, è che si deve fornirli di alimentazione. Quando si supera la fase giocattolo, le esigenze di alimentazione, diventano troppo pesanti, per le pile.

Come sono fatti i bracci robotici professionali ?

  • Hanno grossi cavi, che portano alimentazione e dati.
  • Comunicano costantemente con un PC di controllo.
  • Contengono solo il firmware, gli algoritmi intelligenti, sono tutti sul PC.

Fate click sulla immagine, per vedere meglio.


Quale linguaggio usare?

Una volta deciso di spostare l’intelligenza, dal firmware verso un linguaggio ad alto livello, quale è il migliore linguaggio da imparare?

Qui è una questione di gusti, alcuni dicono che esiste solo il C++, e trattano con disprezzo, ogni altro linguaggio.

Altri, come noi, pensano che il C++ sia ormai un linguaggio vecchiotto, che richiede molto più tempo e energie, dei linguaggi recenti. E pensano anche che C++ e simili (C, Java e tutti i linguaggi con il punto e virgola a ogni riga) siano linguaggi mal strutturati e poco formali, che invogliano a scrivere, in modo “sporco” e confuso. In questi linguaggi è possibile scrivere, cose accettabili dal compilatore, ma assolutamente illeggibili, per gli umani.

Noi preferiamo linguaggi più strutturati, che aiutano a scrivere bene, e a minimizzare gli errori. Questo processo di allontanamento graduale, dal linguaggio macchina, è in atto da cinquant’anni e ad ogni nuovo passo, c’è chi si lamenta e rimpiange i vecchi linguaggi. Ma il processo proseguirà, e alla fine arriveremo a programmare, in linguaggio umano. Attualmente il linguaggio più umano è VbNet.

Come contorno i linguaggi moderni (VbNet e C#), hanno una potenza e una velocità di esecuzione impressionante, perché le loro funzioni di base, non vengono riscritte ogni volta da zero, ma sono invece pronte nel “RunTime” e scritte con algoritmi ottimizzati, e adattati al sistema operativo.

Un secondo vantaggio dei linguaggi moderni, è di essere indipendenti dal sistema operativo. Una applicazione scritta in C# o in VbNet, gira senza cambiare una virgola anche su Mac, Linux e Unix. (questo almeno in teoria… in pratica solo su Windows funziona tutto bene, mentre sugli altri sistemi operativi, le implementazioni sono incomplete e piene di errori)

Concludendo noi suggeriamo di usare VbNet oppure C# (molto simili tra loro) Quasi tutte le applicazioni, del sistema Theremino, sono scritte in VbNet, perché lo troviamo più “umano”, ma si può facilmente passare da un linguaggio all’altro, usando SharpDevelop per tradurre.

Per installare gli strumenti di sviluppo, leggere qui: downloads/notes-on-software#instruments

  1. Hello,
    wanted to know if I can operate the arm thermino with arduino.
    thank you.

  2. Livio says:

    Stiamo terminando Theremino CNC. Ci vorranno ancora alcuni giorni, per completare la rotazione 3D del toolpath e i file di istruzioni. Ma anche senza queste parti, la applicazione funziona perfettamente. La abbiamo messa alla prova ripetutamente, con piccoli circuiti stampati, e non ha mai sbagliato.

    Non la pubblichiamo ancora, perché vogliamo aggiungere ancora qualche funzione. La tentazione è sempre di completare tutto. Ma il software è sempre migliorabile, per cui seguendo l’istinto non pubblicheremmo mai niente.

    Cominciamo quindi a farla provare agli amici, se qualcuno vuole provarla in anteprima, ci scriva e gli manderemo il link a una pre-release.

  3. Guido says:

    Salve,
    eccomi di nuovo che mi faccio vivo… Vorrei provare il nuovo ThereminoCNC poiché vorrei traslocare sul Theremino da Linuxcnc, Gbrl e Arduino. Ho costruito una piccola CNC pronta per fresare e lavorare come stampante 3D. Mi potreste mandare il Link, per favore…
    …grazie, saluti e avanti così,
    Guido G.

    • Livio says:

      Tra pochi giorni pubblicheremo la versione ufficiale, che si chiamerà ThereminoCNC V4.0 (abbiamo fatto due mesi di versioni, quasi una al giorno)

      Più o meno ogni sera salviamo una nuova versione, nei giorni scorsi si chiamavano V3.12, V3.13, V3.14, nei giorni prossimi si chiameranno 3.16, 3.17, 3.18… fino a che pubblicheremo la 4.0…. la lista delle cose da finire stava arrivando alla fine… ma ci hanno comnvinti anche a implementare la “Work area” per i soft limits per cui ci vorrà ancora un po’ di tempo…

      La più recente pre-release (oggi è la 3.27) è scaricabile da qui: https://www.theremino.com/downloads/automation#cnc

  4. Livio says:

    Carlo ci ha scritto una mail chiedendo:
    Con Theremino CNC è possibile gestire una macchina CNC con due motori per l’asse X?
    Ad esempio questa: http://www.mechmate.com
    In Mach3 esiste il concetto di asse Slave, ma su theremino CNC non ho trovato nulla di analogo.

    Risposta:
    Basta usare lo stesso Slot per due motori (nell’HAL) e i due motori si muoveranno insieme (e poi nell’HAL regolare i parametri di ognuno dei due motori e magari ribaltarne uno).

    Il sistema theremino è modulare e a strati e tutto passa attraverso gli Slot. Gli strati aggiuntivi (Slot e l’HAL) permettono di fare incroci, scambi, duplicazioni, ribaltamenti, scalature etc…

    Per cui si potrebbero, ad esempio, controllare quattro motori con l’asse X, di cui uno in avanti, uno indietro con 200 step per mm, un altro con 800 step per mm e un ultimo che non è nemmeno uno stepper ma un servo da aeromodelli. E se non bastasse, si potrebbe aggiungere un secondo Master, per altri 5 motori e fargli fare altri assi.

    Infine con tre righe di software, magari in Theremino Script, si potrebbero intercettare i segnali degli slot, trasformarli, limitarli, fare l’OR o l’AND di due segnali, regolare una temperatura, in base alla velocità di spostamento di uno o più assi, etc…

    ——————————————

    Naturalmente prima si deve fare amicizia con i fondamenti del sistema, i cui principi di base sono molto diversi da tutti i sistemi simili.

    Consiglierei di iniziare da qui:
    https://www.theremino.com/contacts/the-theremino-mission

    E approfondire qui:
    https://www.theremino.com/technical/communications
    https://www.theremino.com/technical/pin-types

    • Livio says:

      Altre domande di Carlo:
      La mia CNC è configurata e funzionante con Mach3 e devo trovare il tempo (e comprare theremino e un paio di slave) per fare le prove reali. Fondamentale per me è avere l’azzeramento utensile X, Y e Z. La macchina non ha il cambio utensile automatico e spesso le lavorazioni tengono conto della posizione del pezzo e non dell’home macchina.

      Risposte:

      Master + Slaves?
      ————————————————————————–
      Ti consigliamo vivamente di iniziare con un solo Master e niente Slaves. Meno moduli colleghi, più è facile configurarli, e maggiore è l’affidabilità dell’insieme.

      Con un Master puoi controllare tre Stepper e ti restano ancora quattro InOut liberi per:
      – Pulsante emergenza
      – Catena di fondo-corsa
      – Pilotaggio motore mandrino (PWM oppure on-off)
      – Accensione refrigerante o aspirazione o piastrino di azzeramento verticale

      Migrare facilmente da Mach3 a Theremino
      ———————————————————————–
      Probabilmente con Mach3 hai un connettore della porta parallela, basta staccarlo dalla parallela e collegarlo all’adattatore:
      https://www.theremino.com/hardware/adapters#cnc

      E se poi non ti piace come si muove, stacchi il connettore, ricolleghi Mach3, e usi il Master per fare altro, sono poi solo 20 Euro.

      Se hai difficoltà a costruirlo, puoi farti aiutare da Alessio, come spiegato qui:
      https://www.theremino.com/contacts/producers#hardware

      Zero macchina?
      ————————————————————————-
      Noi l’home macchina non lo consideriamo proprio, si lavora sempre con lo zero pezzo. In ThereminoCNC c’è un solo sistema di coordinate, non ci sono coordinate macchina e coordinate pezzo. Eventualmente puoi mettere una catena di switch e azzerare allo zero macchina, ma è sempre un unico zero. O azzeri in un punto o in un altro.

      Normalmente si va, con il JOG, dove si vuole azzerare e si premono i tasti X, Y, Z di azzeramento.

  5. Livio says:

    Alfonso ci ha scritto chiedendo:

    Buongiorno, vorrei delle informazioni sul braccio robotico, ho provato ha costruire un robot arm e in qualche modo funziona, anche se non e proprio preciso come i vostri, ma poi ho provato ad usare un braccio delta e qui mi sono perso, perché non capisco se la scheda di Theremino gestisca anche i servocomandi per il delta: appunto, vorrei sapere se rientra nelle “doti” della scheda. e se si trovano programmi o quanto meno algoritmi per gestire i movimenti.

    Risposte:

    Precisione
    ———————————————————-
    Il Robot Arm è solo un giocattolo da usare per studiare i fondamenti della robotica.

    La precisione che si vede nei video è la massima possibile con i seguenti “trucchi”
    – Disegno ingrandito al massimo in modo da sfruttare tutta l’area possibile
    – Penna molto morbida
    – Penna con movimento verticale elastico
    – Porta-penna molto corto e leggero
    – Perfetto allineamento della planarità in modo da non far mai sforzare la penna
    – Alcuni fogli uno sopra all’altro per avere un piano di scrittura leggermente morbido
    – Velocità di lavorazione non troppo lenta ne troppo veloce
    – 3 servo TGY930 e uno piccolo e leggero in punta
    – Peso dei bracci minimo possibile
    – Bracci molto corti per diminuire gli errori di posizione

    Qualunque variazione rispetto a queste caratteristiche riduce notevolmente la precisione.

    Delta
    ———————————————————-
    La possibilità di controllare servo disposti a Delta (o anche a Scara) non dipende dalla scheda, ma solo dal software, che traduce le posizioni in angoli.

    Il Theremino CNC contiene già gli algoritmi per le configurazioni Delta e Scara. Basta aprire la tendina “Arm configuration” e scegliere “Delta” o “Scara”

    Ma si dovranno anche studiare le dimensioni dei bracci e regolare i parametri nel software per farli corrispondere con la meccanica. Con dimensioni mal progettate un Delta funziona male, o non funziona proprio, perché alcune parti interferiscono con le altre. In tutti i casi le lunghezze dei bracci devono essere le minime possibili e i bracci devono essere leggeri. E anche l’area di scrittura deve essere la minima possibile, altrimenti le imprecisioni aumentano troppo.

    Gli algoritmi Delta e Scara sono stati provati fino ai motori e dovrebbero funzionare però nessuno di noi ha mai costruito un braccio Delta (molto difficile come snodi) e nemmeno un braccio Scara (più facile).

  6. Maurizio says:

    Sono venuto a conoscenza del Theremino attraverso un forum di modellismo e da possessore di una cnc amatoriale sono interessato a sostituire la mia attuale elettronica di pilotaggio con una basata appunto su Theremino ma le mie conoscenze di elettronica sono abbastanza basiche e mi piacerebbe poter vedere una soluzione completa per sapere cosa acquistare e come collegare i singoli elementi.Pubblicherete qualcosa in merito?
    Grazie

  7. Roberto says:

    Complimenti per il lavoro e per gli sviluppi , sono mesi che mi scontro con schede cinesi per cnc e tutte hanno qualcosa che manca , per caso ho trovato il vostro sito e mi si è aperto un mondo nuovo dove finalmente si può anche andare avanti modificando con espansioni a seconda delle esigenze o nel caso studiare il sistema e magari metterci qualcosa di personale . Vorrei sostituire l’hardware ad un laser da 40W che ha delle enormi limitazioni dovute alla scheda hardware moshi e software moshidraw e con stesso sistema costruire l’elettronica per un pantografo di cui già ho costruito meccanica . Guardando bene theremino fornisce hardware e software ed il gioco è fatto ( escludendo tutto ciò che è legato alla meccanica ) il mio problema ora è che volevo provare a gestire pantografo anche con mach3 e qui mi sorgono le domande dopo aver letto i manuali hardware e software di theremino . Se voglio gestire mach3 emulando LPT gioco è fatto con spiegazioni che avete dato ma , se le porte della LPT non mi bastano , a livello hardware per theremino risolvo collegando al Master gli Slave ma ha livello software ho un dubbio . Nei vostri vari manuali ho letto di utilizzare o fare plugin per mach3 e theremino e qui inizia il problema e dove mi fermo , esistono per caso già dei plugin per theremino e mach3 dove si possono utilizzare più porte rispetto a quelle della LPT ( quindi configurazione di theremino Master + Slave ) ?In caso negativo da dove posso prendere spunto di come fare a costruirmi un plugin per mach3 per theremino ? Posso gestire in altro modo theremino con mach3 per poter utilizzare tutte le porte di una configurazione Master+ Slave purtroppo ho cercato in rete ma non ho trovato niente ( esistendo tutto in rete probabilmente non ho cercato in maniera corretta ).

    Vi ringrazio di un eventuale risposta e complimenti ancora del bel lavoro che state facendo da cui si possono trarre infiniti spunti e finalmente di un sistema differente dai soliti Arduino od altri che richiedono ai non addetti al lavoro tante ore di studio solo per capire come funzionano senza ancora aver fatto niente .

    • Livio says:

      Grazie dei complimenti, cercheremo di aiutarti per quanto possibile. Ma sarebbe tutto più facile, se si eliminasse del tutto Mach3. Sei sicuro che la applicazione Theremino CNC, non vada bene per le tue lavorazioni?

      Dovendo per forza usare Mach3, c’è una sola soluzione, scrivere un PlugIn. Nessuno lo ha ancora fatto e noi non avremo il tempo di scriverlo. Mach3 lo conosciamo poco ed è ormai piuttosto datato. Se hai molto tempo, potresti scriverlo tu.

      In questo ZIP abbiamo raccolto le migliori informazioni per fare il PlugIn: https://www.theremino.com/files/Mach3_PlugIn_Writers_Bible.zip

      Il PDF è stato scritto da Art Fenerty in persona e dice di essere la “Bibbia per gli scrittori di PlugIn per Mach3”. Inoltre nello ZIP troverai anche un esempio di PlugIn, scelto tra i più adatti. Consigliamo di NON fare un PlugIn per Mach4, che è molto costoso e poco seguito, dato che Art Fenerty, il bravissimo programmatore di Mach3, è ormai in pensione da molti anni.

      Un PlugIn per Theremino dovrebbe essere più semplice da scrivere, che per altri controllers:
      – Non si devono riempire buffers
      – Non si devono impostare parametri di configurazione
      – Non si devono controllare errori e hand-shake
      – Basta scrivere frequentemente le coordinate nei nostri slot (almeno 50 o 100 volte al secondo)
      – E le coordinate sono le stesse che Mach3 mostra nelle sue caselle
      – Nessuna conversione, lo stesso valore in millimetri delle caselle DRO

      Abbiamo preparato esempi di scrittura negli Slot, per tutti i linguaggi:
      https://www.theremino.com/downloads/foundations#easyslot

      Se ti servirà aiuto scrivici.

      P.S.
      Cerca di non esagerare con i moduli Slave, uno al massimo dovrebbe bastarti, più ne metti e più la affidabilità diminuisce. Le macchine CNC producono disturbi elettrici di ogni genere. Si devono quindi disporre le masse a stella, in modo professionale, e anche questo, a volte, potrebbe non bastare. A volte potrebbe essere necessario foto-accoppiare tutto. Per minimizzare i rischi di errori, sulla linea di trasmissione seriale, la cura più semplice è non usarla proprio. Se non bastano i dieci InOut di un Master (12 nelle future versioni di Firmware), allora al posto di uno Slave, si potrebbe aggiungere un secondo Master. La USB è molto più resistente ai disturbi e ai “loop di massa”, che la seriale. Sono comunque variazioni facili da fare anche in futuro.

      Questo non vuol dire che i moduli si rompono. I moduli Thereminici sono talmente semplici che non si rompono mai (o almeno non ne è mai tornato uno da riparare). Ma vuol dire che se non si cura il cablaggio delle masse e dei condensatori di disaccoppiamento, potrebbe succedere di mandare in errore la comunicazione, magari a metà di una lavorazione.

      Comunque niente preoccupazioni eccessive! Se si fanno le cose per bene la comunicazione non si interrompe mai. Tra noi in laboratorio e i vari collaboratori, abbiamo ormai fatto centinaia di lavorazioni con zero problemi! Tutto solido e affidabile, come con Mach3, e tante comodità in più per il macchinista.

      • Roberto says:

        Grazie mille per informazioni , vedo di scaricare il manuale per creare plugin , bisogna vedere se riesco a capire come fare e se è nelle mie capacità , dovesse andare a buon fine , se riesco a creare un plugin per theremino e mach3 ben lieto di condividerlo con voi od altri utenti che possano averne bisogno .
        Il discorso mach3 è solo dovuto al fatto che avendo preso delle “cinesate” ho iniziato ad usare questo software e mi è sembrato idoneo all’utilizzo che dovevo farne , avendo ora alternativa di Theremino CNC può anche essere che cambi completamente strada .
        Una domanda che dovrei verificare ma forse avete già la risposta , visto che mi sembra che mach3 può utilizzare contemporaneamente più porte LPT , potrei forse collegare due Theremino master a due porte Usb e vedere se riesco a configurarle come se fossero due diverse porte o forse se riconosciute collegare due Master ad un Hub che si collega ad una sola porta Usb . Forse ho sparato solo cavolate e l’idea è priva di fondamento .
        Comunque quando montato Master provo a pilotare Laser da 40W anche con Theremino CNC e se può interessare vi dò indicazioni di quanto fatto e dei collegamenti fatti con Hardware e meccanica già esistenti , vorrei sfruttare PWM per togliere il potenziometro di regolazione potenza che da il segnale al gruppo HT con regolazione manuale e regolare potenza direttamente dal software per poter tagliare ed incidere direttamente da programma , accensione spegnimento pompa acqua raffreddamento tubo laser gestito direttamente da elettronica come accensione ventola aspirazione , alla fine vorrei migliorare il sistema Hardware e software che equipaggia molti laser per hobbysti a cui i cinesi secondo me non hanno dedicato molta attenzione .
        Ringrazio per Vostro importante supporto e per quanto posso approfondendo il mondo Theremino ben volentieri se possa essere di qualche aiuto .

        • Livio says:

          Quanto scrivi e immagini è esatto.
          Si possono sicuramente collegare più Master, anche con un HUB e le prestazioni sono sempre ottime. Usare più Master è anche meglio, che usare un solo Master e alcuni Slaves (si elimina la linea seriale e la velocità di comunicazione aumenta).
          Comunque cerca sempre di usare il minor numero di moduli possibile. Unisci tutti gli switch in serie, come “normalmente chiusi” e collegali a un solo Pin, configurato come DigIn. Fai tutto il possibile per minimizzare l’hardware. Meno hardware c’è e meno cose possono rompersi, causare falsi contatti e raccogliere disturbi.
          Questo è meglio spiegato nel PostScriptum del precedente messaggio.

          Grazie della proposta di collaborazione. Se serve qualcosa siamo sempre qui.

        • Anonymous says:

          Riguardo alle parallele multiple di Mach3
          Come si dovrà fare dentro a Mach3 è abbastanza misterioso. Probabilmente si dovrà aggiungere, per ogni ingresso e uscita, una casella di configurazione che specifica il numero dello Slot. Oppure, per farla più semplice, prefissare un numero di Slot fisso, per ogni In e Out.

          Il lato thereminico del PlugIn è semplice, non si deve nemmeno ragionare a porte parallele, Master e Slaves. Basta scrivere o leggere un numero per ogni Slot. Gli slot sono numerati da 1 a 999 e sono tutti uguali. Se si scrive, si tratta di uno slot di uscita, altrimenti di un ingresso. A tutto il resto pensano Theremino HAL e Theremino CNC.

  8. Roberto says:

    Buongiorno a tutti , finalmente ho montato i Master ed ho iniziato a fare delle prove , per il Laser Master più Theremino Hal e Theremino CNC direi che sono un’accoppiata più che buona , se poi si aggiunge all’occorrenza anche uno Slave direi che sia ottimo . Ora il problema che ho è per il pantografo che ho terminato e che vorrei gestire con Mach3 , probabilmente mi sfugge qualcosa dal manuale del Theremino CNC che non capisco in maniera corretta . Montato Master , fatto adattatore LPT , lanciato Hall V5.1 , configurato Master con prime 6 porte settate come Stepper (Pin1: Stepper slot1 , Pin2 :Stepper_Dir slot2 , Pin3: Stepper slot 3 …) Pin 7 settato come Dig_in e come da manuale per associarlo al pulsante emergenza gli ho dato Slot 25 (ho anche provato con Slot 19 come da manuale per collegamento a software ) , ho collegato i Pin da 1 a 6 Master ai Pin da 2 a 7 della LPT , collegato Pin 7 Master a Pin 15 LPT , collegate masse master ai pin da 18 a 25 LPT , a questo punto ho configurato Mach3 , abilitata LPT1 (Provato anche con LPT2 ed entrambe abilitate ) configurato ed attivato assi X,Y,Z con Porta 1 e rispettivamente per stepper e dir Pin 1-2-3-4-5-6, impostata porta per pulsante Emergenza su LPT1 e Pin 15 . Questi i settaggi fatti , ad ogni modifica chiuso e riaperto Mach3. Con Hall aperto lanciato Mach3 ma purtroppo ne assi si muovono ne pulsante emergenza viene rilevato se aperto , controllato anche su Hall se vi siano variazioni sulle porte in seguito a comandi da parte del Mach3 ma non vi sono variazioni , unica variazione rilevata e quella del pulsante di emergenza che logicamente essendo connesso direttamente al Master , registra con Hall variazioni . A questo punto non capendo l’errore ( probabilmente continuo a fare sempre lo stesso ) e non trovando input nei manuali chiedo a Voi dove stia sbagliando . Mi chiedo anche (come da post precedente )come eventualmente poter associare due master alle due distinte porte LPT1 e LPT2 . Questo sarà comunque un problema secondario dopo essere riuscito a far vedere almeno un Master al Mach3 se possibile , dico se possibile perchè in alcune pagine di manuale si dà quasi per scontato la sostituzione della parallela del Mach3 con Master Theremino , in altre pagine si trova : “Questo adattatore serve per sostituire la Parallela con la USB, e non per far funzionare Mach3 o Linux CNC (a meno che qualcuno scriva i relativi Plug-In)”. Grazie per eventuale supporto o spunto a tutti

    • Livio says:

      Questo lo abbiamo già spiegato e evidenziato in giallo, sia nella pagina dei motori, che nella pagina dell’adattatore, che nel manuale di Theremino CNC… e anche nei tre precedenti messaggi di questo Blog.

      Non è possibile usare Mach3, a meno di scrivere un PlugIn per Mach3, che invii i dati di Mach3 verso i nostri Slot.

      Scrivere un PlugIn per Mach3 potrebbe richiedere mesi a chi conosce Mach3. Noi non lo scriveremo, sia perché preferiamo la semplicità di Theremino CNC, sia perché non
      conosciamo abbastanza Mach3 e Linux CNC.

    • Livio says:

      Detto in altre parole…
      l’adattatore sostituisce l’uscita parallela e fa vedere alla macchina lo stesso connettore che si usava in precedenza con Mach3.

      Ma dal lato PC di deve cambiare Mach3 con Theremino CNC, cosa c’è in Theremino CNC che non va bene? Se qualcosa manca lo aggiungeremo.

  9. Roberto says:

    Ok , frainteso io , avevo il forte dubbio ma non ne ero certo . Comunque per accoppiata Theremino + Hall + Theremino CNC complimenti , penso che se non ci siano particolari necessità o per spirito di riuscire a far funzionare mach3 per molte apparecchiature cnc sia un ottimo sistema .
    Solo per spirito di prova porterò avanti il discorso plugin mantenendovi informati .
    Grazie Livio per la velocissima risposta

    • Livio says:

      Non hai spiegato perché nel pantografo dovresti usare per forza Mach3. C’è qualcosa che dobbiamo aggiungere a Theremino CNC, che proprio ti manca?

      Stasera pubblicheremo una nuova pre release con grandi miglioramenti.
      – Lo Zoom del Toolpath è molto migliorato
      – Il Pan si fa trascinando con il mouse
      – Si può usare un GamePad (anche Wireless) per Joggare e per le principali funzioni
      – Quando il Toolpath è ingrandito segue automaticamente la lavorazione

      Moltissimi altri miglioramenti…
      vale la pena di rileggere tutto il file di istruzioni.

  10. Roberto says:

    Non c’è niente in theremino CNC che non vada , è che partendo da mach3 ero e sono affezzionato al sistema , infatti ti ho detto che per il Laser in questo caso preferisco Theremino CNC a Mach3 . Forse mi devo adattare un pò al sistema che sicuramente quando si conosce può avere caratteristiche di altri o forse anche superiori , la cosa che sinceramente mi frenava nel provare il sistema Theremino erano i pin limitati della sheda Master comunque espandibile , pensando ad una sistema che nell’eventualità avrei dovuto gestirsi senza PC od in abbinamento con questo .

  11. Roberto says:

    Scusami se approfitto , ho letto sommariamente il manuale del CNC , mi sono fermato alle cose essenziali per eventualmente associarlo a Mach3 , superato questo punto ora me lo studio per il funzionamento Theremino Cnc con Master . La domanda è solo se posso associare i pulsanti presenti nella finestra del Theremino Cnc con eventuale tastiera on-board su macchina ( Start- Stop -Pause- Goto zero -Goto home ).
    E’ corretto se sostituisco il comando (0/5Vcc) regolazione potenza tubo laser (che attualmente posso solo regolare con un potenziometro sulla macchina ) con il comando Speed Rpm (Slot 12 Pin Pwm) ?

    • Livio says:

      Ti consiglio di usare un GamePad wireless che non solo fa START, PAUSE, STOP e REWIND, ma anche i JOG veloci, a velocità variabile e anche i JOG a bassa velocità per azzerare con precisione. E fa anche lo ZOOM del toolpath durante l’esecuzione. Leggi pagina 12 delle istruzioni. Un eventuale pannello potrebbe usare un GamePad intero (cannibalizzato), per connettersi all’USB (i GamePad economici costano 5 Euro)

      Per la potenza del laser lo slot 12 è quello giusto. Ma credo che dovrai anche accenderlo durante i G01 e spegnerlo durante i “Rapid” e per far questo dovresti usare anche lo slot 11.

  12. Roberto says:

    Grazie di tutto , scusa della domanda per comando Speed Rpm , ho visto adesso che giustamente visto alimentazione può generare solo 0/3.3 Vcc . Ora vedo di leggermi attentamente documentazione prima di fare altre domande .
    Solo una curiosità , come mai visto disponibilità dei vari modelli Pic con prezzi comunque poco differenti avete optato per un pic con package a 28 pin con le limitazioni delle porte in/out che implicano molto facilmente richiesta di moduli slave ?
    E’ solo una curiosità senza polemica

  13. Mario says:

    Ciao Livio,
    Vorrei sapere se esiste una versione di Theremino CNC che possa funzionare su un tablet
    Android.
    Ciao e a presto!!!
    Mario

    • Livio says:

      No, mi dispiace.
      E probabilmente non ci sarà neanche in futuro, per i motivi seguenti:
      1) Android pensa che tutti i device di tipo HID siano dei Mouse
      2) Nessuno è ancora riuscito a fargli capire che i nostri Master non sono dei Mouse.
      3) Se anche si riuscisse, poi la applicazione Theremino CNC non funzionerebbe.
      4) E nemmeno Theremino HAL e tutte le altre nostre utility funzionerebbero.
      5) Andrebbero riscritti almeno HAL e CNC (mesi di lavoro per uno che conosce Android).
      6) Android riesce a far girare una sola applicazione per volta, quindi niente HAL e CNC insieme.
      6) Esistono Tablet con Windows 8.1 gratuito, che costano poco più di 100 Euro e vanno benissimo (quad core e super veloci).

  14. Livio says:

    Mario ci ha scritto una mail chiedendo:
    1) Come devo fare a interfacciare una Laser?
    2) Dove posso leggere come abbinare i pin all’accensione / spegnimento del laser?
    3) Siccome i driver Pololu hanno anche i microstep, potrei avvantaggiarmene?
    4) Sto assemblando una proto board che porta il Master THEREMINO + lo shield arduino per i A4988 – CNC Shield V3 A4988 Controller for RAMPS 1.4 Reprap 3D Printer for Arduino. Così ho gran parte dei collegamenti già fatti e al posto giusto, senza pericolo di sbagliare. E’ una buona idea?

    Risposta 1 – Pin da usare per una Laser:
    Se ti servono due assi per muovere in X e Y e non usi l’asse Z allora:
    1 = X step
    2 = X dir
    3 = Y Step
    4 = Y dir
    E poi puoi usare uno qualunque dei pin da 5 a 10 per il laser. Magari lasciando liberi il 5 e il 6 che possono avere l’ADC (se in futuro dovessi misurare qualcosa, magari una temperatura)

    Risposta 2 – Segnali per il Laser
    ——————————————————————–
    I segnali del laser sono listati a pagina 38 dell’Help del Theremino CNC

    11 OUT – Spindle motor or laser (ON = 1000 / OFF = 0)
    12 OUT – Spindle motor speed (RPM da -99000 a +99000) – Specificato da “S”

    Con lo slot 11 accendi il laser durante la lavorazione e lo spegni nei rapidi.
    Con lo slot 12 regoli la potenza del laser (usando il comando S – Speed)

    Quindi i pin da impostare sono
    Pin 7 = Slot 11 e DigOut
    Pin 8 = Slot 12 e Pwm16

    Risposta 3 – Microstep
    ———————————————————————
    Ottima idea usarli, ma non esagerare, impostali a 2, 4 oppure 8 al massimo.
    Attenzione che cambiando microstep poi devi correggere gli “Step per mm”

    Risposta 4 – RAMPS
    ———————————————————————
    Il modulo RAMPS va benissimo.
    Probabilmente non faremo un equivalente perché è ben fatto e costa poco.
    Preoccupano un po’ i suoi connettori femmina che sembrano di bassissima qualità.

    Risposta 4 – ProtoBoard
    ———————————————————————
    Piuttosto che una proto-board (che farebbe molta confusione) converrebbe fissare i moduli a una base di plastica o legno e poi usare i cavetti Dupont:
    https://www.theremino.com/technical/connection-cables#single

  15. mirko says:

    ciao ho appena finito di rifare la mia stampante 3d ma come al solito arduino rompe sul collegamento del seriale …. mi chiedevo se il software del cnc è compatbile con i gcode generati dal software Slic3r, volevo infatti collegare i 5 motori nema17 ai driver pololu sulla ramps1.4 e collegare questa al master + relativi slaves se non bastassero i pin. dovrei implementare nel gcode i comandi per controllo temperatura e velocità estrusione?? sono anche disposto a fare da tester. grazie 1000 per l’attenzione

    • Livio says:

      Certo che si può fare e grazie della proposta di collaborazione. Se servirà potremo anche usare Skype o il telefono. Ti aiuteremo e faremo ogni modifica necessaria fino a che funzionerà bene.

      Gli slot da usare per le stampanti 3D sono indicati a pagina 38 del file: Theremino_CNC_Help_ITA.pdf

      I codici per le stampanti 3D sono: M00/01/82/84 e da M101 a M190 e il loro significato è spiegato nel file del file: G_and_M_codes_ITA.pdf

      Potresti iniziare a connettere e provare l’hardware. Poi dovresti controllare che i tuoi file non contengano altri codici (nel caso ne contenessero allora faresti bene a mandarci un file da controllare).

      Nella versione che c’è sul sito questi comandi “M” non sono ancora implementati, ma non ci vorrà molto a finirli.

      • mirko says:

        ok ottimo allora intanto sistemo la calibrazione della stampante e devo ancora mettere un paio di endstop e intanto mi leggo un gcode dello slicer

        • Livio says:

          Non mettere tanti stop, cioè collegali tutti in serie su un unico filo. Meno sono gli ingressi e uscite e più affidabile sarà la macchina nel suo insieme.

          A pagina 42 del file CNC_Help_ITA, si vede come si “dovrebbe” collegare la catena di fondo corsa per evitare che forti disturbi provenienti dai motori, possano provocare errori sulla comunicazione USB. I due resistori sono un efficace isolamento dai disturbi.

          E anche le masse vanno disposte come si deve, “a stella” come spiegato a pagina 43. Molte cose sono importanti, il tuning dei motori, i cablaggi… I fondo corsa sono i meno importanti, il macchinista deve controllare lui stesso di non andare a sbattere. All’inizio, quando non ero esperto e mi fidavo dei fondo corsa, ho rotto molte punte e ho rigato la tavola. Ora i fondo corsa non li metto mai e non rompo più niente.

          Naturalmente stiamo parlando di macchine con motori Nema23, o anche più piccoli. Motori che non sono in grado di piegare la meccanica. Per cui si possono usare efficacemente i fondo corsa meccanici.

          Anche a pagina 41 si leggono utili informazioni sugli switch. Mi raccomando, pochi canali di InOut, al massimo un Master e uno Slave (o due Master).

          Se hai tanto tempo, piuttosto che aggiungere un groviglio di slot, cavi e switch, sarebbe utilissimo costruire una piastrina di foto-accoppiatori e isolare completamente la massa della macchina, dalla massa dei moduli thereminici e quindi del PC, come indicato a pagina 44.

          • mirko says:

            in pratica dovrei fare la stampa o il movimento senza riferimenti di posizione, almeno fino ad ora gli impostavo lo 0 manualmente e poi gli facevo partire il gcode, dici di farlo anche qua? al massimo metto un endstop solo per determinare la misura minima così da avere un riferimento sull’asse z. per il numero di collegamenti dovrei riuscire a stare in un master dedicato ai motori e uno slave per gli endstop a meno che non posso controllare i 2 motori dell’asse z con un solo collegamento mettendo i cavi in parallelo

            • Livio says:

              Io imposto sempre manualmente lo zero del pezzo. In questo modo posso fare pezzi dove voglio e anche duplicarli in posizioni diverse. Sposto un po’, azzero, e ne faccio un altro… sposto un altro po’, azzero e ne faacio un altro…

              Se invece i pezzi sono riferiti allo zero macchina sei fritto, queste semplici operazioni non sono più possibili.

              Comunque avere lo zero X e Y può servire qualche volta, quindi metterei due switch di “minimo X” e “minimo Y”, in serie e collegati a un solo Pin.

              Per lo Z invece userei il piastrino di azzeramento, collegato a un altro Pin.

              Quindi un totale di due Pin per tutti gli switch, più 8 Pin per 4 motori, più 5 Pin per le temperature, fanno 15 Pin in tutto. Con un Master e uno slave hai venti Pin. Te ne devono avanzare almeno cinque!

              I due motori dell’asse Z, devono rigorosamente stare collegati agli stessi fili, altrimenti appena sbagli qualcosa si disallineano è si ingallona il carrello.

              • mirko says:

                ok sono riuscito a fare il collegamento ramps 1.4 a theremino ma ho quasi riempito anche lo slave senza nemmeno usare gli endstop. se volete posso fare un immagine che spiega a tutti come fare e lasciarvela. domani controllo i gcode imposto i motori e provo a stampare in 2 giorni metterò aggiornamenti

                • Livio says:

                  Hai sicuramente collegato segnali che non servono, ad esempio gli “Enable” dei driver.
                  Le sicurezze (pulsante di emergenza e enable) vanno fatte in hardware. Mai passare attraverso il software per queste cose.
                  Mi fai una lista dei Pin così capisco?

                • Livio says:

                  Più che “provo a stampare” direi “provo a muovere con il JOG”
                  1) In Theremino CNC non sono ancora implementati gli MCode per le regolazioni delle temperature.
                  2) Non sappiamo ancora quali M e G codes ti mancano.
                  3) Non mi hai inviato un GCode di esempio…

                  Se devi spedire qualcosa invia a: engineering@theremino.com

                  • mirko says:

                    ho collegato i 4 assi X Y Z e E(l’estrusore) step e dir poi ho collegato i 4 enable dei driver ovviamente tutte le alimentazioni con relativi ground e i due pin uno per il controllo dell’alimentazione della resistenza (per riscaldare l’estrusore) e l’altro per rilevare la temperatura da un termistore 100k. in più potrebbe servire anche il collegamento per la seconda resistenza del piatto di stampa e quello del secondo termistore. tutto questo senza contare gli endstop che sono a parte. sulla mail intanto ti invio un gcode di un pezzo che ho di recente stampato

                    • Livio says:

                      E magari i 4 enable tutti separati? Occupando ben quattro Pin?

                      Per piacere scrivi una lista dei pin e poi copiala qui.

  16. mirko says:

    allora i pin che usa la ramps sono questi // For RAMPS 1.4
    #define X_STEP_PIN 54
    #define X_DIR_PIN 55
    #define X_ENABLE_PIN 38
    #define X_MIN_PIN 3
    #define X_MAX_PIN 2

    #define Y_STEP_PIN 60
    #define Y_DIR_PIN 61
    #define Y_ENABLE_PIN 56
    #define Y_MIN_PIN 14
    #define Y_MAX_PIN 15

    #define Z_STEP_PIN 46
    #define Z_DIR_PIN 48
    #define Z_ENABLE_PIN 62
    #define Z_MIN_PIN 18
    #define Z_MAX_PIN 19

    #define E_STEP_PIN 26
    #define E_DIR_PIN 28
    #define E_ENABLE_PIN 24

    #define SDPOWER -1
    #define SDSS 53
    #define LED_PIN 13

    #define FAN_PIN 9

    #define PS_ON_PIN 12
    #define KILL_PIN -1

    #define HEATER_0_PIN 10
    #define HEATER_1_PIN 8
    #define TEMP_0_PIN 13 // ANALOG NUMBERING
    #define TEMP_1_PIN 14 // ANALOG NUMBERING

    e sono relativi ad arduino questi ma alcuni non servono se si usa theremino
    no cmq i 4 enable li ho messi in parallelo

    • Livio says:

      Questi sono i Pin che usa il firmware di Arduino dentro allo Sketch, e alcuni non sono nemmeno dei PIN ma delle variabili usate nel software.

      La lista per Theremino è la seguente:
      Pin Uso
      -------------------
      01 X_STEP
      02 X_DIR
      03 Y_STEP
      04 Y_DIR
      05 Z_STEP
      06 Z_DIR
      07 E_STEP
      08 E_DIR
      09
      10

      11 HEATER_0
      12 HEATER_1
      13 TEMP_0
      14 TEMP_1
      15 FAN
      16 X_ENABLE, Y_ENABLE, Z_ENABLE, E_ENABLE, PS_ON, LED
      17 X_MIN, Y_MIN, Z_MIN, X_MAX, Y_MAX, Z_MAX
      18
      19
      20

      Anche collegando tutto restano cinque pin liberi, due sul Master e tre sullo slave.

      Anzi ne restano sei perché (per sicurezza) gli Enable dovrebbero essere completamente hardware e NON dovrebbero mai passare dal software. Cioè si mette un interruttore della macchina e lui stesso alza e abbassa gli enable.
      O meglio ancora toglie alimentazione ai motori!

      E questi cosa sono?
      KILL ???
      SDPOWER ???
      SDSS 53 ???

      • mirko says:

        quelli sono (erano perchè sono inutili con theremino) l’alimentazione per la sd del pannello lcd il segnale della sd e il kill credo sia tipo un force reset ma è da software perchè è sul -1 quindi per noi appunto non serve

        • mirko says:

          stavo pensando per la temperatura semplicemente di impostarla con un programmino esterno al theremino cnc a 200° circa e lasciarla fissa però quello su cui avrò problemi sarà l’estrusione.
          mi sa stasera provo a mettere un semplice gcode dentro al programma imposto la temperatura a parte e cerco di regolare l’estrusione poi ti faccio sapere come è andata

          • Livio says:

            Purtroppo per l’estrusore avrai un problema con i G92 E0.
            Per fare una prova veloce dovresti eliminare (o commentare tutti i G92 E0) e poi trasformare tutti gli E da numeri relativi ad assoluti… Farlo a mano o con un editor non è facile.
            O aspetti che implementiamo il G92,
            O scrivi un programmino che incrementa tutti gli “E” in modo che non ripartano sempre da zero.
            Opuure imposti il post-processor del programma che ha fatto il GCode per non emettere il G92

  17. Roberto says:

    Buongiorno Livio ,
    continuando nelle mie prove per cnc devo dire che i risultati fino ad ora dell’accoppiata tra master e software cnc va molto bene , per il momento sto lavorando per prove su laser e come ho finito meccanica del pantografo inizio anche su quella ( continuo a vedere se riesco a trovare modo di accoppiare master a mach3 ma solo per curiosità ed eventualmente condividere a chi potrà averne bisogno ). Ora guardando il sito ( un pezzo alla volta lo sto guardando tutto viste le infinite ed utili prove pubblicate ) ho visto scheda relè con tre fili di pilotaggio e gestione di otto relè moltiplicabili , ora però guardando schema vedo i tre fili , data, clock e store e sotto vedo che si dice di collegare questi tre fili a tre pin configurati come DigOut , presumo quindi che il tutto è gestito dai software test relè e non si possano sfruttare queste infinità di uscite invece da software come cnc , mi sbaglio ?
    Esiste qualche applicativo che non ho visto che invece del 74*595 che con tre fili moltiplica uscite , sfrutti i 74*165 per fare la stessa cosa con gli ingressi ?
    Teoricamente con 4 pin si potrebbero avere ingressi ed uscite moltiplicate (clock e store comuni ) e data linea 595 e 165 separate , per 595 sarebbe un in DigOut mentre per 165 sarebbe un DigIn , potrebbe funzionare una soluzione simile ?
    Grazie come sempre del Vostro utilissimo supporto

    • Livio says:

      A quella scheda si mandano i dati in seriale, con tre Pin di uscita configurati come DigOut. In questo modo, si possono collegare anche più schede, una dietro l’altra e gestire anche molte decine di relè, sempre con soli tre fili.

      La versione migliore e le migliori informazioni su questa scheda seriale sono qui: https://www.theremino.com/hardware/outputs/actuators#releswitcherv2

      C’è un esempio di software per inviare i dati seriali tra gli esempi di Theremino Script. Ma il tutto è abbastanza complesso da mettere insieme.

      Multiplexare ingressi e uscite
      ——————————–
      La tua idea è realizzabile, ma spero che non dovrai arrivare a simili complicazioni. E’ già difficile fare apparecchi affidabili, stando sul semplice!

      Con un Master e uno Slave, si dovrebbe riuscire a fare qualunque macchina, anche le più complesse. Mi mandi la lista degli InOut che ti servono e ci ragioniamo un po’ sopra?

  18. Roberto says:

    Grazie Livio come sempre della tua disponibilità , sinceramente l’idea mi è nata provando schede cnc dei Polacchi che con 4 fili gestiscono da scheda madre uscite ed ingressi e , con lo stesso principio con tre fili gestiscono fino ad 8 assi .
    Questa mia era una curiosità se stesso principio senza applicare moduli slave a seconda dell’eventuale numero di input output poteva essere applicata al modulo master , il lavoro grosso lo fa il master , gli altri pic degli slave si appoggiano sempre al micro del master . Ora visto che la meccanica è praticamente quasi terminata mi inizierò a fare un calcolo dei vari input output necessari , calcolando assi , finecorsa , emergenza , tastierino esterno , pompa del vuoto ,2 inverter per regolazione velocità e pilotaggio abbassamento 2 teste con pistone pneumatico ( ho due teste che devono poter lavorare o contemporaneamente o separatamente )ed altri input output vari . Anche se sarà un pantografo per uso hobbystico ho copiato meccanica da alcuni professionali ed ho aggiunto alcune varianti che secondo me possano servirmi , ti dico che sinceramente vorrei anche riuscire a montare sul pantografo il gruppo laser per poter fare con una sola macchina tutto ciò che possa servirmi , tanto due assi x ed y posso sfruttarli per entrambi e secondo l’esigenza comandare mandrino o tubo laser .Alla fine l’idea di macchine combinate è la scoperta dell’acqua calda che è già stata applicata a tanti macchinari hobbystici dai cinesi .
    In tutti i casi non voglio stravolgere niente , sono solo domande per curiosità sulla fattibilità , i progetti su theremino sono talmente tanti e tutti interessanti ed alcune volte per approfondirli ci sono link ad altre pagine ed informazioni che qualche volta ho paura di essermi perso qualcosa ed è per questo che chiedo dettagli .
    Comunque grazie ancora , più leggo per conoscere il sistema più sono convinto che abbiate e stiate facendo un grande lavoro con un infinità di possibilità limitate solo dall’immaginazione

    • Livio says:

      Effettivamente l’idea di utilizzare la meccanica X,Y,Z anche per Laser e 3D printing, non è male. Gran parte del costo, del volume e del peso, stanno proprio nei tre assi fondamentali.

      Stavamo già lavorando inconsciamente in questa direzione, ma ora la tua scoperta dell’acqua calda ha reso esplicito quel che dobbiamo fare, grazie!

      Proprio in questi giorni stiamo aggiungendo a Theremino CNC le funzioni che dovevano far parte di Theremino Replicator. Per cui alla fine Theremino CNC sarà una applicazione unificata, che potrà gestire anche le stampanti 3D, le macchine per l’incisoria, il taglio Laser e il taglio polistirolo. E c’è anche chi sta progettando di tagliare la pietra e spruzzare cemento. La modularità del sistema Theremino rende possibili anche le macchine più “strambe”, nonché un facile attrezzaggio per nuove funzioni.

      Abbiamo anche progettato un semplice driver a corrente costante per i piccoli laser a diodo, da 100 mW a 10 Watt (non ancora pubblicato – se serve chiedetelo). E alcuni makers hanno modificato stampanti Laser commerciali e le stanno usando con Theremimino CNC.

      Multiplexing
      ————————————————————-
      La tua idea di multiplexare ingressi e uscite, potrebbe essere utile in alcuni casi.

      Finora non abbiamo preparato moduli del genere, perché il tempo è sempre poco, ma non è difficile progettarli. Basta montare (anche su un millefori) alcuni multiplexer della serie CMOS HC, ma anche la serie CD andrebbe benissimo. Poi si potrebbero usare due o tre uscite DigOut, per quattro, oppure otto commutazioni. Molto interessanti i CD4051, che commutano in analogico e bidirezionale, e potrebbero fungere da Jolly. Se ne potrebbero montare un certo numero, e usarli sia per i DigIn, che per i DigOut, ma anche per gli Adc e naturalmente anche per tutti gli altri tipi di Pin, come Pwm e Counters. Attenzione solo a mettere un resistore di PullDown (10 o 100k) sulle uscite che rimarranno aperte, altrimenti alcuni utilizzatori, come i driver dei motori stepper, potrebbero iniziare a muovere i motori da soli.

      Il multiplexing è attuabile solo per funzioni mutuamente esclusive e richiede un integrato commutatore per ogni funzione. Alla fine verrebbe fuori un piastrone piuttosto grosso e probabilmente anche abbastanza costoso. Un modulo per smistare quattro segnali costerebbe come un Master e sarebbe grande come due o tre Master. Per questi motivi noi continuiamo a consigliare di aggiungere un secondo Master. Con il vantaggio di essere completamente configurabile e facilmente sostituibile.

      Se la macchina è composta solo da “n” drivers Pololu e da “n” Masters, basta tenere un Driver e un Master di scorta, per avere la certezza di non fermarsi mai.

      Ultimo consiglio: sempre meglio usare due (o al limite anche tre) Master, piuttosto che gli Slave, perché la linea seriale patisce i disturbi elettrici, molto più della USB. Non si rompe mai niente, ma possono avvenire errori di comunicazione e, in alcuni casi, anche il blocco totale della comunicazione, fino a che non si disconnette e riconnette il cavo USB.

  19. Roberto says:

    Buongiorno Livio , guardando tra le varie schede disponibili per theremino e per l’uso con software cnc , forse mi è sfuggito ma non ho trovato un circuito che trasformi il segnale PWM in tensione .Per regolare la potenza dei tubi laser è necessaria una tensione 0/5 V , per regolare la velocità dei mandrini con inverter è necessaria una tensione 0/10V o 0/5 a seconda dell’inverter , il modulo master genera un segnale Pwm 0/3.3V e non si possono quindi gestire direttamente questi dispositivi . In rete vi sono molti esempi ma credo che avere un modulo di riferimento sul vostro sito possa essere un buon aiuto per chi ne abbia bisogno . Dalle mie prove tra le varie possibilità mi sembrerebbe che la soluzione più comoda sia quella di un convertitore Pwm tensione con un operazionale esempio LM358 in questo modo alimentando modulino a 12 V e regolando potenziometro uscita si possono ottenere sia tensioni 0/5 V o tensioni 0/10V con tensione pari a 0 V per duty cicle =0 e tensione max di 5 o 10V con duty al 100%. Dalle mie prove ho anche visto che nel caso esempio per pantografi in cui sia necessario pilotare contemporaneamente due inverter per far lavorare contemoraneamente due mandrini ( se voglio fare due pezzi identici contemporaneamente ) è meglio mettere i due inverter in parallelo che fare due circuiti di convertitore Pwm tensione , con le tolleranze dei componenti e le caratteristiche dei due operazzionale non identiche anche se mando due segnali Pwm o lo stesso segnale Pwm ai due moduli le uscite dai due convertitori e quindi le velocità dei due motori non saranno uguali .

    Una domanda , mi hai scritto che state modificando Theremino CNC per renderlo una piattaforma universale per varie macchine , nelle modifiche che state apportando state pernsando di inserire anche dei pulsanti o un menù dove poter associare uscite ai pin o slot del modulo master ? Chiedo questo perchè in molte macchine oltre al pulsante di emergenza , finecorsa e gestione assi c’è sempre un qualche dispositivo che necessità di essere attivato o ad accensione macchina o perlomeno prima di inizio lavoro e non sarebbe male automatizzarlo con il ciclo lavoro senza doverlo fare manualmente ( in questi casi sarebbe sufficente poter associare pin out o Slot o all’avvio software CNC o all’avvio programma lavorazione Gcode ). Per esempio nei Laser deve essere accesa la pompa di ricircolo acqua per tubo ed il compressore durante la fase di taglio od incisione (ho provato ma non è il massimo collegare lo slot 11 ad altre cose che non siano innesco tubo laser , troppo veloci e troppi on/off durante fasi lavorazione ) , ho visto tra i vostri moduli nella sezione “input sensor “il “sensore liquido nei tubi” che potrebbe essere molto utile per tenere sotto controllo il ricircolo dell’acqua nel caso la pompa ( solitamente sono quelle utilizzate per acquari ) dovesse avere problemi o dovesse diminuire il livello nel contenitore facendola pescare a secco (devo ancora provarla me credo possa essere messa in serie a finecorsa ed emergenza ) . Nei pantografi invece ci sarebbe l’accensione dell’inverter ed eventualmente della pompa del vuoto , in altre macchine potrebbe essere pompa liquido refrigerante od altro .
    Scusami delle domande e se mi permetto di indicare alcune cose , grazie come sempre di Vostra cortesia e disponibilità

    • Livio says:

      PWM to ControlVoltage
      Qui trovi un doppio convertitore da PWM a 0..5 Volt. Se lo alimenti a 12 Volt e cambi R6 e R16 con resistori da 4200 ohm, ottieni una uscita da 0 a 10 Volt. Attenzione solo a non mandare il 12 Volt ai Pin del Master.
      https://www.theremino.com/downloads/multimedia#cv

      Cercare nel sito Theremino
      Effettivamente c’è una quantità esagerata di informazioni per cui trovarle può diventare difficile, ma ci sono due modi:
      1) La pagina “Applications” è un comodo indice. All’interno della pagina si può cercare con CTRL-F. Ho provato a cercare PWM e ci si arriva i due click.
      2) Tutte le pagine hanno la casella SEARCH. Ho provato a cercare PWM e ci si arriva con più fatica, ma ci si arriva anche da li.

      Uscite di controllo
      Theremino CNC implementa tutti i GCode che pilotano le uscite. Si possono usare uno qualunque degli Slot da 11 a 23, come indicato a pagina 39 del manuale:

      11 OUT – Spindle motor or laser (ON = 1000 / OFF = 0) – ON nelle fasi di lavoro
      12 OUT – Spindle motor speed(RPM da -99000 a +99000) – Specificato da “S”
      13 OUT – Spinde CW (ON = 1000 / OFF = 0) – M03 M13(ON) M05(OFF)
      14 OUT – Spinde CCW (ON = 1000 / OFF = 0) – M04 M14(ON) M05(OFF)
      15 OUT – Tool number (0, 1, 2, 3…) – M06(T=numero utensile)
      16 OUT – Cooling1 (ON = 1000 / OFF = 0) – M07(ON) M09(OFF)
      17 OUT – Cooling2 (ON = 1000 / OFF = 0) – M08(ON) M09(OFF)
      18 OUT – Cooling3 (ON = 1000 / OFF = 0) – M50(ON) M09(OFF)
      19 OUT – Cooling4 (ON = 1000 / OFF = 0) – M51(ON) M09(OFF)
      20 OUT – Pallet Clamp (ON = 1000 / OFF = 0) – M10(ON) M11(OFF)
      21 OUT – Orientazione del mandrino (in gradi) – M19(C=gradi)
      22 OUT – Gear speed range (1, 2, 3, 4) – M41 M42 M43 M44
      23 OUT – Abilitazione generale della macchina – M84 e Pulsante “IN OUT enable”

      E nelle nuove versioni di Theremino CNC, dalla 3.41 in poi, sono anche implementate le seguenti uscite:

      41 OUT – SlotHoldingForce Pressione di fissaggio – M142(S=pressione)
      42 OUT – SlotCoolingFans Ventole di raffreddamento – M106(ON) M107(OFF)
      43 OUT – SlotHeaterChamber Riscaldatore aria camera – M141(S=temp.)
      44 OUT – SlotHeaterPrintBed Riscaldatore piano stampa – M140(S=temp.)
      45 OUT – SlotHeaterExtruder1 Riscaldatore estrusore 1 – (Nota 1)
      46 OUT – SlotHeaterExtruder2 Riscaldatore estrusore 2 – (Nota 1)

      Quelli che vanno agli slot sono solo numeri e non sono limitati da 0 a 1000. Quindi si possono usare anche uscite che erano previste per altro. E si possono emettere numeri piccolissimi come 0.00039 o anche grandissimi (numeri interi fino a molti milioni senza nessun arrotondamento)

  20. Roberto says:

    Come sempre Livio disponibile e gentilissimo , mi era sfuggito il modulo convertitore Pwm , già avevo risolto ma non avendolo visto e pensando che poteva servire ad altri ho chiesto .
    Avevo letto nel manuale di Theremino CNC delle uscite comandate da Mcode ma pensavo a qualcosa di autonomo che non venisse gestito dal programma Gcode . Il programma Gcode è generato da altri software e ne esistono un’infinità sia dedicati a Laser per i vari tipi di lavorazioni richieste sia per altri tipi di macchine . I Gcode generati da software diversi anche per stesso tipo di lavorazione non sono sempre uguali , possono variare da software a software e dal post processore utilizzato ed a esclusione dei parametri di gestione assi ed utensili altri comandi alcune volte non li ho trovati ( ti ringrazio se mi puoi correggere su quest’idea che mi sono fatto) , ed è per questo che preferivo comandi indipendenti dal Gcode per alcuni attuatori esterni .
    Premetto che del mondo cnc sono ignorante , sto cercando di documentarmi per capire e quindi è probabile che stia dicendo anche cose sbagliate , grazie a voi e alle tantissime info che si trovano ogni giorno capisco cose nuove e molto spesso mi rendo conto che quello che credevo non era corretto .
    Grazie ancora

    • Livio says:

      Ho indicato gli slot da GCode perché parlavi di “essere attivato o ad accensione macchina o perlomeno prima di inizio lavoro” e per questo si dovrebbe usare lo slot 23 (eventualmente comandato da M84 a inizio e fine GCode). Ma anche qualunque altro comando, ad esempio i “Cooling” (Slots 16,17,18,19) potrebbero andare bene.

      Naturalmente si devono aggiungere gli M a inizio e fine GCode. Per risparmiare questo fastidio nelle prossime versioni aggiungeremo lo Slot 24, come da riga seguente:

      24 OUT – Abilitazione accessori – ON con START e OFF con STOP

  21. Roberto says:

    Scusami Livio un appunto , non potete mettere nella prima pagina dell’Help pdf la versione del software Cnc a cui è riferito , ho appena scaricato ultima versione disponibile (credo) v3.39 e nell’help ho trovato i nuovi Mcode che mi hai scritto , io stavo facendo tutte le prove con la versione 3.36 e gli Mcode erano diversi , disponibili da slot 11 a slot 21 ed ora (v 3.39 ) sono da slot 11 a 23 , prima lo slot del tool era il 13 ed ora è diventato il 15 e così altri , si rischia di impostare slot sbagliati se si usano software e manuali che non sono della stessa versione

    • Livio says:

      L’help cambia quasi tutti i giorni, gli EXE un po’ meno. I PDF hanno la data dell’ultimo aggiornamento alla fine della pagina e non possiamo cambiare versione al software ogni volta.

      C’è stato un rivoluzionamento degli slot per fare posto, ma ora non li sposteremo più. Al massimo ne aggiungeremo nei posti vuoti.

      Usando sempre l’help allegato al software non si può sbagliare. Si va sul sito, si guarda la versione del software e se è successiva alla propria, si deve riscaricare tutto quanto, e usare TUTTO della nuova versione, tranne eventualmente i propri file di configurazione.

      Forse tra qualche mese tutto si stabilizzerà. Ma ora ci sono nuove versioni ogni giorno e non sono nemmeno tutte pubblicate, qui trovi la più recente:
      https://www.theremino.com/wp-content/uploads/files/Theremino_CNC_V3.41.zip

      Capisco il disagio dovuto ai cambiamenti, ma se non si cambia non si può migliorare. Il problema è che mentre altri fanno una versione o due all’anno, noi ne facciamo anche due al giorno… Quando trovi variazioni “scomode” consolati pensando che per quella variazione noi abbiamo dovuto lavorare decine di ore, studiare come farla, modificare il software, ricompilarlo, provarlo, aggiornare i DOC, fare i PDF, aggiornare il sito…

  22. Roberto says:

    Livio , vi capisco ed ammiro il lavoro che state facendo , le mie non devono mai assolutamente essere considerate critiche ma solo notazioni , nella quantità penso che lo stesso mio problema possano averlo altri ed è per questo che lo segnalo , poi , quasi sempre è colpa mia , certe cose le considero scontate e quindi non ci faccio caso e poi ci perdo ore quando bastava rileggere una pagina .

    • Livio says:

      No problem, però non aspettarti troppo, il sistema Theremino è solo un grosso giocattolo e noi siamo quattro gatti, più di tot non possiamo fare…

      Cosa pensi del nuovo output?
      24 OUT – Abilitazione accessori – ON con START / OFF con STOP
      (era un indicazione che effettivamente mancava e grazie per averlo fatto notare)
      (dalla versione 3.42 in poi)

      Se ci vorranno altri meccanismi complessi, il posto adatto per scriverli non sarà Theremino CNC, ma software aggiuntivo, scritto dall’utente stesso a seconda delle sue esigenze, magari in Theremino Script, o in Theremino Automation, o con MaxMsp, o anche in VB6 o CSharp, o anche in VbNet per le applicazioni più complesse.

      Per avere la massima flessibiltà Theremino CNC dovrebbe fornire solo i segnali fondamentali, validi per tutte le macchine. Sarà poi il software esterno a combinare questi segnali in AND e OR, o con temporizzazioni, o leggendo i sensori e applicando controreazioni e algoritmi PID, etc…

  23. Roberto says:

    Penso che giustamente un passo alla volta stiate considerando ed aggiungendo tutto quello che possa servire per più macchine , rendendo il theremino un ottima piattaforma di partenza e sviluppo che si adatti alle più svariate esigenze . Personalmente ritengo che lo slot 24 sia una ciliegina sulla torta essendo non dedicato ed abbinabile alla singola esigenza .
    Non so se vi possa essere utile ma se dovesse servire qualche aiuto per qualsiasi cosa nel limite delle mie conoscenze e capacità lieto di poter aiutare .

  24. mirko says:

    ed eccomi tornato ora ho fatto una versione diciamo più bella dell’adattatore ramps- theremino per la stampante 3d vi mando le foto e gli schemi se volete e inizio subito a tarare motori e tutto il resto a breve magari faccio anche una guida sulla taratura e su tutto il resto se volete

    • mirko says:

      edit di mezzanotte: con i motori nessun problema ma ancora una volta col termistore è una sfida. questa volta ho pensato di leggerlo come res8 o 16 e di mettere i valori di massimo e minimo rispettivamente a 50000 e 0 così da avere come i limiti di theremino un responso sulla resistenza effettiva del termistore. idea a mio parere giusta e avrei anche usato la formula 1/T=1/T0 + [1/B * ln(R/R0)] per calcolarmi la temperatura effettiva ma facendo un paio di prove prima ho scoperto che testano una resistenza di 10k mi da quel preciso valore ma se metto ad esempio una resistenza da 47k mi ridà un valore che è sui 40000 e non riesco a capirne il motivo e se invece inserisco una resistenza da 220 mi da un valore che si avvicina a 1000. questo dipende magari dalla standardizzazione e dal filtraggio? se si c’è un modo per aggirarla oltre che fare un circuito esterno? domani provo con questa ultima soluzione e vedo come esce . grazie 1000 so che sono pesante a volte :D

      • Livio says:

        Consiglierei di usare ingressi ADC e di aggiungere un resistore a partire dal 3.3 Volt. Il valore del resistore è bene che sia adeguato a leggere valori intermedi (500) nella zona di temperature di aggiore interesse.

        Si tratta di un semplice partitore con due resistori: il termistore e il resistore che va al 3.3 Volt, alcune soluzioni sono spiegate qui:
        https://www.theremino.com/hardware/inputs/meteorology-sensors#pt1000

        Nella pagina si parla dei termistori di tipo PT1000, ma sono considearazioni generali, valide per tutti i termistori, anche NTC.

      • Livio says:

        Oggi stesso pubblicheremo Theremino CNC – Versione 4 !!!
        (la conclusione del lavoro faraonico)

        Nelle ultime pagine delle istruzioni (appendici 23, 24 e 25) ci sono le istruzioni per il controllo temperatura e i sensori da usare.

        Theremino CNC stesso, legge i sensori, interpreta i valori e li linearizza (secondo tabelle di taratura fornite dall’utente). Inoltre si occupa di pilotare i resistori di riscaldamento e mostra anche le temperature misurate dai cinque sensori (in Celsius o Fahrenheit).

        • mirko says:

          grandiiii XD grazie 1000 per tutto :D posso buttare l’arduino ora

          • Livio says:

            Theremino CNC – Versione 4.0 (nome in codice: “Lavoro Faraonico”) è finalmente disponibile:
            https://www.theremino.com/downloads/automation#cnc

            Tutte le funzioni richieste nei mesi scorsi sono implementate e anche il controllo delle temperature è completo. Ora si possono controllare, oltre alle CNC, anche le stampanti 3D e le macchine più strane, laser per incisioni, taglio polistirolo, eccetera… E anche i file di documentazione (nome in codice: “Mattoni degni della corazzata Potemkin”) sono completi, sia in italiano che in inglese.

            • mirko says:

              sto facendo la copia dei valori usando da una parte arduino e dall’altra theremino per la temperatura (non ho un termometro :C ) e mi chiedevo se in pratica il pidgain non è nientraltro che l’accensione della resistenza oppure altro

              • Livio says:

                Come hai pensato, il PidGain agisce sulla accensione della resistenza. Per la precisione determina la proporzione tra l’errore di temperatura e il valore che viene inviato allo slot di controllo del riscaldatore.

                Se si usa un hardware ON-OFF e quindi si usa uno slot di uscita di tipo DigitalOut, allora la resistenza dovrebbe accendersi quando il valore dello slot di uscita supera 500.
                Per maggiore chiarezza in questo caso si imposta PidGain molto alto (magari 10000) così appena la temperatura misurata scende sotto a quella richiesta il valore di uscita schizza a 1000. E appena sale sopra a quella richiesta, il valore di uscita va a 0. In pratica l’area proporzionale diventa talmente piccola che il controllo è “a scatto”.

                Se invece di un hardware ON-OFF si usa un hardware che scalda in modo proporzionale, allora si imposta lo slot di uscita come PMW (o fast PWM) e con PidGain si regola il moltiplicatore tra la differenza di temperatura e la differenza di valori di uscita.
                Con PidGain alto si ha maggiore precisione ma potrebbero verificarsi oscillazioni.
                Con PidGain basso si ha un controllo proporzionale più morbido, ma meno preciso.
                Un PidGain tra 100 e 1000 dovrebbe andare bene nei casi normali.

                • mirko says:

                  ok grazie 1000 ora vedo che uscita ho sulla ramps e forse faccio le prime stampe finalmente

                  • mirko says:

                    lavoro eccellente che avete fatto veramente impressionante .1 preciso fino allo smanio con quelle opzioni .2 comodissimo e veloce nel settaggio .3 una manna dal cielo per chi come me stampava senza rifermenti dato che si può azzerare come si vuole (prima dovevo metterci dai 5 ai 10 minuti ogni volta) .4 ricorda le impostazione dell’ultima volta

                    donazione obbligata da parte mia :D spero continuiate così

  25. valter procarione says:

    ciao Livio, ho intenzione di costruire il braccio robotico e pilotarlo con un tablet windows e siccome l’amperaggio della usb non è certo alto vorrei alimentarlo con accumulatori 2/3 s lipo e regolatore di tensione a 5 v.. Dove devo collegare l’alimentazione esterna sul modulo master? oppure devo necessariamente avere uno slave?

  26. Livio says:

    ciao,
    ma sei proprio Valter (ex falegname eporediese)?

    USB
    ————————————————————
    Le USB 2 dovrebbero essere tutte uguali e dare tutte 500 mA.
    Quindi proverei se un condensatore da 1000 uF è sufficiente per gli spunti dei motori
    (secondo me dovrebbe bastare)

    Braccio robotico
    ————————————————————
    Attenzione che:
    – si tratta solo di un giocattolo, utile solo per imparare i fondamenti della robotica (come abbiamo scritto ripetutamente un po’ dappertutto)
    – per riuscire a farlo muovere, in qualche modo che non sia un completo disastro, c’è da perderci molto tempo
    – poi ci vogliono mesi per imparare a regolarlo (molto difficile) e fare al massimo (ma proprio al massimo) qualche disegno che non faccia proprio pena
    – alla fine il meglio che si potrà fare è scrivere in modo tremolante su pezzetti di carta non più grandi di dieci centimetri

    Conclusione: Prima di decidere di farlo, meglio pensarci due volte. Quasi tutti gli altri progetti thereminici sono più facili da realizzare e danno più soddisfazione. Un buon elenco è in questa pagina: https://www.theremino.com/applications

    Alimentazione del Master
    ————————————————————
    Se proprio necessario, si fa come spiegato qui:
    https://www.theremino.com/blog/master-and-slaves

    Reperire materiali per il sistema Theremino
    ————————————————————
    Nel precedente messaggio ho dimenticato la frase: “Scrivere ad Alessio”
    https://www.theremino.com/contacts/about-us#alessio
    makers@theremino.com
    https://www.theremino.com/contacts/producers#hardware

    Alessio si occupa di reperire materiali e sa tutto sui componenti, come pagarli poco e dove comprarli. Inoltre spesso si occupa di fare acquisti di gruppo per appassionati, makers e hobbbisti (niente profitti). In questo modo si riescono ad acquistare materiali e KIT di componenti, che altrimenti sarebbero difficili o impossibili da reperire, come singoli pezzi.

  27. valter procarione says:

    ciao Livio, ebbene sì, sono proprio l’ex falegname, ora in terra veneta e dedito ai più svariati e insoliti macchinari industriali e non.
    mi interessa il braccio robotico perchè è una frontiera molto stimolante e piuttosto “orba” come dicono da queste parti (trad.= cieca, non comprensibile facilmente) e mi pare che voi siete l’unica spiaggia per arrivare ad un minimo di logica funzionale, quindi via con gli esperimenti.
    Non so se ricordi che sono un aereomodellista, e per me i servi sono quotidianità e pensavo che alimentando separatamente con le batterie i servi e mantenendo solo il segnale del modulo posso aggirare il problema dell’assorbimento dovuto al lavoro dei servi. Cosa ne pensi? A presto

    • Livio says:

      Ciao, sono contento di risentirti
      puoi sicuramente alimentare i servi a parte e mandargli solo i segnali. Ma probabilmente non è necessario e ti potresti risparmiare di dover caricare le batterie. Inoltre, fino a che si collega tutto alla USB, ci sono meno problemi, di disturbi sulle messe e meno rischi di friggere tutto.

      Il problema del robot-arm, fatto con i servo, è che i servo hanno una precisione limitatissima (potenziometro interno microscopico e ADC interno poco precisi). Ti puoi quindi attendere una precisione di una parte su mille (teorica) e solo dai servo migliori (i TGY930 – non ne abbiamo trovati altri altrettanto buoni)

      Ma appena sforzano un po’ (anche solo pochi grammi) la precisione scende ulteriormente, a un orribile 1%. E appena si passa a qualche decina di grammi, si va verso il 5%.

      Questo vuol dire che, se hai una corsa totale di soli 10 cm, avrai delle imprecisioni intorno al millimetro (scrivendo delicatamente, con penna morbida e ammortizzata con molla). Ma avrai errori anche di 5 millimetri, appena cercherai di fare qualcosa di minimamente utile.

      Il mio consiglio è di usare il robot-arm, con i servo, solo se vuoi per studiare il software e le tecniche della robotica (è stato progettato a quel fine). Ma di passare ai motori stepper, per qualunque applicazione di automazione seria.

      ciao
      Livio

  28. Livio says:

    Giulio ci ha scritto:
    …mi ha colpito molto la flessibilità dell’interfaccia cnc. Il software è fatto veramente bene, semplice e intuitivo. Ho dato un’occhiata alla configurazione HAL, fatta molto bene, inserirei anche la possibilità di ingressi encoder x-y-z, che farebbero comodo, se si utilizzasse un pwm, per pilotare i motori assi in DC.

    Risposta
    Controllare motori in continua con il PWM potrebbe essere più semplice del previsto.
    Si tratta solo di implementarlo nel punto giusto e ragionando in modo thereminico.
    Non complicheremo ulteriormente Theremino CNC ma, dato che il sistema Theremino è modulare e stratificato, si potrebbe interporre un Theremino PID tra Theremino CNC e Theremino HAL.

    Per ogni motore Theremino PID dovrebbe:
    – Leggere dallo Slot i millimetri impostati da Theremino CNC
    – Leggere l’encoder (Nota 1)
    – Confrontare i millimetri con il valore letto dall’encoder
    – Impostare i millimetri rimanenti, sullo Slot relativo (per il look ahead di Theremino CNC)
    – Controllare il PWM per il motore con algoritmo PID

    (Nota 1) Attenzione che gli encoder vanno letti “per i cavoli loro” cioè non con un Master e non attraverso altri moduli hardware del sistema Theremino, ma probabilmente in seriale (i moduli thereminici non leggono nulla di digitale, solo dati analogici, secondo i principi spiegati qui: https://www.theremino.com/contacts/the-theremino-mission)

    Il tutto non sarebbe molto difficile da implementare (anche con poche righe di Theremino Script) ma non aspettate noi, perché potemmo metterci anni. Attualmente siamo molto impegnati con Theremino SDR (Software Defined Radio) e appena finito SDR dovremo finire altri progetti, che attendono da fin troppo tempo.

    Theremino SDR permetterà di:
    – Ricevere le onde radio fino a 1.8 GHz.
    – Ricevere e decodificare le stazioni meteo a 433 e 966 MHz .
    – Ricevere anche le onde corte e lunghe fino a 10 KHz .
    – Ricevere le bande dei radioamatori con sensibilità soddisfacente.
    – Ricevere ogni tipo di modulazione: FM, AM, SSB e CW .
    – Fare l’analisi di spettro per misurare filtri e oscillatori in laboratorio.
    – Tutto questo spendendo meno di 10 Euro

  29. Livio says:

    Mario ci ha scritto:
    Il problema è che non conosco bene i parametri dei miei stepper. Ho reimpostato 0 e 1000. Ho usato gli stepper di un paio di DVD. Da quello che sono riuscito a trovare in rete, dovrebbero essere 20 steps/giro (tenendo conto che i driver Pololu sono impostati x il Micro Stepping) e che in una escursione di 34 mm la vite senza fine fa 13 giri. Secondo il manuale ThereminoCNC mi verrebbe circa 2048 steps/cm. Inutile dirti che così non va bene. Puoi dirmi come calcolare il valore giusto?

    Risposta

    Regolare i microstep
    ————————————————————–
    Per ogni asse:
    – Muovi con Theremino CNC di 30 mm e misuri di quanto si sposta la punta.
    – Se si sposta di 30mm sei a posto.
    – Se si sposta di più o di meno cambi gli step per mm fino a che si sposta di 30mm.

    Attenzione che sono Step per millimetro e non step per cm come hai scritto.

    Fare il conto con la calcolatrice
    ————————————————————–
    1) Girare il motore a mano, da spento, e contare i passi in un giro (forse 20).
    2) Su un driver pololu, se i tre fili sono alti, i microstep sono 16.
    3) 34 mm / 13 giri = 2.615 mm per giro.

    Quindi 20 x 16 / 2.615 = 122.37

    Consigli
    ————————————————————-
    Dato che il 34 mm e i 13 giri sono misurati a spanne
    dovrai comunque ritoccare il valore finale con la procedura spiegata all’inizio.

    Impostare i microstep a 16 va benissimo per questi motori che hanno solo 20 passi
    ma in altri casi (con motori da 200 o 400 step) è meglio abbassare i microstep a 4

  30. Livio says:

    Alcuni makers hanno avuto problemi di disturbi, su macchine che contengono alimentatori e utilizzatori con forti correnti. I difetti tipici sono errori di comunicazione, perdita della comunicazione USB e reset dei processori.

    Per risolvere questi difetti si devono imparare le regole dei cablaggi professionali, con le masse disposte “a stella”. A volte sembra poco intuitivo (si allungano e si moltiplicano i fili di massa) ma va fatto proprio così.

    Le regole sono:

    – Tra moduli di controllo e di attuazione si portano solo i segnali, non le masse.

    – Non collegare MAI masse tra due moduli (ad esempio tra il Master e il modulo RAMPS per gli stepper)

    – Ambedue le masse in questione DEVONO essere già collegate al centro delle masse (centro stella).

    – Se la massa di un qualche modulo non è collegata a niente, allora si deve collegarla, mai lasciarla aperta!

    – Ma le masse mancanti non vanno collegate “dove capita”. Vanno portate, ognuna con suo filo separato, fino al centro delle masse (centro stella).

    Con “centro stella” si intende un punto unico (solitamente vicino agli alimentatori e alla carcassa metallica del PC). Tutti i fili di massa si uniscono in questo punto, come le zampe alla testa di un polipo. I cablaggi professionali usano addirittura un blocchetto di rame, chiamato “blocco terminale”, con molte viti, concepito apposta per collegare tutti i fili di massa.

    Immagini di esempio:
    https://www.theremino.com/files/TerminalBlock1.jpg
    https://www.theremino.com/files/TerminalBlock2.jpg

    • Livio says:

      Claudio ci ha chiesto:
      Se si cabla tutto come si deve, con masse a stella, allora i foto-sccoppiatori?

      Risposta:
      Cablare le masse a stella è difficile e molti non riescono nemmeno a capire come si deve fare e perché.
      Per molti mettere più fili (creando anelli di masse) è meglio che metterne uno.

      Pochi riescono a intuire che i fili hanno una impedenza e si comportano come bobine che, in presenza di forti correnti induttive, possono creare sovratensioni di centinaia di volt.

      Per cui, per tagliare la testa al toro, si possono usare i fotoaccoppiatori.

      Separare in due blocchi
      ———————————————————————
      Con i fotoaccoppiatori si può separare completamente la logica dagli attuatori e alimentatori e cablare diventa più facile.

      Ma anche con i foto si deve cablare con cognizione, un filo di troppo può vanificare tutta la fatica di metterli.

      ……………………. SEPARAZIONE TOTALE ……….. MACCHINA
      LOGICA ………………… NESSUN FILO …………… POTENZA
      ———————————————————————————————–
      MASTER
      USB …………………. —> FOTO —> ………… MOTORI RELE’ ALIMENTATORI
      PC ………………….. < --- FOTO <--- ............ SENSORI E CONTATTI MONITOR

      Se si progetta con i foto-accoppiatori allora ci devono essere TUTTI in modo da poter mantenere completamente separate le masse dei due blocchi.

      Logica a macchina devono stare fisicamente lontani e ben separati in due blocchi visibilmente lontani con dieci centimetri di nulla tra i due.

      Nessun filo del lato logica deve passere in prossimità o peggio AFFIANCATO a fili della parte di POTENZA

      Mettere a terra i due blocchi
      ————————————————————–
      Se si progetta con i fotoaccoppiatori alla fine si deve anche controllare che sia la LOGICA che la MACCHINA siano collegate a massa, altrimenti tra le due possono svilupparsi tensioni relative molto alte,
      che potrebbero essere pericolose e causare scintillamenti.

      Quindi si controlla che gli alimentatori abbiano tutti il filo di terra, che li porta alla terra dell’impianto elettrico e si controlla che il PC abbia il filo che lo connette a terra dell’impianto elettrico.

      Può succedere, ad esempio con i Notebook, di avere tutta la parte PC isolata i Notebook hanno alimentatori con solo due poli spina di rete e sono totalmente isolati da terra.

      Se uno dei blocchi (LOGICA o MACHINA) non è a terra lo si deve collegare alla terra dell’impianto elettrico o alla massa della macchina con un unico filo. E questo unico filo di collegamento deve essere LONTANO DALLA LOGICA cioè nella zona alimentatori del PC e della macchina.

Leave a Reply

Your email address will not be published.