19
19
#ifndef LOTTIE_LEMON_H
20
20
#define LOTTIE_LEMON_H
21
21
22
- #ifdef ARDUINO_AVR_ROBOT_MOTOR
23
- #include " utility/LottieLemonMotorBoard.h"
24
- #endif
25
- #ifdef ARDUINO_AVR_ROBOT_CONTROL
26
- #include " utility/LottieLemonControlBoard.h"
27
- #endif
22
+ #include < Arduino.h>
28
23
29
24
namespace LottieLemon {
30
25
26
+ /*
27
+ A message structure will be:
28
+ switch mode (2):
29
+ byte COMMAND_SWITCH_MODE, byte mode
30
+ run (5):
31
+ byte COMMAND_RUN, int speedL, int speedR
32
+ analogWrite (3):
33
+ byte COMMAND_ANALOG_WRITE, byte codename, byte value;
34
+ digitalWrite (3):
35
+ byte COMMAND_DIGITAL_WRITE, byte codename, byte value;
36
+ analogRead (2):
37
+ byte COMMAND_ANALOG_READ, byte codename;
38
+ analogRead _return_ (4):
39
+ byte COMMAND_ANALOG_READ_RE, byte codename, int value;
40
+ digitalRead (2):
41
+ byte COMMAND_DIGITAL_READ, byte codename;
42
+ digitalRead _return_ (4):
43
+ byte COMMAND_DIGITAL_READ_RE, byte codename, int value;
44
+ read IR (1):
45
+ byte COMMAND_READ_IR;
46
+ read IR _return_ (9):
47
+ byte COMMAND_READ_IR_RE, int valueA, int valueB, int valueC, int valueD;
48
+
49
+
50
+ */
51
+
31
52
// Command code
32
- enum {
53
+ enum Command {
33
54
COMMAND_SWITCH_MODE = 0 ,
34
55
COMMAND_RUN = 10 ,
35
56
COMMAND_MOTORS_STOP = 11 ,
@@ -48,55 +69,72 @@ namespace LottieLemon {
48
69
COMMAND_LINE_FOLLOW_CONFIG = 100
49
70
};
50
71
51
-
52
- // component codename
53
- enum {
54
- CN_LEFT_MOTOR = 0 ,
55
- CN_RIGHT_MOTOR = 1 ,
56
- CN_IR = 2
57
- };
58
-
59
72
// motor board modes
60
- enum {
73
+ enum Mode {
61
74
MODE_SIMPLE = 0 ,
62
75
MODE_LINE_FOLLOW = 1 ,
63
76
MODE_ADJUST_MOTOR = 2 ,
64
77
MODE_IR_CONTROL = 3
65
78
};
66
79
67
- // bottom TKs, just for communication purpose
68
- enum {
80
+ // bottom TKs, just for communication purpose, DR, DW, AR
81
+ enum BottomMicrocontrollerPin { // keep and extend to silkscreen names
69
82
B_TK1 = 201 ,
70
83
B_TK2 = 202 ,
71
84
B_TK3 = 203 ,
72
- B_TK4 = 204
85
+ B_TK4 = 204 ,
86
+ BOT_D7 = B_TK3,
87
+ BOT_D8 = B_TK4,
88
+ BOT_D9 = B_TK2,
89
+ BOT_D10 = B_TK1
73
90
};
74
91
75
- /*
76
- A message structure will be:
77
- switch mode (2):
78
- byte COMMAND_SWITCH_MODE, byte mode
79
- run (5):
80
- byte COMMAND_RUN, int speedL, int speedR
81
- analogWrite (3):
82
- byte COMMAND_ANALOG_WRITE, byte codename, byte value;
83
- digitalWrite (3):
84
- byte COMMAND_DIGITAL_WRITE, byte codename, byte value;
85
- analogRead (2):
86
- byte COMMAND_ANALOG_READ, byte codename;
87
- analogRead _return_ (4):
88
- byte COMMAND_ANALOG_READ_RE, byte codename, int value;
89
- digitalRead (2):
90
- byte COMMAND_DIGITAL_READ, byte codename;
91
- digitalRead _return_ (4):
92
- byte COMMAND_DIGITAL_READ_RE, byte codename, int value;
93
- read IR (1):
94
- byte COMMAND_READ_IR;
95
- read IR _return_ (9):
96
- byte COMMAND_READ_IR_RE, int valueA, int valueB, int valueC, int valueD;
97
-
92
+ #ifdef ARDUINO_AVR_ROBOT_CONTROL
93
+ // top TKs
94
+ enum TopMultiplexerPin {
95
+ T_TK0 = 100 ,
96
+ T_TK1 = 101 ,
97
+ T_TK2 = 102 ,
98
+ T_TK3 = 103 ,
99
+ T_TK4 = 104 ,
100
+ T_TK5 = 105 ,
101
+ T_TK6 = 106 ,
102
+ T_TK7 = 107 ,
103
+ TOP_M0 = T_TK0,
104
+ TOP_M1 = T_TK1,
105
+ TOP_M2 = T_TK2,
106
+ TOP_M3 = T_TK3,
107
+ TOP_M4 = T_TK4,
108
+ TOP_M5 = T_TK5,
109
+ TOP_M6 = T_TK6,
110
+ TOP_M7 = T_TK7
111
+ };
98
112
99
- */
113
+ // top TKDs
114
+ enum TopMicrocontrollerPin {
115
+ T_TKD0 = TKD0,
116
+ T_TKD1 = TKD1,
117
+ T_TKD2 = TKD2,
118
+ T_TKD3 = TKD3,
119
+ T_TKD4 = TKD4, // Shared with MUXA
120
+ T_TKD5 = TKD5, // Shared with MUXC
121
+ T_LED1 = LED1,
122
+ TOP_D0 = T_TKD0,
123
+ TOP_D1 = T_TKD1,
124
+ TOP_D2 = T_TKD2,
125
+ TOP_D3 = T_TKD3,
126
+ TOP_D4 = T_TKD4, // Shared with MUXA
127
+ TOP_D5 = T_TKD5, // Shared with MUXC
128
+ TOP_LED1 = T_LED1
129
+ };
130
+ #endif // ARDUINO_AVR_ROBOT_CONTROL
100
131
}
101
132
133
+ #ifdef ARDUINO_AVR_ROBOT_MOTOR
134
+ #include " utility/LottieLemonMotorBoard.h"
135
+ #endif
136
+ #ifdef ARDUINO_AVR_ROBOT_CONTROL
137
+ #include " utility/LottieLemonControlBoard.h"
138
+ #endif
139
+
102
140
#endif // LOTTIE_LEMON_H
0 commit comments