TITOLO DEL PROGETTO -...

16
Riconoscitore vetro - plastica con Arduino: manuale collegamenti elettrici e software TITOLO DEL PROGETTO Realizzazione di un sistema di riconoscimento Vetro/Plastica con instradamento automatico del rifiuto utilizzando la piattaforma Arduino Ing. Francesco Cozzolino Prof. Ferdinando Implacabile Prof. Giuseppe Caccavale

Transcript of TITOLO DEL PROGETTO -...

Page 1: TITOLO DEL PROGETTO - ingegnercozzolinoingegnercozzolino.altervista.org/alterpages/files/Riconoscitore_Step... · 1. Interfaccia Arduino – Display LCD 2x16 2. Acquisizione di ingressi

Riconoscitore vetro - plastica con Arduino: manuale collegamenti elettrici e software

TITOLO DEL PROGETTO

Realizzazione di un sistema di riconoscimento

Vetro/Plastica con instradamento automatico del

rifiuto utilizzando la piattaforma Arduino

Ing. Francesco Cozzolino

Prof. Ferdinando Implacabile

Prof. Giuseppe Caccavale

Page 2: TITOLO DEL PROGETTO - ingegnercozzolinoingegnercozzolino.altervista.org/alterpages/files/Riconoscitore_Step... · 1. Interfaccia Arduino – Display LCD 2x16 2. Acquisizione di ingressi

Riconoscitore vetro - plastica con Arduino: manuale collegamenti elettrici e software

Questo progetto rappresenta un prototipo di un sistema “intelligente” per la

raccolta differenziata dei rifiuti. Il sistema è stato pensato per la raccolta

differenziata delle bottiglie di vetro e di plastica, esso è costituto da un vano in cui si

inserisce la bottiglia, con un doppio grado di riconoscimento:

1. Un sistema di fotocellule per accertarsi che il rifiuto sia o vetro o plastica, in

caso contrario, ad esempio nel caso di una lattina di alluminio il sistema

fornisce un messaggio di errore indicando che non è possibile depositare quel

rifiuto

2. Un cella di carico che, in base al peso, riconosce se la bottiglia è di vetro o di

plastica e la instrada nel corretto contenitore azionando un servomotore.

L’interfaccia con l’utente avviene tramite display a cristalli liquidi (LCD 2x 16) il quale

indica fornisce due informazioni fondamentali:

1. “Inserisci bottiglia” per indicare che la macchina è pronta

2. “Rifiuto indifferenziato” per indicare che il rifiuto inserito non è né vetro, né

plastica.

La premessa, d’obbligo, è che il sistema è puramente didattico, ossia contiene degli

evidenti bachi a causa dell’utilizzo di sensori ed attuatori di basso costo e di una

meccanica abbastanza semplice. E’ intuitivo che basta poco per renderlo

professionale, a cominciare dall’utilizzo di etichette già vicino alle bottiglie, in modo

che basterebbe un lettore di codice a barre per rendere il riconoscimento univoco.

Un'altra modifica che si può apportare è l'integrazione con un lettore di chip in

modo che all’utente che inserisce le bottiglie possono essere associati dei punti da

far valere in fase di pagamento delle tasse relative ai rifiuti.

Questo progetto è l’occasione per imparare ad utilizzare Arduino, a fare esperienza

con la programmazione in linguaggio C e ad applicare in pieno il concetto di

automazione. Con relative schede di interfaccia tra scheda Arduino, sensori ed

attuatori. Tuttavia, può essere utilizzata una struttura in legno o plastica tale da

rendere il prodotto finale funzionante, interattivo, didatticamente interessante ed

anche bello da vedersi

Page 3: TITOLO DEL PROGETTO - ingegnercozzolinoingegnercozzolino.altervista.org/alterpages/files/Riconoscitore_Step... · 1. Interfaccia Arduino – Display LCD 2x16 2. Acquisizione di ingressi

Riconoscitore vetro - plastica con Arduino: manuale collegamenti elettrici e software

Propedeutici alla realizzazione del prototipo saranno diverse esercitazioni con

Arduino, con l’utilizzo di strumenti di misura e con l’utilizzo di attrezzature da

laboratorio.

La lista completa del materiale necessario alla realizzazione di un prototipo è la

seguente

Item Componente Descrizione Quantità

01 Arduino + cavo UNO 1

02 adattatore 220V/USB 1

