Sunteți pe pagina 1din 13

L2.

SMAPD

Lucrarea 2. Programe specializate pentru achiziţia de date.


Arduino, LabView, Matlab, WinDaq, Python

2.1 Programe specializate pentru achiziţia de date


2.2 Arduino
2.3 LabView. Matlab. WinDaq
2.4 Python

Introducere

Sistemele de măsură reprezintă o parte integrantă a procesului de dezvoltare a unui produs


sau proces. În ultimii 20 de ani, sistemele de măsură au cunoscut o schimbare radicală, o
adevărată revoluţie, care a condus la o nouă arhitectură în care calculatorul are rolul principal.
În urmă cu peste 20 de ani, comunicaţiile seriale (RS-232 şi GPIB) au permis calculatorului
să devină pentru prima dată o parte componentă a sistemelor de măsură. Prin conectarea
echipamentelor de măsură direct la calculator s-a putut reduce timpul de lucru şi erorile de
procesare specifice transferului manual al datelor care erau introduse în calculator pentru
analize ulterioare.

2.1 Programe specializate pentru achiziţia de date

Programele de calcul (numite generic software) se împart în trei mari categorii:


- programe sistem - controlează operaţiile efectuate de sistemul de calcul şi asigură legătura
între componenetele acestuia şi programele de aplicaţie şi utilitare. Rolul acestora este de a
uşura sarcina utilizatorilor, simplificând operaţiile de alocare a memoriei, afişare a
caracterelor pe ecran şi la imprimantă, citire a caracterelor de la tastatură, accesul la
informaţiile stocate pe discurile magnetice etc.;
- programe de aplicaţie - interacţionează direct cu utilizatorul, fiind specializate în
executarea unor prelucrări strict definite. În această categorie intră editoarele de texte,
programele pentru gestiunea bazelor de date, programele de tehnoredactare şi grafică asistată
de calculator etc.;
- programe utilitare - interacţionează direct cu utilizatorul dar, spre deosebire de programele
de aplicaţii, realizează prelucrări de uz general. Ele ajută utilizatorul să "administreze"
sistemul de calcul şi produsele software prin copierea fişierelor, pregătirea discurilor
magnetice pentru utilizare, crearea de copii pentru salvare, testarea sistemului de calcul etc.

O categorie aparte de programe utilitare o constituie programele de interfaţă, care îndeplinesc


rolul de "interpret" între utilizator şi sistemul de operare.

Programul de achiziţie transformă calculatorul şi echipamentul de achiziţie într-un instrument


complet de achiziţie a datelor, analiză şi prezentare. El constituie intermediarul între
programul de aplicaţie şi echipament, coordonând operaţiile efectuate de echipamentul de
achiziţie şi integrarea sa cu resursele sistemului de calcul.

Programul de aplicaţie. O posibilitate adiţională de programare a echipamentului de achiziţie


este utilizarea aplicaţiei software. Avantajul utilizării acesteia este că ea analizează şi prezintă

1
L2. SMAPD

posibilităţile programului de conducere. Programul de aplicaţie integrează de asemenea


instrumentele de control cu achiziţia de date.

2.2 Arduino

In forma sa cea mai simpla, o placa de dezvoltare ARDUINO poate fi considerata ca un mic
computer careia ii poti controla intrarile si iesirile de la chip.

ARDUINO este cunoscuta ca fiind o platforma fizica sau integrate, ceea ce inseamna ca este
un sistem interactiv si astfel prin utilizarea hardware si software poate interactiona cu mediul.
Placa de baza ARDUINO este alcatuita dintr-un microprocessor, un cristal sau un oscillator
(de fapt este un ceas brut care trimite impulsuri catre microcontroler pentru a-i permite o
viteza de operare corecta) si un regulator liniar de 5 volti.

In functie tip de ARDUINO, acesta poate avea si un conector USB pentru a permite
conectarea la PC prin portul USB. De asemenea, placa dispune ce un anumit numar de pinii
pentru intrare (Input Pins) si pentru iesire (Output Pins) prin intermediul carora sa poata fi
conectatate alte circuite (senzori, LED-uri, motorase, etc.).

