Feeds:
Posts
Comments

Posts Tagged ‘Arduino’

Wave Shield

Wave Shield

Come prima parte di un progettino “da ufficio”, ho passato la serata a saldare il Wave Shield di Adafruit, ed ho testato il tutto con il brano “Europa” di Santana, codificato a 16 bit e 22050 Hz mono (quindi un po’ distorto sugli acuti rispetto all’originale).

Qui sotto, il video con tale test: verso 0:30 si può sentire in lontananza la canzone di cui sopra, col volume piuttosto basso dato che veniva riprodotta tramite auricolari.

Read Full Post »

SooperLooper è un simpatico programmino per Linux, compatibile con Jack, che permette di registrare loop e riprodurli istantaneamente; è piuttosto utile quando volete suonare qualcosa ad esempio con una chitarra, ma ha ovviamente il difetto di aver bisogno di un supporto hardware con cui attivare la registrazione, dato che se state suonando avete probabilmente le mani occupate.

Bè, nulla di più facile: basta avere un pedale “vergine” (come quelli per il sustain delle tastiere), che generalmente ha un’uscita con un jack da 6.3″, da collegare (con un circuito piuttosto semplice, in cui il pedale di fatto funge da interruttore) ad un Arduino. A questo punto, con una decina di righe di codice ed il firmware MIDI, l’Arduino stesso sarà in grado di trasmettere i messaggi CC giusti al looper, che ad ogni pressione del pedale avvierà alternativamente la registrazione di un loop o la sua riproduzione.

Nel video vedete un esempio del circuito e del looper (escludendo un momento di defiance del tutto nella parte centrale, forse dovuto alla poca pressione che si esercita con una mano rispetto ad un piede); non ho una chitarra con me, ma l’insieme nel complesso sta comunque funzionando correttamente.

Read Full Post »

E’ arrivata la strip di LED (3 metri!) da Adafruit, e nel video potete vedere l’esecuzione del programmino di esempio pubblicato tra le istruzioni per l’uso; il circuito è piuttosto semplice, l’unica necessità è avere un alimentatore per Arduino in grado di produrre un’adeguata corrente (quello qui usato può arrivare a 1.5 A). Ora devo solo decidere dove piazzare questi metri di luci in casa…

Read Full Post »

ADK DemoKit

ADK DemoKit

Con l’aggiornamento del mio HTC Wildfire S ad Android 2.3.5, finalmente ho la possibilità di sfruttare le possibilità offerte dall’Open Accessory kit (ADK), ed ho quindi testato subito l’applicazione demo (ridotta) supportata dalle librerie ufficiali per l’USB Host Shield per Arduino. Il sistema completo richiederebbe un Arduino Mega ed il kit ufficiale distribuito da Google, ma è possibile effettuare qualche progetto più “in piccolo” anche con il semplice Arduino Uno e lo shield offerto da SparkFun, con qualche leggero aggiustamento hardware per rendere compatibile il tutto.

Nella foto il risultato del primissimo esperimento: l’applicazione Android riconosce l’accessorio collegato via USB, anche se nessuno degli elementi previsti (LED, pulsanti etc) non sono collegati al momento… è stato un test rapido, l’esplorazione più approfondita verrà più avanti (appena ho un po’ di tempo da dedicarci).

Read Full Post »

E’ uscita da qualche settimana (un paio se non ho visto male) la seconda release candidate di Arduino 1.0 (scaricabile da qui), ma per poter utilizzare il layer di rete su Ubuntu 11.10 è necessario patchare il file w5100.h, che si trova sotto /libraries/Ethernet/utility; alla riga 271 va modificata la seguente define:

static uint16_t read##name(SOCKET _s) { \
uint16_t res = readSn(_s, address); \
res = (res << 8) + readSn(_s, address + 1); \
return res; \
}

in questo modo:

static uint16_t read##name(SOCKET _s) { \
uint16_t res = readSn(_s, address); \
uint16_t res2 = readSn(_s, address+1); \
res = (res << 8); \
res2 = res2 & 0xFF; \
res = res | res2; \
return res; \
}

GCC-AVR in Oneiric, infatti, per qualche motivo (che non sto ad indagare) non digerisce l’altra definizione, e rende inutilizzabili i socket aperti (esperimenti con Wireshark infatti mostrano pacchetti malformati). Questa modifica peraltro vale anche per le versioni precedenti di Arduino, eccetto quelle pacchettizzate, che già includono la patch (ma chi usa Arduino pacchettizzato…).

Read Full Post »

Scrivania

Scrivania

Read Full Post »

Quasi quasi me la perdo: la trovate qui!

Read Full Post »

After having seen many versions on Internet, I have just created my own theremin using Arduino! Nothing too much fancy, just a couple of sensors and a VST on software side, and that’s it. Here are the details…

Hardware

