Progetto Parcheggio intelligente

Slides:



Advertisements
Presentazioni simili
Ingressi ADC 8 canali con ADC a 10-bit I/O pins dal 13 al 20
Advertisements

Tail recursion: esempio
Piattaforma Arduino Arduino uno Arduino Mega.
void binario(int n); …………………
Tail recursion: esempio
INSEGUITORE SOLARE CON ARDUINO
ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto.
ARDUINO Duemilanove Parte_4 Arduino e Processing
Per questo organizza un corso di Arduino per tutti i soci Amon e GMS.
Per questo organizza un corso di Arduino per tutti i soci Amon e GMS.
Linguaggio Arduino: Struttura di un programma
ARDUINO Duemilanove Parte_2 Laboratorio
ARDUINO Duemilanove Parte_5 Arduino e PHP
Arduino: introduzione alla programmazione
arduino: dalla teoria alla pratica
arduino: dalla teoria alla pratica
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
SENSORI OTTICI - FOTORESISTENZE
Hardware necessario Una board Intel galileo Un alimentatore Dc 7-15 v
Motore passo-passo Motore brusheless.
Progetti con arduino e pic.  Il trasduttore è analogico  Trasforma la temperatura in tensione secondo la relazione V millivolts =10*t celsius Essendo.
Comunicare con Arduino
Hands-On Arduino Come collegare i sensori ad Arduino P. Perego- Politecnico di Milano AA 2010/2011 Facoltà del Design - Politecnico di Milano 3.o anno.
ISTITUTO TECNICO – SETTORE TECNOLOGICO
Reti Mobili Ad Hoc e di Sensori Andrea De Salve. COS'È ARDUINO ? Piattaforma Open-Source per il Physical Computing basata su Microcontrollore Arduino.
Sensori analogici e digitali per la misura di
A cura dell’Ing. Marco Buttolo
Il suono e gli ultrasuoni
Arduino uno Introduzione.
Scheda ethernet di arduino
GPIO: General Purpose Input Output I parte
I2c.
10. Programmazione Ricorsiva Ing. Simona Colucci
Sistema di controllo ON – OFF (1)
INSEGUITORE SOLARE CON ARDUINO
PROGRAMMAZIONE BASH – ISTRUZIONE IF
Alimentazione esterna
Alimentazione esterna
istalliamo l’ambiente di sviluppo - ide
La scheda Arduino.
Global System for Mobile Comunication
Realizzazione di un robot d’assistenza alla gente
Caratteristiche e funzioni della scheda Arduino
A/D seconda parte.
Programmazione e Laboratorio di Programmazione
Fondamenti di Informatica
Interrupt Arduino.
Programmazione e Laboratorio di Programmazione
Pilotare Relè e Motori CC
Gestione di un banco di magliette
Maker_INO Lezione Quarta Trasduttori e Sensori Digitali
comprensione e modifica di codice
Display a 7 segmenti.
Lezione Seconda Primi passi di programmazione
Processi decisionali e funzioni di controllo
Programmazione e Laboratorio di Programmazione
Unità 5 Segnali analogici.
UNIT 12 INTERFACCIA SERIALE.
Unità 9 Relè.
Prof.ri Ponte Vincenzo Ovazza Sergio
Unità 1 Programmi base.
Motori Passo-Passo (step)
Lezione Terza Primi passi di programmazione
Programmazione e Laboratorio di Programmazione
CONTROLLO DI UN SERVOMOTORE A ROTAZIONE CONTINUA
Unità 13 I2C BUS.
Progettiamo un robot Prof.ri Ponte Vincenzo Ovazza Sergio
Comunicazioni sincronizzate: I2c SPI
TCS230 Sensore di colore.
Programmazione e Laboratorio di Programmazione
Transcript della presentazione:

Progetto Parcheggio intelligente

Dispositivi utilizzati 2 schede Arduino UNO 4 sensori infrarossi 1 LCD seriale 2 servomotori 1 fotoresistenza Scheda GPRS

Sensore infrarosso Il sensore infrarosso è di tipo digitale È dotato di tre pin: vcc, GND, OUT L’alimentazione è di 5 V Il livello logico è basso se ci sono ostacoli, altrimenti è alto Il principio di funzionamento è quello della riflessione: dal dispositivo viene inviato un segnale infrarosso; in presenza di ostacolo c’è la riflessione che manda il segnale su un fototransistor portando il livello logico LOW

Sensore infrarosso Due sensori vengono posti all’ingresso del parcheggio e due sensori vengono posti all’uscita Il primo sensore ad infrarossi all’ingresso, fa aprire la sbarra e fa comparire il messaggio di benvenuto sul display LCD e il numero di posti disponibili; il secondo serve ad assicurare che l’auto è passata, fa chiudere la sbarra ed incrementa il numero di ingressi All’uscita ci sono comunque due sensori infrarossi; il primo capta l’auto e fa aprire la sbarra, il secondo assicura che l’auto è passata, incrementa l’uscita e fa chiudere la sbarra

