Haptic Controller
Loading...
Searching...
No Matches
defines.h
Go to the documentation of this file.
1#define CAN_BAUDRATE 1000000
2
3// SYSTEM ID: robot finger - 0, robot thumb - 1, haptic finger - 2, haptic thumb - 3
4#define SYSTEM_ID 0
5#define ODRIVE0_ID 0
6#define ODRIVE1_ID 1
7
8#if SYSTEM_ID == 0 || SYSTEM_ID == 2
9#define FINGER
10#else
11#define THUMB
12#endif
13
14#if SYSTEM_ID == 0
15#define HEARTBEAT_TX_ID 0x100
16#define HEARTBEAT_RX_ID 0x102
17#define END_EFFECTOR_POS_TX_ID 0x200
18#define END_EFFECTOR_POS_RX_ID 0x202
19#define END_EFFECTOR_VEL_TX_ID 0x300
20#define END_EFFECTOR_VEL_RX_ID 0x302
22#elif SYSTEM_ID == 1
23#define HEARTBEAT_TX_ID 0x101
24#define HEARTBEAT_RX_ID 0x103
25#define END_EFFECTOR_POS_TX_ID 0x201
26#define END_EFFECTOR_POS_RX_ID 0x203
27#define END_EFFECTOR_VEL_TX_ID 0x301
28#define END_EFFECTOR_VEL_RX_ID 0x303
30#elif SYSTEM_ID == 2
31#define HEARTBEAT_TX_ID 0x102
32#define HEARTBEAT_RX_ID 0x100
33#define END_EFFECTOR_POS_TX_ID 0x202
34#define END_EFFECTOR_POS_RX_ID 0x200
35#define END_EFFECTOR_VEL_TX_ID 0x302
36#define END_EFFECTOR_VEL_RX_ID 0x300
38#elif SYSTEM_ID == 3
39#define HEARTBEAT_TX_ID 0x103
40#define HEARTBEAT_RX_ID 0x101
41#define END_EFFECTOR_POS_TX_ID 0x203
42#define END_EFFECTOR_POS_RX_ID 0x201
43#define END_EFFECTOR_VEL_TX_ID 0x303
44#define END_EFFECTOR_VEL_RX_ID 0x301
46#else
47#error "Invalid SYSTEM_ID"
48#endif
49
50#define ESTOP_PIN 5
51#define CLEAR_ERROR_BUTTON 2
52#define DEADMAN_SWITCH 3
53#define RELAY_PIN_OUTPUT 4 // there are 6 of these apparently
54#define TEENSY_HEARTBEAT_TIMEOUT 1000
55#define ODRIVE_HEARTBEAT_TIMEOUT 1000
56#define LED_R1 41
57#define LED_G1 40
58#define LED_B1 39
59
60#define LED_R2 38
61#define LED_G2 37
62#define LED_B2 36
63
64#define LED_R3 35
65#define LED_G3 34
66#define LED_B3 33
67
68// Debugging settings
69#define DEBUG
70// #define PROFILE
71// #define TESTING
72
73#define DEBUG_PIN 10
74
75#ifdef DEBUG
76#define db_print(X) Serial.print(X)
77#define db_println(X) Serial.println(X)
78#define db_printVal(X) \
79 Serial.print(#X); \
80 Serial.print(": "); \
81 Serial.println(X, 8)
82#define db_pinHigh() digitalWrite(DEBUG_PIN, HIGH)
83#define db_pinLow() digitalWrite(DEBUG_PIN, LOW)
84#else
85#define db_print(X)
86#define db_println(X)
87#define db_printVal(X)
88#define db_pinHigh()
89#define db_pinLow()
90#endif
91
92#ifdef PROFILE
93#define db_startTiming(X) \
94 Serial.print(#X); \
95 Serial.print(" START "); \
96 Serial.println(micros())
97#define db_endTiming(X) \
98 Serial.print(#X); \
99 Serial.print(" END "); \
100 Serial.println(micros())
101#define db_timeFunction(X) \
102 db_startTiming(X); \
103 X; \
104 db_endTiming(X)
105#define db_startProfiling() Serial.println("START OF PROFILE")
106#else
107#define db_startTiming(X)
108#define db_endTiming(X)
109#define db_timeFunction(X) X
110#define db_startProfiling()
111#endif