titolo del progetto -...
Post on 16-Jun-2020
8 Views
Preview:
TRANSCRIPT
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
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
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
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);
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);
}
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.
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:
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:
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
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);
} }
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.
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
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
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;
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);
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
top related