MATLAB GUI and SERVO ULTRASONIC CONTROL
Hi,
I worked on a project to control servo and ultrasonıc sensor with MATLAB. Also, I designed GUI to plot real time data. Lets analyze the codes, Mbed part and MATLAB part.
Servo & Ultrasonic Mbed Code
There are ultrasonic sensor HCSR04, servo motor and LCD codes. Sensor is placed onto servo motor to rotate as in the Figure 1.
main.cpp
#include "mbed.h" #include "Servo.h" #include "hcsr04.h" #include "TextLCD.h" Serial pc(USBTX, USBRX); TextLCD lcd(p15, p16, p17, p18, p19, p20); Servo myservo(p21); DigitalOut hedef_var(LED1); DigitalOut working(LED2); DigitalOut open(LED3); DigitalOut close(LED4); HCSR04 usensor(p25,p9); int dist; float p; int main() { working=1; while(1) { for(p=0.0; p<=1.0; p += 0.05) { usensor.start(); wait_ms(500); dist=usensor.get_dist_cm(); lcd.cls(); lcd.locate(0,0); lcd.printf("Obs Range cm:%ld",dist); printf("%d\n ",dist); printf("%f\n ",p); if(dist<50) { lcd.cls(); lcd.locate(0,0); lcd.printf("Obs Range cm:%ld",dist); lcd.locate(0,1); lcd.printf("location :%f",p); hedef_var=1; } else if(dist>50) { hedef_var=0; } myservo = p; wait(0.2); } for(p=1.0; p>0.0; p -=0.05) { usensor.start(); wait_ms(500); dist=usensor.get_dist_cm(); lcd.cls(); lcd.locate(0,0); lcd.printf("Obs Range cm:%ld",dist); printf(" %d\n ",dist); printf("%f\n ",p); if(dist<=50) { lcd.cls(); lcd.locate(0,0); lcd.printf("Obs Range cm:%ld",dist); lcd.locate(0,1); lcd.printf("location :%f",p); hedef_var=1; } else if(dist>50) { hedef_var=0; } myservo = p; wait(0.2); } } }
Serial Communication Between MATLAB & Mbed
Serial Com.
There is a MATLAB RPC Library but i did not use it. I used default serial port settings. However, you can change them according to your designes.
mbed = serial('COM5', ... 'BaudRate', 9600, ... 'Parity', 'none', ... 'DataBits', 8, ... 'StopBits', 1); %change depending on mbed configuration TIMEOUT = 1; %time to wait for data before aborting set(mbed,'Timeout',TIMEOUT); %adjust timeout to ensure fast response when mbed disconnected fopen(mbed); %open serial connection
OTHER FILES WILL BE UPDATED SOON...
Please log in to post comments.