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. Luca says:

    Buongiorno a voi.
    Ho acquistato una scheda Theremino StepperDriver che servirà a sostituire l’elettronica orginale di una cnc cinese che utilizzo per produrre PCB. Ho visto che la suddetta scheda può gestire oltre ai motori anche 2 linee di potenza con mosfet, quindi immagino che ci si possa collegare anche un elettromandrino. Non ho trovato però istruzioni dettagliate su quali siano le porte per gestirlo e dalle immagini che trovo in rete, mi rimane qualche dubbio. Sapete anche se esiste un pdf con tutte le info per la schedaStepperDriver?
    Ringrazio anticipatamente per la vostra risposta.

    • Livio says:

      Solitamente i mandrini funzionano a tensione di rete, quindi i mosfet di questa scheda non possono pilotarli. Questi Mosfet sono pensati per regolare in PWM le resistenze di riscaldamento delle stampanti 3D.

      Per accendere e spegnere il mandrino dovresti utilizzare un relè meccanico o il nostro OptoTriac (ma attenzione alla potenza sopportabile e al raffreddamento del Triac). Per regolare il mandrino in velocità dovresti inviargli il Pwm da una uscita del Master e avere una adattatore Pwm che regga la potenza. Oppure il mandrino stesso dovrebbe accettare un segnale Pwm.

      La scheda Stepper Driver è spiegata in questa pagina:
      https://www.theremino.com/hardware/adapters

      I Pin e gli Slot da utilizzare sono spiegati nella documentazione della applicazione CNC (gli Slot da usare sono a pagina 43).

      Per i concetti generali sul funzionamento degli Slot dovresti anche leggere la documentazione della applicazione HAL e dei moduli Master.

      —-

      Se ti serve altro chiedi, ma spiega nei particolari quello che non ti è chiaro, così potremo concentrarci su quello che ti serve.

Leave a Reply to Marco Cancel reply

Your email address will not be published.