Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed MMA8452Q MS5837 SDFileSystem SCI_SENSOR
Diff: main.cpp
- Revision:
- 20:6fb55c833f9f
- Parent:
- 19:c78d3e8353c4
- Child:
- 21:1a9fe2de6e4f
--- a/main.cpp Tue Dec 07 14:22:05 2021 +0000 +++ b/main.cpp Tue Dec 07 14:40:03 2021 +0000 @@ -28,7 +28,7 @@ // global timer Timer t; -Timer t2; //part two timer +Timer timer2; //part two timer ///File FILE *fp; @@ -40,7 +40,7 @@ int yo_num=0; //global yo_num default 0 float thrust_on_time=0; //global thrust_on time default 0 float accelData[3]; //global accel data -float vessel_lenth=1; +float vessel_length=1; //functions void welcome(); @@ -92,22 +92,18 @@ //Part One int count=0; - while(1) - { - count=count+1; - float pw= percent; - float on_time =tim; - thrust_on(pw, on_time); //turn thruster on for 5 seconds - wait(10); - if count==3{ - return 0; - } + while(count<=3) { + count=count+1; + float pw= percent; + float on_time =tim; + thrust_on(pw, on_time); //turn thruster on for 5 seconds + wait(10); } //Part Two - t2.start(); + /* timer2.start(); while(1) { - + float current_depth=p_sensor.depth(); float pw=percent; float on_time=3; @@ -115,10 +111,11 @@ if (current_depth-vessel_length<2) { thrust_on(pw,on_time); } - if t2.read()>60{ //60 because counting in seconds? + if (timer2.read()>60){ //60 because counting in seconds? return 0; } } + */ /*Part Three while(1) { @@ -129,110 +126,111 @@ thrust_on(pw,on_time); // turn on thruster at set pw and ontime else if (current_depth >= error_deep) //if float is more than 2.5 meters deep wait(1); // do nothing for 1 sec.. float will go up for 1 sec - else + else pw = ; //very low thruster percentage - thrust_on(pw,on_time); //run thruster at very low percentage to maintain depth + thrust_on(pw,on_time); //run thruster at very low percentage to maintain depth } */ + } //-------------Customized functions---------------------------------------------//---------------------------------------- ///-----------Welcome menu---------------------/// - void welcome() { - char buffer[100]= {0}; - int flag=1; - //Flush the port - while(BLE.readable()) { - BLE.getc(); - } - while(flag) { - BLE.printf("### I am alive\r\n"); - BLE.printf("### Please enter the log file name you want\r\n"); - if(BLE.readable()) { - BLE.scanf("%s",buffer); - sprintf(fname,"/sd/mydir/%s.txt",buffer); //make file name + void welcome() { + char buffer[100]= {0}; + int flag=1; + //Flush the port + while(BLE.readable()) { + BLE.getc(); + } + while(flag) { + BLE.printf("### I am alive\r\n"); + BLE.printf("### Please enter the log file name you want\r\n"); + if(BLE.readable()) { + BLE.scanf("%s",buffer); + sprintf(fname,"/sd/mydir/%s.txt",buffer); //make file name - flag = 0; //set the flag to 0 to break the while - } - wait(1); + flag = 0; //set the flag to 0 to break the while } - //print name - BLE.printf("### name received\r\n"); - BLE.printf("### file name and directory is: \r\n %s\r\n",fname); //file name and location - //open file test - mkdir("/sd/mydir",0777); //keep 0777, this is magic # - fp = fopen(fname, "a"); - if(fp == NULL) { - BLE.printf("Could not open file for write\n"); - } else { - BLE.printf("##file open good \n"); //open file and tell if open - fprintf(fp, "Hello\r\n"); - fclose(fp); - } - - BLE.printf("### The main program will start in 5 seconds\r\n"); - wait(5); + wait(1); + } + //print name + BLE.printf("### name received\r\n"); + BLE.printf("### file name and directory is: \r\n %s\r\n",fname); //file name and location + //open file test + mkdir("/sd/mydir",0777); //keep 0777, this is magic # + fp = fopen(fname, "a"); + if(fp == NULL) { + BLE.printf("Could not open file for write\n"); + } else { + BLE.printf("##file open good \n"); //open file and tell if open + fprintf(fp, "Hello\r\n"); + fclose(fp); } + BLE.printf("### The main program will start in 5 seconds\r\n"); + wait(5); + } + ///-----------log functions---------------------/// - void log_data() { - p_sensor.Barometer_MS5837(); - float current_time=t.read(); - float current_pressure=p_sensor.MS5837_Pressure(); - float current_depth=p_sensor.depth(); - float current_pw=percent; - float current_Xaccel=accelData[0]; - float current_Yaccel=accelData[1]; - float current_Zaccel=accelData[2]; - float current_temp=temp.temp(); - float current_light=light.light(); + void log_data() { + p_sensor.Barometer_MS5837(); + float current_time=t.read(); + float current_pressure=p_sensor.MS5837_Pressure(); + float current_depth=p_sensor.depth(); + float current_pw=percent; + float current_Xaccel=accelData[0]; + float current_Yaccel=accelData[1]; + float current_Zaccel=accelData[2]; + float current_temp=temp.temp(); + float current_light=light.light(); - fprintf(fp, "$DATA, %f, %f, %f, %f, %f, %f, %f, %f, %f\r\n", current_time,current_pressure,current_depth,current_Xaccel,current_Yaccel,current_Zaccel,current_temp,current_light,current_pw); + fprintf(fp, "$DATA, %f, %f, %f, %f, %f, %f, %f, %f, %f\r\n", current_time,current_pressure,current_depth,current_Xaccel,current_Yaccel,current_Zaccel,current_temp,current_light,current_pw); - // log system time t.read() - // log imu data, log science data - // log pulse width - // log pressure sensor data. - // science sensor: temp.temp(), light.light() - // IMU sensor + // log system time t.read() + // log imu data, log science data + // log pulse width + // log pressure sensor data. + // science sensor: temp.temp(), light.light() + // IMU sensor - } + } ///-----------acceleromter related functions---------------------/// - void accel_update() { - accelData[0] = accel.readX(); - accelData[1] = accel.readY(); - accelData[2] = accel.readZ(); - } + void accel_update() { + accelData[0] = accel.readX(); + accelData[1] = accel.readY(); + accelData[2] = accel.readZ(); + } ///-----------Control related functions---------------------/// ////Thruster on control, pw->pulse width in milli-second// //// pw range between 1 to 1.5// //// on_time-> thruster on time. - void thrust_on(float pw, float on_time) { //input is pulse width + void thrust_on(float pw, float on_time) { //input is pulse width - float pw_max=2.0; - if(pw>pw_max) { - pw=pw_max; //hard limitation - } - Timer tt; - tt.reset(); - tt.start(); - // lets set the pulse width - //thruster.period(20.0/1000.00); // 20 ms period - thruster.pulsewidth(pw/1000.00); - thruster2.pulsewidth(pw/1000.00); - //PWM will be kept until time out - while(tt.read()<=on_time) { + float pw_max=2.0; + if(pw>pw_max) { + pw=pw_max; //hard limitation + } + Timer tt; + tt.reset(); + tt.start(); + // lets set the pulse width + //thruster.period(20.0/1000.00); // 20 ms period + thruster.pulsewidth(pw/1000.00); + thruster2.pulsewidth(pw/1000.00); + //PWM will be kept until time out + while(tt.read()<=on_time) { - pc.printf("thruster on?...mack is cool\r\n"); //print check - } - //stop the timer - tt.stop(); - //turn off the thruster - thruster.pulsewidth(1.0/1000.00); - thruster2.pulsewidth(1.0/1000.00); + pc.printf("thruster on?...mack is cool\r\n"); //print check + } + //stop the timer + tt.stop(); + //turn off the thruster + thruster.pulsewidth(1.0/1000.00); + thruster2.pulsewidth(1.0/1000.00); - } + } ///void thrust_off(float pw, float on_time) //input is pulse width // \ No newline at end of file