FACULATEA DE MATEMATICĂ ȘI INFORMATICĂ SPECIALIZAREA INFORMATICĂ LUCRARE DE LICENȚĂ Aplica ț ie mobilă pentru controlul prin Bluetooth a aparatelor… [621950]
UNIVERSITATEA DIN BUCUREȘTI
FACULATEA DE MATEMATICĂ ȘI INFORMATICĂ
SPECIALIZAREA INFORMATICĂ
LUCRARE DE LICENȚĂ
Aplica
ț
ie mobilă pentru controlul prin Bluetooth a
aparatelor electronice
COORDONATOR ȘTIINȚIFIC
Lector dr. Mihail Cherciu
STUDENT: [anonimizat] 2019
ABSTRACT
Această
lucrare
poate
fi
privită
ca
o
introducere
în
robotică
ș
i
mecatronică
(mecanică,
electronică,
informatică).
Acest
domeniu
a
luat
na
ș
tere
oficial
în
secolul
21
ș
i
este
folosit
peste tot în vie
ț
ile noastre : în automobile, ma
ș
ini de spălat, aparate medicale, avioane, etc.
Mecatronica este rezultatul evolu
ț
iei fire
ș
ti în dezvoltarea tehnologică. Tehnologia
electronică a stimulat această evolu
ț
ie. Dezvoltarea microelectronicii a permis integrarea
electromecanică. În următoarea etapă, prin integrarea microprocesoarelor în structurile
electromecanice, acestea devin inteligente
ș
i, astfel s-a ajuns la mecatronicǎ. [1]
În continuare, voi prezenta o aplica
ț
ie a mecatronicii, o ma
ș
ină de jucărie robotică
ac
ț
ionată de un telefon A ndroid prin intermediul protocolului Bluetooth Low Energy.
1. INTRODUCERE
1.1. Motiva
ț
ie
2. Arduino
2.1 Despre
Arduino
este
o
platformă
electronică
open
source
bazată
pe
hardware
ș
i
software
u
ș
or
de
utilizat.
Placile
Arduino
pot
citi
intrari
–
(lumina,
proximitate,
temperatura,
etc,
captatate
de
diversi
senzori)
si
le
poate
transforma
in
iesiri
(activeaza
un
motor,
porneste
un
LED,
etc).
Pute
ț
i
spune
placutei
ce
să
facă
prin
trimiterea
unui
set
de
instruc
ț
iuni
către
microcontrolerul
de
pe
tablă.
Pentru
a
face
acest
lucru,
folosi
ț
i
limbajul
de
programare
Arduino
(bazat
pe
Wiring)
ș
i software-ul Ar duino (IDE), bazat pe Processing.
De
când
a
apărut,
Arduino
a
fost
creierul
a
mii
de
proiecte,
de
la
unele
banale
până
la
unele
ș
tiin
ț
ifice,
complexe.
Există
o
comunitate
interna
ț
ională
de
creatori
studen
ț
i,
arti
ș
ti,
programatori,
profesioni
ș
ti
care
au
contribuit
la
această
platformă
open-source
cu
materiale
accesibile.
2.2 Cum func
ț
ionează Arduino
Arduino poate fi considerat un limbaj specific de programare, însă la bază este C++. Există
un IDE special pentru această platformă, Arduino IDE.
2.2.1 Structura codului Arduino
setup()
Fiecare proiect de Arduino trebuie să aibă o func
ț
ie setup. Func
ț
ia aceasta define
ș
te starea
ini
ț
ială a plăcii Arduino la pornire
ș
i este rulată o singură dată. Vom defini următoarele:
●
Func
ț
ionalitatea pinilor folosind func
ț
ia pinMode
●
Starea ini
ț
ială a pinilor
●
Ini
ț
ializarea claselor
●
Ini
ț
ializare de variabile
●
Logică de cod
loop()
De asemenea, un proiect Arduino trebuie să aibă
ș
i func
ț
ia loop. Ea rulează după ce func
ț
ia
setup este gata. Este func
ț
ia principală a programului,
ș
i după cum sugerează numele, este
rulată în buclă (de aproximativ 117.000 de ori pe secundă). Aceasta con
ț
ine logica principală
a plăcii.
2.2.3 Librăriile
În Arduino, ca în multe alte platforme de programare, există librării integrate ce oferă
func
ț
ionalită
ț
i de bază. În plus, e posibil să impor
ț
i
ș
i librării externe pentru a extinde
func
ț
ionalită
ț
ile plăcii Arduino. Pentru a importa o librărie nouă trebuie să intrăm în meniul
“Sketch -> Import Library”.
Pentru a include librării externe, trebuie să folosim sintaxa “#include <librarie.h>”
2.2.4 Definirea pinilor
Pentru
a
folosi
pinii
plăcii
Arduino
trebuie
să
definim
pinii
individuali
care
sunt
folosi
ț
i
ș
i
la
ce sunt folosi
ț
i. Un mod u
ș
or de a face asta este:
‘#define pinName pinNumber’.
Func
ț
ionalitatea
este
ori
de
intrare
ori
de
ie
ș
ire
ș
i
este
definită
folosind
func
ț
ia
pinMode
în
setup().
3. Bluetooth Low Energy
3.1 Despre
Bluetooth este un protocol pentru comunicatie wireless intre dispozitive, ce este folosit si
optimizat pentru distante mici. Cea mai recenta versiune majora este 4.0, care a introdus un
noul protocol de comunicatie, Bluetooth Low Energy, sau altfel spus, BLE.
BLE a fost optimizat pentru dispozitive de dimensiuni mici operate de baterii, iar acesta
consuma o energie nesemnificativa. Dispozitivele compatibile opereaza pe aceleasi benzi
ISM(industrial, scientific and medical (ISM) radio bands) ca si Bluetooth-ul original, acestea
fiind impartite in 40 de canale, 3 pentru "advertising" si 37 pentru transmisie de date.
Pachetele de date sunt mult mai mici decat cele de pe Bluetooth clasic, maximul fiind de
2971 de biti. Ele sunt transmise la 0.26 Mbit/s, versus 0.7 – 2.1 Mbit/s la Bluetooth clasic. [3]
3.2 Cum se realizeaza comunicatia
Exista doua parti implicate in comunicatiile BLE: Serverul, care are date, de obicei este
dispozitivul de mici dimensiuni(ex: aparat de citit pulsul), si clientul, care consuma date.
In general, clientul este un smartphone. In cazul acestei lucrari, serverul este smartphone-ul
iar clientul este robotul.
Generic
Attribute
Profile
(GATT)
—
How
information
is
represented
Peripheral
(Server)
by
its
nature
can
be
more
than
just
a
simple
device
that
pumps
data.
It
may
have
some
useful
functions
like
“unlock
the
door
lock”.
BLE
standard
provides a unified view for those cases.
If
you
are
at
least
a
little
familiar
with
Bluetooth
spec
(let
me
know
if
you
managed
to
get
through
the
whole
spec),
then
you
know
that
it
supports
an
enormous
amount
of
different
protocols
on
the
application
level.
BLE
adopted
only
one
of
those,
called
Generic
Attribute
Profile
(GATT), based on Attribute Protocol (ATT).
To be continued
4. Android
5. Lucrare
5.1 Despre
Acest proiect este constituit despre un robot(masina) controlabil printr-o aplicatie de Android.
Prezenta lucrare contine atat o parte software cat si una hardware.
Pentru partea software am folosit C++(codul robotului scris pe Arduino) si Java(codul
Android).
Pentru realizarea partii hardware am folosit urmatoarele componente:
–
Arduino Uno R3
–
4 roti
–
4 motoare DC
–
servomotor SG90
–
modul cu driver de motoare dual L298N
–
senzor ultrasonic HC-SR04
–
modul Bluetooth Low Energy HC-08
–
compartiment baterii
5.2 Hardware
5.2.1 Schema generala
5.2.2 Despre componente
Arduino Uno R3
Aceasta este cea mai cunoscuta si folosita placa din familia Arduino. Este de mici dimensiuni
(6.8 x 5.3 cm) si este construita in jurul unu procesor de semnal si poate prelua informatii
externe din mediul inconjurator printr-o gama de senzori si poate efectua actiuni prin
intermediulor motoarelor, servomotoarelor, luminilor, si alte dispozitive electromecanice.
Procesul este capabil sa ruleze limbajul C++
L298N – driver motoare DC
L287N este o punte H dubla, un driver de motoare DC ce permite controlul asupra vitezei
pentru 1, 2, 3 sau chiar 4 motoare simultan. Modulul poate "conduce"motoare DC care au
voltajul intre 5 si 35V, avand curentul de maxim 2A.
Controlul unui motor DC
Pentru a controla complet un motor DC, trebuie sa ii controlam viteza si directia de rotatie.
Pentru a reusi acest lucru se folosesc doua tehnici:
PWM(Pulse Width Modulation) – Pentru a controla viteza:
Viteza unui motor DC poate fi controlată prin modificarea tensiunii de intrare. O tehnică
comună pentru a face acest lucru este de a utiliza PWM.
PWM este o tehnică în care valoarea medie a tensiunii de intrare este ajustată prin trimiterea
unei serii de impulsuri ON-OFF.
Tensiunea medie este propor
ț
ională cu lă
ț
imea impulsurilor cunoscute sub denumirea de
Ciclu de func
ț
ionare.
Cu cât este mai mare ciclul de func
ț
ionare, cu atât este mai mare tensiunea medie aplicată
motorului DC (viteză mare)
ș
i ciclul de func
ț
ionare mai mic, cu atât este mai mică tensiunea
medie aplicată motorului DC (viteză redusă).
Imaginea de mai jos ilustrează tehnica PWM cu diferite cicluri de func
ț
ionare
ș
i tensiuni de
alimentare.
[4]
Puntea H – Pentru controlul directiei de rotatie
Direc
ț
ia de rotire a motor ului DC poate fi controlată prin schimbarea polarită
ț
ii tensiunii de
intrare. O tehnică comună pentru a face acest lucru este de a utiliza o punte H.
O punte H con
ț
ine patru î ntrerupătoare cu motorul în centru, care formează un aranjament
asemănător literei "H".
Închiderea a două comutatoare particulare în acela
ș
i timp inversează polaritatea tensiunii
aplicate motorului. Aceasta determină modificarea direc
ț
iei de rotire a motorului.
Mai jos avem exemplificata func
ț
ionarea circuitului H-Bridge.
Bibliografie
[1] Wikipedia – Mecatronică
https://ro.wikipedia.org/wiki/Mecatronic%C4%83
[2]
https://www.circuito.io/blog/arduino-code/
[3]
https://en.wikipedia.org/wiki/Bluetooth_Low_Energy
[4]
https://lastminuteengineers.com/l298n-dc-stepper-driver-arduino-tutorial/
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: FACULATEA DE MATEMATICĂ ȘI INFORMATICĂ SPECIALIZAREA INFORMATICĂ LUCRARE DE LICENȚĂ Aplica ț ie mobilă pentru controlul prin Bluetooth a aparatelor… [621950] (ID: 621950)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