Placile de dezvoltare ARDUINO pot fi folosite pentru a dezvolta obiecte de sine statatoare
interactive sau pot fi conectate la un calculator pentru a prelua sau pentru a trimite date si
apoi sa actioneze pe baza acelor date (exemplu: poti trimite datele obtinute de un senzor pe
internet).

Pentru programare se va utiliza ARDUINO IDE (Integrated Development Environment), care


este un soft oferit gratuit de ARDUINO pentru a permite programarea microcontrolerului in
limba pe care ARDUINO o “intelege”.

Mediul integrat de dezvoltare Arduino este destinat scrierii programelor ce pot fi incărcate pe
platformele fizice Arduino. Interfața este scrisă in Java și mediul de programare folosește
limbaje de programare de tip open source precum Processing, avr-gcc. Interfața este
multiplatformă, putând rula în Windows©, Mac OS X© și Linux. Programul poate fi obținut
atât ca executabil specific platformei de lucru pe care o aveți dar și sub formă de cod sursă pe
care il puteți compila conform condițiilor specifice pe care le aveți. Limbajul de programare
ARDUINO se bazeaza pe “Wiring”, o platforma de calcul fizic similara, care se bazeaza pe
mediul de programare de procesare multimedia. Pe scurt, limbajul pe care ARDUINO il
foloseste este o combinatie de C si C++.

ARDUINO IDE permite scrierea programului pe calculator, care este format dintr-un set de
instructiuni pas cu pas pe care le incarci apoi in ARDUINO. Dupa incarcarea programului
propriu-zis pe placa de dezvoltare, ARDUINO va efectua instructiunile date si va interactiona
cu mediul. ARDUINO numeste aceste programe “Sketches” (schite).

Mediu de programare simplu - softul ARDUINO IDE este usor de utilizat pentru incepatori,
dar suficient de flexibil pentru utilizatorii avansati, de asemenea. Pentru profesori, este
convenabil deoarece este bazat pe un limbaj de programare simplu si intuitiv, astfel incat
elevii/studentii sa fie familiarizati cu acest mediu de programare.

2
L2. SMAPD

Exista mai multe variante de placi de dezvoltare ARDUINO, cum ar fi: Mega, Diecimila,
Duemilanove, Mini, Nano si chiar Bluetooth ARDUINO, cele mai noi produse
fiind ARDUINO UNO si ARDUINO MEGA 2560.

2.3 LabVIEW. MATLAB. WinDAQ

Mediul de programare LabVIEW. Proiectele acestui mediu au fost iniţiate în anul 1983.
Trei ani mai târziu el însemna pionieratul într-o nouă abordare a instrumentaţiei, depunând
bazele instrumentaţiei virtuale. Combinând unele periferice performante cu facilităţile de
calcul, afişare şi conectivitate ale calculatoarelor Macintosh, foarte populare, acest sistem
centrat în jurul unui software de aplicaţie oferea funcţiile unui instrument dedicat, deosebit de
performant, la un preţ redus. Flexibilitatea totală în configuraţie şi mecanismul matematic
deosebit de puternic au fost argumente puternice în favoarea acestui soft specializat.

Este o abordare revoluţionară a ingineriei software: este un mediu de programare


grafică. Oferă flexibilitatea unui limbaj de programare puternic, fără ca utilizatorul să
scrie măcar un rând de cod-program.

