ArduHAL – Usare un Arduino con il sistema theremino

Questo progetto permette di utilizzare i moduli Arduino in modo semplice. Tutti i tipi di Input Output più comuni sono già pronti. Per cui non si deve programmare, basta configurare gli ingressi e le uscite con la applicazione ArduHAL e si ha subito il collegamento diretto tra il software sul PC e i sensori.

La applicazione ArduHAL

Questa applicazione connette i moduli Arduino con le applicazioni sul PC.

Arduino HAL for theremino system

IArduHAL Pin Properties tipi di Pin più comuni per controllare Servomotori, Pwm e uscite digitali, e per leggere Sensori e Adc, sono facilmente accessibili senza bisogno di programmare il firmware.

I sensori particolari, come ad esempio quelli I2C, possono richiedere librerie di Arduino e qualche riga di firmware. Ma in tutti i casi il collegamento con le applicazioni sul PC viene facilitato.

La applicazione ArduHAL, le istruzioni per l’uso e il firmware per Arduino, si scaricano da questa pagina


Applicazioni

Il modulo Arduino, per mezzo della applicazione ArduHAL, può collegarsi ad oltre cento applicazioni, tutte Open Source e gratuite, per leggere i dati e controllare le uscite. Dagli oscilloscopi ai generatori di segnali, ai termostati, alle applicazioni musicali, ai giochi, ecc..

Theremino System Scope    

Per un elenco delle possibili applicazioni aprire questa pagina.


Dispositivi Fai da te

Molti Arduino vengono abbandonati in un cassetto dopo aver scoperto che programmare è più difficile del previsto. Ma con l’ArduHAL chiunque può comporre dispositivi “fai da te” in pochi minuti, ad esempio per la didattica, per fare progetti ed esperimenti o per automatizzare le proprie realizzazioni.

      

Gli esempi più interessanti sono i sensori che comunicano in I2C. I moduli Arduino possono leggerli facilmente con l’aiuto di una libreria e di poche righe di firmware. 

La nostra libreria per Arduino mette anche a disposizione i filtri passa basso e passa alto, facili da usare e identici ai classici filtri a resistenza e condensatore.

  

Scaricare questo file per vedere come si utilizzano i filtri e come si leggono i sensori I2C. 


Collegamento con Office

Chi conosce i fogli elettronici può utilizzare le macro per comunicare direttamente con l’Hardware.

Theremino Slots to Office

Leggere un Adc e mettere i valori nelle celle di Excel è facilissimo. Inoltre con il VBA si possono anche comporre applicazioni complesse. Il VBA (Visual Basic for Applications) è un linguaggio veloce e potente. Quello di Excel è compilato e velocissimo.

Gli esempi di collegamento con Excel si scaricano da questa pagina.


Particolarità della libreria “Theremino”

Esistono già librerie per Arduino che permettono di scambiare i dati con il PC. Ma queste librerie fanno solo un terzo del lavoro. Con queste librerie, per ogni sensore da leggere o attuatore da controllare, si deve scrivere un pezzo di firmware. E ogni volta che si volesse aggiungere o togliere un ingresso o una uscita si dovrebbe poi modificare il firmware.

Una volta scritto il firmware si dovrebbe anche costruire una applicazioni sul PC per interagire con l’utente. E questa è la parte più difficile. Pochi sono riusciti a collegare Arduino con una interfaccia utente che lavori in modo fluido sul PC. Per cui quasi tutti ripiegano su piccoli display collegati direttamente all’Arduino.

Theremino library for Arduino

Con la nostra libreria per Arduino, la applicazione ArduHAL e le altre applicazioni del sistema theremino diventa tutto più semplice. Il minimalismo del sistema theremino è forse anche troppo semplice per chi sa programmare, ma è quello che serve per chi si occupa di altro (didattica, chimica, fisica, musica ecc…).


Confronto tra i moduli Arduino e i moduli Master

Arduino Nano

Vantaggi

  • Con Arduino è possibile aggiungere sensori collegati in I2C, SPI o in seriale. Abbiamo preparato dei tipi “generici” di comunicazione con il PC per cui basta scrivere qualche riga e importare una libreria per leggere anche i sensori più strani.
  • Anche chi ha scarse conoscenze di programmazione può aggiungere qualche semplice funzione. Invece modificare il firmware dei nostri Master è quasi impossibile. Nemmeno un esperto potrebbe farlo, impiegherebbe troppo tempo e non ne varrebbe la pena.
  • Con Arduino si possono programmare piccole operazioni da eseguire velocemente, ad esempio alzare una uscita e abbassarla dopo un tempo di pochi microsecondi. Queste stesse operazioni non sono invece possibili con un modulo Master, perché tutto va programmato sul PC e il minimo tempo di scambio consentito dalla USB è di un millisecondo o due.
  • Un Arduino Nano costa meno della metà di un Master. Lo si trova anche a meno di tre euro su eBay.

Svantaggi

  • Il linguaggio semplificato di Arduino (gli Sketch) permette di programmare facilmente il suo firmware. Ma questa facilità comporta una grande perdita di prestazioni. Un esempio per tutti: gli Adc dei nostri Master vengono letti 16 volte e viene poi fatta la media, mentre su Arduino li possiamo leggere una volta sola, ed è già un carico non indifferente. Per cui gli Adc del Master danno quasi 14 bit (sovra-campionati) mentre quelli di Arduino solo 10 bit.
  • La velocità di comunicazione con il PC è solo un quarto dei nostri Master anche nelle migliori condizioni (circa 200 scambi al secondo contro i normali 800…900 dei Master).
  • I Pin sono configurabili con solo una decina i tipi contro i quasi trenta dei Master.
  • Molti tipi di Pin, ad esempio i tasti capacitivi, i FastPwm e gli Stepper, non sono realizzabili, le prestazioni sarebbero troppo scarse, meglio usare un Master.
  • Niente CapSensor e quindi niente Theremin (lo strumento musicale) con le caratteristiche cui siamo abituati.
  • L’Adc24 non è collegabile, non ci abbiamo provato ma sappiamo per esperienza che la comunicazione SPI con il modulo Adc24 richiede tempi difficili da ottenere. Ci siamo riusciti sul nostro Master, perché avevamo a disposizione tutte le possibilità date da un processore molto potente. E per riuscirci abbiamo dovuto costruire un meccanismo molto complesso di Ping-Pong tra due interrupt. Cose del genere su Arduino sono praticamente impossibili (o per lo meno noi non abbiamo la minima idea di come si possano fare).

Ulteriori informazioni nel file di istruzioni della applicazione ArduHAL.

VOTO
1 commento

Lascia un Commento

Vuoi partecipare alla discussione?
Fornisci il tuo contributo!

Lascia un commento