optim cobboard
[aversive.git] / projects / microb2010 / cobboard / actuator.c
index 67598ea..8d2355d 100644 (file)
@@ -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
 
 #include <rdline.h>
 
+#include "sensor.h"
 #include "../common/i2c_commands.h"
-#include "actuator.h"
-#include "ax12_user.h"
 #include "main.h"
+#include "actuator.h"
+
+#define COBROLLER_SPEED 600
+//#define COBROLLER_SPEED 400
+
+#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 400 // 510
+
+#define SERVO_CARRY_R_OPEN 455
+#define SERVO_CARRY_R_CLOSED 350 // 250
+
+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();
 }