質問編集履歴
1
title
CHANGED
File without changes
|
body
CHANGED
@@ -12,58 +12,90 @@
|
|
12
12
|
### 該当のソースコード
|
13
13
|
|
14
14
|
```C++(Arduino)
|
15
|
-
#define M5STACK_MPU6886
|
16
|
-
|
17
15
|
#include <M5Stack.h>
|
18
16
|
|
19
|
-
|
17
|
+
const int pin_F = 19;
|
18
|
+
const int pin_R = 18;
|
20
19
|
|
20
|
+
const int PWM_CH_F = 1;
|
21
|
+
const int PWM_CH_R = 2;
|
22
|
+
const int PWM_Hz = 50;
|
23
|
+
const uint8_t PWM_level = 12;
|
24
|
+
//PWM resolution max1023?
|
25
|
+
|
26
|
+
const int Uprate = 1;
|
27
|
+
const int Deforate = pow(2, PWM_level) / 20;
|
28
|
+
|
29
|
+
signed int UDcount = 0;
|
30
|
+
char _data;
|
31
|
+
|
32
|
+
void startin(){
|
33
|
+
Serial.print("boot\r\n");
|
34
|
+
ledcWrite(PWM_CH_F, 0);
|
35
|
+
ledcWrite(PWM_CH_R, 0);
|
36
|
+
M5.Lcd.fillScreen(BLACK);
|
37
|
+
delay(500);
|
38
|
+
|
39
|
+
Serial.print("start\r\n");
|
40
|
+
ledcWrite(PWM_CH_F, 230);
|
41
|
+
ledcWrite(PWM_CH_R, 230);//1dato over current
|
42
|
+
delay(1000);
|
43
|
+
|
44
|
+
M5.Lcd.fillScreen(BLUE);
|
45
|
+
|
46
|
+
ledcWrite(PWM_CH_F, Deforate);
|
47
|
+
ledcWrite(PWM_CH_R, Deforate);
|
48
|
+
}
|
49
|
+
|
21
50
|
void setup() {
|
22
51
|
M5.begin();
|
23
52
|
M5.Power.begin();
|
24
53
|
|
25
|
-
M5.
|
54
|
+
M5.Lcd.fillScreen(BLACK);
|
26
|
-
|
55
|
+
M5.Lcd.setTextColor(WHITE , BLACK);
|
27
56
|
M5.Lcd.setTextSize(2);
|
28
|
-
M5.Lcd.setTextColor(GREEN , BLACK);
|
29
|
-
M5.Lcd.fillScreen(BLACK);
|
30
|
-
|
31
|
-
m5.Lcd.setCursor(100, 100);
|
32
|
-
m5.Lcd.printf("M5 boot\r\n");
|
33
|
-
|
34
|
-
//まる1
|
35
57
|
|
58
|
+
pinMode(pin_F, OUTPUT);
|
59
|
+
pinMode(pin_R, OUTPUT);
|
60
|
+
|
36
61
|
ledcSetup(PWM_CH_F, PWM_Hz, PWM_level);
|
37
62
|
ledcSetup(PWM_CH_R, PWM_Hz, PWM_level);
|
38
63
|
|
39
|
-
//まる2
|
40
|
-
|
41
|
-
ledcAttachPin(pin_F, PWM_CH_F);
|
64
|
+
ledcAttachPin(pin_F, PWM_CH_F);
|
42
|
-
ledcAttachPin(pin_R, PWM_CH_R);
|
65
|
+
ledcAttachPin(pin_R, PWM_CH_R);
|
43
66
|
|
44
|
-
|
67
|
+
startin();
|
45
|
-
pinMode(pin_R, OUTPUT);
|
46
|
-
|
47
|
-
m5.Lcd.clear(WHITE);//まる1やまる2に移動させるとできる
|
48
|
-
M5.Lcd.setTextColor(GREEN , WHITE);
|
49
|
-
|
50
|
-
startin();//setupが長くなるので色々詰め込んだやつ
|
51
|
-
|
52
|
-
m5.Lcd.printf("startin
|
68
|
+
m5.Lcd.printf("startin");
|
53
69
|
}
|
54
70
|
|
55
71
|
void loop() {
|
72
|
+
if(Serial.available() > 0){
|
56
|
-
|
73
|
+
_data = Serial.read();
|
74
|
+
Serial.printf("%c\r\n", _data);
|
75
|
+
}
|
57
76
|
|
77
|
+
if(_data == 'w'){
|
78
|
+
UDcount ++;
|
79
|
+
ledcWrite(PWM_CH_F, Deforate + Uprate * UDcount);
|
80
|
+
ledcWrite(PWM_CH_R, Deforate + Uprate * UDcount);
|
81
|
+
Serial.printf("w %d\r\n", Deforate + Uprate * UDcount);
|
82
|
+
}
|
83
|
+
else if(_data == 's'){
|
84
|
+
UDcount --;
|
85
|
+
ledcWrite(PWM_CH_F, Deforate + Uprate * UDcount);
|
86
|
+
ledcWrite(PWM_CH_R, Deforate + Uprate * UDcount);
|
87
|
+
Serial.printf("s %d\r\n", Deforate + Uprate * UDcount);
|
88
|
+
}
|
89
|
+
else if(_data == 'r'){
|
90
|
+
UDcount = 0;
|
91
|
+
startin();
|
92
|
+
}
|
93
|
+
else if(_data == 'e'){
|
58
|
-
|
94
|
+
ledcWrite(PWM_CH_F, 0);
|
59
|
-
delta_pitch = (my_pitch - default_pitch) * DTR;
|
60
|
-
delta_roll = (my_roll - default_roll) * DTR;
|
61
|
-
M5.Lcd.printf("dP = %5.1f, dR = %5.1f", delta_pitch, delta_roll);//表示されない
|
62
|
-
|
63
|
-
|
95
|
+
ledcWrite(PWM_CH_R, 0);
|
96
|
+
}
|
64
97
|
}
|
65
98
|
|
66
|
-
|
67
99
|
```
|
68
100
|
|
69
101
|
### 試したこと
|