Master and Slaves

 

      

Commenti e idee sull’uso dei moduli del sistema Theremino 

Alcuni utenti hanno chiesto come applicare una alimentazione esterna.

La soluzione più semplice è usare un HUB USB con presa per i 5 Volt e alimentatore da 5 Volt esterno. Alcuni di questi HUB possono arrivare anche fino a 3 Ampere e oltre. Ma noi consigliamo di non esagerare con la corrente massima, per non rischiare di bruciare i delicati contatti delle prese USB.

Nel caso che il sistema sia composto da Master e Slaves si potrebbero usare gli adattatori visibili in fondo a questa pagina: www.theremino.com/hardware/actuators

Gli adattatori possono interrompere, e alimentare, tutta la catena di Slaves oppure possono essere usati su un singolo attuatore, interponendoli tra il Pin di InOut e l’attuatore con una prolunga standard.

Queste considerazioni valgono per disporre di più corrente sui pin di InOut e NON per alimentare il modulo master dall’esterno.

In tutti i casi si consiglia di non esagerare con la corrente massima e di usare alimentatori protetti contro i corto-circuiti. Fare anche attenzione che non producano disturbi ed extratensioni esagerate quando li si collegano al 220 Volt.

In caso di attuatori con forte corrente di spunto prima di passare alla alimentazione esterna provare con un condensatore da 4700 uF tra +5V e Massa. Il condensatore può essere saldato al master, oppure si possono usare i pin rimasti liberi per accedere al +5 e alla massa e collegare il condensatore con un piccolo connettore femmina.

Nel caso sia proprio necessario alimentare i PIN del master dall’esterno fare come indicato in questa immagine.

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

Led del Master che non si accende

Se il led del Master non si accende non andate a cercare guasti nel sistema USB o nei driver di Windows, è più probabile che sia il led stesso.

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

