!Support Ukraine!

Posted in English Content, Italian Content | Leave a comment

Why Arduino UNO rocks

This entry is part [part not set] of 15 in the series Arduino

After some years in IoT, I tried a bunch of different platform like esp8266 but Arduino remains a must.

Simple reason to choose it for your first (or second :) IoT project:

  1. Arduino works at 5V and can accept as input voltage 7-12V, but with limit up to 20V (avoid it! :).
    This mean you can use a wide range of power supply (4 AA Batteries, 12V transformer from your dead router and so on)
  2. Arduino board provides a 5V regulated output and a 3.3V too for working with a wide range of sensors.
  3. You got 6 Analog2Digital pins (the A0…A5 pins) with a 0..1024 value resolution. In comparison, esp8266 has only one pin with less resolution.
  4. It is completly open source, so you can find easily cheap clones like this one at less then 10 euros.
  5. The ATmega328P chip inside Arduino provide I2C and SPI communication which means you can easily work with other chip.
    You can even program an Arduino to be an I2C client to other Arduinos making a small set of complex circuits.
    For instance, the C/64 SID chip emulator can be compiled to act like a I2C slave and another Arduino can program it like…a SID chip
  6. Did I talk about the real time operating system, written by an italian guy?….  I was able to use it to build a small “Egg box Lamp“.
Posted in Arduino EggBox, English Content | Comments Off on Why Arduino UNO rocks

Egg box con Sensore sonico

This entry is part 1 of 3 in the series Arduino the Egg Box Lamp

Costruiamo una lampada luminosa con Arduino, un sensore sonico ed…una scatola di uova :)

Come abbiamo già visto le scatole traslucide per il trasporto delle uova sono un ottima base per creare piccole lampade, per diverse ragioni:

  • sono facili da trovare
  • sono leggere
  • sono abbastanza rigide
  • possono essere incollate con del Vinavil (strano ma vero)

Questa versione di eggbox è composta da una sola scatola da quattro uova e da un sensore sonico che potete trovare su amazon per meno di 5€. In realtà il suo prezzo dovrebbe essere meno di 3€, ma considerando l’affidabilità di Amazon (viene recapitato in meno di 3 giorni e senza costi di spedizione) è ancora un prezzo accettabile.

Cosa vi serve:

  1. Arduino Uno
  2. Cavi rigidi di 3-4 colori
  3. Un sensore sonico
  4. Uno o più led ad alta luminosità
  5. Un caricabatterie usb da cellulare, dal costo contenuto. Ongi tanto nei supermercati trovate offerte per caricabatterie sotto i 10€.
  6. Un paio di mini breadboard.

Arduino uno viene montato al contrario sulla superficie piana della scatola di uova:per tenerlo in posizione vengono creati 4 buchi da cui vengono passati quattro fili rigidi da connettere al sensore sonico

Inoltre su un lato viene fatto un buco per far passare il cavo USB, che verrà alimentato con batteria USB.

arudino_egg_effect1

Il codice che ho progettato è una variante di un esempio d’uso del sensore sonico, ed è integrato con NilRTOS, di cui ho già ampiamente parlato.

Il sensore ha bisogno di 4 connessioni e non tre come il Ping  ma non richiede pin PWM e costa sei volte di menoQuesto tutorial è molto chiaro e pure in italiano.

Le connessioni sono l’alimentazione da 5volt, la massa e due pin Trigger e Echo. Inviando un valore su Trigger si legge il risultato su Echo.

[code lang=”cpp”]
//HC RS04 Sensore ultrasuoni
const int triggerPort = 7;
const int echoPort = 8;
const int blueLed=11;
const int maxDistCm=28;
#include
#include

void setup() {

pinMode( triggerPort, OUTPUT );
pinMode( echoPort, INPUT );
pinMode( blueLed, OUTPUT);
Serial.begin( 9600 );
Serial.println( "Sensore ultrasuoni: ");
nilSysBegin();
}

void loop() {
//nilPrintUnusedStack(&Serial);
//Serial.println();
}

