Sunteți pe pagina 1din 13

EXEMPLE DE APLICATII PRACTICE IN MEDIUL MATALAB

Dr.Ing. Dănuț Constantin Irimia


Cuprins

I. Crearea unei aplicații de tipul calculator de buzunar în mediul MATLAB/Simulink ........................... - 3 -


I.1. Crearea interfeței grafice și introducerea de elemente grafice ................................................... - 3 -
I.2. Editarea funcțiilor callback ale butoanelor alfanumerice. ........................................................... - 8 -
I.3. Editarea funcțiilor callback pentru butoanele +,-,* și / ................................................................ - 9 -
I.4. Editarea funcției callback pentru butonul = ................................................................................ - 10 -
I.5. Editarea funcției callback pentru butonul C ................................................................................ - 11 -
II. Crearea și utilizarea unui timer ......................................................................................................... - 12 -
II.1. Introducere .................................................................................................................................. - 12 -

-2-
I. Crearea unei aplicații de tipul calculator de buzunar în mediul
MATLAB/Simulink

I.1. Crearea interfeței grafice și introducerea de elemente grafice

1. În linia de comanda a MATALB tastați comanda guide si apăsați tasta ENTER. Aceasta
comanda va deschide fereastra GUIDE Quick Start.
2. În partea stângă a ferestrei selectați Blank GUI (Default) după care bifați căsuța Save new figure
as: si introduceți calea si numele calculator.fig. Apăsați tasta OK.

Un fișier de cod cu numele calculator.m si o figura cu numele calculator.fig vor fi deschise.


calculator.m va conține toate funcțiile ”callback” ale interfeței dezvoltate. În momentul atașării
unui element grafic în figură, funcțiile de callback vor fi automat introduse în calulator.m.
3. Selectați figura calculator.fig și dați click-dreapta în centrul ei pentru a afișa meniul context.
4. Selctați Property Inspector.

-3-
O nouă fereastra denumită Inspector: matlab.ui.Figure1 se va deschide. Realizați următoarele
setări în ordinea descrisă:
 Units: pixels;
 Resize: Off;
 PaperUnits: centimeters;
 Position:
o X: rămane setarea implicită;
o Y: rămâne setarea implicită;
o width: 300;
o height: 400;
 Tag: calculator_figure;
În urma realizării acestor setări închideți fereastra Inspector.

1
Pentru mai multe detalii referitoare la proprietățile obiectelor grafice MATLAB consultați documentația
programului, care poate fi accesată prin tastarea comenzii doc sau prin apăsarea tastei F1.

-4-
5. Din panoul cu instrumente al figurii calculator.m selectați instrumentul Push Button.

6. Desenați butonul în figură;

-5-
7. Click dreapta pe butonul tocmai introdus în figură, selectați Property Inspector și realizați
următoarele setări:
 Units: pixels;
 Tag: num_1;
 String: 1;
 Position: x:20, y:250, width:50, height:50.
 FontWeight: bold;
 FontSize: 12.
În urma realizării acestor setări închideți fereastra Inspector.
8. În panoul cu instrumente selectați instrumentul Edit Text

9. Desenați elementul Edit Text în figură, deasupra butonului realizat anterior.


10. Deschideți proprietățile elementului Edit Text și realizați următoarele setări:
 Units; pixels;
 Tag: calculator_display;

-6-
 String: ștergeți toate caracterele din câmpul string
 Position: x:20, y:320, width:260, height:50;
 HorizontalAlignment: right
 FontWeight: bold;
 FontSize: 20;
 Enable: inactive.
11. Salvați figura. In documentul calculator.m vor fi automat introduse callback-urile elementelor
grafice introduse.
EXERCIȚIU
În mod similar pașilor 5-7 introduceți butoanele corespunzătoare restului de 9 cifre, cu proprietățile
string și tag conținând cifra corespunzătoare butonului și, de asemenea, butoanele corespunzătoare
operațiilor algebrice de baza (+,-,*,/), butonul egal, separatorul zecimal si un buton pentru curățarea
ecranului, C.

-7-
I.2. Editarea funcțiilor callback ale butoanelor alfanumerice.

Exemplul următor prezintă modul de programare al unui butonului ”1” în vederea afișării pe
ecran a cifrei 1 în urma apăsării sale.
1. Deschideți fișierul calculator.m;
2. Derulați până la funcția ” function num_1_Callback(hObject, eventdata,
handles)”
Variabilele de intrare ale acestei funcții, la fel ca ale oricărei funcții callback a unui
element grafic sunt:
 hObject – proprietățile obiectului grafic;
 eventdata – variabilă rezervată de mediul MATLAB&Simulink. Va fi utilizată