Oferă avantajele semnificative ale unui mediu multitasking, putând rula simultan mai
multe instrumente virtuale sau instanţe ale acestora. Fluxul de date schiţat în diagrama
funcţională specifică implicit şi operaţiile ce se execută simultan. Având un design modular,
există posibilitatea ca orice instrument virtual deja creat să poată deveni o componentă a
alteia. Compilatorul integrat generează un cod executabil optimizat, pe 32 de biţi, cu viteza
de rulare comparabilă cu un program C/C++ compilat.
LabVIEW este un mediu de programare utilizat mai ales pentru realizarea
măsurătorilor si monitorizarea unor procese automatizate. Mediul LabVIEW conţine mai
multe biblioteci de funcţii predefinite pentru achiziţia, prelucrarea, afişarea şi transmiterea
datelor.
Programele realizate în LabVIEW se numesc instrumente virtuale (Visual Instruments
- VIs), la baza acestora stând conceptele de modularizare şi ierarhizare arborescentă. Când se
proiectează şi se implementează un VI, trebuie să se ţină cont de natura modulară a acestuia :
să poată fi utilizat atât ca program principal cât şi ca subrutină în componenţa unui alt VI. Un
VI folosit la realizarea unui alt VI se numeşte sub VI, având rolul unei subrutine. Prin crearea
şi utilizarea de sub VI la realizarea altor VI, utilizatorul defineşte ierarhii de VI.
Structura unui program. Programele realizate în mediul LabVIEW se numesc instrumente
virtuale (VI). Un VI are trei părţi componente:
• Panoul frontal;
• Diagrama bloc;
• Pictograma si conectorul.
Panou Frontal Diagrama Bloc

Figura 1. Labview Umplere Rezervor

3
L2. SMAPD

Panoul Frontal
Panoul Frontal defineşte interfaţa grafică cu utilizatorul sau ceea ce va vedea
utilizatorul pe ecranul calculatorului. Obiectele grafice de interfaţă disponibile pentru
realizarea panoului frontal se împart în controale si indicatoare.
Prin intermediul controalelor, utilizatorul introduce sau actualizează valorile datelor
de intrare (obiecte de tip Get); indicatoarele sunt folosite pentru a se afişa rezultatele
prelucrărilor (obiectelor de tip Say). Dacă VI se priveşte ca sub VI (deci ca subrutină), atunci
controalele corespund parametrilor formali de intrare, iar indicatoarele sunt parametri formali
de ieşire. Mediul LabView oferă dezvoltatorului de aplicaţii o colecţie de obiecte predefinite
pentru proiectarea panoului frontal : butoane, comutatoare, cursoare, obiecte pentru
reprezentări grafice, rezervoare s.a.

Tipuri de controale şi indicatoare


Sunt disponibile controale şi indicatoare pentru majoritatea tipurilor de date: numeric,
şir de caractere, boolean, tabel, tablou, grupare de date, grafic, s.a. Pentru un anumit tip de
date sunt disponibile mai multe variante de controale şi indicatoare. În etapa construirii
panoului frontal, utilizatorul alege pe rând elementele de interfaţă necesare din caseta de
controale şi indicatoare şi le aşează în interiorul panoului frontal.

Figura 2. Masurarea nivelului de lichid cu un traductor de forta in LabView

Mediul de programare MATLAB. MATLAB® = Matrix laboratory este un limbaj de


programare şi un sistem de dezvoltare a aplicaţiilor din diverse domenii. Matlab este
dezvoltat de The MathWorks, Inc., SUA.

Domenii de utilizare:
• Matematică, calcul numeric şi simbolic
• Dezvoltarea algoritmilor
• Modelare, simulare şi testarea prototipurilor
• Achiziţii date de la senzori, analiza şi vizualizarea datelor
• Grafica inginerească şi din ştiinţele aplicate
• Dezvoltarea de aplicaţii, inclusiv GUI.
MATLAB - s-a dezvoltat în:
1. mediul universitar - este pachetul standard pt. cursurile de inginerie, matematică şi ştiinţe
aplicate;
2. industrie - pentru cercetarea, dezvoltare şi producţie.

4
L2. SMAPD

Figura 3. Mediul MATLAB

S-a dezvoltat prin toolbox-uri - familii/colecţii de aplicaţii (funcţii .m) specializate:


SimBiology - modelarea proceselor biologice;
Aerospace Toolbox - extinde calculele tehnice în domeniul ingineriei aerospatiale;
Bioinformatics Toolbox - mediu pentru analiza genomului, inginerie genetică, cercetări în
biologie;
Communications Toolbox,
Control System toolbox - controlul sistemelor;
Data Acquisition Toolbox – funcţii pentru achiziţii de date şi adaptori pentru interfaţare cu
hardware specific (plăci de achiziţii ale diferitelor firme),
Database toolbox – funcţii MATLAB pentru import şi export de date cu baze de date
relaţionale;
Financial toolbox - calcule financiare,
Distributed Computing Toolbox coordonarea şi execuţia operaţiilor aplicaţiilor Matlab
simultan într-un cluster de calculatoare crescând viteza de execuţie a aplicaţiilor mari.

Sistemul MATLAB conţine:


1. Limbajul MATLAB: - un limbaj de nivel înalt, tipul de bază este matricea, există
instrucţiuni de control, funcţii, structuri de date, intrări/ieşiri şi cu proprietăţi de programare
orientată pe obiecte. Facilităţile de programare sunt organizate pe 6 directoare din
…toolbox/matlab/
2. Mediul de lucru MATLAB. Set de facilităţi care permit manevrarea variabilelor în spaţiul
de lucru, importul/exportul de date, dezvoltarea, manipularea, editarea şi depanarea fişierelor
MATLAB (.m) şi a aplicaţiilor MATLAB.
3. Handle Graphics®. Reprezintă sistemul grafic al MATLAB-ului. Cuprinde comenzi de
înalt nivel pentru vizualizarea datelor bi şi tri-dimensionale, procesarea imaginilor, animaţie,
prezentări grafice. Permite de asemenea utilizarea unor comenzi de nivel scăzut pentru
crearea unor interfeţe grafice GUI.
4. Biblioteca de funcţii matematice a MATLAB-ului. Reprezintă o colecţie complexă de
algoritmi de calcul pornind de la funcţii elementare (sinus, cosinus etc.) până la funcţii
sofisticate (inversarea de matrice, valori proprii, funcţii Bessel, FFT etc.).

5
L2. SMAPD

5. Interfaţa de aplicaţii program a MATLAB-ului (API) este o bibliotecă care permite


scrierea de programe în C sau Fortran care interacţionează cu MATLAB-ul. Include facilităţi
pentru apelarea rutinelor din MATLAB, apelarea MATLAB-ului ca maşină de calcul,
scrierea şi citirea fişierelor de tip MAT.

2.4 Python

Python este un limbaj de programare dinamic multi-paradigmă, creat în 1989 de


programatorul olandez Guido van Rossum. Van Rossum este și în ziua de astăzi un lider al
comunității de dezvoltatori de software care lucrează la perfecționarea limbajul Python și
implementarea de bază a acestuia, CPython, scrisă în C.

Python este un limbaj multifuncțional folosit de exemplu de către companii ca Google sau
Yahoo! pentru programarea aplicațiilor web, însă există și o serie de aplicații științifice sau de
divertisment programate parțial sau în întregime în Python. Popularitatea în creștere, dar și
puterea limbajului de programare Python au dus la adoptarea sa ca limbaj principal de
dezvoltare de către programatori specializați și chiar și la predarea limbajului în unele medii
universitare. Din aceleași motive, multe sisteme bazate pe Unix, inclusiv Linux, BSD și Mac
OS X includ din start interpretatorul CPython.

Python este un limbaj multi-paradigmă, concentrându-se asupra programării imperative,


orientate pe obiecte și funcționale, ceea ce permite o flexibilitate mai mare în scrierea
aplicațiilor. Din punctul de vedere al sintaxei, Python are un număr de contrucții și cuvinte
cheie cunoscute oricărui programator, dar prezintă și un concept unic: nivelul de indentare
are semnificație sintactică. Blocurile de cod sunt delimitate prin simplă indentare.

Figura 4. Intendare Python - Modul de aliniere creează rutine și subrutine