03 Display LCD 2x16 1

04 Trimmer o potenziometro 1

05 Led infrarossi IR Trasmettitore Tx 2

06 Led infrarossi IR Ricevitore rx 2

07 R 2

08 R 2

09 Portaled 4

10 Cella di carico 1

11 Circuito integrato INA 114 ap 1

12 zoccolo 8 pin 1

13 R 1

14 servomotore 1

15 millefori piccola 1

16 morsetti per millefori 2.88 6

Realizzazione del sistema in 8 passi:

Essendo il progetto completo molto complicato, esso è stato suddiviso in singoli

moduli che verranno implementati sia dal punto di vista hardware che software. In

particolare si realizzeranno:

1. Interfaccia Arduino – Display LCD 2x16

2. Acquisizione di ingressi analogici dalle fotocellule ad Arduino

3. Cella di carico: scheda di condizionamento del segnale proveniente dalla cella

di carico ed acquisizione da parte di Arduino

4. Comando di un servo motore con Arduino

5. Scheda elettronica per la distribuzione dell’alimentazione

6. Costruzione della struttura di supporto

7. Cablaggio finale

8. Collaudo

Page 4: TITOLO DEL PROGETTO - ingegnercozzolinoingegnercozzolino.altervista.org/alterpages/files/Riconoscitore_Step... · 1. Interfaccia Arduino – Display LCD 2x16 2. Acquisizione di ingressi

Riconoscitore vetro - plastica con Arduino: manuale collegamenti elettrici e software

Interfaccia Arduino – LCD

Il display costituirà l’interfaccia con l’utente, lo schema riportato sui vari siti web è il

seguente:

Si consiglia, dopo aver fatto le varie prove, di ipotizzare la grandezza del prototipo, e

di stabilire almeno orientativamente la distanza tra Arduino e l’LCD con eventuale

percorso dei cavi di collegamento di modo da avere una struttura finale simile a

come indicato sotto:

Il software da caricare è il seguente:

#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins

LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

Page 5: TITOLO DEL PROGETTO - ingegnercozzolinoingegnercozzolino.altervista.org/alterpages/files/Riconoscitore_Step... · 1. Interfaccia Arduino – Display LCD 2x16 2. Acquisizione di ingressi

Riconoscitore vetro - plastica con Arduino: manuale collegamenti elettrici e software

void setup() {

// set up the LCD's number of columns and rows:

lcd.begin(16, 2);

// Print a message to the LCD.

lcd.print("Buon Lavoro!");

}

void loop() {

// set the cursor to column 0, line 1

// (note: line 1 is the second row, since counting begins with 0):

lcd.setCursor(0, 1);

// print the number of seconds since reset:

lcd.print(millis()/1000);

}

Page 6: TITOLO DEL PROGETTO - ingegnercozzolinoingegnercozzolino.altervista.org/alterpages/files/Riconoscitore_Step... · 1. Interfaccia Arduino – Display LCD 2x16 2. Acquisizione di ingressi

Riconoscitore vetro - plastica con Arduino: manuale collegamenti elettrici e software

Collegamento delle fotocellule ad Arduino

Il riconoscimento del rifiuto consta di due parti: il primo avviene tramite fotocellule

che inviano ad Arduino due segnali analogici. Lo scopo è quello di porre la bottiglia

in un cilindro ove sono applicate le due coppie di fotocellula come si vede nella

figura sotto.

Vediamo nel dettaglio il collegamento elettrico delle due fotocellule con relative

resistenze limitatrici, alimentazioni e cavi di uscita.

Page 7: TITOLO DEL PROGETTO - ingegnercozzolinoingegnercozzolino.altervista.org/alterpages/files/Riconoscitore_Step... · 1. Interfaccia Arduino – Display LCD 2x16 2. Acquisizione di ingressi

Riconoscitore vetro - plastica con Arduino: manuale collegamenti elettrici e software

Si uniscono i 4 cavi positivi tra loro e diventa un solo positivo, idem si uniscono i 4

negativi.

In uscita si hanno 4 cavi, 2 di alimentazione (+ e -) e due che portano i segnali.

Il principio di funzionamento è molto semplice, si ha la fotocellula Tx che invia un

segnale al ricevitore Rx (ricordiamo che i due diodi trasmittente e ricevente devono

essere esattamente allineati), se non vi è alcun ostacolo interposto, il ricevitore Rx

