Standalone applications


Applicazioni senza PC

StandAlone_V4

Programmando il firmware (come con Arduino), i moduli del sistema Theremino potrebbero funzionare anche senza collegarli a un PC. Informazioni più dettagliate in questa pagina.

Ma noi sconsigliamo il funzionamento senza PC, per non perdere le principali caratteristiche del sistema Theremino: la potenza del PC, il collegamento in real-time tra il software ad alto livello e i componenti hardware di InOut e la facilità di uso.

Esistono sistemi (Arduino e cloni) progettati per applicazioni senza sistema operativo e senza PC, usate quelli.

Ripetutamente ci hanno chiesto di implementare gli Sketch di Arduino.
La risposta breve è: “Non ce n’è bisogno”
La risposta lunga è qui: http://www.theremino.com/blog/robotics-and-cnc#sketch

 


Applicazioni “stand alone” e “real time”

Per sistemi autonomi, ad esempio un quadcottero o un robot, si usano i FlatPC (vedere questa pagina).

FlatPC_2

I FlatPC e i moduli del sistema Theremino, pur lavorando con un vero sistema operativo, sono talmente veloci da essere più “real time” di un microcontrollore real time (ad esempio Arduino). Quindi un FlatPC e alcuni piccoli moduli thereminici possono facilmente controllare il volo e la stabilizzazione di un drone, correggendo la posizione in real time, fino a settecento volte al secondo (che è molto più di quel che serve in pratica e anche di quel che può fare un Arduino con la sua lenta CPU single core).

Fennec_Fox

Inoltre un FlatPC ha tutte le funzioni di base già integrate, e di qualità sufficiente a soddisfare anche l’orecchio più fine.

Più piccolo e leggero, sia di un Raspberry che di un Arduino, il FlatPC ha tutto di serie, in uno spazio piccolissimo. Quindi non si devono aggiungere moduli audio esterni, adattatori Wifi, memorie di massa, relativi cavi di collegamento e ingombranti Shield.


L’immagine seguente mostra un esempio di cosa si deve fare per ottenere un audio di qualità da un Raspberry (esempio tratto dal progetto volumio)

RaspberryDacAudio

E questa immagine mostra come si ottiene un audio di qualità da un FlatPC.

FlatPC_AudioOut

Le due immagini hanno la stessa scala e sono indicative di come si fa in fretta a impegnare volume con i moduli impilati (Piggyback) e con gli Shield. Qui si tratta solo dell’audio, ma se si volessero anche il Wifi, il GPS, il 3G, il Bluetooth e gli ADC a 24 bit, il castello diventerebbe un grattacielo e sarebbe impossibile collocarlo in spazi di forma ragionevole.

Per evitare l’accatastamento dei moduli e facilitare la disposizione dei volumi, il sistema Theremino non prevede Piggyback o Shield con posizioni prefissate, ma sempre cavi flessibili.


Theremino su Rapberry Pi con Raspbian

Attenzione: Queste informazioni sono superate. I piccoli PC con Windows, sono sempre più economici, consumano meno e sono molto più potenti, vedere le comparazioni. Sui FlatPC e TabletPC tutte le nostre applicazioni funzionano con il 100% di efficienza e funzionano subito (non si devono eseguire complicate installazioni).
http://www.theremino.com/downloads/notes-on-software#flatpc

Per gli amanti di Linux e Raspberry Pi abbiamo preparato un Debian per Raspberry, chiamato Raspbian, è disponibile come immagine completa. Quindi niente installazione del sistema operativo, si infila la scheda di memoria e via.

Questo Raspbian, che potremmo chiamare ThereRaspBian, fa girare le applicazioni del sistema Theremino, ma non è facile riuscirci. Si devono installare manualmente molte librerie di Linux e, a seconda delle versioni, alcune applicazioni potrebbero funzionare e altre no.

La velocità di comunicazione USB del Raspberry è ottima, arriva facilmente a 700-800 scambi al secondo. Il processore purtroppo è un po’ lento e ci sono errori (non nostri ma di Linux-Mono) che impediscono di usare il coprocessore matematico. Pertanto le applicazioni più adatte al Raspberry sono i logger lenti. Ad esempio i sistemi meteo, o per i terremoti, che si accontentano di un centinaio di scambi al secondo.

Connettori, datasheets e schemi elettrici di tutti i modelli di Raspi in questo file.