6
L2. SMAPD

Python pune accentul pe curățenia și simplitatea codului, iar sintaxa sa le permite


dezvoltatorilor să exprime unele idei programatice într-o manieră mai clară și mai concisă
decât în alte limbaje de programare. În ceea ce privește paradigma de programare, Python
poate servi ca limbaj pentru software de tipul object-oriented, dar permite și programarea
imperativă, funcțională sau procedurală. Sistemul de tipizare este dinamic iar administrarea
memoriei decurge automat prin intermediul unui serviciu „gunoier” (garbage collector). Alt
avantaj al limbajului este existența unei ample biblioteci standard de metode.

Biblioteci Python

Includerea structurilor, precum și a funcțiilor ce permit manipularea și prelucrarea lor,


precum și multe alte biblioteci de funcții sunt prezente datorită conceptului “Batteries
Included”, ce poate fi explicat prin faptul că Guido van Rossum și comunitatea ce s-a format
în jurul limbajului cred că un limbaj de programare nu prezintă utilitate practică dacă nu are
un set de biblioteci importante pentru majoritatea dezvoltatorilor.

Din acest motiv Python include bibioteci pentru lucrul cu fișiere, arhive, fișiere XML și un
set de biblioteci pentru lucrul cu rețeaua și principalele protocoale de comunicare pe internet
(HTTP, Telnet, FTP). Un număr mare de platforme Web sunt construite cu Python.
Abilitățile limbajului ca limbaj pentru programarea CGI sunt în afara oricăror dubii. De
exemplu YouTube, unul din site-urile cu cea mai amplă cantitate de trafic din lume, este
construit pe baza limbajului Python.

Totuși, Python permite extinderea funcționalității prin pachete adiționale programate de terți
care sunt axate pe o anumită funcționalitate. De pildă, pachetul Matplotlib conține metodele
și structurile necesare creării unei interfețe grafice.

Figura 5. Interfata grafica Python - Matplotlib

Popularitatea limbajului este în creștere începînd cu anul 2000, datorită faptului că Python
permite crearea mai rapidă a aplicațiilor care nu cer viteze înalte de procesare a datelor. De
asemenea este util ca limbaj de scriptare, utilizat în cadrul aplicațiilor scrise în alte limbaje.
Modulele (bibliotecile) Python pot fi de asemenea scrise în C, compilate și importate în
Python pentru a mări viteza de procesare.

7
L2. SMAPD

APLICATIA 1.

Sa se realizeze un sistem de masurare a temperaturii utilizand un termocuplu tip K in


mediul Arduino.

Figura 6. Thermocuplu Type-K (0:800 °C)

Figura 7. MAX6675 Serial K-type thermocouple to digital converter

Codul programului " TermocupluMAX6675.ino"

/*
Masurarea temperaturii - K Type Thermocouple
Module MAX6675 Library https://github.com/adafruit/MAX6675-library.
George IPATE 11 noiembrie 2014
*/
#include <max6675.h>

int thermoDO = 4;
int thermoCS = 5;
int thermoCLK = 6;

MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);

void setup()
{

8
L2. SMAPD

Serial.begin(9600);
}
void loop()
{
int timp = millis()/1000;
double temperatura = thermocouple.readCelsius();
Serial.print(timp); // Afiseaza timpul pe monitor
Serial.print("\t Timp ");
Serial.print(temperatura); // Afiseaza temperatura pe monitor
Serial.println("\t Temp ");

delay(1000); // delay 1s
}

Se compileaza codul sursa

Se importa libraria de programe MAX6675

9
L2. SMAPD

Se selecteaza mediul de lucru

10
L2. SMAPD

Se selecteaza portul serial

Se incarca programul

11
L2. SMAPD

Se selecteaza ecranul serial

Rezultatul programului

12
L2. SMAPD

Se salveaza datele intr-un fisier extern

Se traseaza graficul variatiei temperaturii in timp

13

S-ar putea să vă placă și