riceve il segnale ed invia ad Arduino una certa tensione elettrica. (A livello software

poi, si imposta la soglia di lettura).

Vediamo il software:

Infine ricordarsi di utilizzare gli appositi porta led:

Page 8: TITOLO DEL PROGETTO - ingegnercozzolinoingegnercozzolino.altervista.org/alterpages/files/Riconoscitore_Step... · 1. Interfaccia Arduino – Display LCD 2x16 2. Acquisizione di ingressi

Riconoscitore vetro - plastica con Arduino: manuale collegamenti elettrici e software

Cella di carico: scheda di condizionamento del segnale proveniente dalla

cella di carico ed acquisizione da parte di Arduino

La cella di carico è un trasduttore che misura il peso degli oggetti che si posano

sopra e fornisce in uscita un segnale di tensione elettrica molto bassa che va

opportunamente amplificata.

Lo schema elettrico del circuito amplificatore è il seguente:

Page 9: TITOLO DEL PROGETTO - ingegnercozzolinoingegnercozzolino.altervista.org/alterpages/files/Riconoscitore_Step... · 1. Interfaccia Arduino – Display LCD 2x16 2. Acquisizione di ingressi

Riconoscitore vetro - plastica con Arduino: manuale collegamenti elettrici e software

Provare la cella di carico significa acquisire un segnale analogico. Stavolta il caso è

diverso dalle fotocellule in quanto in quel caso, si stabiliva una soglia e si verificava

se tra la fotocellula era interposto o meno un ostacolo opaco. In pratica lì si è

utilizzato un segnale analogico trattandolo di fatto come se fosse digitale.

Con la cella di carico si deve per forza parlare di segnale analogico, allora si ha che

ad ogni peso poggiato sulla cella corrisponde un valore di tensione. Con Arduino si

acquisisce il valore di tensione ed in base a quello, previa taratura iniziale, si evince

se trattasi di plastica, vetro o altro.

Per una maggiore comprensione della cella di carico si potrà effettuare una

successiva verifica dopo aver parlato di servomotore.

Di seguito il software per l’acquisizione del segnale analogico proveniente dalla cella

di carico, opportunamente amplificato, il cui valore in questa fase verrà solo

visualizzato

Software:

Comando di un servo motore con Arduino

Un servomotore è un attuatore in grado di movimentare un braccio meccanico, nel

caso in questione aziona il cilindro che instrada correttamente il rifiuto nel

contenitore della plastica o del vetro

Page 10: TITOLO DEL PROGETTO - ingegnercozzolinoingegnercozzolino.altervista.org/alterpages/files/Riconoscitore_Step... · 1. Interfaccia Arduino – Display LCD 2x16 2. Acquisizione di ingressi

Riconoscitore vetro - plastica con Arduino: manuale collegamenti elettrici e software

Lo schema di collegamento ad Arduino con relativo software è di seguito riportato:

Software per il comando.

Servo myservo;

int pos = 0; void setup()

{

myservo.attach(9);

}

void loop()

{

for(pos = 0; pos < 180; pos += 1)

{

myservo.write(pos);

delay(15);

}

for(pos = 180; pos>=1; pos-=1)

{

myservo.write(pos);

delay(15);

} }

Page 11: TITOLO DEL PROGETTO - ingegnercozzolinoingegnercozzolino.altervista.org/alterpages/files/Riconoscitore_Step... · 1. Interfaccia Arduino – Display LCD 2x16 2. Acquisizione di ingressi

Riconoscitore vetro - plastica con Arduino: manuale collegamenti elettrici e software

Scheda elettronica per la distribuzione dell’alimentazione

Dopo avere effettuato le singole prove sulle varie parti del circuito per procedere

all’assemblaggio finale è necessario realizzare una schedina su basetta millefori in

modo da distribuire le varie alimentazioni. Cioè dovendo alimentare a 5 Volt

continui il servomotore, le fotocellule, il display LCD e l’integrato per amplificare il

segnale della cella di carico (ricordiamo che la cella vera e propria è alimentata con

tensione V=3,3 volt), è conveniente portare due cavi (GND e 5 Volt) da Arduino a

questa scheda ed alimentare tutto il resto:

Come si vede, nella stessa scheda è inglobato anche l’integrato per amplificare il

segnale della cella pertanto si hanno i morsetti 2 e 3 costituenti l’alimentazione della

