Università degli studi di Roma LA SAPIENZA

Documenti analoghi
Università degli studi di Roma LA SAPIENZA

Relazione Release Alpha 2.0

Automobile Bluetooth

8^ parte : Pilotare Motori passo-passo bipolari usando l integrato L298N. Author: Ing. Sebastiano Giannitto (ITIS M.

Rossetto Flavio a.s. 2011/2012 classe 5E 2

Arduino: Programmazione

Progetti reali con ARDUINO

8^ parte : Motor shield FE e motore passo-passo bipolare. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

CORSO ARDUINO. Giulio Fieramosca Stefano Panichi. Corsi GOLEM 2014

Esercitazioni di Progettazione del Software. Esercitazione (Prova al calcolatore del 17 settembre 2010)

LA BUSSOLA DELLA TRASPARENZA: COSA È?

Object Oriented Software Design

Progettazione del robot

Progetto Esami Di Stato Anno 2014/2015

Algoritmi di Ricerca. Esempi di programmi Java

Fare Efficienza Energetica attraverso l automazione degli edifici

Esercitazione Controllo di un motore DC mediante Arduino YUN

Database e reti. Piero Gallo Pasquale Sirsi

Macchina con Arduino Uno comandata tramite dispositivo Android e sensore ultrasuoni per fermarsi istantaneamente di fronte ad un ostacolo

Esame sezione Brevetti Prova Pratica di meccanica

L applicazione dei vettori di collaudo

Appunti di Sistemi Elettronici

ITC FOSSATI- DA PASSANO. Progetto sonar. A cura di: Bamonte Davide Bertagna Davide Canaccini Alessandro Celi Andrea Conti Thomas Filattiera Lorenzo

9^ parte : Come pilotare motori dc utilizzando il motor shield. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

Informatica 1 Lezione 1

PROGETTAZIONE DI UN CONTROLLO ON-OFF CON CRITERI E METODOLOGIA

6^ parte : Acquisizione della temperatura con LM35. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

Analisi e diagramma di Pareto

Calcolo Focale. Ing. Vincenzo Falanga

SPECTER OPS. L'obiettivo del giocatore agente è quello che il suo agente completi 3 su 4 missioni obiettivo qualsiasi

Corso di Scienza Economica (Economia Politica) prof. G. Di Bartolomeo

SISTEMI DI AUTOMAZIONE BARCODE & RFID

DESCRIZIONE GENERALE E ARCHITETTURA HARDWARE DI I-DROID01

FONDAMENTI di INFORMATICA L. Mezzalira

MST_K12_INV. Regolatore di velocita per motori in CC con comando esterno della inversione della rotazione. Manuale d uso e d installazione

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Strumento di valutazione delle prestazioni motorie: CoreMeter

Favorire la prevenzione della corruzione. Attivare un nuovo tipo di controllo sociale (accesso civico) Sostenere il miglioramento delle performance

Dispensa di Informatica I.1

PROGETTO ESCAVATORE VIRTUALE

Monitoraggio Impianti Fotovoltaici

11^ parte : Come gestire i servomotori con Arduino. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

NTC E MISURA DELLA TEMPERATURA CON ARDUINO

IL RISPARMIO ENERGETICO E GLI AZIONAMENTI A VELOCITA VARIABILE L utilizzo dell inverter negli impianti frigoriferi.

Con SIGNUM è possibile intervenire con diversi livelli di personalizzazione e controllo sui dati letti. In particolare SIGNUM può essere usato:

REALIZZAZIONE DI UN LABORATORIO REMOTO PER ESPERIENZE DI ROBOTICA EDUCATIVA: LATO CLIENT

CLASSIFICAZIONE ACUSTICA DELLE UNITA' IMMOBILIARI - I EDIZIONE

Telecontrollo escavatore LEGO con board Arduino

Sezione di PWM e Generatore di D/A Converter.

ThinkPad R40 Series Guida all installazione

TECNICO SUPERIORE PER L AUTOMAZIONE INDUSTRIALE

MT2 e MT3: Schede e sistemi di controllo motori passo passo

Tutorial 3DRoom. 3DRoom

ICARO Terminal Server per Aprile

I.I.S. Enzo Ferrari di Susa (To) a.s. 2012/2013

Programmazione a Oggetti Modulo B

19 Il campo elettrico - 3. Le linee del campo elettrico

Capitolo 3. Iniziamo col far vedere cosa si è ottenuto, per far comprendere le successive descrizioni, avendo in mente ciò che si vuole realizzare.

Produzione di borse in pelle. 1. Modeling Simulacian; 2. Selezionare un task, inserire durata e costo necessari per completarlo una volta.

La selezione binaria

GESTIONE INFORMATICA DEI DATI AZIENDALI

INFORMATICA 1 L. Mezzalira

4.1 Che cos è l ideazione

INGEGNERIA DEL SOFTWARE

Rete di sensori per la rilevazione degli incendi nei boschi. Stefano Ivancich 5EA ITIS C.Zuccante A.S 2014/2015

Soluzione dell esercizio del 12 Febbraio 2004

Relazione illustrativa degli Obiettivi di accessibilità

Sistemi Web! per il turismo! - lezione 3 -

L innovazione in azienda: l approccio intelligente

Blue s Hotel Pro Il software che hai sempre desiderato per il tuo Hotel!

Dispositivo di conversione di energia elettrica per aerogeneratori composto da componenti commerciali.

leaders in engineering excellence

RIPETITORE DI SEGNALE WIRELESS PER SISTEMA VIA RADIO ART. 45RPT000

Traccia delle soluzioni

Durante la realizzazione di questo WP verranno anche effettuate delle sperimentazioni per verificare la bontà delle ipotesi in fase di studio.

Università degli Studi di Salerno

Ricevitore Supervisionato RX-24 Dati tecnici

GridSense. L energia gestita con intelligenza.

D sistema d allarme con sensori magnetici

ELABORAZIONE DI DATI TRIDIMENSIONALI - RELAZIONE HOMEWORK 2

Ricorsione. Corso di Fondamenti di Informatica

MONITORAGGIO ACQUEDOTTO MANUALE UTENTE

Termodinamica: legge zero e temperatura

Descrizione del Test Range della Società SAMA

Valutazione del potenziale

creazione di oggetti

GENERATORE MESSO A TERRA CON TRASFOMATORE PRIMARIO FUNZIONAMENTO CON AVVIATORE STATICO

Autostereoscopy as a Representation Criteria for Distributed Simulation

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Sequence Diagram e Collaboration Diagram

Semplice progetto con Arduino simpatico G-meter col quale misurare e registrare le accelerazioni del proprio veicolo

Le effettive esigenze della Direzione del Personale nella gestione delle risorse umane in azienda. Andamento dal 2005 ad oggi

PROCEDURA DI INSTALLAZIONE DEI SOFTWARE E DEL DRIVER USB AIM

Che cosa è un VIRUS?

TECNICO SUPERIORE PER L INFORMATICA INDUSTRIALE

IN COLLABORAZIONE CON OPTA SRL

Logica binaria. Porte logiche.

Tempi e metodi nelle lavorazioni

Guida: server di posta sugli smartphone. U.O. Reti e Sicurezza dell'amministrazione Centrale Laboratorio di informatica Facoltà di Farmacia

Transcript:

Università degli studi di Roma LA SAPIENZA Corso di ingegneria informatica e automatica Automazione I Realizzazione di una macchinina in grado di evitare le collisioni Di Alessandro Giuseppi All attenzione del Docente: Dr.Vincenzo Suraci

Sommario Obiettivo... 3 Descrizione... 3 Unità di elaborazione: Arduino... 4 Motori e parte meccanica... 4 Driver motori... 5 Sensore di prossimità... 5 Alimentazione... 6 Schema elettrico... 7 Due soluzioni... 8 Progettazione schema di controllo Arduino... 9 Codice Arduino... 10 Foto e video del funzionamento... 12 Soluzione a più sensori... 13 Conclusioni... 14 Software utilizzato... 14 Autore... 14 2

Obiettivo Il progetto coprirà tutte le fasi relative alla realizzazione e programmazione di una macchinina basata su Arduino in grado di evitare gli ostacoli grazie ad un sensore di prossimità. Durante l analisi saranno valutate alcune delle possibili soluzioni implementative illustrandone vantaggi e svantaggi. Nella prima parte sarà trattato l aspetto hardware, per poi spostare l attenzione sull aspetto software nella seconda parte. Descrizione Consideriamo la seguente schematizzazione del progetto: Arduino Sensore di prossimità Driver Motori motori Analizzeremo ora nel dettaglio i singoli blocchi, per poi analizzare la loro interconnessione. 3

Unità di elaborazione: Arduino Vista la grande diffusione e la natura open source del progetto, si è deciso di utilizzare per il controllo del dispositivo una scheda Arduino. In particolare, siccome le dimensioni non sono un problema rilevante si è deciso di optare per un Arduino UNO. Il codice proposto, una volta ricompilato è totalmente compatibile con le altre schede Arduino. Motori e parte meccanica La macchinina si muoverà come un cingolato per evitare l impiego di un motore addizionale o di un sistema di ingranaggi dedicato. Si è scelto di impiegare 4 motori DC, ciascuno relativo ad una ruota, e a due a due in parallelo. Come scheletro di supporto si è deciso di acquistare un semplice kit di montaggio per modellini. Composto da due armature in plastica trasparente e quattro ruote. 4

Driver motori Si è optato per l impiego di un driver per rendere più snello e leggibile il codice per l Arduino. Il driver scelto è il Keyes L298,basato sul chip l298n. Sensore di prossimità Per rilevare la presenza di un ostacolo è necessario impiegare un sensore di prossimità. Ne esistono di varie tipologie, tuttavia per il fattore costo, nonché per il più che adeguato grado di affidabilità e precisione si è deciso di utilizzare un sensore basato sugli infrasuoni. Il modello scelto è l HC-SR04 5

La seguente figura ne riassume il funzionamento: Inviando un impulso di durata 10μs sul canale TRIG il sensore ci restituisce sul pin ECHO un impulso avente come durata il tempo di volo totale dell onda ultrasonica. Alimentazione Per alimentare Arduino e sensore sarà impiegata una batteria da 9V, mentre per i motori e relativo driver si utilizzeranno sei pile da 1,5V in serie ed una batteria da 9v in parallelo. 6

Schema elettrico Alleghiamo di seguito lo schema dei collegamenti elettrici HC-SR04 Il driver L298 permette di controllare i quattro motori tramite le sole 4 porte di input nella figura. Le porte 1 e 2 controllano il polo negativo e il polo positivo dei motori del gruppo A. Parallelamente le porte 3 e 4 controllano i poli negativo e positivo del gruppo motori B. Il sensore è stato connesso ai pin 06 e 07 e la batteria dei motori, grazie all apposito pin, è stata collegata al driver. 7

Due soluzioni Analizzeremo due casi: un modello dotato solo di un sensore di prossimità ed un modello che ne monta tre. Nel caso di un solo sensore di prossimità, come finora trattato, lo si pone sulla parte anteriore della macchinina. Quando un ostacolo viene rilevato (ovvero, quando la distanza dall ostacolo è inferiore ai 20cm) la macchinina girerà a sinistra finché non troverà la strada nuovamente libera per poi riprendere ad andare avanti. Questa soluzione permette alla nostra macchinina di trovare l uscita in qualsiasi labirinto semplicemente connesso, ovvero i cui muri sono tutti collegati, poiché si basa sull algoritmo della mano sinistra. Questa soluzione sarà anche implementata sul nostro modello e sarà allegato un video a prova del funzionamento. Per completezza progetteremo anche il diagramma degli stati SFC del caso in cui la macchinina abbia tre sensori di prossimità, posti sulla parte anteriore e ai suoi lati. Trovando un ostacolo sul suo percorso la macchinina controllerà se la strada alla sua destra è libera, in caso positivo si comporta come nel caso precedente, mentre nel caso negativo passerebbe al controllo della strada a sinistra. Nel caso in cui la macchinina si trovi in un vicolo cieco ferma i motori e accende un led per segnalare la fine della corsa. 8

Progettazione schema di controllo Arduino Alleghiamo il diagramma SFC relativo alla prima soluzione. 9

Codice Arduino Il diagramma precedente può essere tradotto nel seguente codice, sviluppato in Arduino IDE int r_motor_n = 2; //PWM control Right Motor - int r_motor_p = 3; //PWM control Right Motor + int l_motor_p = 4; //PWM control Left Motor + int l_motor_n = 5; //PWM control Left Motor - int trig=6; int echo=7; int duration=0; int distance=0; void setup() { pinmode(r_motor_n, OUTPUT); //Initializing pins pinmode(r_motor_p, OUTPUT); pinmode(l_motor_p, OUTPUT); pinmode(l_motor_n, OUTPUT); pinmode(trig,output); pinmode(echo,input); //startup digitalwrite(r_motor_n, LOW); digitalwrite(r_motor_p, LOW); digitalwrite(l_motor_p, LOW); digitalwrite(l_motor_n, LOW); Serial.begin(9600); Serial.println("Welcome,our car is working!"); void loop() { if (Freepath()){Serial.println("all clear"); Foward(); else Turn(); static boolean Freepath(){ digitalwrite(trig, HIGH); delaymicroseconds(1000); digitalwrite(trig, LOW); duration = pulsein(echo, HIGH); distance = (duration/2) / 29.1; if (distance<=20) return false; return true; 10

static void Stop(){ digitalwrite(r_motor_n, LOW); digitalwrite(r_motor_p, LOW); digitalwrite(l_motor_p, LOW); digitalwrite(l_motor_n, LOW); static void Left(){ digitalwrite(r_motor_n, HIGH); digitalwrite(r_motor_p, LOW); digitalwrite(l_motor_p, LOW); digitalwrite(l_motor_n, LOW); static void Right(){ digitalwrite(r_motor_n, LOW); digitalwrite(r_motor_p, LOW); digitalwrite(l_motor_p, LOW); digitalwrite(l_motor_n, HIGH); static void Foward(){ digitalwrite(r_motor_n, HIGH); digitalwrite(r_motor_p, LOW); digitalwrite(l_motor_p, LOW); digitalwrite(l_motor_n, HIGH); static void Back(){ digitalwrite(r_motor_n, LOW); digitalwrite(r_motor_p, HIGH); digitalwrite(l_motor_p, HIGH); digitalwrite(l_motor_n, LOW); static void Turn(){ Left(); Serial.println("turning left"); delay(500); 11

Video del funzionamento (Video disponibile anche a: http://youtu.be/pz0ea-mn5xg ) 12

Soluzione a più sensori Di seguito il diagramma SFC della soluzione precedentemente descritta. 13

Conclusioni Il progetto ha coperto tutte le fasi della progettazione di una macchinina in grado di poter evitare gli ostacoli incontrati sul suo percorso, analizzando ove possibile diverse soluzioni ai problemi incontrati valutandone i pro e i contro. Lo studio dell obstacle avoidance ha ricadute pratiche in numerosissimi campi, dalla guida automatizzata alla sicurezza in impianti di costruzione. Negli ultimi anni sono stati fatti grandi passi avanti nel settore, utilizzando soluzioni anche molto diverse dalla proposta, tuttavia l approccio utilizzato è in linea di massima valido per la risoluzione di una buona parte dei problemi più comuni, e con l aggiunta di sensori supplementari, quali ad esempio telecamere e tachimetri si può ottenere un comportamento soddisfacente anche in problemi di scala maggiore, come ad esempio la gestione automatizzata di un magazzino come realizzato dalla KIVA Systems. Software utilizzato Microsoft Office Open office Draw Arduino Ide Autore Alessandro Giuseppi email:alessandrogiuseppi@gmail.com Università degli studi di Roma La Sapienza 3 anno Ingegneria Informatica ed Automatica, indirizzo Automatica 14