Skip to content

Commit 5e171e2

Browse files
committed
Implemented read and write methods but pinMode is still missing!
1 parent 7d95492 commit 5e171e2

File tree

3 files changed

+202
-126
lines changed

3 files changed

+202
-126
lines changed

Diff for: avr/libraries/LottieLemon/src/LottieLemon.h

+81-43
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,38 @@
1919
#ifndef LOTTIE_LEMON_H
2020
#define LOTTIE_LEMON_H
2121

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>
2823

2924
namespace LottieLemon {
3025

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+
3152
//Command code
32-
enum {
53+
enum Command {
3354
COMMAND_SWITCH_MODE = 0,
3455
COMMAND_RUN = 10,
3556
COMMAND_MOTORS_STOP = 11,
@@ -48,55 +69,72 @@ namespace LottieLemon {
4869
COMMAND_LINE_FOLLOW_CONFIG = 100
4970
};
5071

51-
52-
//component codename
53-
enum {
54-
CN_LEFT_MOTOR = 0,
55-
CN_RIGHT_MOTOR = 1,
56-
CN_IR = 2
57-
};
58-
5972
//motor board modes
60-
enum {
73+
enum Mode {
6174
MODE_SIMPLE = 0,
6275
MODE_LINE_FOLLOW = 1,
6376
MODE_ADJUST_MOTOR = 2,
6477
MODE_IR_CONTROL = 3
6578
};
6679

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
6982
B_TK1 = 201,
7083
B_TK2 = 202,
7184
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
7390
};
7491

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+
};
98112

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
100131
}
101132

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+
102140
#endif // LOTTIE_LEMON_H

0 commit comments

Comments
 (0)