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
Fork of Speed by
Revision 5:63c9ab496df9, committed 2016-06-06
- Comitter:
- smilestone520
- Date:
- Mon Jun 06 10:07:52 2016 +0000
- Parent:
- 3:f30bd4a0d761
- Commit message:
- work
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Sat Jun 04 03:31:27 2016 +0000
+++ b/main.cpp Mon Jun 06 10:07:52 2016 +0000
@@ -56,13 +56,14 @@
float v2_err = 0.0, v2_err_old = 0.0, PIout_2 = 0.0;
float v2_old[10] = {}, v2_avg = 0.0;
-int servo_angle = 50;
+int servo_angle = 70;
float servo_duty = 0.079;//0.079 +(0.084/180)*angle, -90<angle<90
+int servo_work = 0;
-char Receive_Data[8] = {};
+
+//char Receive_Data[8] = {};
int main() {
-
init_BLUETOOTH();
init_TIMER();
init_PWM();
@@ -71,6 +72,9 @@
v1_ref = 0.0;
v2_ref = 0.0;
+ servo_duty = 0.079 + (0.084/180)*servo_angle; // 要修改
+ servo.write(servo_duty);
+
//bluetooth.baud(115200); //設定鮑率
//pc.baud(57600);
@@ -78,27 +82,14 @@
{
if(bluetooth.readable())
{
- bluetooth.scanf("%f%f",&v1_ref,&v2_ref);
+ bluetooth.scanf("%f %f %d",&v1_ref,&v2_ref, &servo_work);
+ v1_ref = v1_ref - 300.0f;
+ v2_ref = v2_ref - 300.0f;
- if((0<=v1_ref<=600)&&(0<=v2_ref<=600))
- {
- v1_ref = v1_ref - 300.0f;
- v2_ref = v2_ref - 300.0f;
- }
- else if((v1_ref>900)&&(0<=v2_ref<=600))
- {
- v1_ref = v1_ref - 600.0f;
- v2_ref = v2_ref - 300.0f;
- servo_angle = 50;
- }
- else if((0<=v1_ref<=600)&&(v2_ref>900))
- {
- v1_ref = v1_ref - 300.0f;
- v2_ref = v2_ref - 600.0f;
- servo_angle = 15;
- }
-
-
+ if(servo_work == 0)
+ servo_angle = 70;
+ else
+ servo_angle = 20;
}
/*if(pc.readable())
{
@@ -113,6 +104,24 @@
void timer1_interrupt(void)
{
+
+ /*for(int i=0; i<8; i++)
+ {
+ Receive_Data[i] = bluetooth.getc();
+ }
+ //read data from matlab
+ //distance_target
+ v1_ref = (Receive_Data[1]-0x30)*100 + (Receive_Data[2]-0x30)*10 + (Receive_Data[3]-0x30);
+
+ if(Receive_Data[0] == '-')v1_ref = -1* v1_ref;
+ else v1_ref = v1_ref;
+
+ //ang_rel_target
+ v2_ref = (Receive_Data[5]-0x30)*100 + (Receive_Data[6]-0x30)*10 + (Receive_Data[7]-0x30);
+
+ if(Receive_Data[4] == '-')v2_ref = -1* v2_ref;
+ else v2_ref = v2_ref;*/
+
//Motor 1
v1 = (float)v1Count * 50.0f / 12.0f * 60.0f / 29.0f; //unit: rpm
v1_avg = v1_avg + ( v1 - v1_old[9])/10.0f;
@@ -169,9 +178,7 @@
servo_duty = 0.079 + (0.084/180)*servo_angle; // 要修改
servo.write(servo_duty);
- servo = 1;
- wait(0.1);
- servo = 0;
+
}
