Differenze tra le versioni di "Scaldiamoci alla luce di un LED"

Da raspibo.
Jump to navigation Jump to search
(scalare un led, analizzare una forma d'onda ed elucubrare sul concetto di PWM)
 
m (DavideAlberani ha spostato la pagina "scaldiamoci alla luce di un LED" a Scaldiamoci alla luce di un LED: tolti i doppi apici)
 
(13 versioni intermedie di 2 utenti non mostrate)
Riga 1: Riga 1:
 
=Scaldiamoci col led=
 
=Scaldiamoci col led=
Il 7 marzoci siamo messi intorno ad un tavolo e per scaldare la serata abbiamo acceso un led col Raspi (offerto da [http://raspibo.ofpcina.net/profile/soundspectrum Davide])!
+
Ecco il resoconto di uno dei tanti "tavoli tecnici" sul Raspi. Io sono [http://raspibo.ofpcina.net/profile/aventuri Andrea] e questa è una sintesi alla buona!
  
Il led era attaccato alla porta del Raspi via flat cable da floppy, breadboarde poco piu', vedi immagine del setup:
+
Il 7 marzo ci siamo messi intorno ad un tavolo e per scaldare la serata abbiamo acceso un led col Raspi (offerto da [http://raspibo.ofpcina.net/profile/soundspectrum Davide])!
  
[[File:Led_raspi.jpg]]
+
Il led era attaccato alla porta del Raspi via flat cable da floppy, breadboard e poco piu', vedi immagine del setup:
 +
 
 +
[[File:Led_raspi.jpg|640px]]
  
 
Abbiamo attivato la porta GPIO2 del Raspi scrivendo qualcosa tipo:
 
Abbiamo attivato la porta GPIO2 del Raspi scrivendo qualcosa tipo:
  
   echp 2 > /sys/.../gpio/exports
+
   echo 2 > /sys/class/gpio/exports
 +
 
 +
da notare che "magicamente" compare  sotto la directory '''.../gpio''' una ulteriore subdir '''.../gpio2'''
  
 
poi abbiamo messo in '''output''' la porta che era in '''input'''
 
poi abbiamo messo in '''output''' la porta che era in '''input'''
  
a quel punto abbiamo capito che era possibile scrivere '''1''' o '''0''' sul file ''''value''' per commutare il livello elettrico da 0 a 3.3v (misurato col preciso multimetro di Davide:
+
  echo output > /sys/class/gpio/gpio2/direction
 +
 
 +
a quel punto abbiamo osservato che era possibile scrivere '''1''' o '''0''' sul file '''value''' per commutare il livello elettrico da 0 a 3.3v (misurato col preciso multimetro di Davide):
 +
 
 +
  echo 0 > /sys/class/gpio/gpio2/value
 +
 
 +
Abbiamo creato un 'complesso' script shell che faceva una sleep e scriveva uni e zeri. ecco '''un generatore di onda quadra'''!
 +
Lo script ha due parametri, il primo e' il tempo di '''LED off''', il secondo il tempo di '''on''':
 +
 
 +
[[File:script2.png|512px]]
 +
 
 +
 
 +
Ecco uno screenshot del display di ubuntu connesso in ssh al raspi mentre "gira" lo script (quando siamo passati a sleep minori di 1 secondo abbiamo tolto l'echo sulla shell per evitare tempi aggiuntivi ed aumentare quindi la precisione):
 +
 
 +
[[File:script.png|512px]]
 +
 
 +
=Osservazioni=
 +
Qui alcune osservazioni che riportiamo.
 +
* il cavo con connettore microUsb e' poco diffuso e spesso la sua mancanza impedisce di accendere il Raspi!
 +
* la '''sleep''' dello script accetta anche float e puo' "dormire" anche per solo un centesimo di secondo ('''0.01'''); chissà quanto in basso si puo' scendere (con una certa precisione)?
 +
 
 +
==il logic analyzer==
 +
Andrea ha portato un [http://en.wikipedia.org/wiki/Logic_analyzer logic analyzer] con cui si possono osservare le forme d'onda digitali.
 +
L'oggetto e' un kit open source chiamato [http://dangerousprototypes.com/docs/Open_Bench_Logic_Sniffer Open Bench Logic Sniffer] che ha 16 canali compatibili 5v e 3.3v (bufferizzati),  si puo' malamente vedere (perche' imbustato a protezione..) dietro al portatile nella foto sopra.
 +
 
 +
[[File:ols.jpg|480px]]
 +
 
 +
Ecco un screenshot della forma d'onda come visualizzata nel client su PC.
 +
 
 +
[[File:analyzer-screen.png|512px]]
 +
 
 +
Da notare il segnale sul canale 0; sul canale 1 si vedono degli "spike" spuri perche' gli altri ingressi, quando rimangono "flottanti" (cioe' non vengono forzati a massa) possono raccogliere qualche livello alto per errore..
 +
 
 +
=Conclusioni ed Attività future=
 +
Grazie ancora a Davide per il materiale..
 +
 
 +
Alla prossima occasione, approfondiremo il tema del [http://it.wikipedia.org/wiki/Pulse-width_modulation controllo PWM]!
  
  echo 0 > /sys/.../gpio2/value
+
Grazie alla "pulse width modulation" (PWM) anche un segnale elettrico digitale (che vale 0 o 1) puo' generare livelli elettrici (mediamente) intermedi (o analogici..). serve qualche filtro passa basso per togliere le alte frequenze. Per un led, la persistenza dell'occhio basta ed avanza.
  
Abbiamo creato un complesso script shell che faceva una sleep e scriveva uno e zeri. ecco un generatore di onda quadra!
+
[[Category:Progetti]]

Versione attuale delle 15:32, 8 giu 2013

Scaldiamoci col led

Ecco il resoconto di uno dei tanti "tavoli tecnici" sul Raspi. Io sono Andrea e questa è una sintesi alla buona!

Il 7 marzo ci siamo messi intorno ad un tavolo e per scaldare la serata abbiamo acceso un led col Raspi (offerto da Davide)!

Il led era attaccato alla porta del Raspi via flat cable da floppy, breadboard e poco piu', vedi immagine del setup:

Led raspi.jpg

Abbiamo attivato la porta GPIO2 del Raspi scrivendo qualcosa tipo:

 echo 2 > /sys/class/gpio/exports

da notare che "magicamente" compare sotto la directory .../gpio una ulteriore subdir .../gpio2

poi abbiamo messo in output la porta che era in input

 echo output > /sys/class/gpio/gpio2/direction

a quel punto abbiamo osservato che era possibile scrivere 1 o 0 sul file value per commutare il livello elettrico da 0 a 3.3v (misurato col preciso multimetro di Davide):

 echo 0 > /sys/class/gpio/gpio2/value

Abbiamo creato un 'complesso' script shell che faceva una sleep e scriveva uni e zeri. ecco un generatore di onda quadra! Lo script ha due parametri, il primo e' il tempo di LED off, il secondo il tempo di on:

Script2.png


Ecco uno screenshot del display di ubuntu connesso in ssh al raspi mentre "gira" lo script (quando siamo passati a sleep minori di 1 secondo abbiamo tolto l'echo sulla shell per evitare tempi aggiuntivi ed aumentare quindi la precisione):

Script.png

Osservazioni

Qui alcune osservazioni che riportiamo.

  • il cavo con connettore microUsb e' poco diffuso e spesso la sua mancanza impedisce di accendere il Raspi!
  • la sleep dello script accetta anche float e puo' "dormire" anche per solo un centesimo di secondo (0.01); chissà quanto in basso si puo' scendere (con una certa precisione)?

il logic analyzer

Andrea ha portato un logic analyzer con cui si possono osservare le forme d'onda digitali. L'oggetto e' un kit open source chiamato Open Bench Logic Sniffer che ha 16 canali compatibili 5v e 3.3v (bufferizzati), si puo' malamente vedere (perche' imbustato a protezione..) dietro al portatile nella foto sopra.

Ols.jpg

Ecco un screenshot della forma d'onda come visualizzata nel client su PC.

Analyzer-screen.png

Da notare il segnale sul canale 0; sul canale 1 si vedono degli "spike" spuri perche' gli altri ingressi, quando rimangono "flottanti" (cioe' non vengono forzati a massa) possono raccogliere qualche livello alto per errore..

Conclusioni ed Attività future

Grazie ancora a Davide per il materiale..

Alla prossima occasione, approfondiremo il tema del controllo PWM!

Grazie alla "pulse width modulation" (PWM) anche un segnale elettrico digitale (che vale 0 o 1) puo' generare livelli elettrici (mediamente) intermedi (o analogici..). serve qualche filtro passa basso per togliere le alte frequenze. Per un led, la persistenza dell'occhio basta ed avanza.