X-Git-Url: http://git.droids-corp.org/?p=aversive.git;a=blobdiff_plain;f=projects%2Fmicrob2010%2Fcobboard%2Factuator.c;h=c6a685b8624d81667a11d60ceadf3655dd72fb07;hp=67598ea2f499df78eee673cafd63bd4e5c274b0e;hb=ecbe3387a90b1ca0e8a8584af631ae2d1f9c61d8;hpb=8d6a47e9e21a9a31f4bc12d32fb3d11091a4b305 diff --git a/projects/microb2010/cobboard/actuator.c b/projects/microb2010/cobboard/actuator.c index 67598ea..c6a685b 100644 --- a/projects/microb2010/cobboard/actuator.c +++ b/projects/microb2010/cobboard/actuator.c @@ -1,6 +1,6 @@ -/* +/* * Copyright Droids Corporation (2009) - * + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or @@ -40,28 +40,78 @@ #include +#include "sensor.h" #include "../common/i2c_commands.h" -#include "actuator.h" -#include "ax12_user.h" #include "main.h" +#include "actuator.h" + +#define COBROLLER_SPEED 1000 + +#define SERVO_DOOR_OPEN 300 +#define SERVO_DOOR_CLOSED 530 +#define SERVO_DOOR_BLOCK 530 + +#define SERVO_CARRY_L_OPEN 295 +#define SERVO_CARRY_L_CLOSED 430 //400 + +#define SERVO_CARRY_R_OPEN 455 +#define SERVO_CARRY_R_CLOSED 320 //350 + +void actuator_init(void); void servo_carry_open(void) { + pwm_ng_set(SERVO_CARRY_L_PWM, SERVO_CARRY_L_OPEN); + pwm_ng_set(SERVO_CARRY_R_PWM, SERVO_CARRY_R_OPEN); } void servo_carry_close(void) { + pwm_ng_set(SERVO_CARRY_L_PWM, SERVO_CARRY_L_CLOSED); + pwm_ng_set(SERVO_CARRY_R_PWM, SERVO_CARRY_R_CLOSED); } void servo_door_open(void) { + pwm_ng_set(SERVO_DOOR_PWM, SERVO_DOOR_OPEN); } void servo_door_close(void) { + pwm_ng_set(SERVO_DOOR_PWM, SERVO_DOOR_CLOSED); } -void actuator_init(void) +void servo_door_block(void) { + pwm_ng_set(SERVO_DOOR_PWM, SERVO_DOOR_BLOCK); +} +void cobroller_on(uint8_t side) +{ + if (side == I2C_LEFT_SIDE) + cobboard.left_cobroller_speed = COBROLLER_SPEED; + else + cobboard.right_cobroller_speed = -COBROLLER_SPEED; +} + +void cobroller_off(uint8_t side) +{ + if (side == I2C_LEFT_SIDE) + cobboard.left_cobroller_speed = 0; + else + cobboard.right_cobroller_speed = 0; +} + +void cobroller_reverse(uint8_t side) +{ + if (side == I2C_LEFT_SIDE) + cobboard.left_cobroller_speed = -COBROLLER_SPEED; + else + cobboard.right_cobroller_speed = COBROLLER_SPEED; +} + +void actuator_init(void) +{ + servo_door_open(); + servo_carry_open(); }