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. Italo Driussi says:

    Sto usando theremino su una proxxon 70 con ottimi risultati.
    Ho acquistato una cnc cinese 3040 (e in arrivo) la sua elettronica di potenza e fatta per il mach3 e da quello che ho capito leggendo il manuale e confrontando con schede simile il segnale step e’ invertito, attivo basso.

    Esiste qualche settaggio di theremino per adattarlo, oppure posso invertire il segnale con un 74ls04.

    Grazie

    • Livio says:

      Il segnale Step generato dal master è stato curato con attenzione nel firmware in modo da poter funzionare anche su driver che ragionano al contrario. Non dovrebbero quindi verificarsi perdite di passi e nessun altro malfunzionamento.
      Inoltre il nostro collaboratore Leo, che vive a Shenzen (cina) ha provato il funzionamento su una 3040 e finora non ha riscontrato problemi.
      Quindi, per mantenere la massima semplicità possibile, non abbiamo previsto controlli per invertire i segnali. Nel caso si volesse invertirli si dovrebbe farlo in hardware con un inverter, oppure collegando il positivo dei LED di ingresso dei fotoaccoppiatori (su macchine che li hanno) al 3.3 Volt e il negativo alla uscita del Master.

      • Italo Driussi says:

        Grazie
        Appena mi arriva faccio delle prove e vi sapro’ dire.
        Male che vada acquistero’ una nuova elettronica di potenza a theremino cnc non ci rinuncio.

        • Livio says:

          Funzionerà di sicuro. Al massimo, se proprio necessario e non si riesce a invertire il segnale collegando i foto accoppiatori al positivo, allora si possono inserire degli inverter, come giustamente hai suggerito.

  2. mirko says:

    salve vorrei proporre un idea, ora che ho visto il funzionamento del programma point follower. se si utilizza il valore ottenuto dallo sfasamento lungo l’asse orizzontale di un indicatore laser si possono anche misurare le distanze facendo un breve calcolo. si usa lo stesso principio dei lidar, anche se molto più lentamente a causa del refresh della webcam

    • Livio says:

      Si, funzionerebbe.
      Abbiamo già valutato questa possibilità ma non la abbiamo mai provata perché facendo i calcoli si scopre che la precisione ottenibile è scarsa.
      Comunque potresti provare e poi scriverci che caratteristiche riesci a raggiungere.

  3. mirko trinca colonel says:

    salve sto usando felicemente theremino con theremino cnc per far funzionare la mia cnc. ci sono solo un paio di cose che mi sfuggono: se fermo la lavorazione e anche il pc per riprendere il giorno dopo devo segnarmi la linea del gcode a cui sono arrivato e poi il giorno seguente ricercarla per poi farla ripartire da li. esiste un modo più veloce come un salvare la posizione in automatico o una sorta di ricerca per numero di linea del gcode? grazie in anticipo. Ah comunque lavoro perfetto il vostro ho fatto una lavorazione molto lunga (circa 30 ore in tutto) con cam 3d e cambi utensili in più giornate e non ha mai sbagliato di un millimetro

    • Livio says:

      Quello che stai facendo è sorprendente. Spezzare una lavorazione su più giorni non era previsto. Si pensava al massimo di poter rifare lo stesso pezzo il giorno dopo senza rifare gli azzeramenti, quindi la linea non viene ripristinata.

      Se il tuo GCode ha il numeri di linea puoi ritrovare la linea con:
      – Tasto destro sul GCode
      – Find and replace
      – Find nnnn (dove nnnn è il numero di linea)

      Se fermi la lavorazione ad un cambio utensile potresti ritrovare la linea con:
      – Tasto destro sul GCode
      – Find and replace
      – Find M06
      – Find Next fino a che arrivi alla linea giusta

      Se modifichi qualcosa per sbaglio nel GCode, fai molti undo con CTRL-Z fino a che sparisce la scritta “Modified” dal titolo della finestra del GCode

      Fai comunque attenzione, quando riparti da punti casuali, che il primo movimento parta dall’alto, per non rigare il pezzo o rompere punte.

      Se non bastano questi metodi scrivici di nuovo e vedremo, se possibile, di aggiungere il ripristino della linea nelle prossime versioni.

      • mirko trinca colonel says:

        ecco cosa mi mancava :D il tasto destro. grazie 1000. comunque non ho fatto nulla di speciale il fatto è che theremino non perde passi e nemmeno la posizione, poi la meccanica che ho preso da creostamp fa la sua con viti a ricircolo e guide su pattini si viaggia che è una bellezza

  4. mirko says:

    salve sono sempre io il rompiballe del quartiere :D. Di recente sto usando molto spesso la cnc e faccio macinare i gcode da theremino uno dietro l’altro. sto anche cercando di far andare sempre più veloce il sistema e facendo qualche prova sto notando che il sistema di controllo della traiettoia di theremino cnc è molto più preciso e veloce di quello che attualmente uso su Autodesk Fusion 360(un ottimo programma sotto ogni punto devo dire e in + free … consigliatissimo) dato che quello di theremino gestisce anche le accellerazioni. l’unica cosa è che theremino cnc non mi sembra far distinzioni fra il feed in orizzontale e quello in verticale e questo porta le frese che uso ad essere stressate un poco. mi chiedevo se c’era modo di separare i due tipi di feed oppure se c’è una qualche scappatoia tipo di limitare la max velocità da theremino master. grazie 1000 in anticipo :D

    • Livio says:

      Se muovi gli assi contemporaneamente allora il Feed si riferisce al movimento combinato (velocità lungo la diagonale che viene percorsa). Di conseguenza l’asse che fa un percorso maggiore andrà più veloce e l’altro andrà più piano. Se il feed è troppo per le frese e il materiale che usi, basta abbassarlo. Lo si deve impostare nel GCode, non nell’HAL o nel Feed manuale. Il cam può preparare il GCode cambiando Feed in qualunque momento della lavorazione.

      Se muovi un asse per volta puoi far precedere ogni movimento da un Feed diverso, e anche in questo caso si parla di Feed nel GCode.

      Theremino CNC fa quello che gli dice il GCode e gestisce il comando Gcode di Feed esattamente come ogni altro CNC.

      Le velocità di Feed vanno scritte nel GCode, il campo Feed che si regola manualmente serve solo per fare prove manuali.

  5. Livio says:

    Ferdinando ci ha scritto
    Su alcune macchine, non su tutte, ho notato un comportamento strano come se venissero saltate delle righe di programma durante lettura di codici G002/03. Se ripeto la lavorazione, l’errore risulta sempre uguale.

    Risposte

    Saltare linee di programma
    ———————————————————————————————
    Quasi certamente il difetto che hai riscontrato non era dovuto ai G02 e G03 ma alla mancanza del prefisso G02 o G03 a inizio riga.

    Nelle versioni passate se non venivano ripetuti i codici G02 G03 in tutte le righe si verificavano dei difetti. Le G01 non ne risentivano di questo problema me le G02/G03 senza codice venivano eseguite come se fossero delle G01. Nelle ultime versioni (4.4 e 4.6) questi errori sono eliminati. Ma ugualmente è buona pratica iniziare tutte le righe con il loro codice G.

    Per spiegarmi meglio, le righe seguenti:
    G01 Z-5.825
    X105.996 Y22.525
    G02 X94.972 Y.335 I-76.369 J56.873
    X104.896 Y21.69 I-34.014 J43.69

    andrebbero corrette con:
    G01 Z-5.825
    G01 X105.996 Y22.525
    G02 X94.972 Y.335 I-76.369 J56.873
    G02 X104.896 Y21.69 I-34.014 J43.69

    La mancanza del G02 all’inizio della quarta riga poteva, nelle versioni passate, causare un difetto apparentemente attribuibile al G02.

    Tagliare le curve
    ———————————————————————————————
    Per come funziona Theremino CNC saltare righe di GCode è impossibile, ma potrebbe verificarsi un comportamento di tipo “tagliare le curve”, e quindi simile al saltare righe, determinato da una incomprensione su come si devono impostare Rapid e Feed.

    E’ essenziale non impostare mai “Rapid” o “Feed” (anche nel Gcode) maggiori di quelli sopportabili dai motori e che sono scritti nel parametro Max Speed dell’HAL. Se si supera questo valore l’HAL protegge ugualmente i motori dal perdere passi, ma la punta potrebbe arrivare in ritardo alla destinazione e quindi essere costretta a tagliare le curve e saltare pezzi di lavorazione. Se si sbaglia di molto si potrebbero anche rompere utensili e rovinare il pezzo.

    Un ulteriore difetto derivante da una errata impostazione di “Rapid” è che joggando manualmente la fresa continua a muoversi per un certo tempo anche dopo aver rilasciato i tasti. Anche in questo caso c’è il pericolo di collisioni e di rompere utensili. Se si jogga a lungo quando ci si ferma la punta è rimasta così indietro che non si ferma più e va a sbattere da qualche parte.

    Non impostare mai “Rapid” o “Feed” maggiori di “Max Speed” è scritto dappertutto ma può capitare di non leggerlo o di sottovalutarne l’importanza.

    Macchine con motori piccoli e grande massa
    ———————————————————————————————
    Gli errori di percorso possono essere causati anche da motori con accelerazione molto bassa rispetto alla velocità massima. Se nell’HAL il valore MaxSpeed è maggiore di dieci volte il valore MaxAcc allora è bene fare attenzione a questo aspetto.

    Leggere nelle istruzioni di Theremino CNC le note che riguardano “Options” / “Compensate acceleration effects” (pagine 26 e 65 nelle ultime versioni delle istruzioni da ottobre 2016 in poi).

  6. Roberto says:

    Vorrei poter usare dei motori step controllandoli con il theremino. In particolare controllare del motore posizione, velocità, accelerazione. Ad esempio poter far seguire allo step un segnale spazio tempo di tipo sinusoidale (anche la velocità varia sinusoidalmente in modo continuo). Come posso fare? Se ad esempio collego un servo motore sullo slot 1 pilotato con l’applicazione WaveGenerator questo si muove di moto rotatorio alternato come vorrei riuscire a pilotare lo step. Dovrei poter variare la frequenza di alimentazione delle bobine dello step in modo continuo. Con gli slot riesco solo a dare una destinazione finale da raggiungersi a velocità costante dopo la rampa di accelerazione. Inoltre al valore di velocità ed accelerazione degli slot non si arriva da altra applicazione.

    • Livio says:

      Collega il motore stepper e pilotalo con WaveGenerator attraverso uno Slot. Vedrai che si muoverà esattamente come se fosse un servo, con velocità “sinusoidalmente variabile in modo continuo” come hai scritto. Nessun bisogno di variare la “frequenza di alimentazione delle bobine”, pensa a tutto l’HAL.

      Per ottenere questo però devi regolare tutti i parametri correttamente, se non riesci scrivici a engineering@theremino.com e ti aiuteremo telefonicamente a capire come si fa.

      Per muovere uno stepper in maniera controllata non si devono cambiare la MaxAcc e la MaxSpeed dell’HAL. Quei parametri sono solo dei massimi di sicurezza per evitare che lo stepper possa perdere passi. Sono parametri da regolare una volta per tutte su un certo motore e da non cambiare più.

      E qui tu chiederai:
      “Come posso rallentare il movimento se non diminuisco questi parametri”?

      Risposta:
      Per muovere uno stepper (ma anche un servo) in maniera controllata, a qualunque velocità, anche bassissima e con qualunque accelerazione da zero a MaxAcc lo si “tiene al guinzaglio” e si continua a inviargli nuove destinazioni (in millimetri) molto frequentemente (almeno cinquanta volte al secondo ma meglio se oltre cento).

      Se le nuove destinazioni sono vicine una all’altra la velocità di movimento è bassa, poi man mano che si danno destinazioni più lontane una dall’altra si può aumentare la velocità e la accelerazione.

      Se si esagera e si superano la massima velocità o la massima accelerazione (cosa che non si dovrebbe mai fare) allora il servo viene protetto dall’HAL, non perde passi ma resta indietro e non segue più il percorso che si vorrebbe fargli fare. In questi casi il guinzaglio si allunga come un elastico e il servo inizia a tagliare le curve cercando sempre di venirti dietro.

      Questo è il modo con cui funziona Theremino CNC. il quale guida i servo a tutte le velocità e accelerazioni possibili da zero fino alle MaxSpeed e MaxAcc scritte nell’HAL.

      Naturalmente fare queste cose in un proprio software richiede capacità di programmazione adeguate, saper usare i timer e i thread e anche saper trattare i numeri con virgola mobile e fare i calcoli giusti per determinare di continuo le nuova destinazioni (in millimetri o gradi) da inviare allo slot che controlla il motore stepper.

      Tutte queste considerazioni sono esattamente le stesse anche se si tratta di muovere i servo. Anche i servo, se non li muovi un passetto alla volta, schizzano alla destinazione finale con la massima accelerazione e velocità che riescono a produrre.

  7. Livio says:

    Ferdinando ci ha scritto:
    Alcuni amici che hanno frese cnc homemade, mi dicono che Theremino cnc è ottimo, ma che se avesse la possibilità del recuperare il backlasch sarebbe perfetto, perché nelle meccaniche fatte in casa, il gioco è sempre presente, e con pochi mezzi a disposizione, è difficile toglierlo meccanicamente.

    Risposta:
    La Proxxon che usiamo qui in laboratorio non è certo una macchina di precisione, ha i “lardoni” (guide a coda di rondine) che ciloccano se li lasci molli e che si inchiodano se li stringi troppo.

    Anni fa, quando usavamo ancora Mach3, abbiamo provato a lungo a correggere il backlash. E correggi da un lato, e peggiora dall’altro, venivano sempre stampati con le piste tutte sfrangiate.

    La soluzione è stata di assestare un po’ meglio la meccanica e ora con Theremino CNC e senza nessuna correzione vengono stampati come da immagini pubblicate.

    La compensazione del backlalash “non può superare i problemi con la macchina in taglio continuo” (come scritto nel manuale di Mach3) ma solo in particolari situazioni.

    In altre parole aggiusti in certi punti della lavorazione ma peggiori in altri punti. Inoltre si creano altri difetti, come spiegato a pagina 37 del manuale di Theremino CNC.

    Quindi il non voler aggiungere la compensazione del backlash non è per risparmiare lavoro (sarebbe facilissimo implementarlo) ma per evitare agli utenti inutili tentativi, con apparenti miglioramenti in certi casi per poi scoprire di aver peggiorato altre lavorazioni e in definitiva molte perdite di tempo senza nessun miglioramento reale.

    Lo stesso tempo sarebbe meglio impiegato per migliorare un po’ la meccanica.

  8. Giuseppe Pederzolli says:

    Salve Livio, complimenti ancora per Theremino CNC va che è una meraviglia. Devo ancora prendere confidenza con alcuni parametri, ma è tutto molto preciso e funzionale. La mia fantasia però mi spinge sempre verso cose che conosco poco…pertanto una domanda: sono molto incuriosito dalle performance dei robot (o stampanti che usano la stessa meccanica) tipo Delta (con le tre colonne a 120 gradi…oppure a bracci oscillanti)…..per fare quello con Theremino CNC bisogna riscrivere il firmware vero? Immagino sia un lavoro lungo e difficile ma che si affiancherebbe a altri progetti che avete già pubblicato tipo il riconoscimento visuale….
    Scusa la domanda…ancora grazie di quello che fate
    Giuseppe

    • Livio says:

      Il firmware, che si trova dentro ai moduli Master, va già bene come è ora e potrebbe guidare macchine con qualunque struttura (Cartesiane come le solite frese, Delta come i ragni che arrivano dall’alto e anche Scara come i bracci dei granchi).

      E oltre al firmware anche il software (Theremino CNC) sarebbe in grado di eseguire correttamente GCode creati per macchine Delta o Scara. basta creare questi Gcode con un CAM configurato per la macchina specifica che si vuole guidare (molto più difficile però rispetto a una cartesiana con assi paralleli).

      L’unica parte che non abbiamo ancora implementato, e che non credo implementeremo dato l’esiguo numero di utenti che hanno macchine Delta o Scara, è la visualizzazione del GCode per macchine diverse dalle cartesiane. E in questo sarebbero da includere anche le macchine per il taglio polistirolo.

      Detto in altre parole: anche senza visualizzazione, che si può fare benissimo nel CAM, la lavorazione viene perfetta per ogni tipologia di macchine.

  9. Vincenzo says:

    Salve, sto per iniziare la costruzione di una CNC che ha nel progetto stepper con formato nema23 e disponendo già dei moduli dvr8825 e master V4 avrei bisogno di capire quali motori comprare. Area di lavoro di 80cm x 55cm circa.
    Posso pilotare anche motori che richiedano più ampere?
    Eventualmente ci sono tabelle che rappresentino ideali abbinamenti?
    Grazie infinite.

    Vincenzo.

    • Livio says:

      Non ci sono tabelle che conosco ma non c’è molto da calcolare.

      Consigliabile mettere una ventola sopra ai DRV8825 che li raffredda tutti insieme con aria fredda dall’alto e naturalmente dotarli di dissipatore. In queste condizioni si possono regolare i driver fino a due ampere e avere ancora un certo margine.

      Ma questo non vuol dire che si debbano usare motori da due ampere, se possibile sarebbe meglio metterli anche da tre o quattro ampere e utilizzarli, come si dovrebbe sempre fare, non al massimo della corrente sopportabile,

      Però, e questo può deciderlo solo chi conosce la specifica fresa e i suoi attriti, si potrebbero anche usare motori più piccoli, ad esempio da uno e mezzo o due ampere. E pilotarli poi con 700 mA o 1 A al massimo (sempre circa metà della corrente massima).

      In altre parole tutti i motori vanno bene ma la velocità massima raggiungibile non sarà la stessa e non è possibile calcolarla a priori, solo l’esperienza con la specifica macchina può arrivare a definire se serve più potenza o magari motori con meno potenza (meno corrente) ma in compenso con una velocità massima maggiore.

      • Vincenzo says:

        Salve Livio, nel ringraziarti anticipatamente avrei bisogno di un aiutino. Devo realizzare il circuito Pwm to CV che monta l’integrato lmc6482. Dalle mie parti non si trova e non trovo quale sia un eventuale equivalente. Cosa posso utilizzare? Ci sono “PWM to CV”già realizzati ed in commercio? Dovrò pilotare un elettromandrino con inverter.
        Grazie.
        Vincenzo

        • Livio says:

          Per pilotare un motore non c’è bisogno del PwmToCv con alta velocità di risposta e basso rumore (filtri del quarto ordine) come per la musica. Ma basta un filtro semplice, con un resistore in serie al segnale seguito da un condensatore verso massa. Come indicato nei tre primi schemi che si vedono qui: https://www.theremino.com/hardware/adapters#pwm

          Sarebbe anche utile aggiungere un fotoaccoppiatore subito alla uscita del Master e prima di ogni filtro, ma attenzione che ci vuole un fotoaccoppiatore molto veloce (frazioni di microsecondo), ad esempio un 6N137 che è facile da trovare e costa poco.

          Con un foto-accoppiatore si dovrebbe poi disporre di una tensione da 5 Volt dal lato motore (non è possibile usare quella del Master altrimenti si rovina l’isolamento tra master e motore che è l’unico motivo per cui si aggiunge un foto-accoppiatore).

          Infine il tutto andrà coordinato con l’effettivo circuito di pilotaggio del motore. E qui tutto cambia a seconda se il motore va a 220 volt o a tensione continua. Se ci fosse già un foto-accoppiamento nel circuito di pilotaggio del motore allora il foto-accoppiatore sarebbe inutile.

          In tutti i casi attenzione a non unire le masse per mezzo dei cavetti che portano il segnale. Se si devono unire masse di grosse apparecchiature tra loro (ad esempio motori e computer) si devono usare tecniche professionali di “masse a stella”. Tutte le masse unite in un punto comune (il centro stella) collegato a sua volta alla terra dell’impianto elettrico.

          Mai si devono utilizzare i cavetti di segnale per collegare la massa di un grosso dispositivo (come un motore) alla massa del Master, la quale poi attraverso il debole cavetto USB va al computer.

          Fare collegamenti di massa approssimativi può far perdere la comunicazione USB, durante lo spunto del motore o di altri grossi carichi della macchina. Se questo succede si rovina il pezzo e poi si deve premere “Recognize” sull’HAL per ripartire.

          Se non riesci scrivici e ti aiuteremo a mettere a punto lo schema specifico per il tuo caso.

          • vincenzo says:

            Buongiorno, per pilotare un inverter con 0-10v ed ottenere la variazione di velocità dell’elettromandrino direttamente da software mi era sembrato di capire che il citato circuito potrebbe trasformare i o-3,3v a 0-10v necessari. oppure ho capito male?
            Buon lavoro
            Vincenzo

            • Livio says:

              Hai capito giusto. Il circuito PwmToCv può generare una tensione da 0..10 volt, alimentandolo a 12 Volt e modificandolo come spiegato.

              Ma, sempre a patto di disporre del 12 volt. allora si potrebbe utilizzare lo schema “Da Pwm o FastPwm a 5 Volt” che si trova in questa sezione: https://www.theremino.com/hardware/adapters#pwm

              Questo schema non usa lo LMC6482 ma due semplici transistor facili da trovare ed è così semplice da poter essere montato su un pezzetto di millefori in dieci minuti.

              Per ottener la escursione da 0 a 10 volt si deve scollegare il filo che va dall’emettitore del transistor BC557 al 5 Volt del Master e collegarlo a un alimentatore da 10 volt.

              Oppure si potrebbe collegarlo a un alimentatore da 12 Volt aggiungendo un resistore da 39 ohm in serie al collettore del transistor BC557, il quale farà cadere i due volt di troppo e regolerà l’uscita esattamente da 0 a 10 volt.

              Volendo una maggiore velocità di risposta e un minore rumore, si potrebbe pilotarlo con una uscita FastPWM regolata a 15 KHz, cambiare C1 da 100 uF a 10uF e (ma solo se si vuole ottenere la massima linearità fino a zero volt) aggiungere anche un resistore da 100 ohm tra base e emettitore del transistor BC557.

              Appena possibile pubblicheremo gli schemi anche per queste versioni.

              • Vincenzo says:

                grazie.

                dimenticavo… ma quando saranno in commercio i Master v5?

                risultano non disponibili al momento.

                • Livio says:

                  I Master sono già in viaggio dalla Cina e li hanno spediti con un corriere veloce. Credo che in una settimana si ristabilirà il normale funzionamento del sito ThereminoStore (che lo ricordiamo è gestito dai cinesi mentre noi siamo del tutto no-profit). Nel mese passato hanno avuto molti problemi speriamo che non gli succeda mai più un periodo così scarognato.

                  Attenzione che abbiamo aggiunto alcune righe al messaggio precedente…

                • Livio says:

                  Abbiamo aggiunto gli schemi per convertire le uscite Pwm_16 e Fast_Pwm in tensione 0..10 volt.
                  https://www.theremino.com/hardware/adapters#pwm16to010
                  https://www.theremino.com/hardware/adapters#fastpwmto010

                  • Vincenzo says:

                    Eccomi, soprattutto per ringraziare all’infinito.
                    Fra mille difficoltà meccaniche appena ho qualche minuto, gioco con i master. Domanda: ma come si devono collegare più master affinché uno dei due diventi slave? Oppure occorre una connessione USB per ognuno di essi?
                    Grazie.

                    • Livio says:

                      Occorre una connessione USB per ogni Master. Puoi usare un qualunque HUB USB. Abbiamo provato sia con gl HUB USB2 che con gli USB3 e anni fa anche con gli USB1 e hanno sempre funzionato bene. C’è chi usa anche otto Master e sono sempre risultati affidabili.

  10. Giuseppe says:

    Salve Livio, scusa se sono sempre qui a chiedere informazioni. Sempre in merito alla questione di pilotare con Theremino cnc un robot delta ….(tu mi avevi consigliato di trovare un cam in grado di generare gcode adatti al delta). Ho visto che tra le configurazioni di Theremino Arm c’è anche la Delta e la domande sarebbero queste:
    1) potrebbe essere il software adatto per estrapolare i gcode?
    2) sarebbe possibile interfacciarlo con Theremino cnc?
    3) forse mi è sfuggito qualcosa (anzi …di sicuro) ma ho visto le descrizioni che si riferiscono solo al braccio robotico….e non alle possibilità della configurazione Delta
    Grazie ancora
    Giuseppe

    • Livio says:

      1) potrebbe essere il software adatto per estrapolare i gcode?
      Theremino Arm esegue i GCode, non li crea.

      2) sarebbe possibile interfacciarlo con Theremino cnc?
      Non è possibile interfacciarlo perché Theremino ARM è un CNC lui stesso e quindi sostituisce del tutto Theremino CNC.
      Forse però intendevi interfacciarlo con il Theremino Master che poi va a muovere dei motori Stepper al posto che muovere dei Servo. E questo è teoricamente possibile. Nessuno lo ha ancora fatto ma si tratta solo di far corrispondere gli “Step Per Millimetro” sull’HAL con quello che è la meccanica, e poi considerarli StepPerGrado. Si tratta solo di fare in modo che alla fine di tutto, demoltiplicazioni meccaniche comprese, 90 gradi software corrispondano a 90 gradi hardware.

      3) forse mi è sfuggito qualcosa (anzi …di sicuro) ma ho visto le descrizioni che si riferiscono solo al braccio robotico….e non alle possibilità della configurazione Delta
      Se vai sul Robot Arm in alto c’è una finestrina di selezione e li si cambia da Articolato a Scara, Delta e Cartesiano. Non ci sono istruzioni, solo una immagine nella cartella “Docs” con i nomi degli assi “Delta_Names.jpg” e un file che spiega il significato dei parametri “Delta_Names.txt”.

  11. Livio says:

    Daniele ci ha chiesto:
    Nel caso che metto una condizione IF, tipo se c’è uno scarto vai a tal punto è prendi il pezzo, ma non subito, dopo per esempio 4 volte, come se contasse. Per essere più chiaro dal collaudo allo scarico del pezzo la tavola rotante fa altre 4 fermate. Quindi dalla partenza il primo e buono il secondo e scarto il terzo e buono. Diciamo che dopo la macchina che collauda mi ha dato uno scarto il braccio lo prende e poi quando si è allontanato da un segnale pulito come uno microswich, non so se mi sono spiegato, per dare un input.

    Risposta
    Prima di poter programmare una procedura si deve scriverla o immaginarla mentalmente con precisione. Imparare a programmare non è facile, ci vogliono anni prima di iniziare a scrivere software decente. Per poi scriverlo davvero bene ci vogliono decenni di esperienza.

    Solo per dare una idea, la domanda iniziale diventerebbe qualcosa come le linee seguenti:
    Variabile1 = 0
    IF LeggiSlotScarto > 500
    Variabile1 = Variabile1 +1
    IF Variabile1 > 4
    ScriviSlotX 120
    ScriviSlotY 150
    Gosub PrendiPezzo

    Questo pezzo di programma è scritto in italiano per capirci facilmente, ma va ri-scritto con le istruzioni del linguaggio di programmazione che si usa (Theremino Automation / Theremino Script / VbNet / CSharp )

    Ma prima di iniziare si deve scriverlo (o immaginarlo mentalmente) con precisione, con frase italiane tipo:
    1) se accade questo allora incremento il contatore
    2) se il contatore supera 4 allora faccio quest’altro
    3) altrimenti torno al punto (1)
    e così via…

    Se il problema è ben funzionante a parole, allora funzionerà anche nel programma, altrimenti sarà impossibile tradurlo in un software. Questa fase preliminare si chiama “analisi”.

    Senza esperienza è molto difficile scrivere procedure complesse, che siano qualcosa di più di “accendi un led /attendi 10 secondi / spegni il led”.

    Si possono iniziare a imparare le basi della programmazione esplorando uno per uno tutti gli esempi che sono nelle cartelle di Theremino Automation. Si possono quindi fare esperimenti con questi esempi e con lo SlotViewer ma sempre ricordando che sono solo semplici basi. Procedure di automazione complesse richiedono per forza di passare a linguaggi più potenti.

    La domanda iniziale è già complessa al punto che sarebbe meglio usare VbNet (con VisualStudio 2008).

  12. Livio says:

    Luca ci ha scritto:
    Alcuni mesi fa ho costruito una fresa controllata dal Theremino Master. Le cose vanno molto bene, soprattutto con l’ultima versione del Theremino CNC, con la compensazione delle basse accelerazioni. Ora vorrei accendere l’elettromandrino e l’aspirazione da programma e ho preso due relè a stato solido pilotabili con 3-32 V DC.

    Ho due domande:
    1- posso collegare direttamente il relè al master( il pin al + e GND al – ) o serve qualcos’altro?
    2-posso comandare due relè con un solo Pin, semplicemente sdoppiando il segnale?

    Risposta:
    Si possono collegare i relè direttamente al Master
    – Signal al + del relè
    – GND al – del relè

    Se i relè commutano con 3 Volt allora hanno un margine di 0.3 volt (dai 3.3 volt teorici del Master). E’ poco ma gli basta di sicuro, perché se li danno da 3 volt allora vanno sicuramente anche a 2.5 volt, e quindi hanno quasi un volt di margine.

    Quasi sicuramente se ne possono collegarne anche due in parallelo. Si potrebbe dirlo con sicurezza solo conoscendo la corrente che i relè assorbono con circa 3 Volt di alimentazione.

    Per essere sicuri si dovrebbe provare a collegarne due in parallelo, accendere l’uscita del Master, e poi misurare la tensione che il Master riesce a inviare ai due relè in parallelo.
    Se questa tensione è almeno 3 volt allora non ci sono problemi. Altrimenti si potrebbe riprovare usando una uscita da 7 a 12 (che non hanno il resistore da 100 ohm in serie e quindi danno una tensione leggermente maggiore a parità di corrente assorbita).

    Se in nessun caso si riesce ad arrivare a tre volt con due relè sullo stesso Pin, allora sarebbe meglio collegarli a due Pin diversi e poi unire i Pin, impostandoli con lo stesso Slot nel Theremino HAL.

  13. Livio says:

    Daniele ci ha scritto
    Sto provando a utilizzare VbNet con Visual Studio 2008 ma è complicato iniziare. Con Theremino Automation riesco a fare una buona parte di quello che mi serve… La versione script quante funzioni in più avrebbe? Quali sono le differenze maggiori tra Theremino Script e Theremino Automation?

    Risposta
    Theremino Script è una via di mezzo tra Automation e VisualStudio.

    Con Theremino Script puoi fare tutto quello che si farebbe con Visual Studio, hai la completa potenza e tutte le funzioni di VbNet. Però scrivi tutto in un solo file e se questo all’inizio semplifica l’apprendimento, alcune operazioni diventano poi molto più difficili che con il Visual Studio vero.

    Ecco una lista delle difficoltà di Theremino Script:
    – Fare la finestra che comunica con l’utente è difficile. Si deve essere degli esperti per sapere quali controlli usare (pulsanti, caselle di testo ecc..) e come scriverli, mentre con Visual Studio lo faresti graficamente e ti aiuterebbe lui a impostarli.
    – I suggerimenti per le funzioni sono molto limitati e a volte fuorvianti
    – Non puoi seguire l’evoluzione del programma (come facevi con Automation) e nemmeno puoi aggiungere punti di controllo (break point) e esplorare il valore delle variabili come invece potresti fare con VisualStudio.
    – L’editor è limitato e molto più lento di quello di Visual Studio.

    Comunque Theremino Script è di molto più potente di Theremino Automation. Eventualmente prova a usarlo, contiene molti esempi già pronti da cui partire.

    Un differenza importante da Automation è che Theremino Script può anche produrre vere applicazioni. Cioè file eseguibili (.exe) che possono poi essere avviati facendoci doppio click sopra, anche senza aprire la applicazione Theremino Script.

  14. Gianni says:

    Buon giorno Livio,
    ho visto la vostra scheda Theremino StepperDriver, che supporta due diversi driver.
    Non riesco a trovare da nessuna parte sul vostro portale come collegare il master alla scheda stepper driver, per installare i driver DVR8825 o il A4988 visto che sono differenti come layaout, li installo
    indifferentemente?
    Scusa se sono domande banali ma non ho molta dimestichezza con l’elettronica.
    Grazie
    Gianni

    • Livio says:

      Non sono domande banali, anzi grazie di averci fatto notare questa mancanza.
      Abbiamo aggiunto una immagine che spiega come posizionare i driver:
      https://www.theremino.com/hardware/adapters#stepperdriver

      Riguardo ai collegamenti devi semplicemente collegare la massa del Master con quella della scheda driver con cavetti Dupont femmina-femmina. Quindi GND del Master con Gnd-IN della scheda drivers. Per sicurezza ti consiglio di collegare le masse con almeno due o tre cavetti femmina-femmina.

      Poi, per ogni motore collegherai due cavetti Dupont femmina-femmina tra i SIGNAL del Master e DIR e STEP della scheda drivers.

      Ecco come collegare il primo motore:
      Master Pin1 SIG < ---> Driver1 STEP
      Master Pin2 SIG < ---> Driver1 DIR
      Gli altri motori si collegano nello stesso modo ma con i Pins 3-4, 5-6, 7-8 e 9-10.

      Puoi trovare altre utili informazioni qui:
      https://www.theremino.com/hardware/outputs/motors

  15. Gianni says:

    Grazie 1000
    Gianni

  16. Marco says:

    Caro Livio, Ti disturbo ancora perché ho sostituito la mia vecchia macchina cnc autocostruita con una molto più compatta e, dai primi test, più precisa. Vengo al punto: ho installato un nuovo motore per le frese, un classico dalla Cina da 400W 48V diametro 52mm. Insieme al motore è arrivato un regolatore di velocità relativamente “sofisticato” che può essere pilotato con un potenziometro oppure tramite un connettore “PWM” (siglato Mach3). Il problema che non sono riuscito a risolvere è che il motore non arriva al massimo numero di giri usando l’ingresso PWM collegato a Theremino, paragonato ad orecchio con la velocità ottenibile tramite il potenziometro. Ho provato a pasticciare con i valori dello slot, sia in modo PWM che PWM_fast ma la velocità massima è sempre la stessa, sensibilmente minore di quella possibile. Può essere un limite del circuito del controller o sono io che non riesco a regolare lo slot per avere un duty cicle “continuo” e arrivare al massimo delle prestazioni? Di seguito gli unici dati che ho recuperato sul controller. Grazie!

    1: Default potentiometer control (5K-100K),defaults 10K;

    2: MACH3 -PWM speed control signal input, external PWM input requirements: level 3.5-12V VPP, frequency 1K-10KHZ, suitable for MACH3 spindle speed control.

    3. Rated current: 10A, overload and short circuit protection current 12A. (Over-current cut output, overcurrent indicator flashes, the potential light is off, overcurrent lift).

    4.soft-start function. Prevent excessive current caused by the motor and power damage (default 0 seconds soft start), 0-5 seconds adjustable.

    5.Control power: 12V120W, 24V240W, 36V360W, 48V480W, 60V600W

    6.Pulse width modulation range: 0% -100%

    • Livio says:

      Dato che vuole una frequenza da 1 kHz a 10 kHz dovresti usare il PwmFast e regolarlo da 2 a 5 kHz

      Poi semplicemente metti il “Value” dell Slot del Pwm al massimo (di solito 1000) e il Master emetterà il massimo del tempo, cioè un segnale sempre a 3.3 volt. Se vuoi puoi controllare con un oscilloscopio ma sono certo che è così.

      Se non hai un’oscilloscopio puoi misurare con un tester e quando arrivi al massimo dovrebbe uscire un 3.3 volt fisso.

      Loro però scrivono da 3.5 a 12 volt.
      Non sono sicuro che il 3.5 gli sia proprio necessario ma forse il problema è quello.
      Per verificarlo prova a inviargli un 5 volt fisso e vedere se gira al massimo.
      E poi un 3.3 volt fisso e vedere come gira.

  17. Marco says:

    Grazie per i suggerimenti! Mandando all’ingresso Pwm del controller 3.3V il motore non gira al massimo. A 5V invece gira al 98% (a orecchio…).
    Ho provato con un alimentatore a voltaggio variabile e con quello ho potuto controllare la velocità del motore da zero al max.
    Sto già costruendo l’adattatore da Pwm a 0..5V come da vostri progetti e se mi dici che non ci sono controindicazioni, credo che risolverò il problema. Grazie ancora.

    • Livio says:

      Dovrebbe funzionare.
      Potresti anche eliminare il condensatore C1 e quindi creare un vero PWM (non tensione variabile ma vero pwm da 0 a 5 volt).
      Sarebbe più semplice da costruire e più piccolo. E rispetterebbe le specifiche del tuo motore che (mi sembra di aver capito) vorrebbe un PWM da 1 a 10 KHz e non una tensione variabile.

      • Marco says:

        Ok, fatto! Senza condensatore, funziona benissimo. Quando riuscirò a trovare il tempo, pubblicherò un filmato su Youtube. Un po’ di pubblicità è il minimo che possa farvi. Grazie ancora.

        • Livio says:

          Grazie!!!
          Se vuoi un posto fantastico dove pubblicare le tue creazioni e anche un forum dove discutere di ogni argomento di elettronica e automazione… ti consiglio GRIX.

          I link l trovi in questa pagina:
          https://www.theremino.com/contacts/references#grix

          Il sito theremino è molto tecnico e ha tante (troppe) pagine, ma non ha un forum e quindi non è una vera “community”. Abbiamo però trovato su GRIX un ambiente sereno che ci ospita volentieri.

          Gradualmente le discussioni si sposteranno li.

  18. mirko trinca colonel says:

    buongiorno, sempre dietro con la cnc e sono di recente passato ad usare il software fusion360. fantastico per tutte le impostazione e facile da capire …. finchè non si arriva all’estrarre il gcode. ho alcuni problemi legati alle curve quasi come se mi vedesse una curva come tante linee spezzate invece di una linea continua, di conseguenza rallenta e mi scalda le frese (rotta anche qualcuna :C). mi chiedevo se magari qualcuno di voi aveva un impostazione per il setup di fusion o se invece devo andare a ignoranza totale per esclusione (che tanto l’unica che andrà sarà l’ultima che provo :D ). intanto che aspetto mi guardo un po come buttarmi sui pcb con il laser e farà anche qualche prova in settimana. scusate se mi sono dilungato e aspetto la vostra risposta. grazie in anticipo

    • mirko trinca colonel says:

      domanda: sto usando theremino cnc, ottimo come al solito e sono passato da un controller usb normale a quello della xbox one wireless. tutto perfetto per l’uso, l’unico problema è la disposizione dei tasti che è un po contorta da usare. esiste il modo di cambiare la configurazione dei tasti? mi servirà anche dopo per poter finalmente ultimare la cnc con un bel box di controllo tipo cnc industriale

      • Livio says:

        Per spostare e modificare le dimensioni dei tasti dovresti aprire il progetto con Visual Studio 2008 e modificare il Form principale. Ma non è un lavoro facile, le dimensioni e le posizioni vanno tutte ben coordinate altrimenti s scombina tutto non appena si ridimensiona la finestra.

        Credo che sia meglio che ti abitui a usarlo così com’è. In fondo ci troviamo tutti abbastanza bene con questa disposizione di tasti quindi credo che si tratta solo di conoscerla un po’.

        • mirko trinca says:

          scusa mea culpa mi sono espresso male :D. intendevo la disposizione dei tasti del controller che mi usa alcuni enable che sono veramente scomodi da raggiungere e che sarebbero più comodi in altri posti (poi dipende dall’uso. è che ultimamente sto veramente usando theremino come dro e sto solo facendo lavorazioni in “manuale” per trovare i giusti feed per far cantare bene la macchina

          • Livio says:

            In effetti tu avevi scritto controller ma non avevo capito.
            Ti consiglierei di utilizzare l’interno di un qualunque controller e di collegare i fili a dei pulsanti industriali disposti come ti pare.

  19. Salvatore Di Salvo says:

    Ho costruito una cnc per il taglio delle ali in polistirolo, Al momento solo la meccanica.
    Cercando in giro, per internet, alla ricerca di un software valido mi sono imbattuto in theremino.
    Il sistema mi sembra molto valido, anche se al momento ho le idee confuse.
    Arei bisogno di sapere di cosa è composto il sistema (software e hardware), per cominciare a capire e cominciare e muovere i primi passi. I motori che ho preso e montato sono dei nema 17, e se possibile vorrei usarli.
    Un grazie per le info che avrò dalla vostra risposta.
    Salvatore.

  20. Vincenzo Senatore says:

    Buongiorno Livio, ieri ho provato la versione 4.7 del CNC ed ho notato che i movimenti da tastiera con il tasto “shift” premuto non riducono la velocità. Questo sembra accadere dopo aver calibrato l’asse Z (ma non ne sono sicuro). Con la vers. 4.6 funziona.

    Saluti e buon lavoro.
    Vincenzo

    • Livio says:

      Nella versione 4.7 ci sono i comandi per regolare la velocità di JOG come percentuale della velocità RAPID. Puoi regolare indipendentemente la velocità di JOG senza SHIFT e quella con SHIFT. Apri il menu OPTIONS e li trovi.

      Ci sono anche altre due velocità fisse (non regolabili con le opzioni) quella con ALT che è lentissima e quella con CTRL che è un passo per volta.

      Le velocità sono spiegate nelle istruzioni, a pagina 13, e le regolazioni del menu Opzioni sono a pagina 26.

      • Vincenzo says:

        Si è li che ho controllato ed ha la stessa configurazione della 4.6.
        Quando la 4.7 è al primo start, i movimenti con il tasto shift rispettano le impostazioni ed è tutto ok ma dopo aver calibrato l’asse Z… non funziona più… va tutto in rapido.
        Stasera o domani provo anche con un altro PC.
        A presto
        Vincenzo.

        • Livio says:

          Siamo riusciti a ripeterlo, grazie di averlo scoperto.

          Lo sistemeremo al più presto e pubblicheremo la correzione con versione 4.8

          • Livio says:

            La versione 4.8 con la correzione è pubblicata. Per piacere provala e facci sapere se è tutto a posto.

            • vincenzo says:

              ciao Livio,
              tutto OK. funziona.
              continuo con i test.

              Grazie.

              • Livio says:

                Se hai scaricato la 4.8 è bene che la sostituisci con la 4.9 che include altre due piccole correzioni.

                • vincenzo says:

                  Buongiorno Livio, ho provato la 4.9 ed tutto OK.
                  Procedo a piccoli passi per mancanza di tempo aspettando che le giornate diventino di 48 ore.
                  Una domanda: accendo l’inverter con un relè collegato al master per chiudere a massa il pin fwd presente sull’inverter; ora vorrei isolare questo circuito dal master utilizzando un OptoRelè V3 (arrivato da qualche giorno)… in che modo? Elettronicamente si possono chiudere due contatti come un relè fisico?

                  Altra domandina: durante una lavorazione test mi è venuto un pensiero. E se l’elettromandrino si ferma…. spezzo le punte…
                  C’é un modo di mettere in pausa la cnc con l’accidentale stop dell’elettromandrino?

                  Grazie.

                  • Livio says:

                    Per la prima domanda non capisco. Cosa intendi con due contatti? Con un relè o opto relè si interrompe un filo e lo si collega ai due pin dell’opto relè. Se interrompi una corrente alternata saranno i due Pin estremi (4 e 6) altrimenti guarda gli altri due schemi di connessione.

                    Inoltre fai attenzione che gli opto relè non tengono molta corrente e possono bruciarsi facilmente se interrompi il 220 di alimentazione del mandrino. Dovresti interrompere un collegamento del circuito di pilotaggio. Ci vorrebbe lo schema. Eventualmente scrivici per mail e mandami lo schema del pilotaggio del tuo mandrino.

                    Per la domanda due ti basterebbe alzare lo Slot di emergenza quando il mandrino si ferma. Ma come intendi fare a riconoscere che si sta fermando? Comunque quando si ferma è già troppo tardi, ormai la punta è andata. Dovresti capirlo in anticipo e non mi sembra possibile.

                    La mia filosofia sarebbe di non complicare la macchina con sicurezze inutili (che tanto quando poi dovrebbero servire non funzionano) ma di impegnarsi per fare in modo che le cose importanti funzionino sempre. Il mandrino quindi non deve fermarsi, se hai il sospetto che ci sia una sua debolezza eliminala e fai mille prove fino a essere sicuro che funzioni bene non si fermi mai.

  21. mirko trinca colonel says:

    ciao, ho installato un laser da 7,5w sulla mia cnc e mi stavo divertendo un po con il imgtogcode. ho visto tra le varie impostazioni che ha come uscita l’alzare e abbassare l’asse z in base alla scala di grigio. essendo però un laser mi chiedevo se era possibile aggiungere come opzione oltre all’asse verticale la possibilità di regolare un altra asse/dispositivo tramite comandi m che permetta così di regolare un segnale in pwm per regolare quindi l’intensità del laser, magari lasciando ancora la possibilità di impostare il valore minimo e massimo (per incidere solamente il legno devo già tenere il massimo sotto il 10% o brucio tutto). in caso anche senza modificare il programma anche solo un idea per ovviare a questo XD
    grazie in anticipo per la risposta.

    • Livio says:

      L’asse Z non è niente di speciale. La applicazione CNC scrive un numero in uno Slot e questo numero rappresenta una altezza ma può rappresentare di tutto, quindi anche la potenza di un laser. Quello che poi avviene quando il valore di questo Slot cambia, dipende da che tipo di Pin lo utilizza e da cosa viene collegato elettricamente al Pin del Master.

      Nel caso che ti interessa, sull’HAL non imposterai i Pin relativi all’asse Z (normalmente 5 e 6) come Stepper, ma imposterai il primo dei due (normalmente 5) come Pwm. E infine utilizzerai il segnale Pwm (con un circuito adatto) per regolare la potenza del laser.

      Dentro al Gcode utilizzerai valori per l’asse Z da zero a mille (0 = minima potenza, 1000 = massima potenza) e per regolare il limiti di potenza minima e massima potrai utilizzare MinValue e MaxValue del Pin PWM nella applicazione HAL.

      Questo è un esempio della flessibilità data dal nostro sistema di comunicazione basato sugli Slot. Utilizzando bene gli Slot si possono costruire meccanismi anche molto più complessi di questo. Ad esempio si potrebbero filtrare segnali con la applicazione Filters, oppure sommarli, moltiplicarli, sottrarli o fare l’AND e l’OR con le applicazione Automation o Theremino Script… Non imbarcatevi però in meccanismi che utilizzano più applicazioni se non conoscete perfettamente il sistema theremino e tutte le sue possibilità: Come costruire cartelle con molte applicazioni, come farle avviare contemporaneamente con StartALL, come chiuderle con Helper e il tasto centrale del mouse… etc…

      • mirko trinca says:

        ho giusto, non ci avevo pensato :D. grazie 1000 dell’aiuto

        • mirko trinca colonel says:

          anche facendo il tuo metodo ho riscontrato un bel problema. facendo così nel gcode ogni volta che l’asse z si dovrebbe muovere il programma lo “aspetta” con il laser acceso e anche utilizzando lo slot 11 come “attivatore” del laser vedendolo come una fresa non lo spegne in fase di salita. non esiste un modo per dire che il motore dell’asse z si muove istantaneamente al nuovo valore senza aspettare(una sorta di look ahead disabled ma solo per l’asse in questione)?

          • Livio says:

            Accidenti hai ragione, non ci avevo pensato. Credo che dovremmo modificare Theremino CNC per fargli fare questo ed è abbastanza difficile.

            Non potresti usare un’altra uscita? Ad esempio lo slot 12 che è regolabile con il comando S (Speed)?

            • mirko trinca colonel says:

              ok allora provo a dare in pasto il gcode a una macro di excel e vedo cosa salta fuori :D poi faccio sapere

              • mirko trinca colonel says:

                ok. ho risolto passando la creazione del file e del gcode a inkscape ed ho rispolto anche il problema del punto focale fisso. ora uso il pwm sui giri del motore e sembra andare bene

                • Livio says:

                  Quindi, se ho capito bene, puoi ancora utilizzare l’asse Z per muovere il laser e mettere a fuoco. Ottima soluzione e grazie di averla condivisa, così potrà servire anche ad altri.

                  Ti ringrazio anche molto di aver avuto la pazienza di seguire varie strade. Modificare l’asse Z, sempre che fosse possibile, ci avrebbe fatto scombinare tutto il meccanismo dei percorsi in cinque dimensioni.

  22. Anonymous says:

    Non sono un regista (anche se mi piacerebbe molto) e il tempo a disposizione è sempre pochissimo, comunque sono riuscito finalmente a pubblicare un modesto video della mia fresatrice controllata da Theremino.
    https://youtu.be/fpQT5wmoB4o
    Prima della fine del mondo cercherò di pubblicarne altri, anche della Mostly Printed CNC che uso per lavorare il legno, sempre controllata da Theremino.
    Marco

  23. Livio says:

    Alessandro ci ha inviato questa testimonianza:

    Ho conosciuto il sistema Theremino su Electroyou (dove scrivo ogni tanto qualche articolo) e l’esplorazione del sito mi ha portato a Theremino CNC che ha mi ha costretto a rispolverare alcuni componenti meccanici (comprati ancora con le lire!!!!) di un vecchio progetto per la costruzione di una fresa CNC a 3 assi.

    Ho comprato un MasterDil e lo shield dei driver A4988 su Ebay e montato tutta l’elettronica come da istruzioni del manuale più qualche personalizzazione. Tutto ha funzionato di primo acchito ed ora studierò i vari applicativi CAD/CAM per generare i G-CODE.

    Ho predisposto la CNC anche per montare una testa laser al posto del mandrino per incisioni su pannelli in alluminio (anodizzato) dei contenitori per elettronica.

    Ho scritto questa mail per condividere la mia esperienza, di cui sono molto soddisfatto, ma soprattutto per ringraziare tutto lo staff di Theremino per il lavoro e le idee pubblicate sul sito. Forse questa mia testimonianza potrà servire ad altri per lanciarsi in una costruzione simile che regala sicuramente molte soddisfazioni.

    Saluti.

  24. Vincenzo says:

    Buonasera Livio, fra le innumerevoli prove effettuate con la CNC ogni tanto la stessa si blocca con il messaggio “stop limit switch”. Mi rendo conto che avrai bisogno di dati per capire cosa succede ma ti parlo di un tentativo di utilizzare una fresa a palla con due taglienti da 14mm di diametro su noce tanganica. anche con affondo di 1mm a velocità lentissima dopo 10 mm di taglio curvo si blocca.
    La macchina a vuoto non si blocca mai ed esegue con precisione qualsiasi movimento in rapid sino a 2000 mm/m e acc.max 150. I motori sono da 3Nm pilotati con circa 1 ampere e dvr8825. Saresti così gentile da indicarmi cosa succede?
    Saluti
    Vincenzo

    • Livio says:

      Ci sono varie possibilità:

      1) Switch che realmente vengono toccati.
      2) Uno switch difettoso che con le vibrazioni fa un falso contatto.
      3) Cablaggio inappropriato con i fili di potenza (motori e altro) che passano paralleli e vicini ai fili degli switch e li disturbano.
      4) Cablaggio delle masse sbagliato che trasferisce forti disturbi dai collegamenti di potenza verso i fili di segnale.

      Per i punti 3 e 4 sarebbe bene leggere pagina 46 delle istruzioni, eventualmente aggiungere due resistori (vicino al master) e, proprio in casi di disturbi esagerati, aggiungere un condensatore da 100 nF tra Signal e GND.

      Le spiegazioni sulla fresa a palla servono a poco per capire cosa succede. Quello che servirebbe sapere è cosa accade dopo. Cioè se lo stato di “limit” perdura anche dopo (quindi un difetto meccanico o elettromeccanico) o se è stato un disturbo momentaneo (quindi impulsi di disturbo che arrivano dai cavi di potenza negli istanti delle commutazioni o durante gli spunti dei motori).

      • Vincenzo says:

        I resistori sono già installati perché senza la macchina perdeva passi.
        Verifico bene la separazione delle masse.
        Comunque disabilitando i finecorsa non si interrompe… almeno così sembra.
        Domanda: potrebbe servire collegare i micro con cavetti schermati?
        Saluti
        Vincenzo.

        • Livio says:

          Ancora non hai risposto se lo stato di limit perdura anche dopo o se si è trattato di un disturbo momentaneo.

          Se si tratta di disturbi e se i cavi di potenza passano affiancati a quelli dei segnali allora i cavi schermati possono risolvere il problema. Ma potrebbe risolverlo anche un semplice condensatore tra Signal e GND (dopo i resistori, quindi proprio all’ingresso del Master).

          Potresti osservare il segnale che arriva allo Slot dei finecorsa con l’oscilloscopio dell’HAL o meglio ancora con il SignalScope. E poi, accendendo e spegnendo ripetutamente mandrino e motori mentre guardi il segnale, potresti individuare cosa causa i disturbi.

          • Vincenzo says:

            Buongiorno Livio, lo stato di limit avviene in corrispondenza di sforzi maggiori ed è sicuramente un disturbo. Un click su stop e si ripristina tutto. Se disattivo i micro la macchina lavora bene. Proverò ad installare il condensatore. Verifico anche con l’oscilloscopio.
            Ti aggiorno.
            grazie
            Vincenzo

            • Livio says:

              Se il disturbo è breve (ad esempio una extracorrente dovuta alla induttanza dei motori) allora il condensatore lo eliminerà completamente.

              • Vincenzo says:

                Ciao Livio, ho installato i condensatori e controllato con “signal scope”, ora il problema è eliminato.

                Grazie infinite.

                P.S. dimenticavo, ogni tanto sento un movimento breve di qualche motore dopo aver premuto il tasto stop a macchina ferma.
                Cerco di capire quando si verifica.
                A presto
                Vincenzo

                • Livio says:

                  Step dei motori a macchina ferma sono sicuramente dovuti a disturbi sui segnali che vanno ai driver.
                  A me accadevano ogni volta che accendevo il neon e ho dovuto rifare i collegamenti di massa e anche mettere un filtro sul 220.

                  Se ci sono anelli di massa e cablaggi imprecisi anche un frigorifero che si accende e si spegne potrebbe far fare passi ai motori.

                  ciao
                  Livio

  25. Andrea says:

    Salve, grazie a theremino riesco a far funzionare tranquillamente una piccola cnc autocostruita. Nel software vedo che ci sono delle opzioni per il controllo temperature in una stampante 3d. Deduco quindi che posso usare theremino cnc anche per controllare una stampante 3d. Mi chiedevo se la gestione degli assi ě la stessa e in particolare del motore che comanda l’avanzamento del filo. Inoltre posso fare a meno dei controlli temperatura?.

    Grazie
    Andrea

    • Livio says:

      Si la gestione degli assi è la stessa.
      Per l’avanzamento si usa un asse e si specifica nel GCode cosa deve fare.
      Puoi sicuramente fare a meno dei controlli (e regolare a mano immagino).

      L’esperto di queste cose è Lello del sito thereminoshop, mettiti in contatto con lui e ti saprà aiutare meglio.
      lello@thereminoshop.com

  26. mirko trinca colonel says:

    ciao, sono Mirko e di recente ho fatto una nuova meccanica che utilizza come principio il CoreXY per la movimentazione di un laser. volevo usarla per fare incisioni e creare pcb incidendo uno strato di vernice su una basetta ramata. volevo chiedere se era possibile implementare la cinematica di questa meccanica in theremino cnc oppure se devo modificare i parametri contenuti nel Module_Vectors.vb sempre del theremino cnc

    • Livio says:

      Visualizzare la cinematica di quella macchina nella finestra grafica di theremino CNC è impossibile (o richiederebbe un lavoro lunghissimo). Ma se il GCode è giusto Theremino CNC farà funzionare qualunque macchina, indipendentemente da come è costruita.
      Preparare i GCode giusti (e quindi conoscere le particolarità geometriche della macchina) è un compito di pertinenza del CAM, non del CNC.
      Il CNC è un semplice esecutore di linee GCode e non ha bisogno di conoscere come è fatta la macchina.

  27. Giuseppe says:

    Ciao, chiedo se è disponibile una guida dei collegamenti da fare tra Master e CncShieldV3,
    Ad oggi sto usando cncshild accoppiata ad arduino x controllare una cnc 3assi autocostruita, dopo aver scoperto master ed aver visto il programma di gestione master cnc ,non ho esitato ha comperare un master per sostituirla ad arduino, ha dei comandi che grbl controll se li sogna. Complimenti x il.lavoro che fate , ed x le ottime spiegazioni che date sul sito.
    A presto giuseppe

  28. Giuseppe says:

    Salve, oggi è arrivata master ,collegata alla cncsheld ,regolati tt i parametri e affemo CHE è stupendo,con il programma ho una infinita di movimenti che non avevo con arduino.
    L’unica cosa che vorrei sapere se è possibile non tenere i motori in tensione sino al lancio del gcode, mi spiego meglio, sulle barre di traino ho montato dei pomi x trasportare gli assi anche manualmente ma adesso al momento che do alimentazione ai drivers non riesco piu a muoverli. Si può risolvere e come??
    Altra comodità sarebbe stata se nel toolpath insieme alla visuale del gcode ci sarebbe stata la misura di massimo ingombro del piano di lavoro degli assi x y. Per avere a volo una idea del lavoro che si sta facendo.
    Grazie in anticipo. Giuseppe

    • mirko trinca says:

      per muovere manualmente potresti usare la funzione di theremino cnc degli enable motori (dovresti anche collegare l’uscita enable dal master ai driver e poi guarda in alto a destra in theremino cnc). Per le misure non saprei dirti io vado ad occhio dovresti chiedere ai più esperti qua :D

      • Livio says:

        Abilitazione motori
        Non è possibile dare o togliere alimentazione ai motori Stepper per mezzo dei segnali STEP e DIR. Quindi dovresti fare come dice Mirco.

        Dovrai usare l’ingresso ENABLE dei driver dei motori e collegarlo ad un Pin di uscita del Master configurato come DigOut. Poi dovrai associare questo Pin a uno degli Slot di uscita della applicazione CNC.

        Gli Slot utilizzabili per abilitare i motori potrebbero essere il 23 o il 24, oppure anche altri se il tuo Gcode da i comandi giusti. Puoi provare facilmente vari Slot e stabilire quale ti funziona meglio. La tabella completa di tutti gli Slot utilizzabili è a pagina 42 delle istruzioni della applicazione CNC.

        Area di lavoro
        Mi dispiace ma non è possibile aggiungerla. La applicazione CNC è volutamente minimalista e lavora con un solo set di coordinate, cioè solo le coordinate relative al punto di azzeramento e di avvio della lavorazione.

        Nella applicazione ThereminoCNC il concetto di “coordinate macchina” non esiste proprio. Per cui è impossibile aggiungere l’area di lavoro a meno di modificare notevolmente il software.

        Forse un giorno qualcuno avrà mesi di tempo per pensare a questa possibilità ma non ci sperare troppo.

        Con il tempo ci si abitua a lavorare in modo relativo e per certi versi è anche meglio. Non si delegano le funzioni di controllo alla macchina e quindi si acquista una maggiore padronanza di quello che si fa. Detto in altre parole ci si abitua a misurare come si farebbe con un tornio, o con una fresa manuale con i volantini. E poi, con l’esperienza, si finiscono per fare meno errori di quelli che si farebbero fidandosi solo della macchina.

  29. Francesco says:

    Salve, mi chiamo Francesco , faccio il fabbro a palermo, grazie a Hobbild sono arrivato a Voi.
    Ho una cnc autocostruita e uso Artcam e Mack3, tutto fila lisco, una persona un po’ grande di eta mi chiede una piccola cnc per fare piatti di compensato di 3 misure diverse ( 30cm , 35 e 38 cm)
    e vuole che tutto funzione con una chiavetta usb dove precedentemente sono stati caricati i file
    tap. come si puo’ fare a far funzionare la cnc senza il pc e scegliere le misure e dare lo start alla macchina? grazie dell’attenzione e magari spero in una risposta ” fattibile”. francesco.

  30. Francesco says:

    una cnc senza il pc , con chiavetta usb caricata dei file da realizzare e possibile?

    • Livio says:

      Il sistema theremino è un input output per PC, quindi senza PC non si fa niente.

      Per realizzazioni senza PC dovresti utilizzare Arduino.

      Se decidi di prendere quella strada non potrai utilizzare nessuna delle nostre semplici applicazioni. Quindi per evitare di fare confusione elimina totalmente tutto quello che è scritto sul nostro sito (a volte parliamo anche di Arduino ma sempre come IN-OUT per PC e quindi anche in quei casi il PC è essenziale).

      Quindi dovresti cercare in internet come fare con Arduino, ci sono migliaia di siti che ne parlano, anche troppi, difficile orizzontarsi.

Leave a Reply

Your email address will not be published.