From a hardware point of view, the circuit is quite simple:  I am using two IR proximity sensors, connected to two analog input pins of the Arduino Uno, plus a couple of leds, which increase their light in proportion to the readings from the sensors, and a couple of pushbuttons, useful for blocking the values sent to the computer (regardless of the readings).

I have also changed the Arduino firmware, as indicated here, using this one, so that the Arduino itself is seen from the computer as a MIDI device, instead of a USB-to-serial port; this has been easy enough: just a 10K resistor is required, soldered in the position indicated on the guide, and then a couple of commands and the new firmware is up and running. Of course, you will need to change it with the standard one quite often in the beginning, before settling the final version of the sketch (which can be uploaded only with the USB-to-serial code). Note that this operation can be done only on an Arduino Uno.

As you can see, the device is correctly shown in QJackCtl:

QJackCtl Alsa view

QJackCtl Alsa view

Software

On the software side: first of all I have searched for an existing program which could reproduce the Theremin sound: there are a few, one very interesting is written in Python but it works only with OSS, and the Alsa emulation does not work at all (Ubuntu does not support OSS since a couple of years); there is also a CSound library, but it did not sound that well. In the end, I have decided to use this free VST effect, which is not free software (unfortunately), but has many different options and it also shows a MIDI input, so it can be driven using MIDI CC #60 and #61 (for x and y directions).

Super Spook Keys

Super Spook Keys

The Arduino program is very simple: it reads values from both the sensors, collecting five consecutive values; after that, it computes the mean of the values (for smoothing the signal) and sends it through the serial line as MIDI messages, then it repeats. The two leds are set a value proportional to the sensors, and if one of the two buttons is pressed, the corresponding sensor is blocked to the last valid value, so that (for example) the volume can be blocked while the pitch is changed, or viceversa.

Conclusions

Recording session

Recording session

Quite fun, again: I have also added all the components to a prototipying shield, so that as soon as a new enclosure arrives, I will be able to move everything together and close up my third Arduino circuit of the summer; you can briefly see part of that shield in the first video, although it is not in use yet.

Let me know if you want any detail…

P.S.

Webcam recording on Linux (or, at least, on Ubuntu 11.04) sucks: mencoder exited with floating point exception ( :-O ), ffmpeg just crashed, the same for Cheese; in the end, GStreamer saved me (and allowed me to easily record the second video), with the definitive pipeline:

gst-launch-0.10 v4l2src device=/dev/video1 !
 'video/x-raw-yuv,width=640,height=480,framerate=30/1' !
 tee name=t_vid ! queue ! xvimagesink sync=false t_vid. !
 queue ! videorate ! 'video/x-raw-yuv,framerate=30/1' !
 queue ! mux. alsasrc device=hw:0,0 !
 audio/x-raw-int,rate=48000,channels=2,depth=16 ! queue !
 audioconvert ! queue ! mux. avimux name=mux !
 filesink location=webcam.avi

Read Full Post »

Arduini

Arduini

Oggi è arrivato l’LCD da 16×2, e così ho potuto inscatolare il secondo dei miei due progettini estivi fatti con l’Arduino; come potete vedere in figura:

  • sullo sfondo c’è un lettore ad infrarossi, che ho accoppiato al telecomando (sulla sinistra) del mio vecchio impianto stereo; per interfacciarlo al PC, dato che francamente con LIRC non ne sono uscito, mi sono scritto 20 righe di Python e comando direttamente Amarok via DBus; presto aggiungerò qualche riga per comandare anche VLC, ed a quel punto direi che è fatta… il circuito ha praticamente solo il ricevitore IR (ed un LED, tanto per illuminare qualcosa), quindi lo sforzo è stato decisamente basso.
  • In primo piano, invece, c’è il buon Tweetino: è un po’ un peccato che lo schermo adatto a quel case sia necessariamente così piccolo, per il resto tutto funziona egregiamente; dopo aver risolto il bug della libreria Base64 ed uno stack overflow che mi era sfuggito, l’interfacciamento sulla rete non dà problemi ed i tweet vengono correttamente visualizzati (spesso abbreviati) sullo schermo. Devo ammettere che scrivere il software è stata la parte più divertente, e vedere il tutto funzionare correttamente è decisamente soddisfacente.
E questo è quanto: ormai l’estate è finita (anche se Qualcuno lassù ha evidentemente sbagliato ad impostare il termostato…), e devo ricominciare a fare cose serie; in realtà è rimasta una piccola ideuzza, ma per attuarla devo aspettare che mi arrivino alcuni componenti (tra cui un accelerometro, e non dico altro…). Nel caso, scriverò ulteriori aggiornamenti.

Read Full Post »

Perchè nessuno mi dice le cose importanti? I pin analog in dell’Arduino (A0-A5) sono in realtà GPIO, e si possono quindi usare anche come output! Questo cambia parecchio le cose, soprattutto nei circuiti con l’interfaccia ethernet e l’LCD, che da soli portano via 12 pin digitali…

Read Full Post »

« Newer Posts - Older Posts »