]> rtime.felk.cvut.cz Git - eurobot/public.git/blob - src/robofsm/actuators.h
aclib: two holder and lift positions constants added
[eurobot/public.git] / src / robofsm / actuators.h
1 /**
2  * @file actuators.h
3  * @author Martin Zidek
4  * @date 09/03/25
5  *
6  * @brief Acttuators library
7  */
8
9 /*
10  * actuators.h                  09/02/25
11  *
12  * Robot's actuators control.
13  *
14  * Copyright: (c) 2008 CTU Dragons
15  *            CTU FEE - Department of Control Engineering
16  * License: GNU GPL v.2
17  */
18 /**
19 \defgroup actlib Actuators control library
20
21 Actuators library serves as a single control point for all the actuators 
22 of the robot.
23  */
24
25 #ifndef ACTUATORS_H
26 #define ACTUATORS_H
27
28 /* Chelas: original values */
29 //#define CHELA_CLOSED 0xFF
30 //#define CHELA_TIGHT  0xA0
31 //#define CHELA_OPEN   0x20
32 //#define CHELA_LOOSE  0x80
33
34 /* Chelas: */
35 #define CHELA_CLOSED 0xFF
36 #define CHELA_TIGHT  0xD8
37 #define CHELA_OPEN   0x20
38 #define CHELA_LOOSE  0xA8
39
40 /* FIXME: (temporary, LPCs not ready) Timeout */
41 #define CHELA_TIMEOUT 0x07
42
43 /* Belts */
44 #define BELTS_IN 0xA0  // 160
45 #define BELTS_OFF 0x64 // 100
46 #define BELTS_OUT 0x28 //  40
47
48 #define LIFT_SHIFT              0x1C
49 /* Positions of lift */
50 #define LIFT_GROUND_POS         0x001A
51 #define LIFT_TRAVEL_POS         0x0028
52 #define LIFT_BELOW_HOLDER_POS   0x00E0
53 #define LIFT_IN_HOLDER_POS      0x0118
54 #define LIFT_FLOOR1             0x00E0
55 #define LIFT_FLOOR2             0x01A0
56 #define LIFT_FLOOR3             0x0264
57 #define LIFT_FLOOR4             0x0322
58 #define LIFT_MAX                0x03C0
59
60 /* Holder positions */
61 #define HOLDER_CLOSED 0xFF
62 #define HOLDER_TIGHT  0xE0
63 #define HOLDER_LOOSE  0xDA
64 #define HOLDER_OPENED 0x10
65
66 /* Pusher position */
67 #define PUSHER_INSIDE  0
68 #define PUSHER_LINTEL_BOUNDARY 0xC0
69 #define PUSHER_OUTSIDE PUSHER_LINTEL_BOUNDARY
70
71 /* Hokuyo pitch angle limits */
72 #define HOKUYO_PITCH_MAX        0xF8
73 #define HOKUYO_PITCH_HORIZONTAL 0xC0
74 #define HOKUYO_PITCH_MIN        0x00
75
76 /* Actuators status bits */
77 #define ACT_ST_LIFT_ERR 0x01    /* TODO */
78
79 #ifdef __cplusplus
80 extern "C" {
81 #endif 
82
83 void act_init(struct robottype_orte_data *ortedata);
84
85 void act_lift(unsigned short int position);
86 void act_chelae(unsigned char left, unsigned char right);
87 void act_belts(unsigned char left, unsigned char right);
88 void act_holder(unsigned char position);
89 void act_pusher(unsigned short int position);
90 void act_hokuyo(unsigned char angle);
91
92 #ifdef __cplusplus
93 }
94 #endif 
95
96 #endif /* ACTUATORS_H */