cella direttamente dall’integrato e l’uscita analogica Ao già condizionata (cioè

opportunamente amplificata).

Struttura di supporto

La struttura ove alloggiare il tutto deve somigliare ad un sistema formato da due

campane, con un riconoscitore di bottiglie, un vano tecnico ove alloggiare le schede

elettroniche, una predisposizione per il passaggio cavi ed infine delle asole o dei vani

in cui alloggiare motori, display, ecc. Il tutto può essere disegnato e realizzato o con

legno oppure con stampante 3D.

Alla base del riconoscitore occorre inserire una struttura con due spazi separati per

raccogliere da una parte il vetro e dall’altra la plastica.

Page 12: TITOLO DEL PROGETTO - ingegnercozzolinoingegnercozzolino.altervista.org/alterpages/files/Riconoscitore_Step... · 1. Interfaccia Arduino – Display LCD 2x16 2. Acquisizione di ingressi

Riconoscitore vetro - plastica con Arduino: manuale collegamenti elettrici e software

La parte più delicata è il posizionamento del cilindro ove inserire la bottiglia stando

attenti all’allineamento con la parte sensibile della cella di carica. Il movimento del

cilindro provvederà ad instradare in uno dei due contenitori

Page 13: TITOLO DEL PROGETTO - ingegnercozzolinoingegnercozzolino.altervista.org/alterpages/files/Riconoscitore_Step... · 1. Interfaccia Arduino – Display LCD 2x16 2. Acquisizione di ingressi

Riconoscitore vetro - plastica con Arduino: manuale collegamenti elettrici e software

Cablaggio finale

Via via che si fanno le prove intermedie conviene prepararsi i vari componenti con

cavi sufficientemente lunghi e relativi strip in modo tale che alla fine possa collegarsi

il tutto ad Arduino o alla scheda in modo semplice.

Ricordarsi di “battezzare” ogni cavo cioè munirlo di etichetta (in questo caso è stato

usato un semplice skotch carta) su cui scrivere dove collegarlo con il numero di pin

Page 14: TITOLO DEL PROGETTO - ingegnercozzolinoingegnercozzolino.altervista.org/alterpages/files/Riconoscitore_Step... · 1. Interfaccia Arduino – Display LCD 2x16 2. Acquisizione di ingressi

Riconoscitore vetro - plastica con Arduino: manuale collegamenti elettrici e software

A questo punto si possono fissare la scheda Arduino e la basetta millefori ed

effettuare tutti i collegamenti

Il software finale è il seguente:

int bilancia =A0;

int fotouno =A1;

int fotodue =A2;

int riferimento =180;

int plastica =200;

int vetro =240;

int fotocellule= 100;

#include <Servo.h>

Servo myservo;

Page 15: TITOLO DEL PROGETTO - ingegnercozzolinoingegnercozzolino.altervista.org/alterpages/files/Riconoscitore_Step... · 1. Interfaccia Arduino – Display LCD 2x16 2. Acquisizione di ingressi

Riconoscitore vetro - plastica con Arduino: manuale collegamenti elettrici e software

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup ()

{

lcd.begin(16, 2);

myservo.attach(9);

}

void loop ()

{

int valorebilancia = analogRead(bilancia);

if (valorebilancia < riferimento)

{

lcd.setCursor(0, 0);

lcd.print("ins bottiglia");

myservo.write(45);

}

else

{

int valorefotouno = analogRead(fotouno);

int valorefotodue = analogRead(fotodue);

if (valorefotouno >fotocellule || valorefotodue >fotocellule)

{

if(valorebilancia < vetro)

{

delay (500);

myservo.write (80);

lcd.setCursor(0, 0);

Page 16: TITOLO DEL PROGETTO - ingegnercozzolinoingegnercozzolino.altervista.org/alterpages/files/Riconoscitore_Step... · 1. Interfaccia Arduino – Display LCD 2x16 2. Acquisizione di ingressi

Riconoscitore vetro - plastica con Arduino: manuale collegamenti elettrici e software

lcd.print("plastica...");

}

}

if (valorefotouno > fotocellule || valorefotodue > fotocellule)

{

if (valorebilancia > vetro)

{

myservo.write(10);

lcd.clear ();

lcd.setCursor(0, 0);

lcd.print("vetro.....");

delay (1000);

}

}

}

}

Per scaricare il presente documento vai sul sito:

www.ingegnercozzolino.altervista.org