質問編集履歴

4

説明

2015/12/04 00:35

投稿

Amey
Amey

スコア17

test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,6 @@
1
- アンドロイドから
1
+ アンドロイドから加速度を受け取り対象物を水平に制御するプログラムを
2
2
 
3
- 加速度を受け取り対象物を水へに制御するプログラムを作成したのですが、
4
-
5
- 思った以上にプログラムが短くなってしまったので、
3
+ 作成したのですが、思った以上にプログラムが短くなってしまったので、
6
4
 
7
5
  何か改善するところがあれば教えていただきたいです。
8
6
 

3

説明

2015/12/04 00:34

投稿

Amey
Amey

スコア17

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  アンドロイドから
2
2
 
3
- 加速度を角度を制御するプログラムをさせることができたのですが、
3
+ 加速度を受け取り対象物水へに制御するプログラムをたのですが、
4
4
 
5
5
  思った以上にプログラムが短くなってしまったので、
6
6
 

2

説明

2015/12/04 00:34

投稿

Amey
Amey

スコア17

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  何か改善するところがあれば教えていただきたいです。
8
8
 
9
- このプログラムは右に45、左に45度まで
9
+ このプログラムは右に45、左に45度まで補正するプログラムです。
10
10
 
11
11
 
12
12
 

1

コードの体裁

2015/12/04 00:33

投稿

Amey
Amey

スコア17

test CHANGED
File without changes
test CHANGED
@@ -6,100 +6,102 @@
6
6
 
7
7
  何か改善するところがあれば教えていただきたいです。
8
8
 
9
- #include "mbed.h"
10
-
11
- #include <iostream>
12
-
13
- #include "TextLCD.h"
14
-
15
- TextLCD lcd(p24, p26, p27, p28, p29, p30);
16
-
17
- Serial pc(USBTX, USBRX);
18
-
19
- PwmOut pwm(p21);
20
-
21
- using namespace std;
9
+ このプログラムは右に45、左に45度まで
22
10
 
23
11
 
24
12
 
25
- int main() {
13
+ 0. #include "mbed.h"
26
14
 
27
- double x=0; //加速度受け取り
15
+ 0. #include <iostream>
28
16
 
29
- int Angle; //角度
17
+ 0. #include "TextLCD.h"
30
18
 
31
- int p,start=1500,min=1050,max=1950; //パルス600~2400
19
+ 0.
32
20
 
33
-
21
+ 0. TextLCD lcd(p24, p26, p27, p28, p29, p30);
34
22
 
35
- p = start; //モータ初期位置
23
+ 0. Serial pc(USBTX, USBRX);
36
24
 
37
- pwm.pulsewidth_us(p); //
25
+ 0. PwmOut pwm(p21);
38
26
 
39
- wait_ms(40);
27
+ 0. using namespace std;
40
28
 
29
+ 0.
41
30
 
31
+ 0. int main() {
42
32
 
43
-
33
+ 0. double x=0; //変換先
44
34
 
35
+ 0. int Angle; //角度
45
36
 
37
+ 0. int p,start=1500,min=1050,max=1950;
46
38
 
47
- while(1) {
39
+ 0.
48
40
 
49
-
41
+ 0. p = start; //モータ初期位置
50
42
 
51
-
43
+ 0. pwm.pulsewidth_us(p);
52
44
 
53
- cin >> x ; //加速度受け取り
45
+ 0. wait_ms(40);
54
46
 
55
- lcd.cls();
47
+ 0.
56
48
 
57
-
49
+ 0. while(1) {
58
50
 
59
- if(x>=0)
51
+ 0.
60
52
 
61
- Angle = x/0.109 + 0.5; //相対角度算出
53
+ 0.
62
54
 
63
- else if(x<0){
55
+ 0. cin >> x ; //加速度受け取り
64
56
 
65
- Angle = x/0.109 - 0.5;
57
+ 0. lcd.cls();
66
58
 
67
- }
59
+ 0.
68
60
 
69
- lcd.printf("X=%6.2f",x); //LCDにうけっとた値
61
+ 0. if(x>=0)
70
62
 
71
- lcd.locate(0,1); //相対角度表示
63
+ 0. Angle = x/0.109 + 0.5; //相対角度算出
72
64
 
73
- lcd.printf("Angle=%d",Angle);
65
+ 0. else if(x<0){
74
66
 
75
-
67
+ 0. Angle = x/0.109 - 0.5;
76
68
 
77
- if(Angle == 0){ //角度が0なら初期位置に
69
+ 0. }
78
70
 
79
- p = start;
71
+ 0. lcd.printf("X=%6.2f",x); //LCDにうけっとた値
80
72
 
81
- pwm.pulsewidth_us(p);
73
+ 0. lcd.locate(0,1); //相対角度表示
82
74
 
83
- }else if(Angle >45){ //45度以上はmaxで固定
75
+ 0. lcd.printf("Angle=%d",Angle);
84
76
 
85
- p = max;
77
+ 0.
86
78
 
87
- pwm.pulsewidth_us(p);
79
+ 0. if(Angle == 0){ //角度が0なら初期位置に
88
80
 
89
- }else if(Angle <-45){ //-45度以下はminで固定
81
+ 0. p = start;
90
82
 
91
- p = min;
83
+ 0. pwm.pulsewidth_us(p);
92
84
 
93
- pwm.pulsewidth_us(p);
85
+ 0. }else if(Angle >45){ //45度以上はmaxで固定
94
86
 
95
- }else{ //それいがいは指定角度へ
87
+ 0. p = max;
96
88
 
97
- p=start-Angle*10;
89
+ 0. pwm.pulsewidth_us(p);
98
90
 
99
- pwm.pulsewidth_us(p);
91
+ 0. }else if(Angle <-45){ //-45度以下はminで固定
100
92
 
101
- }
93
+ 0. p = min;
102
94
 
103
- }
95
+ 0. pwm.pulsewidth_us(p);
104
96
 
97
+ 0. }else{ //それいがいは指定角度へ
98
+
99
+ 0. p=start-Angle*10;
100
+
101
+ 0. pwm.pulsewidth_us(p);
102
+
103
+ 0. }
104
+
105
+ 0. }
106
+
105
- }
107
+ 0. }