Consumi del Raspberry Pi

Modello B
Solo tastiera    0.38 A - 1.89 W
Tastiera + Wifi  0.43 A - 2.14 W
Modello B+
Solo tastiera    0.25 A - 1.25 W
Tastiera + Wifi  0.30 A - 1.50 W
Solo WebCam      0.30 A - 1.50 W circa (cambia con illuminazione)
Senza USB/LAN    0.15 A - 0.75 W
In shutdown      0.05 A - 0.25 W

Tutti i modelli di Raspberry (A, B e B+) devono essere alimentati con tensione da 4.5 a 5.5 Volt. In caso di alimentazione con pannelli solari, si consiglia di usare un regolatore switching, per ridurre la tensione di batteria con la massima efficienza.

Il Theremino Master e i moduli Slave consumano solo 12 mA. Quindi un Master aumenta il consumo del Raspi di meno del 5%. Se si collegano al Raspi solo la scheda Wifi e il Master, si consuma circa 1 Watt, quindi in totale meno di 100 mA con una batteria a 12 Volt.


Overclock del Raspberry Pi

Il Raspi a 700 MHz è piuttosto lento, ma con 950 MHz va molto meglio. L’overclock si effettua con “RaspiConfig”.

Fino a 950 MHz di overclock la SD Card lavora a 250 MHz, per cui basta una “SD Card classe 4”. Se si imposta il massimo overclock (1 GHz), allora la SD Card viaggia a 500 MHz, e serve una “SD Card Kingston classe 10”.

Con l’overclock il consumo medio non cambia molto, si sale dai normali 300-350 mA fino a un massimo di circa 350-400 mA. Anche con il massimo overclock, bastano piccoli dissipatori per tenere i chip sotto agli 85 gradi, temperatura oltre la quale i chip rallentano automaticamente. Una ventola non è necessaria, ed è meglio non usarla per evitare rumore e polvere.

