Documente Academic
Documente Profesional
Documente Cultură
PROIECT
MICROCONTROLERE
DETECTAREA DISTANEI
FOLOSIND UN SENZOR DE
PROXIMITATE ANALOGIC CU
AJUTORUL PLCII STM32F4
DISCOVERY
Tabel de figuri
Figura 1 Structura nucleului Cortex-ului M4............................................................................. 2
Figura 2 Plcuta STM32F4 Discovery ...................................................................................... 4
Figura 3 Diagrama block a structurii hardware a plcii STM32F4 Discovery .......................... 4
Figura 4 Structura nucleului MDK ............................................................................................ 5
Figura 5 Structura pachetului software ...................................................................................... 5
Figura 6 Componente software pentru o aplicaie tipic ........................................................... 5
Figura 7 Structura funciilor din biblioteca run time I/O ........................................................... 6
Figura 8 Alegerea device-ului folosit ........................................................................................ 7
Figura 9 Setarea frecvenei microcontroler-ului ........................................................................ 7
Figura 10 Declararea led-urilor folosite ..................................................................................... 8
Figura 11 Conversia timpului(s) n distan(cm) ..................................................................... 8
Figura 12 Iniializarea unor funcii ............................................................................................ 9
Figura 13 Codul folosit pentru aprinderea consecutiv a led-urilor........................................................ 9
REZUMATUL PROIECTULUI
Proiectul pe care am ales s l realizez are ca scop detectarea distanei folosind un senzor
de proximitate.
n acest sens am folosit un senzor ultrasonic de tip HC-SR04 iar determinarea distanei
propriu-zise se poate face prin aprinderea unor led-uri de pe placa STM32F4
Discovery,conectarea unui mini lcd sau prin declararea unor pini pentru led-uri externe i
comandarea aprinderii lor ntr-un anumit fel.
Astfel,am declarat 10 pini asociai fiecare pentru cele 10 led-uri i am realizat un cod
care de la distana de 0 cm pn la 50 cm,cu pas de 5 cm, va aprinde led-urile consecutiv,odat
cu atingerea pragului de 50 cm sau mai mare, irul de led-uri va fi n totalitate aprins.
1
1.ARM CORTEX M4
ARM Cortex M4 face parte din familia de cortex-uri M care prezint un consum redus
fa de alte procesoare pe 32 de bii.Acestea sunt uor de utilizat(este folosit limbajul C) i
ofer faciliti de depanare, caracterizeazndu-se prin: portabilitate, reutilizabilitate i
scalabilitate.
2
2.STM32F4 DISCOVERY
Placa STM32F4 Discovery face parte din primul grup de microcontrolere STM32 F4
bazate pe nucleul ARM Cortex M4F, acestea ncepnd s fie produse odat cu anul 2011.
Cteva caracteristici noi ale acestor plci faa de variantele anterioare sunt: DSP(Digital
Signal Processing) i instruciuni de tip floating point.
Aceste plci sunt compatibile din punct de vedere a pinilor cu plcile din seria F2 i
prezint n plus o vitez mai mare de ceas, 64 KB CCM RAM static, IS full duplex, ceas
mbuntit n timp real i ADC(Analog to Digital Convertor) mai rapid.
Microcontrolerele din seria STM32F4 prezint:
nucleul ARM Cortex M4F la o vitez de ceas maxim de 84/168 la 180 MHz;
memorie RAM static format din pn la 192 KB de uz general, memorie de 64 KB
CCM, 4 KB battery-baked, 80 bii battery-baked cu detecie de tergere;
Flash format din 512/1024/2048 KB de uz general, 30 KB system boot, 512 bii OTP(o
singur data programabili);
fiecare chip are un dispozitiv cu numr unic de identificare de 96 bii.
STM32F4 Discovery este un kit de dezvoltare accesibil ca pre i uor de utilizat,ce are
ncorporate urmtoarele:
3
Figura 2 Plcuta STM32F4 Discovery (www.wikipedia.org, 2016)
4
3.MEDIUL DE DEZVOLTARE KEIL UVISION 5
Pentru realizarea acestui proiect am folosit ca mediul de programare Keil uVision 5,care
reprezint ultima versiune dezvoltat din gama larg de dispozitive cu microcotrolere bazate
pe ARM Cortex-M.
5
Compilatorul este componenta software care ne permite sa redirecionm funcii I/O
din biblioteca standard C run-time.Acesta utilizeaz n mod frecvent funcii standard de
biblioteca I/O,cum ar fi printf(),scanf() pentru a efectua operaiuni de intrare/ieire.
Strcutura acestor funcii este urmtoarea:
Figura 7 Structura funciilor din biblioteca run time I/O (ARM, 1997-2015)
Funciile high level and low level nu sunt dependente din punct de vedere a destinaiei
i folosesc funciile I/O ale sistemului pentru interfaarea cu hardware-ul.
6
4.CODUL FOLOSIT
n Keil uVision5 am utilizat un cod care are ca scop detectarea distanei cu ajutorul unui
sensor ultrasonic HC-SR04 i am comandat aprinderea a 10 led-uri din 5 n 5 cm,ca odat cu
atingerea sau depirea distanei de 50 cm, irul de led-uri va fi complet aprins.
Am ales microcontrolerul STM32F407VG:
7
Pentru toate cele 10 led-uri am folosit pini neutilizai de pe portul D.Declararea pinilor
pentu led-urile folosite am fcut-o n fiierul tm_stm32f4_disco.h,una din librriile senzorului:
8
Figura 12 Iniializarea unor funcii
Dac toate iniializrile sunt corecte,se trece mai departe la citirea distanei.
Codul folosit pentru aprinderea ledurilor ntr-o anumit ordine arat astfel:
9
5.CONCLUZII
Consider c tema pe care mi-am ales-o poate sta la baza dezvoltrii unor proiecte de
talie mai mare,precum construirea unor sisteme de tipul Smart Home, care se bazeaz pe
conceptul Internet of Things i au posibilitatea de a mbunti calitatea vieii.
10
6.BIBLIOGRAFIE
11
Anexa 1
12
while (1) {
// Citeste distanta de la senzor
// Distanta e returnata in cm si stocata in structura
TM_HCSR04_Read(&HCSR04);
// Ceva nu e in neregula:poate pini incorecti
if (HCSR04.Distance < 0) {
TM_DISCO_LedOff(LED_1 | LED_2 | LED_3 | LED_4 |
LED_5 | LED_6 | LED_7 | LED_8 | LED_9 | LED_10);
} else if(HCSR04.Distance <= 5 )
{ TM_DISCO_LedOn(LED_1);
14