NIL_WORKING_AREA(waUltrasonicSensor, 64);
NIL_THREAD(UltrasonicSensor,arg){
static long lastValue=0;
while(true) {
//porta bassa l’uscita del trigger
digitalWrite( triggerPort, LOW );

//invia un impulso di 10microsec su trigger
digitalWrite( triggerPort, HIGH );
delayMicroseconds( 10 ); // nilThdSleepMicorseconds
digitalWrite( triggerPort, LOW );

long duration = pulseIn( echoPort, HIGH );

long r = 0.034 * duration / 2;
if(r != lastValue){

Serial.print( "durata: " );
Serial.print( duration );
Serial.print( " , " );
Serial.print( "distanza: " );

//dopo 38ms è fuori dalla portata del sensore
if( duration > 38000 ) Serial.println( "fuori portata");
else {

Serial.print( r ); Serial.print( "cm" );

Serial.print(" ");
nilPrintUnusedStack(&Serial);
if(r <=maxDistCm && r>=5 ){
int v=map(r,5,maxDistCm,0,255);
Serial.print( v );
Serial.print(" LED ");
analogWrite(blueLed, v);
}

}
lastValue=r;
}
//aspetta mezzo secondo ca
/* we
suggest to use over 60ms
measurement cycle, in order to prevent trigger sign
al to the echo signal
*/
nilThdSleepMilliseconds( 60*2 );
}
}

NIL_THREADS_TABLE_BEGIN()
NIL_THREADS_TABLE_ENTRY(NULL /*TH NAME*/, UltrasonicSensor, NULL, waUltrasonicSensor, sizeof(waUltrasonicSensor))
NIL_THREADS_TABLE_END()
[/code]

Il codice dello sketch è molto semplice ma non fatevi ingannare: difatti consente di impostare la luminosità avvicinando od allontanando la mano, ma se la si solleva di scatto il valore impostato rimarrà fisso. Difatti se il valore letto (=la distanza letta) supera la toleranza di 20cm il sistema non fa nulla, ed il led rimane dell’intensità selezionata.

Il sensore poggia sulla mini breadboard e non c’è bisogno di alcuna saldatura, a patto di avere fili della giusta lunghezza e ben tirati.

E’ possibile aggiungere altri led che pulsano con effetti differenti

IMG_2013

 

 

Posted in Arduino, Arduino EggBox, Italian Content | Tagged | Comments Off on Egg box con Sensore sonico

Arduino Real Time EggBox

This entry is part 3 of 3 in the series Arduino the Egg Box Lamp

In questo secondo capitolo della serie egg box per arduino (una lampada a led costruita con 2 scatole di plastica delle uova), riscriveremo il codice in modo da utilizzare un sistema operativo real time chiamato NilRTOS e disponibile su Github; in particolare mostrerò un semplice sketch che è in grado di produrre un piccolo accordo ed accedere tre luci rispetto ad un ritmo, mentre una quarta, di colore rosso, si accenderà rispetto ad una cadenza diversa.

Continue reading

Posted in Arduino, Arduino EggBox, Gio's Software Projects, Italian Content, Knowledgebase | Tagged , , , | Comments Off on Arduino Real Time EggBox

Arduino EggBoxLamp

This entry is part 2 of 3 in the series Arduino the Egg Box Lamp

IMG_1783.JPGProgrammare Arduino è molto divertente, ed in questo articolo voglio mostrare come creare una semplicissima lampada luminosa. Questo esempio sarà anche il pretesto per mostrare differenti implementazioni software dello stesso progetto (in prossimi post)

Questo progetto è volutamente molto semplice, e non si serve di nessun sensore.

Trovate il codice su github:

Arduino egg box
https://github.com/daitangio/egg_box
0 forks.
1 stars.
0 open issues.

Recent commits:

Continue reading

Posted in Arduino, Arduino EggBox, Italian Content, Knowledgebase | Tagged , , | Comments Off on Arduino EggBoxLamp