Per un buon funzionamento la temperatura non deve superare i 70 gradi e la tensione di alimentazione non deve scendere sotto ai 4.8 Volt. Esistono semplici istruzioni in Python per leggere temperatura e tensione, sarebbe quindi utile scrivere una piccola utility. Questa utility dovrebbe memorizzare i valori di picco, ma mostrarli su schermo solo una volta al secondo, per consumare poca CPU.

  1. Paolo says:

    Complimenti per l’ottimo articolo “Un braccio robotico economico con meccanica essenziale”. Mi permetto di scrivere unicamente per chiedere un paio di chiarimenti:

    – Leggendo l’articolo non ho capito se il theremino lavora come arduino, ossia riceve i dati, li elabora e dopo li applica ai servi. Onestamente dal tuo articolo mi sembra di capire che è possibile un controllo in real time, cosa che decisamente metterebbe il sistema theremino a un livello eccezionalmente più alto di arduino.

    – Non ho trovato il file di conversione da disegno a movimenti servo. Per disegnare qualsiasi oggetto, anche 3D, come fai a elaborare un immagine ? Dal sito Theremino si vede un pannello di controllo. Il sistema letto nell’articolo sembra quello delle stampanti 3D , ma a differenza delle ultime , non mi sembra di capire ci sia un software di conversione, ma che piuttosto si vada per tentativi.

    Secondo te un sistema simile (controllo diretto dei servi da pannello di controllo senza dover compilare ogni minima modifica) si poteva ottenere anche con Arduino ? Ho cercato molto materiale ma onestamente non ho trovato nulla.

    Complimenti ancora e in gambissima !!

    • Livio says:

      Theremino non lavora come un Arduino, è più facile da usare, puoi fare di tutto senza programmare. (naturalmente per applicazioni complesse è anche possibile programmare)

      Con il software ThereminoArm è possibile il controllo diretto in real time, anche con il mouse ad esempio. Oppure seguendo quel che dice un file di tipo GCode (o NC o TAP o qualunque file simile)

      I file che vengono usati normalmente sono i GCode (ne trovi molti insieme al ThereminoArm come esempi) e sono semplicissimi, solo un lungo elenco di coordinate X/Y/Z.

      I file GC sono proprio gli stessi che si usano per frese a controllo numerico e Robot e si producono con appositi programmi (programmi per circuiti stampati o per il disegno 3D)

      Tra breve pubblicheremo il software Theremino_ImgToGcode che aiuta a convertire le immagini a tratto in files GCode

      • Paolo says:

        Ho gia’ costruito un braccio, collegato a un modulo Arduino, ma per le ragioni che ti ho esposto si e’ rivelato una grande delusione per applicazioni più industriali. Tutto deve essere pre-programmato e salvato in locale sulla memoria comunque molto limitata.

        Nonostante una community folta, solo alcune versioni di Arduino di fascia commerciale più elevata possono utilizzare librerie dirette, pertanto si trova poco materiale in merito, per lo più video su youtube ma senza codice.

        Mi attrezzo subito per sostituire l’hardware arduino con theremino cosi da dare un riscontro diretto.

        • Livio says:

          La tua applicazione di controllo industriale è interessante e potrebbe offrire buone idee anche ad altri quindi, per piacere, scrivi qui i risultati delle tue prove e come prosegue l’avanzamento delle tue ricerche.

  2. valter procarione says:

    conosco adesso questa idea, thereminio, e credo che sia la cosa più geniale che ho visto per le enormi potenzialità e applicazioni di cui è capace, ma che delusione per la scarsità di materiali disponibili.
    moduli e altre schede base premontate per cominciare, un po’ stile arduino, non sono reperibili nei link presenti nel sito, quello più solido sembra essere pololu.com, ma solo per i 3 assi, dove trovare cose più elementari per iniziare un minimo di propedeutica, anche per iniziative scolastiche?

    • Livio says:

      Arduino esiste da una decina di anni, nei primi anni nessuno lo conosceva e si trovava poco materiale anche per lui. Il sistema Theremino esiste da poco, e fa molta fatica a farsi conoscere. Il problema maggiore è che esiste già Arduino, che riempie ogni spazio possibile e ha mezzi di marketing incomparabilmente superiori.

      Altri motivi che rendono il sistema Theremino “diverso” sono:
      – Che non siamo minimamente interessati al guadagno e a ogni forma di marketing.
      – Che non desideriamo vengano scritti libri sul sistema Theremino (esiste già tutto sul sito ed è libero per tutti)
      – Che non ci fa piacere avere rapporti con riviste famose a pagamento (che il pagamento sia palese o occulto non importa)

      In sostanza il sistema Theremino non si occupa di produzione, spiega solo “come si fa”, e vuole mantenere le conoscenze libere per tutti, sempre gratuite e direttamente consultabili, senza intermediari.

      Tutto questo è ben spiegato qui:
      http://www.theremino.com/contacts/environmental-protection
      http://www.theremino.com/contacts/the-theremino-mission

      Per quel che riguarda i componenti siamo a conoscenza che stanno nascendo nuovi produttori. I quali promettono di tenere a catalogo tutto, ma proprio tutto, per il sistema Theremino (fino ai particolari, gli stampati, le viti, i cavi e i kit).

      Noi non abbiamo nessun rapporto commerciale con loro, ma da quel che si legge sul loro sito, sembra promettere bene:
      http://thereminostore.com

  3. faxim says:

    Scusate, ma al posto di esaltare i difetti di Arduino e Raspberry (che poi difetti non sono), non potreste limitarvi ad elencare i pregi di Theremino senza paragoni con le altre piattaforme?
    Mi spiace, ma leggendo questa pagina mi è sembrato che l’editore abbia sminuito arduino e raspberry, cadendo anche su affermazioni alquanto discutibili. Conosco piuttosto bene sia theremino che arduino che raspberry, e sono certo che ognuna di queste piattaforme ha un proprio punto di forza diverso dalle altre. Non c’è bisogno di cantare i difetti altrui per far vedere che si è forti.

    • Livio says:

      Non lo hai scritto ma probabilmente ti riferisci a queste tabelle:
      http://www.theremino.com/downloads/notes-on-software#comparation

      Le tabelle di confronto tra i tre sistemi non servono per stabilire un “vincitore” ma per indirizzare i makers verso la piattaforma più adatta al loro progetto. Tu non ne hai bisogno, dato che conosci bene tutte e tre le piattaforme, ma a molti possono essere utili.

      Esistono casi in cui Arduino è preferibile e molto spesso, decine e decine di volte, abbiamo consigliato di non utilizzare Theremino perché Arduino è più adatto.

      Probabilmente non stai tenendo conto di un fatto importante: Arduino e Raspberry sono sistemi commerciali, invece noi siamo completamente “NoProfit”. Il sito thereminostore è gestito da cinesi che non ci pagano, per cui non ci importa niente se vendono poco o tanto.

      Se tieni conto di questo e rileggi quanto abbiamo scritto, ti accorgerai che sono solo considerazioni tecniche. Più o meno come i consigli su quale stagno e quale saldatore usare.

      Se trovi qualche affermazione realmente sbagliata scrivila qui e la correggeremo subito. Se invece sono solo “discutibili”, siamo qui per questo. Scrivi la tua versione, qui c’è libertà di pensiero e ogni contributo è utile e benvenuto.

  4. NdK says:

    Il sistema mi pare carino, peccato che preveda l’uso di un pc con windows, che aumenta sensibilmente i costi e riduce l’affidabilità. Personalmente preferisco sistemi meno “inutilmente potenti” (Arduino Uno, ESP8266), ma talvolta un processore più performante può fare comodo.

    Tra l’altro il sito thereminostore.com pare scomparso, purtroppo… Sarebbe molto utile anche se venisse indicato dove trovare i flat pc… Un solo fornitore non aiuta sicuramente!

    • Claudio says:

      Dal mio punto di vista theremino è differente da arduino, ha una notevole maggiore elasticita di utilizzo diretto. Provai anche con arduino, ma ho avuto troppe difficolta e lentezza, sara sicuramente anche dovuto alla mia ignoranza, ma theremino mi ha reso tutto piu semplice e diretto con costi notevolmente ridotti ed un supporto tecnico da parte dello staff theremino in primis Livio che è a dir poco pazzesca, per velocità di comunicazione in senso esageratamente altruistico a 360′. Ho utilizzato ed utilizzo anche ed ancora un windows vista e nonostante tutto non ho mai ancora avuto nessun intoppo considerevole. Ti consiglio vivamente di testare questo interessantissimo sistema.

    • Livio says:

      Il sito thereminostore è in cina e spesso funziona male. Se ti da problemi puoi utilizzare http://www.thereminoshop.com che è negli stati uniti e risponde subito.

      I Tablet economici, ma quad core velocissimi e con Windows10, si trovano su eBay o anche su Amazon. E con un tablet hai anche un ottimo pannello touch screen, nonché le schermo e anche le batterie, e il caricabatterie, e il Wifi, e l’audio, e gli altoparlanti stereo, e il bluetooth, e due porte USB, e ram e hard disk a volontà. Se aggiungi anche solo una parte di queste opzioni ad Arduino poi ci metti un anno a far funzionare insieme tutti gli shield, ma più probabilmente non ci riesci proprio e lasci perdere. Inoltre l’accrocchio finale sarebbe molto più grosso e ti costerebbe più di un Tablet.

      Oppure potresti utilizzare un Meegopad come spiegato in questa pagina:
      http://www.theremino.com/downloads/notes-on-software#availability

  5. Graic says:

    “I FlatPC e i moduli del sistema Theremino, pur lavorando con un vero sistema operativo, sono talmente veloci da essere più “real time” di un microcontrollore real time (ad esempio Arduino). ”
    Questa affermazione dimostra la non conoscenza del concetto tecnico di “Real Time” che , di per sè, non ha nulla a che fare con la “velocità” ma con la capacità del sistema di rispondere “sempre e comunque” all’interno di deadline prefissate. capacità che un sistema operativo come Windows non avrà mai.
    Dal punto di vista pratico poi un un Flat PC con processore quad-core “lentissimo” e con solo 2 o 3 GB di RAM non ce la farà mai a far girare un SO come Windows i intervenire nei tempi necessari a controllare un drone in volo.
    “E con un tablet hai anche un ottimo pannello touch screen, nonché le schermo e anche le batterie, e il caricabatterie, e il Wifi, e l’audio, e gli altoparlanti stereo, e il bluetooth, e due porte USB, e ram e hard disk a volontà. Se aggiungi anche solo una parte di queste opzioni ad Arduino poi ci metti un anno a far funzionare insieme tutti gli shield, ma più probabilmente non ci riesci proprio e lasci perdere. Inoltre l’accrocchio finale sarebbe molto più grosso e ti costerebbe più di un Tablet.”
    Ma magari io di tutte queste cose non ne ho bisogno, è esattamente questo il concetto di “inutilmente potente”

    • Livio says:

      Tutto cambia, quello che ora sembra inutilmente potente sarà un bruscolino tra soli dieci anni.

    • Livio says:

      E comunque ti sbagli anche sul concetto teorico di RealTime. Anche micro-controllori come Atmel e PIC hanno una latenza, senz’altro più piccola di Windows ma c’è comunque.

      Quindi tecnicamente non sarebbero in real-time nemmeno loro. Si tratta solo di vedere se il ritardo tra stimolo e reazione è sufficientemente piccolo per quello che si deve fare.

      Sul quad-core lentissimo poi ti sbagli completamente, sto scrivendo con un PC tower che tu considereresti potente e ho qui di fianco un tablet con processore quad core Atom. Li conosco bene tutti e due e li uso tutti i giorni per provare le nostre applicazioni. E ti posso assicurare che il Tablet è più veloce (grazie anche all’hard disk a stato solido).

      E il tuo “solo due o tre giga di ram” indica che non hai chiaro cosa serve su un drone. Attualmente sul tower ho 2 giga di ram e ci faccio girare senza problemi di tutto. Programmoni da 15 giga come Visual Studio 2017 community ad esempio. Programmi di grafica ecc.. Per un drone basta molto ma molto meno e due giga sono più che sufficienti. Ad esempio il Tablet che usiamo sempre per le prove ha due giga di Ram e fa girare perfettamente decine delle nostre applicazioni contemporaneamente.

      Comunque nessuno pensa di stabilizzare un drone con gli scambi USB. Per quanto con oltre 500 scambi al secondo si potrebbe anche pensarci. In fondo ci facciamo andare le macchine a controllo numerico e funzionano benissimo (e funzionano bene anche con i Tablet quad core che tu definisci “lentissimi”).

      Ma è evidente che tutti i “riflessi automatici” li si eseguirebbero con un PIC. E si lascerebbero al PC solo compiti come seguire la rotta, scattare immagini, tenere le comunicazioni col pilota ecc..

    • Claudio says:

      Un conto è settare, per utilizzo midi, arduino in senso pre per poi utilizzarlo successivamente in realtime ed un altro conto sta nel agire realtime nel settare per un successivo utilizzo realtime.
      In pratica , almeno nel mio caso, sono sempre in realtime, anche mentre in fase di pre settaggio.
      Theremino permette di affinare il settaggio di tutti i parametri in realtime , in attivo mentre tutto è in azionamento, per il successivo definitivo utilizzo realtime.
      Crei una sequenza su un servo motore, ad esempio, in realtime mentre è in azione affini il settaggio dei parametri.
      Ed utilizzo attualmente anche un windows Vista, una petecchia confronto al resto, con nessun apparente problema e ci smanetto da piu di un anno.
      Non credo che con un arduino si possa fare attualmente. Testai un po di anni fa e il processo mi sembro un pò troppo macchinoso, lento, almeno la parte iniziale di settaggio, senza ombra di dubbio.
      Anch io ne ero inizialmente titubante,perché sono uno stand alone direzionato, ma effettivamente credo che utilizzare un pc direttamente in stand alone in questo caso verso il sistema modulare theremino sia una soluzione molto avanzata ed con i nuovi computers sempre piu compatti e potenti la questione diventa sempre ancor piu avanzata.
      Dal mio punto di vista Arduino è nettamente inferiore ad un sistema come theremino e sicuramente se pur possono sembrare simili sono nettamente differenti.
      E lasciam perdere tutto l aspetto economico, che anche in questo caso riscontro notevoli vantaggi.
      La logica del sistema theremino mi sembra molto piu fluido e diretto e lo consiglierei a qualsiasi principiante come me.

    • Anonymous says:

      Per ottenere un funzionamento real time si deve saper programmare con le tecniche adeguate, utilizzare i threads, impostare la granularità dello scheduler a 1 mS, impostare le priorità dei thread, ecc..

      Con queste tecniche si possono far girare i thread che lo necessitano con temporizzazioni precise nell’ordine dei millisecondi. E dato che i tempi di risposta di quasi tutti i sistemi meccanici sono dalle decine alle centinaia di millisecondi, ne consegue che una applicazione Windows-Desktop può effettivamente lavorare in real time.

      Questo articolo lo dimostra in modo inequivocabile:
      http://www.grix.it/viewer.php?page=12835 (vedere capitolo “affidabilità”)

Leave a Reply

Your email address will not be published.