Programma base per il sensore ad infrarossi int dist=4; int led=5; void setup(){ pinMode(4, INPUT); pinMode(5,OUTPUT); digitalWrite(5,LOW);} void loop(){ int lett=digitalRead(dist); if(dist==LOW)digitalWrite(led, HIGH); if(dist==HIGH) digitalWrite(led,LOW);}

Display LDC seriale IL display LCD 16x4 seriale, utilizza la comunicazione I2c È dotato di 4 pin: Vcc 5V GND SCL va sul pin analogico A5 SDA va sul pin analogico A4 L’indirizzo standard è 0x27

Programma base del display LCD seriale #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 4); void setup() { lcd.begin(); lcd.backlight(); lcd.print("Hello, world!"); } void loop() lcd.setCursor(1,1); for(int i=0;i<10;i++){ lcd.print(i); lcd.clear();}

LCD

Servo motore Particolare tipo di motore, generalmente di piccola potenza Il vantaggio dei servomotori è che possono ruotare di angoli ben precisi Sono quindi utilizzati in robotica e nei controlli automatici Sono munti di tre pin: Marrone GND Arancione VCC a 5 V Giallo pin digitale della scheda Arduino

Servo motore

Programma base per il servomotore #include <Servo.h> Servo myservo void setup() { pinMode(4,INPUT); myservo.attach(9); } void loop() { Int lett=digitalRead(9); If(lett==HIGH) myservo.write(-60); If(lett==LOW) myservo.write(-90); delay(15);

Fotoresistenza Sensore analogico che cambia il proprio valore in base alla luminosità

Fotoresistenza programma base int fotores = 1; int value; void setup() { Serial.begin(9600); } void loop() { value = analogRead(fotores); Serial.println(value); delay(1000);

I2C Inter Integrated Circuit: sistema di comunicazione seriale che prevede un master e 256 slave Su arduino uno i pin A5 e A4 sono dedicati, oltre ai segnali analogici, anche alla comunicazione I2C Sul pin A5 va SCL e su A4 va SDA

I2C programma base per master //scl su A5 sda su A4 #include<Wire.h> int x ; void setup() { Wire.begin(); } void loop() { Wire.beginTransmission(7); // trasmette al device 7 for(x=0;x<10;x++) {Wire.write(x); Wire.endTransmission(); delay(500);}

I2C programma base per slave //scl su A5 sda su A4 #include <Wire.h> int x ; void setup() {Serial.begin(9600); Wire.begin(7); //lo slave prende indirizzo 7 Wire.onReceive(receiveEvent); } void receiveEvent(int bytes) { x = Wire.read(); Serial.println(x); void loop() { void receiveEvent();

Scheda GPRS

Programma I2C + GPRS #include<Wire.h> int x; #include "SIM900.h" #include <SoftwareSerial.h> #include "sms.h" SMSGSM sms; int led = 13; int numdata; boolean started=false; char smsbuffer[160]; char Mittente[20]; void setup() {Serial.begin(9600); Wire.begin(9); Wire.onReceive(receiveEvent); // put your setup code here, to run once: if ( gsm.begin(2400) ) { Serial.println("STATUS Modulo GSM = PRONTO"); started=true; } else Serial.println("STATUS Modulo GSM = INATTIVO"); }; boolean SerialRead(char s[]) int i=0; if (Serial.available() > 0) while (Serial.available() > 0) s[i]=Serial.read(); delay(10); i++; s[i]='\0'; // Metto il terminatore di stringa return (i!=0); void receiveEvent(int bytes) { x = Wire.read(); Serial.println(x);} void loop() { void receiveEvent(); char inSerial[50]; char position; if (started) { position = sms.IsSMSPresent(SMS_ALL); // Valore da 1..20 if (position) // Leggo il messaggio SMS e stabilisco chi sia il mittente sms.GetSMS(position, Mittente, smsbuffer, 160); Serial.print("Comando Ricevuto [tel. "+String(Mittente)+String("]: ") + String(smsbuffer)); if (strcmp(smsbuffer,"LIBERO?")==0) if (x>1) sms.SendSMS(Mittente, "Il parcheggio è libero e sei il benvenuto"); // restituisce true se invia l'SMS Serial.println(" => il LED e' Acceso"); } else if(x<1) sms.SendSMS(Mittente, "Ci dispiace ci sono pochi posti...prova se sei nelle vicinanze"); // restituisce true se invia l'SMS Serial.println(" => il LED e' Spento"); else Serial.println(" => non riconosciuto!"); sms.DeleteSMS(position); // Elimina l'SMS appena analizzato delay(3000);