Sensore di colore con Arduino: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Creata pagina con "{{Risorsa | tipo = laboratorio | materia1 = Sistemi automatici per le superiori 1 | avanzamento = 0% | dipartimento1 = Scuole }} {{ITIS Urbino |classe = 4A/EN (Daniel G., Sasha M.) |as = 2021/2022 |materia = Sistemi automatici per le superiori 1 |docente = Giacomo Alessandroni |wiki_docente = Galessandroni}} = Realizzazione con display LCD = miniatura|Sensore di temperatura e umidità DHT-11 Il..." Etichetta: Editor wikitesto 2017 |
Nessun oggetto della modifica |
||
Riga 1:
{{Risorsa|tipo=laboratorio|materia1=Sistemi automatici per le superiori 2|avanzamento=25%|dipartimento1=Scuole}}
{{Lavori in corso
| classe = 4A/EN (Daniel G., Sasha M.)
| as = 2021/2022
| materia = Sistemi automatici per le superiori 2
| docente = Giacomo Alessandroni
| wiki_docente = Galessandroni
| link_istituto = https://www.itisurbino.edu.it/
| istituto = ITIS "Enrico Mattei"
| comune = Urbino
}}
Questa risorsa descrive come realizzare un '''riconoscitore di colori con Arduino, mediante l'utilizzo di un sensore di colori TCS3200'''
== Presentazione del progetto ==
Il '''bastone intelligente per non vedenti''' attraverso un sensore di prossimità, avverte l'utente quando questo si avvicina a un ostacolo, tramite un segnale acustico; inoltre, tramite un motore, viene generata una vibrazione, che guida l'utente a individuare l'ostacolo e – di conseguenza – a superarlo con facilità.
Questo progetto semplifica la circolazione dei soggetti con problematiche legate alla vista.
== Schema di
{| class="wikitable"
|+Componenti utilizzati
!Descrizione
!Tipo
|-
|Active buzzer
|<math>8~\Omega</math>
|-
|Ultrasonic Distance Sensor
|HC-SR04
|-
|Pulsante
|1
|-
|Motore
|DC
|-
|Resistenza
|<math>330~\Omega</math>
|}
[[File:Arduino_Smart_Stick.svg|centro|600x600px]]
== Codice ==
<syntaxhighlight lang="arduino">
#define LED 2
#define S0 4
#define S1 5
#define S2 6
#define S3 7
#define R 11
#define B 9
#define G 10
#define sensorOut 8
void setup() {
Serial.begin(9600);
pinMode(LED, OUTPUT);
pinMode(S0, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT);
pinMode(sensorOut, INPUT);
digitalWrite(S0, HIGH);
digitalWrite(S1, HIGH);
}
unsigned long r, g, b;
void loop() {
digitalWrite(LED, HIGH);
digitalWrite(S2, LOW);
digitalWrite(S3, LOW);
r = pulseIn(sensorOut, LOW);
digitalWrite(S2, HIGH);
digitalWrite(S3, HIGH);
g = pulseIn(sensorOut, LOW);
digitalWrite(S2, LOW);
digitalWrite(S3, HIGH);
b = pulseIn(sensorOut, LOW);
Serial.print("R=");
Serial.print(r);
Serial.print("\tGT=");
Serial.print(g);
Serial.print("\tGB=");
Serial.print(b);
delay(100);
if((r <= 33)&&(g <= 51)&&(b <= 43)){
Serial.print("RED");
analogWrite(11, 255);
} else if((r <= 36)&&(g <= 45)&&(b <= 36)){
Serial.print("BLUE");
analogWrite(9, 255);
} else if((r <= 35)&&(g <= 45)&&(b <= 40)){
Serial.print("GREEN");
analogWrite(10, 255);
} else {
analogWrite(9, 0);
analogWrite(10, 0);
analogWrite(11, 0);
}
}
</syntaxhighlight>
=== Connessione dei pin ===
Come prima cosa definiamo i pin ai quali colleghiamo il buzzer (o cicalino piezoelettrico), il sensore ad ultrasuoni (HC-SR04) ed il motore DC.
=== Parametri del codice ===
In seguito vengono definite la distanza massima di lettura del sensore <code>distanzaMax</code>, la distanza minima del buzzer (se si ha una distanza minore il buzzer farà un suono continuo) <code>dMinb</code>, la distanza massima del buzzer (a una distanza maggiore il buzzer non suona) <code>dMaxB</code>, la velocità di trasmissione del monitor seriale (espresso in baud) <code>baud</code>, infine la distanza che massima del motore DC <code>dM</code>.
Tutte le distanze sono espresse in centimetri.
<code>long</code> è un tipo di dato che può contenere numeri a 32 bit, con segno.
=== Input e Output ===
* <code>tP</code> è il pin "Trigger": dice al sensore quando inviare un segnale;
* <code>eP</code> è il pin "Echo" che riceve il ritorno del segnale inviato dal sensore (ammesso che vi sia);
* <code>B</code> è il pin "Buzzer";
* <code>M</code> è il pin "Motore";
=== Programma principale ===
Nel programma principale forniamo ad Arduino tutte le informazioni relative all'esecuzione del programma e tutti i comandi relativi.
== Espansioni suggerite ==
Aggiunta di:
* Ruota per il movimento facilitato;
* Sensore di prossimità a 180°;
* funzione S.O.T.F.(stick on the floor) che permette al non vedente di ritrovare il bastone tramite un segnale acustico in caso di caduta e difficoltà a ritrovarlo;
* Sensore di profondità;
|