-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfig.h
77 lines (65 loc) · 2.74 KB
/
config.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
//
// VALUES OF THE EXTENT OF THE MAP PASTED ON THE FRONT OF THE PLEXI-GLASS.
// ALL OF THESE VALUES ARE RELATIVE TO THE MAP AS VIEWED FROM THE FRONT!!
//
#define EXTENT_LEFT -80.037650
#define EXTENT_RIGHT -79.907582
#define EXTENT_BOTTOM 40.419027
#define EXTENT_TOP 40.473910
//
// THE ADDRESS OF EACH SERVO. DIRECTIONS ARE AS VIEWED FROM FRONT. NUMBER 1
// WILL ALWAYS BE THE LAST (TERMINATING) MODULE IN THE CHAIN.
//
#define LEFT_SERVO 1
#define RIGHT_SERVO 2
//
// THE WIDTH AND HEIGHT OF THE PLEXI-GLASS' WORKING AREA--I.E. HOW FAR CAN THE PUCK GO
// HORIZONTALLY AND VERTICALLY. WIDTH WILL USUALLY BE THE DISTANCE BETWEEN THE STRING'S SUPPORT
// PINS; HEIGHT USUALLY SOME ARBITRARY NUMBER...
//
#define WORKSPACE_HEIGHT_IN 33.500
#define WORKSPACE_WIDTH_IN 70.719
//
// THE DISTANCE THAT PUTS THE SERVO IN THE EXACT CENTER OF THE WORKSPACE. THIS IS FIGURED OUT
// AUTOMATICALLY GIVEN THE VALUES ABOVE, IN THE WORKSPACE DEFINITION.
//
#define SERVO_HOME_IN sqrtf(powf(WORKSPACE_HEIGHT_IN, 2) + powf(WORKSPACE_WIDTH_IN, 2)) / 2
//
// THE MAXIMUM VELOCITY TO MOVE THE MOTOR WITH
//
#define SERVO_MAX_VEL_PULSE 8000000
#define SERVO_MAX_VEL_SLEW 3000000
//
// THE TICKS PER REVOLUTION OF THE SERVO (I.E. HOW MANY TICKS TO MAKE IT TURN EXACTLY 1 REV), AND THE
// NUMBER OF INCHES THE STRING WILL MOVE GIVEN ONE REVOLUTION. THIS IS 2 * PI * RADIUS.
//
#define TICKS_PER_REV 121000
#define INCHES_PER_REV_LEFT 10.626
#define INCHES_PER_REV_RIGHT 10.626
//
// HOW LONG SHOULD THE TOTAL RECORDED LENGTH BE PLAYED BACK IN WALL CLOCK SECONDS? FOR A TOTAL PLAYBACK
// TIME OF A HALF-HOUR, ONE WOULD USE .5 HERE. 15 MINUTES WOULD BE .25.
//
#define PLAYBACK_L_HR .5
//
// THE CONNECTION STRING THAT SHOULD BE USED TO CONNECT TO THE DATABASE.
//
#define DB_CONNECTION_STRING "host=128.2.103.138 port=5432 dbname=maphub user=www password=enter"
//
// SYSTEM DEFINITIONS: YOU SHOULDN'T HAVE TO CHANGE THESE.
//
#define TICKS_TO_INCHES(i, d) (float)(((float)i / (float)TICKS_PER_REV) * (float)d)
#define INCHES_TO_TICKS(i, d) (float)(((float)i / (float)d) * (float)TICKS_PER_REV)
#define X(L, R) WORKSPACE_WIDTH_IN - ((powf(L, 2) - powf(WORKSPACE_WIDTH_IN, 2) - powf(R, 2)) / (-2 * WORKSPACE_WIDTH_IN))
#define Y(L, R) WORKSPACE_HEIGHT_IN - sqrtf(fabs(powf(R, 2) - powf(X(R, L), 2)))
#define H(X,Y) sqrt(powf(X, 2) + powf(Y, 2)) - SERVO_HOME_IN
//
// GLOBALS DEFINED TO ALLOW OTHER FUNCTIONS TO ACCESS THESE PROPERTIES
//
#define MAP_WIDTH_IN _map_width_in
#define MAP_HEIGHT_IN _map_height_in
#define MAP_OFFSET_LEFT _map_offset_left
#define MAP_OFFSET_RIGHT _map_offset_right
#define MAP_OFFSET_TOP _map_offset_top
#define MAP_OFFSET_BOTTOM _map_offset_bottom
float MAP_WIDTH_IN, MAP_HEIGHT_IN, MAP_OFFSET_LEFT, MAP_OFFSET_RIGHT, MAP_OFFSET_TOP, MAP_OFFSET_BOTTOM;