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

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

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/

Similar Posts