Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Questa
Il progetto consiste in una macchinina comandata via Bluetooth da un app che ho realizzato da solo con Processing.
Le materie che compaiono in questo progetto sono:
TPSEE (sensori)
Elettronica (motori e ponte H)
SIstemi (applicazione per smartphone e microcontrollore)
ABBATI KRISTIAN - ANNO SCOLASTICO 2014/2015
3. Modulo comunicazione seriale bluetooth (HC-05)
In questo progetto la comunicazione seriale costante tra lo SmartPhone e la macchinina è
essenziale. Volendo usare il bluetooth, standard di comunicazione ormai presente in ogni
dispositivo portatile, la macchinina deve poter anch’essa comunicare via bluetooth con il
telefono. Per far ciò si è adottato il modulino HC-05.
Quest’ultimo converte il segnale ricevuto via bluetooth in un segnale adatto per la lettura
seriale del microcontrollore e, viceversa, converte il segnale seriale in uscita dal
microcontrollore in un segnale bluetooth.
È composto di 6 pin:
- I 2 pin di alimentazione (V e GND)
CC
- I pin RXD e TXD, rispettivamente per la ricezione e la trasmissione dei dati
- Un pin di stato, il cui valore è alto se il modulino è connesso ad un altro
dispositivo, basso in caso contrario
- il pin “Key”, che viene usato per attivare la modalità AT (permette di rinominare il
dispositivo, cambiare la password di default)
4. Microcontrollore e programma
Il microcontrollore utilizzato è stato l’MSP430G2553, che è il capostipite della famiglia
MSP430 della Texas Instruments. È un microcontrollore a basso consumo energetico e
lavora a 16 MHz.
Per farlo lavorare sulla macchinina, è stato alimentato a
3,3 V e ai pin RXD e TXD gli sono stati collegati
rispettivamente i pin TXD e RXD dell’HC-05.
Disponendo di diversi piedini in grado di fornire un segnale
PWM (Pulse quindi in grado di fornire un
Width Modulation),
segnale ad onda quadra a frequenza costante ma con duty
variabile, è stato usato per generare i PWM che
cycle
controllano la velocità dei motori.
A sua volta, gli altri piedini disponibili sono stati usati per il controllo dei LED e del sensore di
distanza HC-SR04 (che verrà approfondito nella sezione successiva).
La possibilità di sfruttare il sensore interno di temperatura ha permesso la visualizzazione
di quest’ultima sul telefono.
Il programma per il microcontrollore è stato realizzato usando “Energia”, un
software molto simile all’ambiente di lavoro Arduino.
OpenSource
Il programma, il cui codice commentato è allegato in fondo, fa si che il micro
acquisisca costantemente i dati ricevuti dall’HC-05 e ne spedisca altri che contengono le
informazioni riguardanti la batteria, la temperatura e la distanza all’app. 3
ABBATI KRISTIAN - ANNO SCOLASTICO 2014/2015
5. Sensors
This project involves the use of two sensors: the proximity sensor and the temperature
transducer.
The proximity sensor, which should be better called “Ultrasonic ranging module”, provides
the distance between an object and the RC car (from 2 to 400 cm).
It has been used in order to slow down and stop the car in case it gets too close to
something such as a wall or any other obstacle.
It consists of four pins, two of them are the voltage supply ones, instead the others are the
“Trigger” and the “Echo” pins. In fact, the sensor exploits the echo effect:
As it is triggered, the module sends out an eight cycle
burst of ultrasound (at 40 kHz), at the same time, the
“Echo” pin is set, and, as soon as the ultrasound burst
bounces back to the receiver, the “Echo” returns to its
low level value.
Thanks to the “capture mode” of the micro-controller it
is then possible to determine the time that elapses
between the moment the signal has been sent out and
the moment it bounces back measuring the amount of time during
which the “Echo” pin was set high.
Using the formula which is provided in the sensor data-sheet it is finally
possible to calculate the distance in inches or centimetres.
The incorporated temperature sensor on the micro-controller, which features a wide
temperature range (-50 °C to 100 °C), as most of temperature sensor do, provides a voltage
output that is proportional to the temperature it detects.
Since its output is an analog value, it has to be converted into a digital value so that it can
be displayed on the mobile phone. To do that it is necessary to convert that voltage using
an analog-to-digital converter (ADC) which is embedded in the micro-controller.
6. Ponte H e motore DC
Il ponte H è un circuito che permette l’applicazione di una tensione su un carico in
entrambe le polarità; è stato perciò adottato in questo progetto per far ruotare i motori in
entrambe le direzioni.
Necessitando di due circuiti di questo tipo, è stato utilizzato un L293, che oltre a
supportare tensioni fino ai 36 V, resiste correnti fino ad 1 A (grazie ai Darlington in
uscita). Il suo diagramma delle uscite è il seguente: 4
ABBATI KRISTIAN - ANNO SCOLASTICO 2014/2015
I due ponti sono disposti sui due lati dell’integrato, e, come si può notare, su ogni lato ci
sono due piedini di ingresso dei segnali di controllo (contrassegnati dalla lettera A) e due
uscite (Y). Per controllare il singolo motore, infatti, si necessita di due segnali, un segnale
per la marcia in avanti e uno per la marcia indietro.
Il piedino V , invece, è il pin attraverso il quale l’integrato viene alimentato, su di esso va
CC2
applicata la tensione della batteria, mentre V è il pin al quale va applicata la tensione di
CC1
riferimento del segnale, in questo caso la V del microcontrollore.
REF
Volendo tenere sempre attive le uscite, i pin di Enable sono collegati direttamente alla V .
REF
Lo schema di un ponte H generico è quello di figura:
In esso vi si nota la presenza di V , che in questo caso è
in
rappresentato dalla batteria, e di 4 interruttori, nonché
del motore stesso.
Gli sono generalmente degli interruttori
switch
elettronici, quindi dei transistor: se al loro ingresso
viene applicato un segnale di piccola entità
(ovviamente se lavorano nella configurazione da
interruttori), aprono o chiudono un tratto di circuito
facendo scorrere o meno la corrente.
La possibilità di poter chiudere e aprire gli S1, S2,
switch
S3 ed S4 ci permette di poter far lavorare il motore nelle condizioni qui sotto rappresentate:
Come si può vedere, nelle due situazioni rappresentate, la tensione V
in
cade in due modi diversi sui motori, la polarità della tensione di
armatura quindi è diversa, e di conseguenza lo è la corrente che
scorre nel rotore.
Sapendo che un conduttore percorso da corrente immerso in un
campo magnetico con vettore di induzione B, è soggetto ad una
forza F perpendicolare al piano formato da B e dalla corrente
(Legge di Lorentz), è logico concludere che se la corrente
scorre in senso opposto, la forza F “spingerà” in un’altra
direzione.
I morsetti dei motori però, non possono essere collegati direttamente alle uscite del L293:
affinché i motori non si deteriorino dopo qualche utilizzo sono necessari i cosiddetti diodi
volano. 5
ABBATI KRISTIAN - ANNO SCOLASTICO 2014/2015
Si immagini ad esempio che un interruttore
si apra improvvisamente; la corrente
tenderebbe a 0 in un istante brevissimo, e
ciò provocherebbe un elevata caduta di
potenziale sui motori, essendo carichi
induttivi infatti, anche per essi vale la
formula: V = L·(dI/dt)
Si adotta perciò la soluzione circuitale proposta dal costruttore nel datasheet che fornisce
una via di uscita alla corrente appunto attraverso i diodi.
7. Motori ed alimentazione
Per muovere la macchinina sono stati utilizzati due motori in continua di
piccole dimensioni aventi coppia 150 g/cm.
Alla massima velocità assorbono 100 mA l’uno e ruotano ad una
velocità di 500 rpm.
L’intero sistema è alimentato da una batteria ai polimeri di litio da 7,4 V avente
capienza 1300 mAh, quest’ultima è composta di due celle da 3,7 V .
Il suo livello di carica è costantemente monitorato in quanto la tensione di una
cella viene, una volta ridotta da un partitore di tensione, applicata all’ingresso
dell’ADC del microcontrollore e visualizzata sul telefono.
Per alimentare il microcontrollore la tensione è stata dovuta essere ridotta a 3,3 V.
Per far ciò è stato utilizzato un regolatore di tensione (LM317) opportunamente configurato
che fornisce una tensione costante in uscita anche a seguito di variazioni della tensione di
alimentazione.
Case
8. (stampa 3D)
Il case che racchiude la macchinina è stato disegnato e poi stampato in 3D.
La foto a sinistra ritrae il processo di stampa in 3D del lato della macchinina, mentre la foto
a destra rappresenta l’ambiente di lavoro SketchUp, un programma gratuito di Google
utilizzato per il CAD 3D a livello non professionale. 6
ABBATI KRISTIAN - ANNO SCOLASTICO 2014/2015
Allegati
A. Schema a blocchi della macchinina pag. A1
B. Illustrazione funzionamento applicazione pag. B1
Flowchart applicazione Android pag. B3
Codice applicazione Android pag. B4
C. Flowchart programma microcontrollore pag. C1
Codice programma microcontrollore pag. C2
D. Schema elettrico pag. D1
Schema completo pag. D2
ABBATI KRISTIAN - ANNO SCOLASTICO 2014/2015
così due
ad
differenza essere
controllo la che
in di (effetto
serie
ruotare determina tempo
sensore
Facendo tra
può ritorno
una
intercorre
di una di il
1
segnali misurando
mandando
distanza
che negativa. motori
applica un
distanza
motori loro
che
L293)
versi. LED
potenziale di
sui (HCSR-04) che al
ai ultrasuoni
di
riceve, Controllo
Basandosi tratta
i - intercorre
o permette e
entrambi Controllo elementi
distanza
Sensore
H
H positiva impulsi
Sensore
(Ponte
Ponte eco).
che Si
di litio
di
polimeri
macchinina
della
controlla di
quali
allo livello
informazioni,
spedisce
valore ai
il
telefono e batteria
microcontrollore
la
il
blocchi la
tra
continuamente
dal altre
LED. e una
intercorre Microcontrollore
ricevuti (MSP430G2553)
ostacoli ad
i
e da
motori insieme batteria.
del Alimentato
dati
Microcontrollore temperatura
che gli
a dei
i SmartPhone
Acquisisce della
Elaborando
Schema velocità e
distanza stessa carica
la la e
comunicazione trasferire via microcontrollore
ricevute
di
compito
comunicazione informazioni
la
bluetooth per al
il
(HC-05) viceversa.
ha
modulo bluetooth
seriale
HC-05
seriale
Modulo
la rendendo determinate
caratteri
basandosi determina
invia le
Il
rappresenta schermo, motori.
ciò
progetto: di microcontrollore di
all’HC-05, stringa
sullo dei
microcontrollore
SmartPhone visualizzazione schermo.
velocità
dita
del SmartPhone
caratteri una
importante iBlue)
delle della sullo
dal
inoltre,
per posizione regolazione
di
Applicazione la informazioni (app
proveniente
al stringa
più possibile
Assieme Riceve
parte sulla una la A1
ABBATI KRISTIAN - ANNO SCOLASTICO 2014/2015
Funzionamento app
L’applicazione è installabile su ogni dispositivo Android 4.0+
Non necessita di particolari permessi, se non quello di poter attivare ed utilizzare
il bluetooth.
1. All’apertura dell’app, viene richiesta l’attivazione del bluetooth nel caso non fosse già
attivo. 3
2. Viene quindi richiesta la scelta del dispositivo a cui connettersi: in questo caso HC-05.
3. Subito dopo, fino allo stabilimento di una connessione con la macchinina, sul telefono
viene visualizzata una schermata di attesa che in genere dura un paio di secondi. B1
ABBATI KRISTIAN - ANNO SCOLASTICO 2014/2015
4. Una volta stabilita a connessione apparirà la schermata di controllo. Nella status bar
verrà indicata la temperatura della CPU e, nel caso in cui l’ingresso dell’ADC dedicato al
controllo del livello di carica non riveli nulla al suo ingresso, comparirà un messaggio per
ricordarlo.
Al centro. come già noto, viene visualizzata la distanza rilevata dal sensore ad ultrasuoni.
5. Funzionamento regolare dell’app: 3 A1 B2
ABBATI KRISTIAN - ANNO SCOLASTICO 2014/2015
Flowchart applicazione SmartPhone
START
1
Impostazioni layout
1 NO
Bluetooth attivo? Attivazione
SÌ
Selezione dispositivo NO
Connesso? Schermata attesa
SÌ
Visualizzazione grafica
Ricezione e
visualizzazione dati
Elaborazione posizione
dita
Invio dati Bluetooth B3
ABBATI KRISTIAN - ANNO SCOLASTICO 2014/2015
//Abbati Kristian 5B
//Anno scolastico 2014/2015
//======================================================================
//==========================PARTE 1/3===================================
//=========================="iBlue"=====================================
//==============Dichiarazioni globali====================================
float handleX1, handleX2;
// Coordinate manopole (X)
float MouseY1=315, MouseY2=315;