Robotics and CNC


Blog per la Robotica e le macchine CNC


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.

- – - – - – -

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 è: “…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 2014 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 a un eeeBox o a un Raspberry Pi, leggere qui: blog/standalone-applications#raspberry)

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 invece 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 il GCode e comunicare con altre applicazioni in tempo reale.

I micro non sono concepiti per gestire file 3D o decodificare segnali audio, non hanno la potenza che serve 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 andare a 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, mentre gli algoritmi intelligenti sono tutti sul PC

Questo esempio è così evidente che mette la parola fine alla discussione.


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 tutte 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. freddy says:

    salve!! i was looking for your excellent work “robotic arm”, it’s amazing; so i have a question, i would like construct this but whit the atmega8535, the reason is that i have the starterkit stk500 offer by atmel, this startedkit don’t have the comunications through usb have only serial. How can comunicate the software “Theremino_Arm” through serial rs232? it’s possible?
    thanks and congratulations for yours works!!

    • Livio says:

      The theremino system does not communicates via rs232 but only via USB, SLOTS, UDP, or OSC. In the pages http://www.theremino.com/technical you can find all the necessary informations, and so you may use a atmega but you will definitely put a very long time to program the firmware. We do not know the ATMEL processors and thus we can not help you.

  2. Mario says:

    Salve a tutti!
    Mi chiamo Mario e già da qualche tempo ho “adottato” il braccio robotico “Theremino” nel mio laboratorio e ne sono letteralmente ENTUSIASTA! Si scrivo proprio “adottato”, a parte per il fatto che è un progetto OPEN SOURCE, ma perchè si può veramente dire che “viene a far parte dei propri interessi” una volta “entrati” nel progetto) E’ un dispositivo semplicissimo da costruire, e dà TANTISSIME OPPORTUNITA’ di imparare qualcosa di qualcosa di nuovo sulla robotica e sugli asservimenti! Questo principalmente grazie al software Theremino_ARM e Theremino_HAL, anch’essi liberamente scaricabili dal sito ed Open Source!

    Io stesso mi sono dilettato nella sua costruzione, imparando tantissime cose nuove ed interessanti, principalmente grazie alla disponibilità di tutto il team, in particolare di Livio. Interessantissima la parte meccanica, di facile comprensione e di una EFFICACIA INCREDIBILE, considerando la semplicità della struttura. Basta guardare i piccoli video visibili sul sito, per rimanere immediatamente STRABILIATI dalla precisione e dalla RIPETIBILITA’ nel suo funzionamento. Ho provato di persona l’hardware e posso confermare che la velocità di questo video non è truccata! http://www.youtube.com/watch?v=S8aXLacX14s

    Veramente consiglierei a chiunque di intraprenderne la costruzione, per poter “gustare” personalmente le soddisfazioni che può dare già così com’è e intravedere le enormi potenzialità che questo piccolo progetto apre davanti agli occhi, con una semplicità disarmante!

    saluti e grazie a tutti per il vostro impegno.
    Mario

  3. Paolo says:

    Ciao Livio,
    Ho alcune domande da farti:

    1) Ho dato un’occhiata al sistema software theremino, mi sembra di capire sia in VB (personalmetne preferisco il c ), ma non ho capito con quale ambiente RAD è stato sviluppato ? Non credo Visual Studio perché non ho riconosciuto la definizione del project. Mi sembra sia codeblock o qualcosa simile…

    2) Non mi è chiaro come faccio a creare programmi personalizzati da inviare alla scheda. Devo usare VB ? C’è un interprete ? Posso creare software da postare sul pic in altri linguaggi

    3) Mi sembra di aver capito che bisogna scaricare del materiale di interfaccia dalla Microchip, ma non è proprio chiaro. Non ho visto tutorial in merito (se manca darei volentieri una mano visto che parto da neofita con questa scheda)

    4) Mi hai detto che non serve più lo slave per il braccio, basta solo il master, puoi confermare ? E’ per non fare l’ordine 2 volte.

    5) Sul post ho letto che state implementando il software 2.7 per i robot delta. Stai anche lavorando a u prototipo ?

    6) Nella versione software si vede il preview delle immagini da stampare. ;a se voglio partire da una nuova immagine, come faccio ?Non ho ben compreso come sia possibile il processo inverso. Probabilmente servirà un programmino a posta tipo un notepad che traduca le posizioni pixel in coordinate Gcode. Ma non l’ho visto.

    • Livio says:

      Ciao, rispondo alle tue domande una per una:

      1) Il software del sistema Theremino è scritto con VisualStudio in VbNet perché dalle prove è risultato il più veloce. Ma se tu preferisci il C è facile convertirlo in CSharp, usando uno dei tanti convertitori che trovi in rete (ad esempio SharpDevelop) In pratica non cambia niente, in CSharp ci sono dei punti e virgola in più e l’esecuzione è solo leggermente più lenta a causa del più macchinoso trattamento delle stringhe.

      Se vuoi puoi verificare di persona le velocità di VbNet, CSharp, C++ e VB6 usando gli esempi di questa pagina: http://www.theremino.com/downloads/foundations (“Interprocess Communications”)

      Dopo aver scaricato gli esempi puoi aprirli con VisualStudioExpress2010 o VisualStudioExpress2008, verificare che fanno esattamente le stesse cose, ricompilarli, provarli a 32 bit e 64 bit e troverai sempre che il VbNet è il linguaggio più veloce e che poi, a scendere, ci sono CSharp, C++ e infine VB6. La differenza di velocità si nota principalmente sulle stringhe e sulle operazioni complesse negli array.

      Comunque partendo dagli esempi di “Interprocess Communications” puoi scrivere i tuoi programmi in qualunque linguaggio preferisci perché Theremino è un sistema aperto e puoi accedervi attraverso gli SLOT. (naturalmente sarà più difficile che usare il nostro software già scritto, dovrai imparare molto ma, dato che tutti i nostri sorgenti sono in open source, puoi farlo)

      2) Non devi “Creare programmi personalizzati da inviare alla scheda” il sistema Theremino opera in Real-Time, hai un collegamento diretto tra le applicazioni ad alto livello e l’hardware, di tutte le complicazioni dell’hardware si fa carico il programma HAL e tu puoi concentrarti sugli aspetti ad alto livello del tuo progetto, senza programmare niente.

      3) Non devi scaricare “…materiale di interfaccia da Microchip…” tutto quel che ti serve per comunicare con l’hardware è già pronto e immediatamente funzionante, basta collegare l’USB e lanciare l’HAL.

      4) Ti confermo che basta il Master per fare un braccio robotico fino a sei assi.

      5) Tra breve pubblicheremo il programma Robot_Arm che calcola la cinematica inversa anche per i bracci di tipo “SCARA” e “DELTA” Per quanto riguarda i prototipi lo SCARA è semplicissimo mentre i DELTA sono estremamente sensibili alla lunghezza dei bracci e delle piccole bielle sui motori. Non abbiamo ancora trovato una buona configurazione per i DELTA per cui in questo caso dovresti sperimentare da solo. Puoi anche fare simulazioni con il solo software… l’obiettivo da raggiungere è sfruttare al massimo tutto l’arco di rotazione dei servo su una piccola zona di lavoro in modo da aumentare il più possibile la precisione.

      6) Per produrre i file Gcode si usano programmi 3D come “MasterCam” o “SolidWorks” o programmi per i PCB come “Eagle oppure di conversione dai disegni come “WinTopo”"

      Stiamo preparando un programma per convertire immagini al tratto in GCode, si chiama “Theremino_ImgToGcode”, manca di molti comandi utili e i suoi controlli sono confusi ma, se lo usi nel modo giusto, funziona bene e non esiste niente di simile in rete.

      Puoi scaricare una pre-release da qui: http://www.theremino.com/downloads/automation

      Poi devi fare:
      “LoadImage” di una immagine composta da TRATTI (non un paesaggio)
      “Rosenfeld” per scheletrizzare i contorni
      “Vectorize” per produrre il GCode

      ciao
      Livio

  4. Paolo says:

    Infine ti aggiorno sulle ultime prove che ho fatto sulla scheda Arduino e il mio piccolo braccio sperimentale (essenziale, solo per testing concettuale fatto nel giro di un fine settimana) visto che ormai ce l’ho e non posso certo buttarlo

    Lo scopo era quello di testare la qualità di interfacciamento del modulo Arduino UNO da PC tramite tastiera per il controllo diretto dei servi. Devo fare una correzione sul modulo Arduino. Un utente è riuscito a interfacciare la tastiera utilizzando i pin di comunicazione 7 e 8 della scheda, tuttavia il risultato è stato comunque deludente per due aspetti:

    - Il sistema viaggia al baud rate della tastiera, quindi se si impostano dei passi piccoli ad alta precisione si muove a scatti. Impostando un range più elevato si riduce moltissimo la precisione ma il movimento è più fluido. Ma a questo punto non serve più a niente.

    - I comandi sono sempre sequenziali, quindi anche trasmettendo direttamente da scheda a velocità molto alte (1/2 secondo di delay) i motori si spostano sempre uno dopo l’altro. Il movimento non risulta mai perfettamente fluido, ma sempre un po’ scattoso, con il risultato che un cerchio non risulta mai perfetto, nemmeno lontanamente. Trasferire algoritmi in stand-alone di elaborazione dei moviemtni con formule di integrale con pochi byte non è alla portata di tutti.

    - Le librerie keyboardPS2 contemplano solo alcuni tasti (frecce, tasto Funzione 1-12, del, pagesu, pagegiu, poco altro) La libreria può essere implementata ma perde la compatibilità con la libreria standard keyboardPS2 (a versioni successive bisogna sempre re-implementarla, a meno di non mettere mano direttamente a quella in rete tramite la community)

    Ho riscontrato anche problemi tra alimentazione diretta via USB e via batteria, ma non capisco il motivo (con batteria la tastiera non funziona) Svolgerò dei test per capirne il motivo. Poi sono curioso di ripetere tutti i test con Theremino !

    Mi rendo conto che di ottimizzazioni se ne possono fare tante. Come spesso hai commentato nei tuoi post solo chi ha voglia di imparare può comprendere cosa ci spinge a studiare questi sistemi di controllo, semplificandone il più possibile l’accesso a tutti. Concordo sul fatto che i vecchi PC erano molto più aperti, oggi tutto è blindato perché tutto è puramente commerciale. Ma noi non non molliamo !

    Ciao

  5. paolo says:

    Ciao Livio,

    ho provato il programma che hai segnalato per la vettorizzazione delle immagini e trasformazione in Gcode ma sovente mi dà questo errore:

    Eccezione non gestita…
    ************** Testo dell’eccezione **************
    System.ComponentModel.Win32Exception: Nessuna applicazione associata al file specificato per questa operazione
    in System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
    in System.Diagnostics.Process.Start()
    in System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
    in System.Diagnostics.Process.Start(String fileName)
    in Theremino_ImgToGcode.Module_Gcode.Finish()
    ….
    ….

    • Livio says:

      Questo e’ sicuramente dovuto al fatto che non hai associato i file GC a un programma di visualizzazione. Prova a fare doppio-click su un file GC e Windows dovrebbe confermarti che manca la associazione.

      Come gia’ ho scritto consiglierei di usare “Metacut” che fa vedere i GCode molto bene ma, dato che e’ un programma NON freeeware e che e’ difficile installarlo, ti consiglierei, per ora, di associare i file GC al Notepad oppure a WordPad.

      Il Theremino_IngToGcode dopo aver prodotto il GCode cerca di visualizzarlo per un veloce controllo con il programma da te preferito, se questa funzione ti sembra superflua aggiungeremo la possibilita’ di disabilitarla nella prossima versione.

      Grazie per aver segnalato questo comportamento, se possibile cercheremo di evitare l’errore anche con file GCode non associati.

  6. Livio says:

    Nancy has written:
    Dear Ms. Livio, Cappie and I are building our own robot arm but are running into issues getting it to draw well. What servos have been tried? from http://www.theremino.com/en/blog/robotics-and-cnc/
    I can see HXT900 and TGY930 but not sure what was originally tried going from top to bottom of picture http://www.theremino.com/wp-content/uploads/2012/04/RobotArm_Evolution.
    How can we reduce the “fuzzy” issue of our robot arm drawings like you did?

    Dear Nancy,
    It is good to consider, as the center of the problem, the inaccuracy in the uS.

    The dead band of the servos (in uS) and the instability of the electronic pulses (in uS) produces the same result: a incorrect position of the writing tip.

    The magnitude of the errors
    ——————————————————————
    The entire writing tip excursion produced by a servo can be, for example, about 300 mm (depending on the length of the arms and other variables)

    The whole excursion takes place in about 1000 uS variation of the pulse to the servo.

    So if a servo has a 3 uS dead-band, we calculate 1000 uS / 3 uS = 300 positions

    Then a 300 mm excursion divided in 300 parts produces 1 mm of inaccuracy.

    Error sources
    ——————————————————————
    The 1 mm imprecision was only theoretical but in practice:
    – with a 3uS declared servo
    – with a command signal not particularly stable,
    – with a heavy mechanical
    – in the presence of mechanical friction
    It is not strange to obtain inaccuracies of some millimeter that are horrible to see.

    Servo precision
    ——————————————————————
    The dead-band declared by the servo producers is measured with zero force.
    When a servo must contrast the mechanical friction and the weight of the mechanical parts the dead band increases dramatically.
    I think that under normal work your 3uS servo could have dead band of about 10 or 15 uS

    Instead the TGY930 (called also MG930) has a “measured and real” dead band of about 1uS (about 10 or 15 times better)

    I have not tested the DS8231 but the producer says “5900 steps on 120 degree” that means a dead-band better then 0.2 uS.

    Electronic signal precision
    ——————————————————————
    The servo are driven by pulses that must be generated at a frequency of about 50 per second it is not important if they are 40 or 70 per second but the frequency must be stable.

    The pulses are large from about 500 uS to about 1500 uS so the complete rotation of the servo (normally about 180 degree) is produced by a 1000 uS pulse excursion.

    It is very important that the servo pulses are produced with a very stable firmware algorithm

    The normal Arduino servo signals are relatively stable (many uS of imprecision) (this can be improved a little rewriting the whole microcontroller firmware with a programmer and not using the normal sketch programming)

    Instead the Theremino servo signals are absolutely stable because they are generated by a highly optimized firmware, syncronized by a interrupt signal that comes directly from the microcontroller clock chrystal.

    Mitigate the dead-band problems
    —————————————————————–
    1) Reduce the arm lenghts
    2) Reduce the mechanical weight (simple and minimal mechanical – like my arm – is better)
    3) Eliminate any mechanical friction (simple and minimal mechanical parts are better)
    4) Use only servo with metal stud and dual bearings
    5) Use the scara configuration (the tip position depends only by 2 servo – not 3 servo)

    Measuring the real servo dead-band
    —————————————————————–
    You can measure the dead band of a servo attaching a long arm to it (about 30 cm)
    The servo must be driven with a stable signal (not moving)
    The servo must be tight in a clamp
    Then you push a little the servo arm clockwise and then anticlockwise with your hand and measure the mm of deviation at the end of the long arm.
    Then with a proportion, considering length of the arm and the corresponding terminal circumference and a 180 degree of rotation that is produced by about 1000 uS of signal change you can calculate the real dead-band of the servo.

  7. Livio says:

    Leo ha scritto:
    Se in ogni joint posiziono due servo identici, di cui uno con il funzionamento in contro-fase (fili del potenziometro interno invertiti), dovrei ottenere un aumento della coppia e una riduzione degli errori.

    Risposta:
    ————————————————————————————————
    Lo hanno già provato, bastano minimi errori di linearità nei riferimenti interni dei servo per fare in modo che in certe aree i due servo sforzino uno contro l’altro e perdano tutta la potenza a litigare tra loro. E tremano anche.

    Inoltre hanno scoperto che i servo sono diversi tra loro e tararli per farli andare esattamente insieme è praticamente impossibile.

    Il miglioramento di precisione ottenibile sarebbe comunque poco (se si sommano due rumori il risultato non si dimezza ma diventa 0.7 – radice di due) e il raddoppiamento del peso si mangerebbe tutti i vantaggi.

    Forza a confronto
    ————————————————————————————————
    Per migliorare la precisione (e la forza di almeno 6 volte) proverei i DS8231

    Secondo le caratteristiche hanno una forza anche minore dei 930 ma dato che l’area morta è “inesistente” la forza “effettivamente usabile” diventa enormemente maggiore di quella dei 930

    Area morta a confronto
    ————————————————————————————————
    Se si prova a spingere di lato un servo 930 si vede che prima che lui cominci a contrastare con tutta la sua forza si è ruotato di quasi un grado.

    I servo DS8231 (almeno secondo quel che promettono) danno tutta la forza subito e (se non si superano i loro 1.26 Kg/cm) non si lasciano ruotare nemmeno di un centesimo di grado.

    - i TGY930 correggono a 60 Hertz
    - i DS8231 correggono a 250 Mega Hertz

    La differenza enorme nella velocità di correzione fa si che i DS8231 possano correggere molto meglio, anche spostamenti minimi, senza mai tremare.

  8. Paolo says:

    Buongiorno a tutti, vorrei un chiarimento in merito a files da spedire al theremino arm per disegnare sagome (2D). Ecco come procedo:
    1. disegno la mia sagoma in 2D > salvo in DXF ( release 12 )
    2. importo il DXF in ACE converter 3.20 > salvo il file convertito in NC
    3. avvio Theremino Robotic Arm 3.4 > carico il file NC > RUN > non simula nessun movimento.
    Premetto che i files di esempio inclusi nel vostro sw funzionano bene, ma vorrei produrre qualcosa di mio, cosa sbaglio ? Quali dati mancano ai miei files per avviare la simulazione ?
    Grazie per l’attenzione.

    • Livio says:

      Probabilmente il file NC non viene generato bene.
      Stai usando l’ultima versione del RobotArm? (le prime versioni non leggevano alcuni formati)
      Potresti spedirmi un file NC da controllare? (a engineering chiocciola theremino punto com)

      Consiglierei però di seguire una strada più semplice:
      - Aprire http://www.theremino.com/downloads/automation
      - Scaricare “Theremino ImgToGcode”.
      - Usarlo come spiegato nella pagina di download.

      Potresti anche chiedere consigli ad Alessio (alessio.giusti chiocciola meteolink punto it)
      che fa spesso queste conversioni.

      • Paolo says:

        Buongiorno Livio,
        ho risolto l’inghippo Gcode, mi mancavano le istruzioni di inizio e fine processo.
        L’ultima vers. del RobotArm è la 3.4 ?
        Stò usando servi molto potenti di cui ricordo solo la sigla 995 e la scheda (master) si disconnette molto spesso, opterò per un condensatore (su master) collegato a 2 dei pin liberi dei servo > se leggi qualcosa di sbagliato avvisami !!
        In ultimo lascio la mia opinione molto positiva riguardo il Theremino robot arm, sia il progetto hardware che tutto l’impianto software, molto pratico ed efficiente.
        Derivo dal mondo Pololu con soddisfazione ma molte grane da risolvere rispetto al Theremino, L’arduino lo uso con disinvoltura per applicazioni che esulano la robotica e la gestione motori e servo > quindi per me the winner is Theremino.
        Un saluto, alla prossima.

        • Livio says:

          Si, la versione 3.4 è l’ultima (dai ogni tanto una occhiata sul sito e scarica sempre l’ultima versione)

          Sarebbe meglio non usare servo potenti perché sono molto imprecisi (dead band larghissima e quindi tremolii esagerati del braccio) Sarebbe meglio usare quelli indicati nella nostra pagina dei sensori (TGY930 o MG930)

          Non è detto che con un condensatore te la caverai, potresti aggiungere un hub usb alimentato dall’esterno con un alimentatore a 5 Volt, questo è il modo più pulito di disaccoppiarsi dalla alimentazione del PC.

          Grazie per i complimenti, se ti serve qualcosa chiedi senza problemi.

  9. Stefano says:

    Sig. Livio buongiorno e buon anno…
    sono rimasto colpito dalla semplicità di theremino, io dovrei pilotare un relè da VB6.
    Ho dato un’occhiata ai codici presenti sulla sezione Foundation, ed in particolare al codice VB6,
    ma dovendo solamente pilotare un’uscita e dovendo eseguire il programma su un sistema Windows 7 a 64 bit, mi chiedevo se non c’era un modo più semplice di usarlo come semplice interfaccia ON/OFF usb, senza scomodare il FileMapping.
    Cordiali saluti

    • Livio says:

      Sarebbe possibile farlo ma prevedo un lavoro lungo e difficile.

      Se non ci si appoggia sulle funzioni di lettura e scrittura della USB (che si trovano nella applicazione HAL) si dovrebbe riscrivere molto software. Comunicare con l’USB non è facile, sono molte classi, divise in molti file. Trapiantare il necessario in VB6 richiederebbe mesi, anche per noi che conosciamo bene il sistema.

      Consiglierei quindi di considerare la applicazione HAL come un “driver”, che permette di comunicare con i nostri moduli.

      Di fatto l’HAL si comporta esattamente come un driver, ma abbiamo preferito il formato “applicazione”, per permettere facili interventi sui parametri, non inquinare il registry di sistema, non richiedere installazione e riavvio del computer e permettere di spostare i file e copiarli dove si vuole.

      La applicazione HAL gira benissimo anche su Windows7 a 64bit e non ci si deve preoccupare dei FileMapping (slots), che sono velocissimi. Si possono scrivere e leggere centinaia di slot, 500 volete al secondo e la CPU quasi non se ne accorge.

      Grazie agli slot tutto diventa facile, senza slot ahi ahi ahi…

      • Stefano says:

        Grazie per la sua cortese risposta.
        Mi sembra di capire però che sarebbe molto semplice realizzare un semplice script usando ThereminoScript per pilotare un’uscita digitale.
        A questo punto potrei quindi mandare in esecuzione lo script alla bisogna dall’applicazione principale.
        Ma anche usando ThereminoScript è sempre necessario che HAL sia in esecuzione?
        In caso affermativo, è possibile esso sia in esecuzione senza GUI attiva in modo che l’utente finale non possa andare a “pasticciarci” dentro?
        Ringraziandola per la cortesia,
        Cordiali saluti
        Stefano

  10. Livio says:

    Lo script non dovrebbe servirti se hai già il software in VB6. Ti basterebbe aggiungere il modulo che abbiamo preparato per il VB6 e chiamare le sue semplicissime funzioni: Inizializza / ScriviSlot / LeggiSlot.

    L’HAL deve essere in esecuzione.
    Si può minimizzarlo e poi chiuderlo, così quando lo si lancerà lavorerà da minimizzato.
    Oppure con poco lavoro potresti modificare il suo software e fare una versione speciale che non visualizza la finestra.
    In questo modo potresti ancora usare l’HAL normale per fare le regolazioni e invece per il funzionamento finale, lanciare quello invisibile (eventualmente aggiungendogli all’inizio la funzione che impedisce esecuzioni multiple).
    Io (per vari motivi) ti consiglierei di usare VisualStudio2008_express, ma potresti anche usare il 2010 o il 2012 (sono tutti freeware, gentilmente regalati da Microsoft)
    Se non riesci dimmelo e ti aiuterò io a fare questa modifica.

    Potrebbe anche essere una buona idea leggere la riga di comando e non visualizzare la finestra se c’è scritto “/HideWindow” o qualcosa del genere.

  11. Fabrizio says:

    Salve. volevo farle una domanda riguardo l’acquisto dei moduli MASTER e SLAVE SERVO.
    le spese di spedizione non possono essere considerate per un pacchetto comprendente sia il modulo master che il modulo slave servo…per risparmiare più che altro sulle spese di spedizione. Andrei a spendere 44.90 perchè le spese di spedizione (di 10 euro) sono considerate separatamente per i due moduli…infatti potrei risparmiare 10 euro se pagassi solo per una spesa di spedizione di entrambi i moduli. Grazie in anticipo

    • Livio says:

      Noi del sistema Theremino non vendiamo, spieghiamo solo “come si fa”.

      Se vuoi risparmiare fai attenzione al fatto che molto probabilmente lo slave servo non ti serve. Il Modulo Master ha già sei PIN che possono fare di tutto e possono pilotare anche i servo. Non c’è nessuna differenza tra i PIN del master e quelli dei Servo.

      Quindi se non ti servono più di sei PIN puoi risparmiare una quindicina di euro.

      Se ti serve solo il Master potresti chiederlo a Alessio che fa alcuni master per gli amici. Li monta lui manualmente oppure ti potrebbe mandare un KIT da saldare e dovresti dargli poco più del costo dei componenti. Anche la spedizione sarebbe minore: alessio.giusti@meteolink.it

      • Fabrizio says:

        Quindi per realizzare il braccio robotico potrei utilizzare anche solamente i pin del modulo master ?
        Se fosse possibile i collegamenti come sarebbero effettuati con il singolo modulo master ?
        Scusate per queste domande ma sono un neofita per quanto riguarda la robotica

        • Livio says:

          Certamente, puoi usare il solo Master per pilotare fino a sei Servo.
          Per i collegamenti fai così:
          Primo servo sul PIN 1
          Secondo servo sul PIN 2
          etc…
          Guarda le immagini del master
          Guarda anche pagina 2 del datasheet del Master: MasterDIL-V3_Datasheet_ITA in questa pagina: http://www.theremino.com/technical/schematics

          Poi devi impostare i PIN da 1 a 4 (se usi 4 servo) nel software ThereminoHAL, come Servo_16 (e devi tener vivo il Theremino HAL )

          Nel programma ThereminoARM il valore FirstSlot deve corrispondere allo slot del primo PIN dell’HAL,
          Se non corrispondono correggili nell’HAl o nel ThereminoARM

  12. Fabrizio says:

    Buongiorno signor Livio volevo farle una domanda a proposito dei servo…io ho acquistato ,al posto dei tunigy TGY 930, dei servo high tech HS225BB che mi sembrano dei buoni servo ( 0.14 sec/60° , output torque: 3.9 kg.cm) non differiscono di molto dalle dimensioni dei tunigy solo che costano un poco di più (16,00€) lei che ne pensa di questi servo ? Sono una buona sostituzione ?

    • Livio says:

      Come già spiegato, tutti i servo provati fino ad ora hanno una dead-band larghissima, solitamente dalle 5 alle 10 volte maggiore dei 930.

      Dato che i costruttori dicono tante belle cose dei loro servo, ma si guardano bene dallo specificare “con precisione” la dead band, l’unico modo per saperla è mettergli uno stecchino lungo trenta centimetri e poi muoverlo micrometricamente, per vedere quale è il minimo spostamento (su un righello posto a 90 gradi in fondo allo stecchino). Poi per calcolare la dead band, si tiene conto che i servo fanno circa 180 gradi in 1000 uS, o qualcosa del genere, e con un po’ di geometria ci si arriva.
      Ma anche senza calcoli, si vede benissimo che i 930 fanno muovere la punta dello stecchino di passetti piccolissimi (circa 10 per millimetro) e che tutti gli altri servo, fanno dei “balzi” di quasi un millimetro per volta. E molti servo “tanto buoni” anche peggio.

      Le nostre esigenze (se si vuole scrivere dritto), sono molto diverse dal muovere un timone di un aereo. Per cui nessuno si scalda troppo se i servo hanno una dead band penosa.

      Mi spiace non so dirti se gli HS225BB vanno bene, ma sono quasi sicuro che (per quel che riguarda la dead band). sono più o meno uguali agli HTX900 che costano due euro.

      Se li misuri con lo stecchino e il righello, scrivi qui come vanno per il bene di tutti.

      —————

      Tieni anche conto che alcuni servo “tanto buoni” hanno correnti di spunto così esagerate che fanno cadere la alimentazione e interrompono la comunicazione USB. In molti casi, un elettrolitico da 470 uF può bastare, ma con certi servo non ci sono speranze e ci vorrebbe una alimentazione separata (da dare con un HUB USB, alimentato a 5 Volt con un alimentatore esterno). Oppure si dovrebbe usare un limitatore di corrente, come spiegato qui: http://www.theremino.com/hardware/outputs/actuators#limiter
      Utili informazioni anche qui: http://www.theremino.com/blog/master-and-slaves

      ciao Livio

  13. fabrizio says:

    scusatemi siccome vorrei fare il braccio robotico ma devo fare la schedina che comada il braccio cioe master dil ma poi mi serve il programma per programmare il pic 24 o nn serve ??? basta che faccio la schedina e lo avvio con theremino arm e fuziona

    • Livio says:

      Ciao,
      i moduli sono programmati, li attacchi e funzionano, invece se li fai tu devi programmarli.
      Per programmare ti serve un programmatore PicKit2 o PicKit3 (su eBay si trovano)
      I PicKit3 sono più recenti a vanno meglio ma i PicKit2 costano meno.
      Infine devi scaricare il file HEX e scriverlo nel PIC.

  14. fabrizio says:

    il file EXE dove lo posso trovare ?

  15. fabrizio says:

    dove posso acquistare theremino ?????

  16. fabrizio says:

    unaltra domanda ma theremino puo fuzionare con qualsiasi motore o serve per forza quello passo psasso perche ho anche i motorini delle spampanti e dei motorini normali voleo sape se li potevo far fuzonare con thermino

    • Livio says:

      Per ora ci sono solo le uscite per i Servo
      Stiamo preparando il tipo di pin “Stepper” e appena pronto ti basterà sostituire il firmware.

      Ma mentre i Servo li attacchi e vai, gli stepper richiedono anche circuiti di pilotaggio e una alimentazione di 12, 24 o 48 Volt.

      Come circuito di pilotaggio ti consiglio un driver Pololu A4988, costano pochissimo, hanno i microstep, hanno la regolazione dalla corrente e pilotano a 4 fili (i pilotaggi a 6 fili vanno molto peggio per questioni di correnti emf inverse)

      Tieni conto comunque che il firmware per i pin Stepper non è ancora pronto, ci potrebbe volere ancora un mese o due per finirlo. quindici giorni, se tutto va bene.

  17. fabrizio says:

    scusate io ho fatto lordine ma ce scritto in preparazione in corso lo ordinato 02 08 2014 perche e ancora in preparazione e nn mi dice dove sta o nn se sa quando ariva pagamento in contrasegnio

  18. FABRIZIO says:

    scs se vi faccio tutte ste domande perche ci voglio realizzare un progetto farci qualcosa nn ho capito molto bene thereminio fuziona solo con qui motorini da modelismo o fuziona anche con i motori passo passo thereminio puo lavorare anche in 3 d

    • Livio says:

      Quello che stai chiedendo è possibile ma molto difficile da realizzare.
      Abbiamo già risposto riguardo ai motori “Stepper” ma evidentemente questi argomenti non ti sono familiari, quindi credo che fare del 3D, adesso, sia troppo complesso. Ti consiglierei di cominciare facendo amicizia con il sistema Theremino, gli SLOT, la applicazione HAL. il Master e le varie possibilità di InOut, usando sensori e attuatori semplici. Cercheremo di aiutarti quanto possibile, chiedi pure qui o scrivimi a “engineering chiocciola theremino punto com” oppure chiamami su skype come: livio_enrico

  19. fabrizio says:

    scusatemi il progetto cioe il firmware per i pin Stepper avete detto 15 giorni giusto come faccio ad sapere che lavete fatto perche ne sono molto interressato per il mio robottino per ora, poi magari lo trasformo in un bel braccio robotico per creare cose icesioni lavorare il legnio e tantte altre cose …. mi piacerebbe farlo perche una cosa cosi che ti gli metti una immagine di un mause ti fa un mause lavorato no scolpito o magari un igranaggio na corona o qualche pezzo di palstica a forma di luchetto o chiave e cosi via … Mi piacerebbe farlo ci vuole un po ma piano piano lo farò prima farò lavoro la palastica o il legnio e poi anche il ferro o laluminio lo so che e una cosa dificile infatti nn sono solo ce anche mio cugino che mi da una mano che lui ha fatto un trapano a colonna comandato dal pc crato tutto da lui con motori steper ci lavora con le frese o puo bucare come un trapano normale.

    • Livio says:

      Non è detto che ci vogliano 15 giorni, magari anche dei mesi se ci saranno intoppi. Quando saranno pronti lo scriveremo da tutte le parti e non ti sfuggirà di sicuro. Tieni d’occhio la pagina degli schemi elettrici, il nuovo firmware si scaricherà da li.

      Nel frattempo costruisci la meccanica di cui stai parlando, sono certo che ci metterai molto più tu a fare una meccanica funzionante che noi a finire il firmware, ti spiego perché….

      Innanzitutto per quel che vuoi fare un braccio robotico non va bene, devi per forza fare una fresa CNC. Un braccio robotico non ha la rigidezza necessaria per fare un buon lavoro al centesimo di millimetro ma arriverebbe, nelle migliori condizioni, a MOLTI millimetri di errore. Per cui dopo averci lavorato per mesi, ti ritroveresti con una fresa che può fare solo il legno tenero o la plastica e senza nessuna precisione. Niente circuiti stampati, niente alluminio, niente stampi per la plastica e tanto meno il rame o il ferro.

      Quello che tu vuoi costruire si chiama fresa CNC e costruire una macchina del genere (funzionante) è molto più difficile di quel che sembra. Tutti i prototipi del nostro sistema sono stati fatti con la fresa CNC, ma prima di riuscire a fare qualcosa di buono abbiamo lavorato per circa sei mesi. Prima si tratta di fare la meccanica, poi di rifarla da zero, poi di rompere decine di punte e infine imparare tutto quel che serve, anche software, per riuscire a farla funzionare un minimo e iniziare a fare qualcosa di utile.

      Prevedi in anticipo molti mesi di patimenti e ricerche, se non hai una grande pazienza e moltissimo tempo, ti consiglio di lasciar perdere da subito. Non sto esagerando, è umanamente impossibile imparare tutto quel che serve in meno di tre mesi e questo anche se compri la meccanica finita. Se poi devi anche progettare e costruire la meccanica tu stesso fai pure conto che i primi PCB (che sono più facili dei 3D) comincerai a farli tra un anno.

      Noi siamo partiti da una meccanica Proxxon e non da zero, questo ha facilitato abbastanza la costruzione meccanica ma la pura meccanica è solo una parte. Ci vogliono i driver per gli stepper (meglio quelli con microstep), un alimentatore bello robusto, il Dremel (o simili) ben fissato e con controllo acceso spento, l’aspiratore per i trucioli…

      ciao
      Livio

  20. Livio says:

    Armando ha chiesto:
    …un circuito funzionante di cui ho difficoltà nella realizzazione… si tratta del FANTASTICO TRIGGER IV di Ferruccio Beltramone. Del rotore mi sono occupato personalmente. Desidero anche un rivelatore di polarità magnetica (un LED si accende in prossimità della faccia NORD del magnete) con sensore di Hall. Un oscillatore che piloti con Mosfet una bobina che spinge un rotore con magneti per elevati RPM.

    RISPOSTA:
    Prima di tutto diamo una occhiata ai fantastici TRIGGER di Beltramone:
    http://www.youtube.com/watch?v=kUSIIgbget4
    http://www.youtube.com/watch?v=L5zDqLVq728
    http://www.youtube.com/watch?v=d9E6weoJS0Y

    Con il sistema Theremino non servono i piastroni pieni di componenti di questi video. Bastano un Master, un Driver Mosfet, un alimentatore da banco e molti cavetti standard, per collegare i vari componenti (anche da sacrificare, tagliandoli e spellandoli). Non serve nemmeno un circuito stampato perché la struttura stessa del motore farà da supporto per gli elementi misuratori di campo magnetico e per le bobine di trazione.

    Si collegano i componenti con i cavetti, si scarica il software HAL e si comincia subito a vedere qualcosa che si muove e si accende.

    Trigger semplici come nei video di Beltramone sono realizzabili con la sola applicazione HAL, senza scrivere una sola riga di software. Si può, ad esempio, accendere un led quando il campo magnetico supera una certa soglia e si possono fare semplici trigger.

    In seguito un po’ di software potrebbe eseguire operazioni complesse come, ad esempio, pilotare più bobine con sfasamenti diversi. Con il software si può fare molto di più di quel che può fare il piastrone TRIGGER IV di Beltramone, per quanto grosso e pieno di componenti…

    Riferimenti alle pagine del nostro sito
    ————————————————————————————
    I Master sono qui: http://www.theremino.com/technical/schematics

    E si comprano qui: http://www.theremino.com/contacts/producers

    La applicazione HAL, per comunicare con il modulo Master e per fare i primi esperimenti è qui: http://www.theremino.com/downloads/foundations

    I cavetti sono qui: http://www.theremino.com/technical/connection-cables

    Gli Hall sono qui: http://www.theremino.com/hardware/inputs/sensors#magnetic

    Un driver in grado di pilotare fino a 4 bobine è qui: http://www.theremino.com/hardware/outputs/actuators#driveronoff

    Per unire il tutto si può usare un piccolo programmino in ThereminoScript: http://www.theremino.com/downloads/foundations#script

    Il risultato non sarà il massimo di velocità e di efficienza, se si vogliono motori efficienti si consigliano i motori brushless che costano pochissimo e hanno potenze incredibili: http://www.theremino.com/hardware/outputs/motors#brushless

    Video di esempio
    ————————————————————————————
    Qui si vedono alcuni esempi con sensori magnetici e con motori:

    http://www.youtube.com/watch?v=uRXk6zpU4Xg
    http://www.youtube.com/watch?v=axvvTWA0yjE
    http://www.youtube.com/watch?v=I54cN8ekzmo

    Questi esempi sono stati realizzati oltre un anno fa e danno l’impressione di dover comprare oltre al modulo Master, anche alcuni moduli Servo, ma i nuovi Master hanno fino a sei pin generici di In Out e quindi con un solo Master si fa di tutto.

    Come procedere
    ————————————————————————————
    (1) Procurarsi i componenti necessari:
    - 1 Master : http://www.theremino.com/contacts/producers
    - 1 o 2 elementi Hall : http://www.theremino.com/hardware/inputs/sensors#magnetic
    - 1 driver mosfet : http://www.theremino.com/hardware/outputs/actuators#driveronoff
    - Molti cavetti di collegamento : http://www.theremino.com/technical/connection-cables
    - 1 alimentatore da banco da 12 volt
    - Alcune bobine e magneti

    (2) Studiare bene il tutto, magari anche con un amico che sappia scrivere semplici software

    (3) Durante le prime realizzazioni si consiglia, prima di accendere e di collegare il master alla USB di inviarci alcune immagini, con i particolari dei collegamenti.

    Efficienza di un motore casalingo
    ————————————————————————————–
    Dato che con il sistema Theremino, la massima velocità di scambio hardware-software si aggira sui 500-800 Hz. E dato che un motore del genere deve avere al minimo una bobina. La massima velocità di rotazione dovrebbe essere 500 * 60 = 30000 RPM (giri al minuto)

    In pratica però, se si vogliono usare due o quattro bobine e si vuole che il software possa tenere sotto controllo anche gli sfasamenti, si dovrà limitare ulteriormente la velocità massima. Considererei quindi come velocità massima un 1000 RPM.

    Un motore “intelligente” (mezzo software e mezzo hardware), per quanto lento e inefficiente, ha il grande vantaggio che si conosce sempre la sua posizione, perché è il software stesso che lo muove passo per passo.

    Con i motori stepper, superato un certo sforzo o una certa accelerazione, il motore “sgrana” e si perdono passi. Invece con un motore “intelligente”, quando il motore non ce la fa, il software (se ben scritto) può accorgersene e aspettarlo.

    Per piacere, non parliamo di “Motori magnetici” e di “Energia dal nulla” !!!”
    ————————————————————————————–
    Non vogliamo in nessun modo favorire i miti e le bufale. Basta un minimo di conoscenze scientifiche per sapere che l’energia libera, il moto perpetuo e i motori magnetici sono balle galattiche. Chi fosse così ignorante da avere di questi dubbi, si istruisca al più presto, per il suo bene. I video seguenti possono aiutare:
    http://www.youtube.com/watch?v=LH6aRRqPTiA
    http://www.youtube.com/watch?v=DUtDRvl_mUI
    http://www.youtube.com/watch?v=MU2kvRyQL5g

    ciao
    Livio

  21. Leonardo Abbruzzese says:

    salve, potrebbe elencarmi tutto l’occorrente per costruire il robot arm?grazie

  22. Emilio says:

    Buongiorno,
    ho da poco scoperto il sistema Theremino, che ho trovato davvero meraviglioso per concezione e semplicità (complimenti!!!!).
    Premesso che non ho esperienza di realizzazioni robotiche, vorrei usare il Theremino Master per pilotare un sistema di traslazione lineare, che mi consenta di effettuare uno spostamento rettilineo di un oggettino (di peso molto modesto) su distanze di qualche centimetro con una precisione indicativa inferiore al mezzo millimetro.
    Volevo sfruttare la vostra esperienza per chiedere se esiste in commercio, a basso costo, qualcosa di già pronto, o comunque che richieda solo un minimo di adattamenti meccanici.
    Grazie in anticipo per ogni eventuale suggerimento.

    • Livio says:

      Per quello che ti serve non c’è di meglio che un “Servo” (servo motori per aeromodelli, non motori stepper, e nemmeno motori brushless o in continua)

      I servo sono direttamente pilotabili (fino a 6 contemporaneamente) da un modulo Master che si compra qui: http://www.theremino.com/contacts/producers

      Esistono i servo lineari (ma attenzione che sono piccolissimi, molto più piccoli di quello che sembra dalle immagini e quindi potrebbero avere una corsa troppo breve)
      http://www.hobbyking.com/hobbyking/store/__26610__Turnigy_FBL100_Linear_Servo.html
      http://www.hobbyking.com/hobbyking/store/__42302__2_4Ghz_SuperMicro_Systems_Single_Linear_Servo.html

      Io userei normali servo con una biella o con un nastro avvolto su un perno, per tirare/spingere una slitta. I normali HXT900 vanno benissimo ma per una maggiore precisione potresti usare i TGY900. Li trovi da HobbyKing. http://www.theremino.com/hardware/outputs/motors

      Sia gli HXT900 che i TGY930 sono sorprendentemente potenti, quindi non avrai problemi di peso da muovere. In caso di bisogno esiste lo MG958 che per poco più di dieci Euro alza (e rompe) quasi tutto, compreso se stesso. Ma non prendere servo troppo potenti se non ne hai davvero bisogno, sono meno precisi e potrebbero consumare troppa corrente, rendendo difficile alimentarli. (sempre meglio alimentare solo dalla USB, eventualmente con un condensatore elettrolitico da 1000uF per gli spunti e non usare alimentatori esterni)

      La biella che tira/spinge la slitta potrebbe essere (come si fa spesso negli aeromodelli) un semplice filo di ferro piegato a 90 gradi e inserito in uno dei fori delle varie crociere di nylon che sono sempre allegate ai servo. La slitta, se non trovi di meglio, potrebbe essere un potenziometro “slider” privato di tutta la parte elettrica (cercane uno che abbia una corsa precisa e morbida)

      Un nastro (attorno a un perno) che tira e spinge è intrinsecamente lineare, invece una biella non lo è. Se la linearità non sarà sufficiente sarà facilissimo correggerla con due righe di software.

      Con una corsa di qualche centimetro avrai precisioni intorno al decimo di millimetro (e anche meglio di un centesimo con i TGY930, se la slitta è precisa, senza giochi e con poco attrito)

      Benvenuto tra i thereminomani, chiedi pure per ogni dubbio, non disturbi, anzi ci fa piacere e grazie per i complimenti.

  23. Livio says:

    Armando ha chiesto:
    avendo realizzato il circuito FANTASTICO TRIGGER IV, in quanto ho ottenuto 10.000 RPM dal rotore del sistema e un consumo di 150 ma. Mi hai suggerito l’utilizzo di Theremino in quanto con pochi componenti avrei raggiunto il mio scopo senza mal di testa…. Pertanto theremino dovrà lavorare per alimentare le mie bobine in alternativa al fantastico trigger IV con in più il controllo dell’oscillazione (velocità del rotore) in funzione di un sensore termico. per adesso niente di più. La velocità che intendo ottenere è di 30.000 RPM con alimentazione 12/24 Volt e poca corrente. riusciamo a farcela?

    RISPOSTA:
    Girare veloce e consumare poco non dipende solo dal trigger ma anche da:
    - Percorsi magnetici ben definiti che concentrino i flussi magnetici nei punti giusti
    - Percorsi magnetici studiati per minimizzare le vibrazioni
    - Traferro di pochi decimi di millimetro tra statore e rotore
    - Avvolgimenti con grande impedenza unita alla più bassa resistenza possibile del filo
    - Costruzione adeguata a sostenere la forza centrifuga senza deformazioni
    (se il rotore si deforma non si può mantenere un traferro mimino
    e un rotore che gira a 30 000 giri può essere molto pericoloso)
    - Un alto numero di poli (almeno 8 se non 24, come i migliori brushless)

    Il numero di poli e la forma dei percorsi magnetici, sono importanti per minimizzare le vibrazioni.
    Le vibrazioni mangiano potenza e quindi diminuiscono l’efficienza quando si sale di giri.

    E venendo alla tua domanda:
    No, non credo proprio che possiamo fare motori efficienti che girano a 30 000 giri Solo ditte come Turnigy con rotori e statori costruiti con macchine a controllo numerico possono farli.

    Quello che proponevo è un “motore intelligente” che sa sempre dove si trova
    - Nessuna pretesa di girare al massimo dei giri possibili (direi un massimo di 1000 RPM)
    - Nessuna pretesa di consumare poco.
    - L’efficienza potrebbe essere un decimo di quella di un buon brushless
    e quindi si DEVE alimentarlo con MOLTA più potenza di quella che se ne può ricavare.

    Ma in cambio avremmo la possibilità di costruire un motore che è metà hardware e metà software, con enormi vantaggi sulla possibilità di controllarlo, in velocità e accelerazione e d conoscere in ogni istante, quanti passi ha fatto e in che direzione… una delizia per alcune applicazioni.

    —————————-

    Ho anche la sensazione che ci sia un desiderio di inseguire scopi religiosi più che scientifici e in questo noi non siamo per niente amichevoli…

    Le leggi sul magnetismo, sull’energia e sull’attrito sono inesorabili e precise, non c’è molto da scoprire in questo campo, piuttosto si dovrebbero progettare buoni motori… E, ancora un consiglio, non si progetta più con il seghetto e la lima, ma con la testa, i software di simulazione e Internet.

    Consiglierei dunque di continuare con il fantastico Trigger IV di Beltramone

    saluti
    Livio

  24. Stefano Mantovani says:

    Buongiorno .
    Per esigenze di lavoro , stiamo costruendo un piccolo robot antropomorfo a tre gradi di libertà,
    avremmo esigenza di muovere i tre servi contemporaneamente seguendo un percorso con una forma leggermente ellittica( potremmo fare dei calcoli con codici G) i servi sono dei microservi ,i bracci del robot sono lunghi circa 70 mm. Se in qualche modo posso mandare delle immagini, qualcuno cortesemente mi potrebbe dire se theremino è adatto per noi?
    Grazie Anticipate STEFANO

  25. Stefano Mantovani says:

    QUESTI SAREBBERO I SERVI….

    N.3 servocomandi
    9355000035-0/50464 Turnigy TGY-DS245MG Alloy Case Micro Digital Servo 2.0kg/

    Il Ns robot , ha solo tre servi , perché sarebbe risultato troppo difficile da costruire con più gradi di libertà per le piccole dimensioni , dato che i bracci sono 70 mm…
    Theremino , si può configurare con solo tre servi ?
    Posso mandare immagine se serve!!

    SALUTI STEFANO

    • Livio says:

      Il sistema Theremino può controllare un qualunque numero di servo, da un minimo di uno, a un massimo limitato solo dal numero di moduli che si collegano. Con un solo modulo Theremino Master si possono pilotare da 1 a 6 servo. Aggiungendo moduli slave si aggiungono altri 10 canali per ogni modulo.

      I servo vanno tutti bene, si collegano direttamente ai PIN. Il 5 Volt in arrivo dalla USB è presente su tutti i PIN, quindi basta collegare i servo, aprire la applicazione HAL e provarli subito con il mouse sulla colonna VALUE.

      Non abbiamo mai provato il TGY-DS245MG ma funzionerà di sicuro. E’ però un servo digitale e in genere i servo digitali hanno forti correnti di spunto. Potrebbe essere necessario aggiungere un condensatore da 2200 uF, maggiore di 6 Volt, tra il 5 Volt generale di tutti i PIN, e la massa. Se non saranno abbastanza precisi andranno sostituiti con i TGY930 da noi consigliati.

      La applicazione Theremino RobotARM fa esattamente quanto da voi richiesto:
      http://www.theremino.com/downloads/automation

      Theremino RobotARM è un applicazione scritta in modo semplice e tutti i nostri software sono “Open”. Quindi potrete modificarla per le vostre esigenze, o anche copiare gli algoritmi, in altre applicazioni scritte da voi.

      Theremino RobotARM contiene tutto il necessario per la vostra applicazione, sia la lettura dei file GCode, che le funzioni di cinematica inversa e diretta, fino a tre/quattro assi. Le configurazioni controllabili sono tre: Braccio Articolato (credo che sia il vostro caso), SCARA (ragni a tre bracci) e Ortogonale (tavole X/Y/Z).

      Tutte le nostre applicazioni funzionano anche senza acquistare l’hardware. Il mio consiglio è di scaricare subito il Theremino RobotARM, provarlo con i GCode e vedere come è scritto. Contiene algoritmi di alta qualità che vi potrebbero far risparmiare molto lavoro.

      Se serve un aiuto più approfondito scrivete a: engineering@theremino.com

  26. Stefano Mantovani says:

    Le mando una mail con le foto in allegato.

  27. Stefano Mantovani says:

    il servo che dice lei è troppo grosso per noi, abbiamo limiti di dimensioni, questo è un modellino di robot per la verniciatura .
    Sarebbe una riproduzione in scala di un impianto vero , con la simulazione di tutti i movimenti del robot reale…..
    il robot lo abbiamo costruito, ma il software e il ciclo di funzionamento comincia a essere un problema abbastanza serio per noi.
    Prendere il modulo master non sarebbe un problema , ci servirebbe parlare con qualcuno di voi per spiegare meglio i ns problema e che strada intraprendere.
    la mia mail : spl@spl.191.it.
    tutti gli aiuti sono ben accetti.
    Grazie

  28. Guido says:

    Salve a tutti…
    ho da poco scoperto il sistema Theremino, che ho trovato davvero meraviglioso per concezione e semplicità (complimenti!!!!!!!!!!!!!!!). Mi sono costruito un paio di cnc che sono controllate attraverso la lpt con Linuxcnc. Vorrei chiedervi se esiste la possibilita di controllarle con il Linuxcnc attraverso il Theremino.
    Grazie Anticipate Guido

    • Livio says:

      Proprio in questi giorni stiamo completando il controllo dei motori stepper:
      http://www.theremino.com/hardware/outputs/motors#steppers
      (un lavoro faraonico e risultati con prestazioni eccezionali)

      In seguito prevediamo di fare un semplice Theremino CNC, che sostituirà i vari Mach3, LinuxCNC e MC2. Questo perché ci siamo stufati di controllare la fresa con programmi così inutilmente complessi. Non so il LinuxCnc, ma Mach3 ha così tante impostazioni, protezioni e controlli, che quando smette di camminare, ci vuole la benedizione del Papa per farlo ripartire.

      Poi, quando avremo tempo, prevediamo di fare anche un controller per macchine tipo RepRap. Ma per ora dobbiamo finire gli stepper, e ci dobbiamo riuscire entro Natale come promesso.

      Detto questo, naturalmente sarebbe possibile convincere LinuxCNC a scrivere i valori X, Y e Z nei nostri Slot. Dovrebbe essere abbastanza facile ma noi non lo faremo, perché è meglio impegnare il poco tempo a fare applicazioni pulite, piuttosto che taroccare applicazioni esistenti. Inoltre io Linux non so usarlo e non riesco a sopportarlo, troppi sudo, troppe password. Una volta ho cercato di diventare super user per sempre e eliminare tutte le password, ma sembra proprio impossibile. Ci ho perso un giorno intero e non ci sono riuscito!

      Ciao, grazie dei complimenti, e benvenuto tra i thereminomani.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Current day month ye@r *