-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patheyebrows.cpp
More file actions
60 lines (50 loc) · 1.62 KB
/
eyebrows.cpp
File metadata and controls
60 lines (50 loc) · 1.62 KB
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
#include "body_to_head.hpp"
#include "head_tilt.hpp"
#include "joysticks.hpp"
#include "servoboard.hpp"
#include "switch.hpp"
#define SERVO_MIN 350
#define SERVO_MAX 425
// Eyebrow Right
#define EYEBROW_RIGHT_MIN SERVO_MIN
#define EYEBROW_RIGHT_MAX SERVO_MAX
#define EYEBROW_RIGHT 9 // 10th port on servo board, labled 7 in sharpie
void eyebrow_right_set(int input) {
if (!switch_enabled()) return;
input = map(input, -127, 127, EYEBROW_RIGHT_MIN, EYEBROW_RIGHT_MAX); // Translate -127-127 to min-max
pwm.setPWM(EYEBROW_RIGHT, 0, input);
}
// Eyebrow Left
#define EYEBROW_LEFT_MIN SERVO_MIN
#define EYEBROW_LEFT_MAX SERVO_MAX
#define EYEBROW_LEFT 11 // 12th port on servo board
void eyebrow_left_set(int input) {
if (!switch_enabled()) return;
input = map(input, -127, 127, EYEBROW_LEFT_MIN, EYEBROW_LEFT_MAX); // Translate -127-127 to min-max
pwm.setPWM(EYEBROW_LEFT, 0, input);
}
void eyebrows_runtime() {
/*
double left = -HEAD_HEIGHT_CURRENT + HEAD_TILT_CURRENT;
double right = -HEAD_HEIGHT_CURRENT - HEAD_TILT_CURRENT;
double largest_servo = fmax(fabs(left), fabs(right));
if (largest_servo > 127.0) {
float scale = 127.0 / largest_servo;
left = left * scale;
right = right * scale;
}
*/
float left = HEAD_TILT_CURRENT;
float right = -HEAD_TILT_CURRENT;
Serial.print(joystick_channel(RIGHT_SLIDER) - 127);
Serial.print("\t\t");
Serial.print(HEAD_TILT_CURRENT);
Serial.print("\t\t");
Serial.print(left);
Serial.print("\t");
Serial.print(right);
Serial.print("\n");
//eyebrow_right_set(joystick_channel(RIGHT_SLIDER) - 127);
eyebrow_left_set(-left);
eyebrow_right_set(left);
}