-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathconfig_black.h
106 lines (89 loc) · 2.83 KB
/
config_black.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
// Tamariw configuration file
// 2024-04-13
#ifndef _CONFIG_BLACK_H_
#define _CONFIG_BLACK_H_
#define EN_CHG_BAT GPIO_038 //PC6, Charging Enable Pin
#define BATT_MES_ADC_CH ADC_CH_014 // ADC3_CH14, PC4, Battery Voltage Monitor
#define ADC_NO_BAT_MES ADC_IDX1 //Using ADC 1 for PC4
// Timeouts
#define TOF_MUX_TIMEOUT_MILLIS 2
#define TOF_RANGE_TIMEOUT_MILLIS 2
// ToF sensor
#define TOF_MAX_LENGTH_MM 750
#define TOF_I2C_HAL_IDX I2C_IDX1
#define TOF_I2C_HAL_GPIO_SCL GPIO_022 // PB6
#define TOF_I2C_HAL_GPIO_SDA GPIO_023 // PB7
#define TOF_I2C_HAL_FREQUENCY_HZ 400000
#define TOF_I2C_ADDRESS 0x29
#define TOF_I2C_MUX_ADDRESS 0x70
#define TOF_CALIBRATE_TARGET_MM 100
#define TOF_CALIBRATE_SAMPLES 20
#define TOF_A_PIN_XSHUT GPIO_077 // PE13
#define TOF_B_PIN_XSHUT GPIO_078 // PE14
#define TOF_TBOOT_MILLIS 2
// ToF dimensions
#define TOF_DIMENSION_WIDTH_MM 44.95
#define TOF_DIMENSION_LENGTH_MM 101.5
// Electromagnet enable pin
#define EM_ENABLE_PIN GPIO_056
#define EM_SAFETY_THRESHOLD 50
#define EM_SAFETY_INTERMEDIATE 20
// PWMs for electromagnets
#define EM_PWM_FREQUENCY 20000
#define EM_PWM_INCREMENTS 1023
#define EM0_PWM_IDX PWM_IDX06
#define EM1_PWM_IDX PWM_IDX07
#define EM2_PWM_IDX PWM_IDX05
#define EM3_PWM_IDX PWM_IDX04
// Direction pins for electromagnets
#define EM0_PIN_IN2 GPIO_076
#define EM0_PIN_IN1 GPIO_075
#define EM1_PIN_IN2 GPIO_074
#define EM1_PIN_IN1 GPIO_073
#define EM2_PIN_IN2 GPIO_060
#define EM2_PIN_IN1 GPIO_061
#define EM3_PIN_IN2 GPIO_062
#define EM3_PIN_IN1 GPIO_063
// ADC channels for electromagnets
#define EM_ADC_IDX ADC_IDX3
#define EM0_ADC_CH ADC_CH_012
#define EM1_ADC_CH ADC_CH_013
#define EM2_ADC_CH ADC_CH_011
#define EM3_ADC_CH ADC_CH_010
// Periods of threads
#define THREAD_PERIOD_TOF_MILLIS 35
#define THREAD_PERIOD_TELEMETRY_MILLIS 300
#define THREAD_PERIOD_TELECOMMAND_MILLIS 100
#define THREAD_PERIOD_CURRENT_CTRL_MILLIS 6
#define THREAD_PERIOD_COLLISION_CTRL_MILLIS 50
// Thread priorities
#define THREAD_PRIO_TOF 100
#define THREAD_PRIO_TELEMETRY 0
#define THREAD_PRIO_TELECOMMAND 80
#define THREAD_PRIO_CURRENT_CTRL 90
#define THREAD_PRIO_COLLISION_CTRL 60
// Thread start times
#define THREAD_START_TOF_MILLIS 100
#define THREAD_START_TELEMETRY_MILLIS 200
#define THREAD_START_TELECOMMAND_MILLIS 300
#define THREAD_START_CURRENT_CTRL_MILLIS 400
#define THREAD_START_COLLISION_CTRL_MILLIS 500
// Distance control params
#define PID_DISTANCE_UMAX 2500 * 2500
#define PID_DISTANCE_UMIN 0
#define PID_DISTANCE_KP 0.0
#define PID_DISTANCE_KI 0.0
// Velocity control params
#define PID_VELOCITY_UMAX 2500
#define PID_VELOCITY_UMIN 0
#define PID_VELOCITY_KP 0.0
#define PID_VELOCITY_KI 0.0
// Current control params
#define PID_CURRENT_UMAX 90
#define PID_CURRENT_UMIN 0
#define PID_CURRENT_KP 0.065
#define PID_CURRENT_KI 0.3
// LEDs (see: led.cpp)
#define LED_FAR_COUNTS 6
#define LED_NEAR_COUNTS 6
#endif // config_black.h