în versiunile următoare;
 handles – structură conținând proprietățile grafice ale figurii părinte a
elementului grafic hObject.
3. În funcția mai sus menționată introduceți liniile de cod:
disp_str = handles.calculator_display.String; % această comandă citește
caracterele afișate pe display-ul calculatorului (cu tag-ul calculator_display) și le
pune în variabila disp_str.
disp_str=[disp_str, hObject.String]; % concatenarea stringul afisat pe ecran cu
stringul afferent butonului apasat:
handles.calculator_display.String=disp_str; % afișează noul string pe ecranul
calculatorului.
4. Salvați fișierul și rulați-l (prin apăsarea tastei F5 sau prin apăsarea butonului play din
meniu); Aplicația va fi lansată, iar la fiecare apăsare a butonului 1, cifra 1 va fi adăugată
în partea dreaptă a caracterelor existente pe ecran.

EXERCIȚIU
În mod similar pașilor descriși anterior completați funcțiile
de callback pentru toate butoanele alfanumerice.

-8-
I.3. Editarea funcțiilor callback pentru butoanele +,-,* și /

EXERCIȚIU
În mod similar pașilor descriși in Capitolul 2 completați funcțiile de callback pentru toate butoanele
reprezentând operații algebrice.

-9-
I.4. Editarea funcției callback pentru butonul =

1. Deschideți fișierul calculator.m;


2. Derulați până la funcția ” function egal_Callback(hObject, eventdata,
handles)” sau funcția de callback a butonului egal in cazul în care ați definit tag-ul
butonului diferit;
3. În funcția mai sus menționată introduceți liniile de cod:
disp_str = handles.calculator_display.String;%
res = eval(disp_str); % Această comandă evaluează stringul afișat pe ecranul
calculatorului ca pe o comandă și pune rezultatul în variabila res;
handles.calculator_display.String=num2str(res);% Afișează rezultatul pe
ecranul caclulatorului.

- 10 -
I.5. Editarea funcției callback pentru butonul C
1. Deschideți fișierul calculator.m;
2. Derulați până la funcția ” function clear_screen_Callback(hObject, eventdata,
handles)” sau funcția de callback a butonului C in cazul în care ați definit tag-ul
butonului diferit;
3. În funcția mai sus menționată introduceți linia de cod:
handles.calculator_display.String ='';
Această comandă setează stringul afișat pe ecran ca ”empty string”, acest lucru ștergând
ecranul și implicit numerele și operațiile afișate.

- 11 -
II. Crearea și utilizarea unui obiect timer

II.1. Introducere
Software-ul MATLAB include un obiect de tipul timer care poate fi folosit pentru
programarea execuției comenzilor MATLAB la anumite perioade de timp.
În vederea utilizării unui timer, trebuie urmăriți următorii pași:

 Crearea obiectului timer prin intermediul funcției timer;


 Specificarea comenzilor MATLAB care se doresc a fi executate în momentul în care
acesta generează o întrerupere;
 Pornirea timer-ului;
 Oprirea și ștergerea obiectului timer în momentul în care utilizarea acestuia nu mai este
necesară.
Exemplul următor creează un obiect timer care incrementează o data la o secundă un
număr, și îl afișează pe ecran. Efectuați următorii pași:
1. Creați un nou script și salvați-l sub numele exemplu_timer.m;
2. În fișierul creat introduceți următoarele două funcții:
function exemplu_timer()
% functia care creaza si porneste timerul
global cnt t; % definirea variabilelor cnt si t ca variabile globale
cnt=0; % initializarea variabilei cnt cu valoarea 0
t=timer; % crearea obiectului timer
t.ExecutionMode='FixedRate'; % setarea modului de executie a timerului
t.Period=1; % setarea perioadei timerului
t.TimerFcn=@timer_fcn; % setarea functiei care este apelata în momentul
generarii întreruperii de catre timer
start(t); % pornirea timerului

function timer_fcn(t,~)
% functia apelata în momentul în care timerul genereaza o întrerupere
global cnt; % definirea local? a variabilei cnt
cnt = cnt+1; % incrementarea variabilei cnt cu 1 la fiecare întrerupere
clc; % curatarea ecranului
disp(['numar curent = ' num2str(cnt)]); %afisarea pe ecran a valorii
counterului
if cnt == 20
stop(t);% oprire timer în momentul în care variabila cnt a fost
incrementata pâno la valoarea 20
clear global t global cnt;
end

- 12 -
II.2. Crearea unui cronometru utilizând funcția timer

- 13 -

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