Scrivete qui domande e consigli, così saranno utili a tutti.

  1. Luca says:

    Per “colpa” di Alessio sono qui’ anche io a leccarmi le orecchie leggendo le potenzialita’ del theremino. Bellissimo lavoro. Volevo chiedere se esiste un tutorial su come utilizzare le schede con istruzioni passo passo per fare piccoli esperimenti per poi arrivare a qualcosa di complesso. Mi si sono accese tre milioni e mezzo di lampadine ma se non so’ guidare l’aggeggio rischio di romperle tutte :) Ciao Luca

    • Livio says:

      Theremino e’ un grande progetto, composto da molte parti diverse, non c’e’ un solo tutorial. Il sito stesso e’ il tutorial.
      Giralo tutto un po’ qui e un po’ li, e leggi quello che ti interessa di piu.

      Riguardo ai primi passi potresti leggere: Theremino_Handbook_Lessons_1-2
      che si trova qui: http://www.theremino.com/downloads/documentation

      ciao
      Livio

  2. Livio says:

    =================================================
    Copio qui una domanda di Luca che puo’ interessare molti utenti.
    =================================================

    Ciao Livio.
    Mi ha indirizzato a te Alessio IK5PWR.

    Ciao, e benvenuto tra i Thereminomani.

    Volevo chiederti alcune info sul theremino.
    Io ho un vecchio analizzatore di spettro della Marconi che ha l’uscita per il plotter analogico in X Y. Per la X la tensione varia da 0 a 10V e per la Y da 0 a 2,5V. Visto la necessita’ di stampare quello che vedo a video pensavo di usare questa scheda, ovviamente con attenuatore per l’asse X.
    E’ possibile fare questa applicazione in abbinamento al programma HAL o estrapolare un file testo numerico da usarsi con excell?

    Certamente! Basta adattare le tensioni ai nostri ingressi ADC ( 0 V to 3.3 V )
    In tutti i casi in cui parti con un range di tensioni maggiore del nostro è possibile effettuare l’adattamento con due resistori o al massimo tre (se devi misurare anche tensioni negative)

    E’ meglio evitare qualunque soluzione complessa che includa operazionali, diodi, e transistors, in modo da eliminare regolazioni e problemi (imperfetta taratura dello zero, deriva con la temperatura etc.)

    Per approfondire il tema del convertitore ADC, nella sezione del sito “APPLICATIONS” nella parte descrittiva “APPARECCHI DI MISURA”, in fondo al trafiletto si fa riferimento per maggiori dettagli al file “Theremino – Strumenti di misura”, non riesco a trovare questo file per i dettagli, hai da darmi qualche indizio in piu’? Sono interessato anche ad usare l’ADC per leggere tensioni che variano da tensioni negative a quelle positive passando per lo zero.

    L’adattamento con resistori è talmente semplice e i casi che necessitano di appositi Slaves di misura sono talmente rari che, probabilmente non amplieremo la parte “misure di precisione” molto presto, o forse mai, o lo farà qualcun altro dato che il nostro sistema è completamente “Open”

    Volevo comprare un theremino ma vedo che alcune schede di espansione non sono disponibili, bisogna costruirsele oppure sono in produzione a breve?

    Saranno in produzione entro pochi mesi. Ma non ti servono le schede aggiuntive che comunicano in seriale “Slaves”. Ti basta un Master perché la serie nuova di Master ha 6 Pin generici e configurabili con cui puoi fare di tutto. Comincia a prendere un Master e a farci amicizia spendendo poco, in futuro, se necessario, potrai aggiungere Master e Slaves a volontà.

    Ti ringrazio e complimenti per il vostro lavoro.
    Salutoni Luca.

    Ringraziamo anche noi, probabilmente calcolare un partitore ti sarà facile eventualmente usa LTspice per fare i conti, controllare e simulare.

    Usa valori di resistenza intorno ai 100k e 10k, in caso di tensione negative il terzo resistore collegalo al +3.3 che trovi sul connettore ICSP del master.

    Inviaci eventualmente schemi e calcoli e te li controlleremo,

    ciao
    Livio

  3. Carlo says:

    Salve, trovo questo progetto molto interessante, seguo l’mca su radioactivity network e lo trovo molto ben fatto.
    Volevo sapere alcune cose in merito a theremino:

    1) Quando saranno disponibili le schedine SLAVE?
    2) Dovendo fare un controllo automatico che mi legge sensori di temperatura (termocoppie/ntc-ptc), sensori analogici di pressione, tensioni e correnti, sensori resistivi, avrei bisogno di visualizzarli in una schermata stile datalogger, con curve specifiche, di ogni sensore, cosa posso usare per visualizzare i dati che escono da theremino. Esiste gia’ un programma di datalogger con eventuale possibilita’ di settare esempio degli allarmi settati in precedenza.
    Resto in attesa di vostre delucidazioni in merito
    Vi ringrazio anticipatamente
    Ciao

    Carlo

    • Livio says:

      1) Potrebbero essere pronte tra qualche mese, non parte la produzione perché c’è poca richiesta in quanto con il solo master si fanno le stesse cose e si spende meno. E’ anche possibile usare più master moltiplicando i pin di InOut a piacere. Se proprio ti servissero degli Slave potresti chiedere a Ennio qualche prototipo montato a mano (sempre su PCB serigrafati, ben saldati e affidabili come quelli montati a macchina) puoi scrivergli a: artistic@theremino.com

      Comunque all’inizio, anche con i soli 6 Pin di InOut di un Master, ci sono così tante cose da sperimentare e da studiare da restare impegnati per almeno un anno. Ti consiglio dunque di cominciare con un Master e di familiarizzarti con le molteplici possibilità di comunicazone del sistema Theremino, approfondire la tua conoscenza sugli Slot (per la comunicazione tra processi) e con gli oltre 20 tipi di InOut configurabili su ogni Pin.

      2) Attualmente non esiste un software che faccia esattamente quello che ti serve ma si può fare facilmente modificando uno degli esempi già esistenti. Si comincia individuando un software simile al richiesto (come menu), poi si copia tutto il progetto e si cambiano nomi e scritte. Infine si elimina quel che non serve e si aggiungono le cose che servono, se sono semplici come dici un esperto di DotNet ci metterebbe poche ore. Se sara’ necessario lo inizierò io e poi ti metterò in grado di modificarlo e proseguirlo tu stesso. Per trafficare in questo modo serve Visual Studio Express 2008 o 2010 (costruiti con tanta passione e assoluta precisione da Microsoft, sono strumenti di lavoro di alta qualità con zero bug a anche gratuiti – Tutti i nostri software attualmente sono scritti con il 2008, chi usa il 2010 deve convertirli, ma bastano 30 secondi)

      Per piccoli programmi non ci sarebbe nemmeno bisogno di scomodare Visual Studio, basterebbe usare Theremino_Script (scaricalo, apri “Simple Examples” / “WebBrowser.vb” e vedrai come è stato possibile scrivere un intero WebBrowser – perfettamente funzionante – in poche righe)

      Un’altra, ottima possibilità è passare i dati a MaxMsp (o simili) e da li in poi usare le sue utility grafiche e multimediali che sono una valanga, tutte già pronte, ben documentate in rete e usabili senza scrivere una sola riga di codice. A questo proposito leggi nella pagina http://www.theremino.com/downloads/foundations le parti su Max/MSP, UDP e OSC

      Ma prima di cominciare a progettare ti consiglierei di passare un periodo abbastanza lungo a fare prove pratiche con almeno: 1 servocomando, qualche led montato su una femmina a 3 pin, 1 potenziometro, sensori di luce, sensori magnetici, di temperatura etc..

      Poi ti consiglierei anche di costruire alcuni piccoli tasti capacitivi (quadrati di vetronite ramata su un lato da 1×2 cm) e sliders (triangoli un po’ lunghi) per esplorare le possibilità di fare tastiere e comandi proporzionali. Poi dovresti scaricare tutti i software già disponibili, e provare a collegarli al Master e ai sensori imparando cosi’ a configurare HAL, Pin e Slot.

      Fatto questo (quindi se ne riparla dopo Natale) potresti avere sotto mano le conoscenze necessarie per fare un buon progetto e probabilmente si apriranno anche insperate possibilità e possibili semplificazioni.

      Continua a scrivere ogni dubbio e nuova idea, non è un disturbo, anzi! Quello che scriviamo qui è di aiuto per tutti.

      ciao
      Livio

  4. Agostino says:

    Ieri ho ricevuto il master e ho iniziato subito a conoscerlo.
    Oggi pomeriggio ho scaricato Hal e ho sperimentato con pulsanti, led e anche servo. adesso la prima cosa che voglio fare è attaccare uno stepper. E poi scaricare tutti i software e iniziare a costruire il braccio robotico.
    Con Hal è molto facile mettere in comunicazione entrate e uscite. Pensa che oggi ho acceso un led comandato da una fotoresistenza e addirittura ho provato poi con un termistore. Naturalmente si vede il led fare il fade se copri o scopri la fotoresistenza o il termistore, e anche i grafici sono fantastici.
    Mi sto appassionando…. Ci sentiamo presto.

    • Livio says:

      Perfetto, questo è esattamente lo spirito per cui abbiamo lavorato per anni, grazie!

      Piccoli consigli…

      Servo
      —————————————————————————————-
      Fai attenzione ad usare servo a basso consumo e mettere un condensatore da almeno 1000 uF tra massa e +5, altrimenti il master potrebbe perdere la comunicazione e smettere di lampeggiare quando il servo si muove. Questo accade perché alcuni servo consumano molta corrente, e tutti anche i più piccoli, durante lo spunto superano per brevi istanti i 500mA che la USB mette a disposizione. Non si rompe niente ma diventa noioso dover premere “Recognize” per ripristinar la comunicazione.

      Motori stepper
      —————————————————————————————-
      Per ora non puoi ancora selezionare i Pin di tipo “Stepper” (stiamo finendo il firmware) quindi, se proprio vuoi usarli, devi usare due pin di tipo DigOut per ogni motore un pin per la direzione e uno per i passi di step.

      Per pilotare gli stepper 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)

      Il sito Theremino
      —————————————————————————————-
      Sul sito ci sono molte informazioni e a volte non è facile trovarle, per fortuna esiste il pulsante “Search” che funziona molto bene, quando poi sei all’interno della pagina puoi usare CTRL-F

      Ciao, buona domenica, attendiamo i risultati delle tue future ricerche, scrivili qui, così saranno utili a tutti e benvenuto tra noi thereminomani.

  5. Agostino says:

    Oggi ho sperimentato con un piccolo stepper, smontato da un hard disk rotto. Ho usato la easy driver della sparkfun. Ho notato che i pin non dovevano essere out, ma ne bastava uno solo sul dir della easy driver, e questo pin doveva essere o servo o pwm.

    Comunque ho sperimentato con tutti i tipi di pin, e solo su questi due tipi ho avuto il motorino che girava (anche se girava come e quando gli piaceva a lui).

    Certo che sviluppare HAL anche per gli stepper sarebbe una conquista.

    Adesso quello che voglio fare è conoscere meglio lo script, perché se ho capito bene da la possibilità di scrivere dei programmi da far girare su theremino.

    Alla prossima.
    Ciao
    Agostino

    • Livio says:

      Muovere gli stepper con il solo HAL
      ——————————————————————————————-
      Il collegamento con il solo filo DIR (direzione) non dovrebbe far girare il motore ma solo cambiare la direzione (se DIR è basso a va in un senso se DIR è alto va nell’altro)

      Se il motore gira cammina con il solo DIR è perché il filo STEP lasciato aperto prende dei disturbi.

      Per fare andare i motori step devi collegare i fili DIR e STEP a due pin configurati come DigOut
      poi però. come avrai notato, non li potrai muovere con il solo HAL – o meglio – li puoi muovere ma solo manualmente, un passo per volta.

      Per provare i collegamenti con il solo HAL dovresti muovere con il mouse il PIN a cui è collegato STEP. Ogni volta che passi da 0 a 1000 il motore deve fare un passo (step in inglese)

      Poi dovresti cambiare con il mouse lo stato del PIN collegato a DIR (da 0 a 1000 oppure da 1000 a 0) e riprovare a muovere il PIN degli STEP

      Muovere da software
      ——————————————————————————————-
      Per muovere il motore velocemente ci vuole del software aggiuntivo, magari uno script che alza e abbassa il filo STEP a velocità regolare.

      Ti ho fatto uno script di prova che manda impulsi allo slot 1 con velocità regolabile scaricalo da qui: http://www.theremino.com/files/ThereminoScript_SlotOnOff.zip

      Nel file ZIP trovi un eseguibile che funziona subito e lo script con cui è stato fatto. Puoi modificarlo e fare un vero controller di motori stepper.

      Oltre a mandare gli impulsi si dovrebbe fermarsi quando si raggiunge la destinazione… non è facilissimo e non si riuscirà ad andare molto veloce a meno di passare a VbNet vero (non script) e usare dei timer veloci con tecniche “difficiline”. Eventualmente ti aiuterò a farlo… potrebbe essere utile anche ad altri.

      In futuro il nuovo tipo di PIN semplificherà tutto questo, ma l’esperienza con lo script ti sarà utile comunque.

      Gli script e il software del sistema theremino
      ——————————————————————————————-
      Hai scritto “programmi da far girare su theremino” e probabilmente ti attendi di far girare i programmi dentro al Master. Molti credono questo perché con Arduino si fa così, ma il sistema Theremino è diverso. Theremino è un InOut per PC e tutto il software gira sul PC (o su un host in genere) Questo impone di essere sempre collegati ma in compenso permette di scrivere software di alta qualità, che sarebbe impossibile far girare su un Arduino.

    • Livio says:

      Guardando l’immagine che mi hai inviato: http://www.theremino.com/files/Img_1467.jpg
      vedo i fili del segnale collegati ai PIN 1 e 2 ma non vedo il filo che unisce il GND del Master con il GND dello stepper driver. Questo sicuramente crea ogni genere di disturbi e “fa girare il motore come vuole lui” ma sopratutto può essere pericoloso per la salute del Master e dello stepper driver.

      I moduli thereminici non si rompono mai, stiamo per superare il record di un anno intero senza nessun reso, ma non chiediamo troppo alla fortuna, basta un errore di troppo e si brucia tutto.

      Fino a che si usano il master e gli altri moduli thereminici alimentando tutto dalla USB, si può stare tranquilli. Ma aggiungere moduli e alimentatori esterni può essere molto pericoloso, si deve star molto attenti a non sbagliare i collegamenti e sarebbe anche bene collegare la USB e la alimentazione esterna solo dopo aver fatto e ricontrollato tutti i collegamenti.

      Alcuni alimentatori esterni sono fatti male e sparano forti disturbi sui collegamenti quando si spegne e accende il 220 Volt (facendo inchiodare l’HAL ogni volta), con questi alimentatori è importantissimo avere sempre un buon collegamento di massa che tiene bene collegate le GND di ogni modulo (ALIM >>> MASTER >>> PC)

      Basta un attimo con il filo di GND che tocca e non tocca al momento giusto e si frigge tutto!

      Anche i collegamenti al motore stepper sono delicatissimi se toccano e non toccano o vanno per un attimo in corto si creano terribili extratensioni che fanno fumare all’istante lo stepper driver (questo è appena successo a un utente con lo stesso driver tuo – il Master ha resistito ma non ti posso assicurare che resista sempre)

      Un altro utente stava regolando la corrente dello stepper driver Pololu con il cacciavite e forse gli ha dato una scintillina di elettricità statica… fatto sta che il CIP sul Pololu è istantaneamente SCOPPIATO!!!

      - – - – - – -

      Mi raccomando quando collegate moduli e alimentatori NON THEREMINICI fate tutti molta attenzione, aiutateci a continuare con l’incredibile record di ZERO moduli rotti.

      Ciao a tutti e che gli elettroni siano con voi.
      Livio

  6. Agostino says:

    Ciao Livio
    Grazie per le informazioni.
    Ho già fatto progetti con stepper e easydriver e con ardu. Ma theremino sto capendo che è diverso e migliore.
    Hai ragione , non ho attaccato il gnd tra master e easydriver. Pomeriggio provo, e proverò anche con il tuo file.
    Mi interessa molto creare degli automatismi che girano da soli senza impulsi umani.
    Vediamo……. ti terrò al corrente.
    Ciao e buona giornata

    Agostino

    • Livio says:

      Interessante l’idea di creare automatismi, sembra una idea scontata ma nelle tue parole si nasconde molto di più. Attenderemo con pazienza le tue ricerche, ciao.

  7. Lucignolo says:

    Ciao a tutti, ho appena finito il geiger e devo fare i complimenti a chi a progettato il tutto. Vorrei capire il funzionamento del sistema, ho letto le lezioni 1/2 suggerite da Livio, qualcuno mi puo indicare dove trovare le altre? esempio come accendere i led con un pulsante o altro.
    di nuovo ciao e buone ferie

  8. geofaber says:

    Buongiorno
    Complimenti per il lavoro e la filosofia con cui lo portate avanti
    Penso che theremino possa fare al caso mio per alcune attività sperimentali penso quindi di ordinarne uno. Chiedevo alcune informazioni, se la risposta, come spesso accade, non è così semplice, e richiede approfondimenti sorvolate pure.
    Le informazioni sono queste:
    1)per registrare i file sul pc dai sensori che leggo devo aggiungere questo a Hall ? http://www.theremino.com/files/DataLogger.zip
    2)posso leggere in modo semplice sensori con usicta 4-20 mA?
    3)posso leggere sensori di temperatura digitali tipo DS18B20 (1-wire)
    4) posso leggere estensimetri tipo http://it.rs-online.com/web/p/estensimetri/0308118/

    grazie per l’attenzione e soprattutto vi auguro di poter diffondere il sistema

    • Livio says:

      Ciao,
      benvenuto tra i thereminici.

      1) HAL serve come base per leggere o scrivere i pin di InOut attraverso l’USB
      Il DataLogger è una delle tante applicazioni che si appoggiano all’HAL
      Non è detto che il DataLogger faccia quel che vi serve ma potrebbe essere facile modificarlo.
      Ci sono anche altri modi di leggere i dati, ThereminoScript, VbNet, VisualBasic, C++, CSharp o anche programmi visuali a blocchetti da collegare uno con l’altro, come MaxMsp e simili.
      E infine c’è la possibilità di farti fare quel che ti serve (o aiutarti a farlo) da qualcuno del collaboratori che stanno diventando sempre più numerosi in molti campi, dalla radioattività alla geofonia alla rilevazione di segnali biologici, etc…

      2) Si, facilissimo.
      Alimenti il dispositivo 4..20mA come normalmente richiesto con i soliti 24 Volt (ma anche 12 Volt dovrebbero andare bene)
      Il negativo del dispositivo 4-20 lo colleghi a massa attraverso un resistore da 100 ohm 1/4 Watt (i soliti resistori di dimensioni normali)
      Colleghi la massa alla massa del PIN di input del Master (filo nero)
      Colleghi l’altro lato del resistore al segnale del PIN di input del Master (filo giallo)
      Non colleghi il terzo filo del PIN di inut (+5Volt) ma lo lasci libero.
      Configuri il PIN come ingresso ADC a 16 Bit
      Quello che riceverai sarà
      > 20 mA = > 2Volt = errore (dispositivo rotto che consuma troppo)
      20 mA = 2 Volt = massima lettura
      4 mA = 0.4 Volt = minima lettura
      < 4 mA = <0.4 Volt = errore (filo scollegato o mancanza di alimentazione)
      Oppure in termini di valori standard thereminici da 0 a 1000
      da 607 a 1000 = errore
      da 121 a 606 = da 4 a 20 mA
      da 0 a 120 = errore
      (sono tutti numeri con la virgola per cui la precisione è molto maggiore di quella che sembra qui)

      3) Per leggere dispositivi 1-wire si dovrebbe fare un nuovo tipo di pin programmando il firmware o sviluppando un nuovo tipo di slave. Non lo ha fatto nessuno e ci sono molte ottime alternative immediatamente funzionanti, per cui se non lo fai tu hai poche probabilità di poterli usare.

      4) Per gli estensimetri ci vuole un pre amplificatore apposito. Dovrebbero esistono già pronti e a buon prezzo quindi difficilmente li progetteremo. Dovresti trovarli da Phidgets o da Pololu o da LadyAda. Controlla che l’uscita sia 0..3.3 Volt e sei sicuro di poterlo usare anche con i nostri PIN (da configuarare come ADC) In genere tutti i sensori Phidgets e simili sono compatibili con i nostri pin. Solo qualcuno potrebbe avere dei problemi, eventualmente chiedi prima a qualcuno di noi.

      • geofaber says:

        Grazie mille per la risposta. Intanto prendo un master per fare un po di prove in modo tale da capire meglio ed eventualmente fare domande più mirate. Per quanto riguarda il mio utilizzo un applicazione dove calzava benissimo sarebbe stata questa http://www.studiogeofaber.blogspot.it/2012/05/prove-di-involucro-per-il-comfort.html dove arduino ha funzionato benissimo ma la difficoltà per me a farlo funzionare (per via della mia ignoranza in programmazione) è stata elevata.
        Comunque grazie ancora, ci risentiremo sicuramente più avanti quando troverò il tempo di fare un po di prove
        saluti
        Giovanni

        • Livio says:

          Ottimo, fare prove con un Master, potenziometri, led, servomotori e simili è il modo migliore per fare amicizia con il sistema Theremino.
          Ho guardato un po’ il vostro sito (tra parentesi complimenti per l’attività innovativa e interessante) e ho immaginato il tipo di applicazioni che potrebbero servirvi. Se avete bisogno di aiuto io sono sempre qui. Eventualmente anche allo 0125 57290 (dalle 09 alle 19 – anche festivi) oppure per mail a “engineering chiocciola theremino punto com”
          Ciao Livio

        • Livio says:

          Ho letto con maggiore cura le note su: “comportamento termoigrometrico dell’involucro edilizio” per individuare le esigenze specifiche riguardo al numero e al tipo di sensori.

          Ricerche di questo genere troveranno utile la semplicità del sistema Theremino che permette di:
          - Poter aggiungere sensori in qualunque numero e modificare la configurazione velocemente senza riscrivere il firmware.
          - Leggere facilmente tutti i sensori comuni come: temperatura, umidità e polvere nell’aria
          - Avere la sicurezza di poter aggiungere nuovi sensori al volo, in qualunque numero e anche di tipi non previsti all’inizio.

          ———————————————————————–
          Come sensori di temperatura consigliamo:
          ———————————————————————–
          LM35 – Farnell 1469236 – circa 2 Euro – Non richiede calibrazione e misura la temperatura ambiente entro +/-0.25 gradi centigradi e da -55 a +150 entro +/-0.75 gradi centigradi.

          Sensore “501F” – Farnell 2191831 – circa 8 Euro – Non richiede calibrazione e misura la temperatura da -10 a 60 gradi con altissima precisione. Copio dal datasheet: “With an accuracy of ±0.1K in a range of 40K (e.g. 5°C to 45°C), the sensor is more accurate than a class F0.1 (DIN EN 60751) platinum sensor. Extended long wires (> 10m) will not influence the accuracy”

          Questi sensori sono ambedue direttamente collegabili ai nostri connettori standard a tre fili ( GND /+5Volt / Segnale )

          ———————————————————————–
          Come sensori di umidità consigliamo:
          ———————————————————————–
          L’ottimo HIH-4030 di Robot Italy:
          http://www.robot-italy.com/en/hih-4030-humidity-sensor-breakout.html
          Questo sensore è direttamente collegabile ai nostri PIN ma si deve fare attenzione all’ordine dei collegamenti (OUT e +5Volt sono scambiati tra loro)

          ———————————————————————–
          Come sensori di polvere consigliamo:
          ———————————————————————–
          Lo Sharp GP2Y1010AU0F che si trova qui:
          http://www.robot-italy.com/it/optical-dust-sensor-sharp-gp2y1010au0f.html
          e anche qui: https://www.sparkfun.com/products/9689
          Questo sensore è direttamente collegabile ai nostri PIN ma dispone di 6 terminali che vanno collegati come segue:
          Terminali 6 al nostro 5 Volt (filo rosso)
          Terminali 1 al nostro 5 Volt (filo rosso) attraverso un resistore da 150 ohm
          Terminali 2,3 e 4 al nostro GND (filo nero)
          Terminale 5 attraverso un resistore da 10 Kohm al nostro segnale (filo giallo)
          (per i numeri dei terminali riferirsi ai data-sheet che si trovano nei siti indicati)
          Le app-notes dicono anche di aggiungere un condensatore da 220uF tra 5 Volt e massa.

          — FARE MOLTA ATTENZIONE CON QUESTO SENSORE —
          Forse farlo funzionare è più complesso di quanto sembra.
          Leggere data-sheet e app-notes in questa pagina:
          http://www.theremino.com/hardware/inputs/sensors

          ———————————————————————–
          Altri sensori
          ———————————————————————–
          Facendo un giro da RobotItaly (un po’ caro), SparkFunk, Phidgets, LadyAda, Pololu e simili si trovano sensori di ogni tipo, con ottimi prezzi.

          http://www.phidgets.com
          http://www.robot-italy.com
          http://www.pololu.com
          http://www.sparkfun.com
          http://www.ladyada.net

          Se si scelgono i sensori adatti se ne potranno collegare direttamente fino a 6 ad ogni modulo Master e fino a centinaia aggiungendo moduli Slave.

          Attenzione quindi a scegliere modelli con alimentazione a 5 Volt, da collegare direttamente, senza protocolli strambi I2C, 1-wire etc… perché altrimenti si perde molto tempo a programmare e si perde la possibilità di aggiungere nuovi sensori in numero illimitato.

          • geofaber says:

            grazie mille, non conoscevo quello di polvere!, lo proverò, a giorni dovrebbe arrivarmi il master… sicuramente ci risentiamo

          • geofaber says:

            Sto facendo un po di prove con i sensori di temperatura lm35, per leggere i valori di tempe ratura immagino che debba variare i valori 0 e1000, è così? Però non sono riuscito. Avete un esempio pratico con lettura dei lm35?

            • Livio says:

              Dovrebbe funzionare subito.
              Il valore di uscita di un LM35 vale 0 Volt per zero gradi centigradi e sale di 10 mV ogni grado centigrado.

              I nostri ADC leggono una tensione da 0 a 3.3 Volt e la trasformano in un numero da 0 a 1000

              0 Gradi = 0 mV = 0.000 (in valori HAL da 0 a 1000)
              10 Gradi = 100 mV = 33.333 (in valori HAL da 0 a 1000)
              100 Gradi = 1 V = 333.333 (in valori HAL da 0 a 1000)

              Naturalmente poi dovrai usare questi valori utilmente, magari dividendoli per 3.3 per ottenerli in gradi centigradi.

              Se non riesci scrivimelo e ti scrivo un piccolo Theremino Script che legge, divide per 3.3 e presenta il valore finale in gradi su una casella su schermo.

              Forse potresti anche cambiare il valore MAX nell’HAL e inviare il valore già modificato agli slot ma io non lo farei a livello HAL, lo farei dopo…

              —————

              Se devi leggere anche temperature inferiori allo zero il cablaggio del sensore LM35 diventa più complesso. Vai a leggere nel datasheet come fare, se non riesci scrivimi e ti aiuterò a farlo.

              • geofaber says:

                Grazie mille per la risposta, tutto OK. I valori negativi non mi interessano per il momento, per ora sto cercando di prendere dimestichezza.

  9. Lucignolo says:

    Ciao a tutti
    ho fatto varie prove con un master e un servo e vari sensori. Mi sono letto e riletto tutto quello che ho trovato.

    Qualcuno mi puo’ confermare che ho iniziato a capire:
    Vorrei controllare l’ orientamento del mio pannello fotovoltaico con due fotoresistenze, in laboratorio il circuito funziona, in pratica ( proviamo )
    Mi interessa anche sapere come varia la tensione del pannello, per questo vi chiedo,

    Dovrei misurare un massimo di 30V.
    Se con un partitore abbasso i 30V a 3V e questo mi corrisponde al numero 900 in Slot Viewer
    I numeri 300 e 600 mi corrispondono a 1V e 2V ??
    Se la domanda e’ …….. non trattatemi male
    vi saluto cordialmente

    • Livio says:

      Tutto esatto al 100%

      Tra l’altro è una idea molto interessante, puoi cominciare con solo le fotoresistenze e in futuro aggiungere software con ogni nuova idea. Con un piccolo script potresti poi anche fare dei piccoli movimenti di prova, se andando a destra la tensione scende cambi direzione e in tre o quattro movimenti trovi la posizione migliore. O cose del genere…

      Vorrei solo darti un consiglio per il valore dei resistori del partitore, io li metterei da 100k e 10k, quindi abbastanza alti. Per due motivi:
      - consumare poca corrente (meno di un terzo di mA a 30 Volt)
      - non rischiare di mandare troppa corrente al PIC (nel caso che il 10k si apra o che inavvertitamente venga scollegato o che sia saldato male e che non faccia contatto bene)

      Altro consiglio stai sempre attento a non mandare tensioni superiori a 3.3 Volt ai pin di input, se c’è una resistenza di protezione in serie al filo giallo o un partitore da 10k in su allora il PIC non si rompe. Ma si potrebbe lo stesso interrompere la trasmissione USB non appena uno dei pin supera i 3.5 Volt (stessa cosa può accadere se tocchi i pin con le mani e gli dai una piccola scarica)

      Ultimo consiglio: potresti misurare anche la corrente del pannello con un resistore di piccolo valore tra il negativo del pannello e massa. Il valore deve essere piccolo per non perdere potenza e non scaldare il resistore. Al massimo la tensione sul resistore dovrà essere mezzo volt o anche meno (anche se questo riduce la precisione di misura). Quindi se la corrente massima da misurare fosse, ad esempio 5 ampere, potresti mettere un resistore a 0.1 ohm (in pratica un pezzo di filo) e misurare fino a 0.5 Volt.

      Ma mi raccomando in questo “misura corrente” aggiungi un resistore da 10k in serie al filo giallo che va al PIN di input del Master così se per caso il resistore a 0.1 ohm si staccasse la corrente sarebbe lo stesso minima e non romperesti niente. Un resistore da 10k in serie ai pin di input non perde tensione e nei calcoli puoi far finta che non esista, serve solo come protezione.

      • Lucignolo says:

        Livio ti ringrazio dei consigli
        Avevo anche previsto il controllo della corrente ma non del resistore in serie.
        Per quanto riguardo il software per me e’ tabu, non ho la minima idea da dove iniziare.
        ciao e di nuovo grazie
        luciano

        • Livio says:

          Bene, bene, comincia a fare amicizia con le reazioni semplici che si possono ottenere con il solo HAL. Poi, quando ne avrai bisogno, imparerai anche a fare qualche script.

  10. Lucignolo says:

    Ciao Livio
    mi permetto di riscocciarti,
    Mi e’ arrivato il sensore per polveri tipo GP2Y1010AU0F, ho scaricato tutto quello che ho trovato per capire il funzionamento, ma mi trovo con delle incertezze.
    1° E’ giusto che scaldi leggermente quando e’ in funzione
    2° Va usato cosi come’ oppure bisogna costruire una protezione
    3° L’ aria deve passare attraverso il foro centrale, oppure posso fissare il sensore su un piano

    Ho collegato i fili come hai spiegato su una risposta

    ciao e grazie in anticipo
    luciano

    • Livio says:

      Altro che scocciare, hai fatto benissimo e non vorrei aver sbagliato qualcosa io.

      Non dovrebbe scaldare, leggo dal data sheet che consuma meno di 20 mA, quindi deve restare freddo gelato, spero proprio che non ci sia un errore e che non sia passata troppa corrente bruciando qualcosa.

      Le istruzioni spiegate nella risposta sono giuste ma non collegarlo più se prima non hai controllato bene tutto.

      Leggi bene tutto il paragrafo e anche il DataSheet e le AppNotes nella pagina dei sensori: http://www.theremino.com/hardware/inputs/sensors

      Se non riesci a trovare errori di collegamento prova a collegarlo con un resistore di limitazione della corrente da 47 ohm in serie al filo rosso che porta il 5 Volt dal Theremino, in questo modo anche facendo errori la corrente massima sarebbe 100 mA e difficilmente si brucerebbe qualcosa.

      Prima di collegarlo metti anche un tester in serie al filo rosso (commutato in corrente continua con fondo scala di un ampere circa)
      Poi colleghi e misuri subito la corrente che, secondo il data sheet, dovrebbe essere circa 20 mA
      Infine misuri per un breve tempo e se la corrente supera i 50 mA c’è sicuramente un errore

      Io non ne ho mai provato uno e non ne ho uno in laboratorio per fare confronti per cui tutto è possibile, anche che ci sia un errore nel data-sheet che è fatto abbastanza male.

      Dubbi e pensieri sparsi
      ——————————————————————————–
      Il datasheet spiega che dal foro entra l’aria, quindi deve restare aperto.
      Hai messo il resistore da 10k in serie al filo giallo?
      Potresti esserti sbagliato e “sembrava scaldare” ma non scaldava?

      Fammi sapere e se non riesci telefonami allo 0125 57290
      ciao
      Livio

    • Livio says:

      L’app-note (a pagina 4) dice che ci vuole un resistore da 150 ohm tra il pin 1 e il + 5Volt

      Invece in altri schemi pubblicati da sharp sembra che ci sia un resistore interno in serie al led e prima del pin 2.
      (come nello schema copiato qui: http://www.theremino.com/hardware/inputs/sensors )

      Comunque aggiungerei un resistore da 150 ohm in serie al pin 1

      Nelle app-notes dicono anche di aggiungere un condensatore da 220 uF tr pin 1 e 2
      e dicono anche che si deve spegnere e accendere il led periodicamente.

      Quello dell’accendere periodicamente mi sembra davvero strano
      e dovrebbe servire solo a diminuire il consumo,
      ma il data sheet è molto confuso su queste cose.

      Se ho sbagliato io a capire queste cose mi scuso tanto e ti manderò qualcosa in cambio.

      ciao
      Livio

      • Lucignolo says:

        Ciao Livio
        intanto grazie dei vari suggerimenti, i collegamenti li avevo rilevati dalle AppNotes dei sensori e non da una tua risposta.

        Ho montato una resistenza da 150 ohm in serie al pin 1, in serie al pin del segnale ne avevo gia montata una da 10Kohm.
        Il condensatore da 220mF l’ho montato tra i 5V. e la massa e non sul pin 1
        I pin 2-3-4 li ho collegati a massa

        Con una resistenza in serie ai 5V. da 47ohm come hai suggerito l’assorbimento e’ 18,2 mA e il sensore dopo 1 ora di alimentazione rimane a temperatura ambiente mentre prima dopo una decina di minuti era leggermente tiepido

        Ora faro’ qualche prova
        di nuovo grazie e ciao
        luciano

        • Livio says:

          Bene ora l’assorbimento è giusto e il resistore da 47 ohm puoi eliminarlo, era solo una sicurezza e potrebbe creare problemi.

          La vera differenza è stato il resistore da 150 ohm in serie al pin 1, senza questo resistore il led è stato acceso con una corrente molto alta e potrebbe aver patito (colpa mia quindi ti aiuterò a aggiustarlo o ti comprerò un sensore nuovo e mi terrò io quello) Credo che si dovrà aprirlo e cambiargli il led.

          Invece quello che scrivono sul pin 3 è davvero strano se non riesci a farlo andare nei prossimi giorni prenderò un sensore anche io e troverò come fare.
          Dove lo hai preso e quanto tempo ci hanno messo a spedirtelo?

          • Lucignolo says:

            L’ho acquistato da Robot Italy http://www.robot-italy.com/it/optical-dust-sensor-sharp-gp2y1010au0f.html al prezzo di 22,19€ comprese le spese di spedizione circa 10€.
            Viene fornito con il connettore da realizzare, da acquistare a parte
            Mi e’ stato recapitato dopo 3 giorni.

            Ho trovato subito il problema del collegamento, non sono riuscito a realizzare il connettore per mancanza di attrezzatura, quindi ho saldato i fili direttamente sui pin, con un saldatore a 12V.
            Ho coperto i pin con della guaina termorestringente ( senza scaldarla ) dopo ho arrotolato i fili e quindi la guaina non si sfila

            Per la sostituzione del sensore come mi hai proposto non se ne parla neppure, continua con l’aiuto e la disponibilita che dimostri
            ciao

            • Livio says:

              Accidenti, ora su paypal ci saranno al massimo 10 Euro e fare un bonifico è una operazione scomoda e lenta. Ma appena qualcuno fa la prossima donazione ne compro uno e poi ti saprò aiutare meglio. Nel frattempo vediamo se ti funziona senza troppe complicazioni.
              Ti sembra che sia facile aprirlo per controllare il LED ?
              Ha delle viti ?

  11. mqc says:

    Innanzitutto complimenti per il progetto, è veramente raro trovare, specialmente in Italia, qualcosa di così ben fatto e documentato.
    Ho realizzato il mio primo master, ed ha funzionato alla perfezione al primo tentativo (tra l’altro l’ho rifatto in Proteus Isis/Ares, che conosco meglio per ragioni professionali, rifacendo lo sbroglio, portando il quarzo a 16MHz e usando un connettore USB mini-B – se interessasse avere brd e sch sono a disposizione!). Ho implementato sul FW del master e sull’HAL (è ancora da testare) il driver per un ADXL345 con i2c, e avrei voluto fare lo stesso anche sullo slave… ma non riesco a trovare i sorgenti dello slave, c’è solo l’hex (è una scelta, una svista o sono io a non trovarli?)
    Ancora complimenti a tutti per l’ottimo lavoro!
    Saluti
    mqc

    • Livio says:

      Urka, che sorpresa!
      Un nuovo collaboratore, e che sa anche programmare! Ti do il benvenuto, a nome di tutta la comunità thereminica. Sei il primo coraggioso che si prende la briga di aprire il software dell’HAL. Chiedi pure quel che ti serve e avrai tutto il nostro appoggio. Per ora eccoti i download del firmware del servo: http://www.theremino.com/technical/schematics#servo

      Avevi ragione, mancava il progetto e c’erano anche errori nel testo (si riferiva in parte al “Servo” e in parte al “Master”)

      Modifiche Firmware / Hal / Protocollo
      ————————————————————————————————–
      Aggiungere un nuovo tipo di pin (soprattutto un I2C) non è facile. Dovrai fare molte variazioni. Mi raccomando parti dalla ultima versione di HAL (che ora è la 3.6) Il protocollo lo trovi qui: http://www.theremino.com/technical/protocol

      Noi avevamo già iniziato a preparare qualcosa, ma ci sono difficilissimi problemi da risolvere (ad esempio come appaiare due pin SDA e SCL in un unico tipo nella applicazione HAL) E, peggio ancora, una volta che i dati sono nell’HAL non servono a niente. Non saprei proprio come far passare dati strutturati negli slot e senza gli slot tutta la semplicità del sistema Theremino si perde. Non sarà facile… tanti, tanti auguri.

      Perché ADXL345?
      ————————————————————————————————–
      Lo ADXL345 è parente stretto dello ADXL335, collegabile direttamente senza I2C e che costa leggermente meno. Ma il problema è un altro, sia il 345 che il 335 hanno un rumore esagerato di 300 uV/sqHz, contro i 50 uV/sqHz del LIS344 che consigliamo noi e che si collega senza bisogno di I2C. http://www.theremino.com/hardware/inputs/accelerometers

      Perché I2C?
      ————————————————————————————————–
      Onore al tuo coraggio ma perché perdere tempo con l’I2C? Per tutti i sensori ci sono anche le versioni analogiche che costano meno e sono direttamente collegabili senza tanti problemi. I2C venne fatta dalla Philips, per fare dieci centimetri nei televisori e non sopporta cavi lunghi e disturbi. (vedi letteratura Arduino sui problemi con I2C).

      Perché non fare il PinType Stepper, invece?
      ————————————————————————————————–
      Controllare i motori stepper è importante, ci piacerebbe anche far andare le CNC… pensa che ora faccio andare la fresa passando dalla parallela (orrore!)

      Se ti servono informazioni urgenti chiamami pure:
      skype: livio_enrico
      mail: engineering chiocciola theremino punto com
      tel: 0125 57290
      dalle 09 alle 19 anche festivi

  12. mqc says:

    Ciao e grazie mille per la disponibilità!
    Si, conosco i limiti dell’i2c… però volevo verificare il comportamento di Theremino (e sponsorizzarlo) con un’applicazione che attualmente usa l’ADXL345 per fare dei monitoraggi microsismici; originariamente avevamo usato DUE 32MX795F512L cooperativi su una board standalone, uno per occuparsi della sensoristica e uno per fare ‘ragionamenti’ (finestra di hanning, fft, etc).
    Come primo step pensavo di ‘barare’… trattando l’i2c in modo trasparente; il pin è di “tipo” ADXL345, e il protocollo fa passare 6 bytes ‘neutri’ (con poche modifiche rispetto ad un input 16bit, giocando con UsbBytesCount). Al colloquio con gli accelerometri ovviamente ci pensa il pic in autonomia… e all’interpretazione dei dati l’applicazione che apre lo slot.
    Next step pensavo al vero pin i2c generico… ma effettivamente è un macello. (Ho qualcosa nel cassetto che potrei usare, ma non so se ne vale la pena, meglio partire da zero – una specie di ‘custom marshaling’ di comandi e stati usando più di uno slot come tunnel? Mah.).
    Il PinType Stepper mi intriga anche molto! Anch’io ho una piccola CNC con su un Kress, che sto controllando con EMC2 (LinuxCNC) via parallela; due progetti in cantiere da una vita (meccanica quasi ok, tutto il resto no) sono il quarto asse e l’estrusore FDM stile repstrap, per cui ci sarebbe anche un ottimo test bench! Purtroppo il tempo è tiranno e il lavoro pure…
    Mi terrò sicuramente in contatto! (ps1 – purtroppo o per fortuna sono vent’anni che mi occupo di programmazione C++ in ambiente industriale e automotive… per cui il VB mi risulta un po’ alieno…
    ps2 – il mio primo master: http://www.mqcvisions.net/Varie/ThMaster.jpg :-)
    Ciao e a presto!
    M.

    • Livio says:

      Si un po’ di estrusioni vorrei farle anch’io prima o poi, speravo tu avessi tanto tempo per il PinType Stepper. Vorrà dire che lo faremo insieme…

      Non devi per forza usare VBnet, c’è anche la versione dell’HAL in C#.

      Il tuo master è carinissimo, sono contento che hai usato una faccia sola ma mi piacciono poco i condensatori gialli. I ceramici da 10 uF sono più belli, costano pochissimo, sono piccoli e non hanno problemi di polarità.

      • mqc says:

        Ti dirò, se serve alla causa occuparsi prima degli stepper mi converto anche volentieri (pensa che sono approdato al Theremino cercando info sulla spettrometria Gamma… mentre stavo restaurando con successo un FH40T, la procedura completa sarà a breve sul mio sito. [Troppo poco tempo e troppe cose interessanti...!])

        [Infatti sto usando la versione C#... ma so che è giustamente sconsigliata per motivi prestazionali...]

        I tantalio… vero… ma ho sfruttato cose che avevo già in casa (negli anni ho accumulato così tanti componenti che mi sento in colpa ad andarne a comprare ancora se non è proprio indispensabile… :) ) – infatti sono pure troppo grossi, avevo previsto quelli ceramici (sai che macello saldare sotto questi, ho dovuto usare la stazione ad aria calda, follia).

    • Livio says:

      Forse ti è sfuggita la frase sul rumore degli accelerometri.
      Ti consiglio di usare il LIS344 che si collega senza bisogno di I2C che ha un rumore sei volte più basso dei 345 : http://www.theremino.com/hardware/inputs/accelerometers
      Se poi vuoi esagerare ne metti 8 o 16 in parallelo sullo stesso PCB e fai la media del rumore arrivando a un rumore quasi da geofoni, ma spendendo pochissimo e con banda passante fino a zero.
      La media hardware viene benissimo in quanto i LIS344 hanno le uscite resistive che possono essere messe in parallelo. Fare qualcosa del genere in I2C e poi fare la media in software comporterebbe un carico di lavoro e una quantità di dati da trasmettere esagerati.

  13. Lucignolo says:

    Ho un problema che riguarda il Theremino Master.
    Uso un cavo usb lungo 10 metri per collegare il master al pc, sempre usato con XP su tre pc-Vista-Win7 su due portatili, ma sul fisso con Win7 mi da periferica non riconosciuta. Se collego altre periferiche funzionano, solo con i master non va, ne ho tre.
    Ho provato con altri due cavi piu corti e i master funzionano

    In gestione periferiche col cavo incriminato non mi da nessun segnale giallo/rosso, mi dice Unknown Device e andando in proprieta mi segnala che manca il driver, cerco di aggiornarlo ma segnala che e’ aggiornato
    Con altri cavi mi da la scritta Theremino e funziona tutto

    A qualcuno è successo, solo per curiosità, cosa ha fatto? Cambio cavo o pc?
    grazie e saluti

    • Livio says:

      Le specifiche USB dicono che i cavi devono essere lunghi 3-5 metri. Di solito si arriva anche a 10 o 15 metri ma se il driver del PC non riesce a dare abbastanza corrente, la capacità del cavo distorce troppo il segnale.

      Evidentemente il tuo “fisso con Win7″ ha il driver USB che non sopporta cavi da 10 metri. Forse potresti cercare un cavo USB con capacità minore (è possibile misurarla con un comune tester tra uno dei fili id segnale e quello di massa) Il migliore sarebbe un cavo twistato e non schermato in modo da minimizzare la capacità (ma essendo senza schermatura verrebbe disturbato e disturberebbe troppo facilmente apparecchi vicini)

      Potresti provare a cambiare connettore USB. Esiste una piccola possibilità che nel tuo PC abbiano usato driver di tipo diverso per le prese USB anteriori e posteriori.

      Una buona soluzione, da provare con poca spesa, sarebbe interporre tra il PC e il cavo da 10 metri un HUB USB. Gli HUB, soprattutto se economici, non vanno tanto per il sottile con la limitazione di corrente e con buona probabilità sopportano un cavo da 10 metri. Invece alcuni PC, specialmente se di grandi marche come Sony, tendono a essere molto schizzinosi con le limitazioni di corrente (anche per limitare i disturbi generati dal cavo verso le radiocomunicazioni). A volte questi PC molto “fighi” spengono del tutto la tensione USB appena vedono un consumo istantaneo anomalo, dovuto allo spunto di un solo Servomotore. Invece normali PC e Notebooks sopportano i quattro Servo del Theremino RobotArm, e ne sopporterebbero anche altri senza problemi.

      La soluzione più pulita sarebbe la linea seriale del sistema Theremino (un Master vicino al PC e uno o più Slaves vicino ai sensori). La linea seriale (due conduttori più schermo) può essere lunga centinaia di metri. Tabelle per velocità di trasmissione e distanze, in questa pagina: http://www.theremino.com/technical/tables-and-notes#times

  14. Livio says:

    Francesco ha chiesto come misurare tensione e corrente dei LED (per esperimenti scolastici sulla costante di Planck). Ecco uno schema semplice:

    Si usano i PIN 3,4,5 e 6 perché hanno una corrente di perdita inferiore.

    Circuito e calcoli sono validi anche per tracciare le curve tensione/corrente di diodi e transistori.

    Tensione e corrente sul led (o su un diodo)
    —————————————————————————
    Volt = P6-Value * 3.3 / 1000
    MicroAmpere = (P5-Value – P6-Value) * 3.3 / 10
    Con “Value” si intendono i numeri misurati dall’HAL (numeri da 0 a 1000 con i decimali)

    Software
    —————————————————————————
    Quattro righe con Theremino Script possono facilitare i calcoli e presentare direttamente i valori, in Volt e MicroAmpere, su due caselle di testo. Il controllo del pilotaggio in PWM si effettua manualmente con un cursore.
    Theremino Script si scarica da qui: http://www.theremino.com/downloads/foundations#script
    E lo script di esempio è qui: http://www.theremino.com/files/ManualCurveTracer.vb

    Simulazione
    —————————————————————————
    E qui c’è la simulazione LtSpice: http://www.theremino.com/files/CurveTracer.asc

  15. Livio says:

    Gianluca ha chiesto:

    Buongiorno ,avrei bisogno di un informazione. Ho una certa esperienza con arduino, ma sono nuovo dell’uso di theremino. (In genere nella mia attività ho dei dati in ingresso e valori in uscita da leggere). Chiedo l’aiuto per capire come è possibile realizzare una semplice applicazione con theremino, in maniera tale da potermi cimentare in applicazioni più complesse in futuro.
    L’applicazione è la seguente:
    Ho in input un sensore di temperatura e in output un led.Quando la temperatura supera i 31 gradi, vorrei che si accendesse il led.
    Ho scaricato tutti i software presenti sul sito e ho modulo master e cavi, led e sensori di theremino.
    Vorrei capire quale software utilizzare per scrivere questa semplice applicazione e come interfacciarla con i componenti. (Magari un esempio di riferimento per poi realizzare applicazioni più complesse)

    RISPOSTA
    Per fare quello che dici non devi nemmeno scrivere del software.

    1) Colleghi il sensore di temperatura al pin 1 del Master
    Ma deve essere un sensore adatto, quelli I2C non vanno bene.
    Io ti consiglierei di usare un LM35 che costa poco ed è facile da collegare. Per i sensori consigliati e come collegarli leggi qui: http://www.theremino.com/hardware/inputs/meteorology-sensors

    2) Lanci la applicazione HAL che si scarica da qui: http://www.theremino.com/downloads/foundations

    3) Con HAL imposti il Pin1 come Adc16 e controlli con l’oscilloscopio dell’HAL, che il sensore funzioni bene.

    4) Colleghi un led direttamente al Pin2 (e senza resistore) come spiegato qui: http://www.theremino.com/applications

    5) Sempre nell’HAL imposti il Pin2 come DigOut (se vuoi il led acceso spento) o come Pwm16 (se vuoi il led regolabile)

    6) Sempre nell’HAL selezioni il Pin2 e gli imposti lo stesso slot del sensore di temperatura (probabilmente lo slot 1)
    (in questo modo il valore in arrivo dallo slot del sensore va a regolare il led)

    7) Sempre nell’HAL selezioni il Pin2 e regoli MinValue e MaxValue in modo da far accendere il led quando la temperatura supera il livello desiderato.

    8) Se MinValue e MaxValue sono uguali tra loro ottieni una soglia a scatto, se invece li regoli diversi ottieni una area proporzionale e puoi (ad esempio) accendere il led da zero al massimo nel campo di temperature che preferisci. Stessa cosa se al posto del led colleghi un servocomando o altro.

    9) Se MinValue è maggiore di MaxValue allora l’uscita agisce al contrario.

    In futuro per fare operazioni più complesse sarebbe meglio scrivere quattro righe di Theremino Script o imparare a usare VbNet con VisualStudio, che si installa come spiegato qui: http://www.theremino.com/downloads/notes-on-software#instruments

    Nella cartella degli esempi di Theremino Script trovi piccoli programmi che fanno un po’ di tutto, tra cui, ad esempio il TempMeter che presenta la temperatura di un LM35 su un grosso display come puoi vedere in questo video: http://www.youtube.com/watch?v=0erUqTAiixs

  16. Lucignolo says:

    Ciao a tutti, sto faccendo delle prove con i Geiger e dovrei aprire sei programmi Theremino, gia fatto ma dopo qualche ora 6/8 a volte una giornata si sconnette Hal, fino a quattro programmi regge.
    Chiedo e’ possibile collegare la solita linea seriale a due Master usando due pc, oppure collegare l’usb del Master a due pc.
    Non posso stendere un’altro cavo perche non passa
    grazie e saluti

    • Livio says:

      Non si può sdoppiare la seriale e nemmeno la USB.
      Sembrerebbe che la CPU arrivi al limite, quale è il consumo di CPU medio?
      Hai provato a minimizzare tutte le applicazioni e soprattutto l’HAL, in modo da diminuire il consumo di CPU?
      Hai provato a ridurre la frequenza di upload dei dati (se ne stai mandando a un sito)?

      Mi spieghi un po’ meglio la situazione?
      Alla fine della linea seriale cosa c’è, quanti geiger ci sono?
      Ci sono mica alimentatori esterni o collegamenti a terra?
      Stai forse passando negli stessi tubi del 220?
      Ti chiedo queste cose perché a volte i distacchi sono dovuti a disturbi sulla linea seriale.

      Se non la risolvi sto pensando a una soluzione drastica, un HAL che si riconnette da solo, ma devi prima farmi una prova:
      Quando si disconnette basta premere il pulsante “Riconosci” per farlo riprendere?
      O invece devi proprio scollegare e ricollegare l’USB?

  17. Livio says:

    Francesco ci ha scritto una mail chiedendo:
    Buongiorno chiedo aiuto per capire una informazione su theremino. Vorrei sapere se la seriale del modulo può essere collegata alla COM1 del PC. E se possibile , avendo già un adattatore seriale 485 bilanciato – usare la 485 . Uso una sonda di temperatura al platino e in output ho un circuito caomando motore . E con arduino la 485 non ha potuto essere collegata e il movimento non avviene mai fluido . Vorrei capirese con theremino e con la seriale 485 la velocità può essere maggiore , anche per leggere l’audio da un microfono ad esempio per impartire comandi , ad esempio per spegnere e accendere battendo le mani.
    grazie in anticipo e saluti

    RISPOSTA
    La seriale del modulo Master non serve per comunicare con il PC, ma solo per collegare moduli Slave di espansione. La comunicazione con il PC avviene via USB, ed è velocissima.

    Prendiamo come esempio il tuo caso di temperatura e motori:
    Con Theremino una temperatura viene letta e poco più di un millisecondo dopo, la misura è già nel software, che la invia immediatamente al motore. Si tratta di una velocità di comunicazione almeno 10 o 20 volte maggiore di quella che ti serve. Con Theremino potresti muovere anche decine di motori indipendenti e sarebbero tutti altrettanto fluidi.

    Come una seriale 485 non potresti comunicare più velocemente, anzi andrebbe più piano. Il problema delle seriali non è tanto la velocità di comunicazione (i kilo baud) ma il numero di conversioni che i dati devono subire. E ogni volta che i dati vengono passati da un processore a un altro, le fasi di lettura e conversione provocano un certo ritardo.

    Faccio un esempio con Arduino:
    (1) Il segnale del sensore di temperatura, viene letto dal microcontrollore dell’Arduino, attraverso un ADC.
    (2) Il valore digitale viene trasformato in seriale, e inviato dal micro a un secondo chip, che legge i dati seriali, e li trasforma in dati USB.
    (3) Il Chip seriale di Arduino invia i dati attraverso l’USB.
    (4) Un driver virtuale sul PC, finge di essere una porta seriale, ma legge i dati USB.
    (5) Il driver virtuale riunisce i bit in un numero, e li invia al processore del PC.
    (6) Il processore del PC legge i dati, come se provenissero da una porta seriale, e finalmente dispone del valore.

    Questa è solo metà del “gioco dell’oca”, che fanno i dati su un Arduino. Per muovere il motore, i dati devono ancora ripercorrere tutti e sei i passaggi, al contrario.

    Con Theremino ci sono due vantaggi:
    (1) Si viaggia a 12 Mega bit, contro i 38 (o massimo 115) Kilo bit, della seriale virtuale di Arduino (quindi una velocità da 100 a 300 volte maggiore)
    (2) Il numero di passaggi è ridotto. Si saltano i convertitori seriali intermedi. Il micro del sistema Theremino parla direttamente con il processore del PC.

  18. Lucignolo says:

    Buongiorno chiedo una conferma se ho capito bene il problema:
    Ho realizzato un automatismo con quattro Slave e un Master e funziona quasi alla perfezione, mi spiego meglio : il Master e uno Slave sono vicini al pc mentre gli altri tre Slave sono a una distanza di circa 5metri
    Nel Master e nel primo Slave sono inseriti 10 diodi led che mi indicano le condizioni/posizioni di parti dell’automatismo, in teoria si possono accendere tutti ma non e’ mai successo
    Succedeva invece che quando si accendevano quattro diodi led spesso si sconnetteva Hal ( non sempre comunque)
    A ogni diodo led ho aggiunto un BC547 con la base collegata al pin del segnale, l’emettitore a massa e il collettore al diodo led tramite una resistenza e ho alimentato tutti i diodi con 12v esterni
    Sono vari giorni che funziona
    Era il troppo assorbimento dei diodi led che mi sconnetteva Hal?
    grazie

    • Livio says:

      Sarebbe meglio alimentarli direttamente con i segnali dei Pin. Per mantenere basso il consumo totale, basterebbe usare led molto efficienti (ad esempio i verdi da 20000 mcd) e aggiungere un resistore in serie ad ogni led. Con resistori da 1000 ohm, i led buoni fanno già una gran luce, e se ne possono accendere anche 100, senza alimentatori esterni.

      Se colleghi un transistor sul segnale, devi assolutamente interporre un resistore da 10 K, tra SIGNAL e BASE, altrimenti il transistor consuma troppa corrente e potrebbe anche rompersi.

      Il nuovo HAL si riconnetterà da solo. Siamo sempre stati restii ad aggiungere questa funzione perché sarebbe preferibile capire i problemi e risolverli. Dispiacerebbe avere in giro sistemi che si sconnettono e riconnettono in continuazione.

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 *