git.droids-corp.org
/
aversive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vt100: include pgmspace.h as we use PROGMEM macro
[aversive.git]
/
projects
/
microb2010
/
ballboard
/
actuator.c
diff --git
a/projects/microb2010/ballboard/actuator.c
b/projects/microb2010/ballboard/actuator.c
index
2509d7c
..
cf9517f
100644
(file)
--- a/
projects/microb2010/ballboard/actuator.c
+++ b/
projects/microb2010/ballboard/actuator.c
@@
-40,18
+40,18
@@
#include <rdline.h>
#include <rdline.h>
+#include "actuator.h"
#include "main.h"
#include "main.h"
-#define ROLLER_ON
800
+#define ROLLER_ON
-ROLLER_SPEED
#define ROLLER_OFF 0
#define ROLLER_OFF 0
-#define ROLLER_REVERSE
-800
+#define ROLLER_REVERSE
ROLLER_SPEED
-#define FORKROT_DEPLOYED 1000
-#define FORKROT_PACKED 0
-
-#define FORKTRANS_LEFT 0
-#define FORKTRANS_MIDDLE 500
-#define FORKTRANS_RIGHT 1000
+#define FORKROT_DEPLOYED -55000
+#define FORKROT_MID1 -31000
+#define FORKROT_MID2 -27000
+#define FORKROT_EJECT -12000
+#define FORKROT_PACKED -4000
void roller_on(void)
{
void roller_on(void)
{
@@
-78,17
+78,44
@@
void fork_pack(void)
cs_set_consign(&ballboard.forkrot.cs, FORKROT_PACKED);
}
cs_set_consign(&ballboard.forkrot.cs, FORKROT_PACKED);
}
-void fork_left(void)
+void fork_mid1(void)
+{
+ cs_set_consign(&ballboard.forkrot.cs, FORKROT_MID1);
+}
+
+void fork_mid2(void)
+{
+ cs_set_consign(&ballboard.forkrot.cs, FORKROT_MID2);
+}
+
+void fork_eject(void)
+{
+ cs_set_consign(&ballboard.forkrot.cs, FORKROT_EJECT);
+}
+
+static uint8_t fork_is_at_pos(int32_t pos)
{
{
- cs_set_consign(&ballboard.forktrans.cs, FORKTRANS_LEFT);
+ int32_t diff;
+ diff = pos - encoders_spi_get_value(FORKROT_ENCODER);
+ if (diff < 0)
+ diff = -diff;
+ if (diff < 500)
+ return 1;
+ return 0;
}
}
-
void fork_right
(void)
+
uint8_t fork_is_packed
(void)
{
{
-
cs_set_consign(&ballboard.forktrans.cs, FORKTRANS_RIGHT
);
+
return fork_is_at_pos(FORKROT_PACKED
);
}
}
-void
fork_middle
(void)
+void
actuator_init
(void)
{
{
- cs_set_consign(&ballboard.forktrans.cs, FORKTRANS_MIDDLE);
+ printf_P(PSTR("fork autopos..."));
+ pwm_ng_set(FORKROT_PWM, 400);
+ wait_ms(1000);
+ pwm_ng_set(FORKROT_PWM, 0);
+ encoders_spi_set_value(FORKROT_ENCODER, 0);
+ printf_P(PSTR("ok\r\n"));
+ ballboard.forkrot.on = 1;
}
}