|
@@ -11,8 +11,6 @@
|
|
|
#include "Atm_out.h"
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
#include <SPI.h>
|
|
|
#include <Ethernet.h>
|
|
|
#include <EthernetUdp.h>
|
|
@@ -20,6 +18,9 @@
|
|
|
#include <OSCBundle.h>
|
|
|
|
|
|
|
|
|
+#include <Servo.h>
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -46,24 +47,27 @@ const int LOW_ACC = 1000 ;
|
|
|
|
|
|
Atm_Teenstep_OSC X_top_OSC;
|
|
|
Atm_Teenstep X_top_step;
|
|
|
-
|
|
|
Stepper X_top_stepper(20 , 19);
|
|
|
StepControl X_top_controller ;
|
|
|
|
|
|
-Atm_TeensyStep Y_top_step;
|
|
|
-Stepper Y_top_stepper(6 , 5);
|
|
|
-
|
|
|
+Atm_Teenstep_OSC Y_top_OSC;
|
|
|
+Atm_Teenstep Y_top_step;
|
|
|
+Stepper Y_top_stepper(22 , 21);
|
|
|
StepControl Y_top_controller ;
|
|
|
|
|
|
-Atm_out peristaltic;
|
|
|
-int peristaltic_pwm_pin = 3;
|
|
|
-int peristaltic_dir_pin = 2;
|
|
|
-
|
|
|
|
|
|
void testCallback(){
|
|
|
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+const int peristaltic_pwm_pin = 3;
|
|
|
+const int peristaltic_dir_pin = 2;
|
|
|
+bool peristaltic_direction = 0 ;
|
|
|
+
|
|
|
+Servo pill_trap ;
|
|
|
+
|
|
|
|
|
|
char feeder1_buffer[80];
|
|
|
Atm_command feeder1;
|
|
@@ -136,6 +140,11 @@ void feederOSC(OSCMessage &msg){
|
|
|
msg.dispatch("/feeder2/pill_move", [](OSCMessage &msg){Serial2.print("pill_move ");Serial2.print(msg.getInt(0));Serial2.println(" ");Serial.println(msg.getInt(0));});
|
|
|
}
|
|
|
|
|
|
+void motorsOSC(OSCMessage &msg){
|
|
|
+ msg.dispatch("/pill_trap", [](OSCMessage &msg){pill_trap.write(msg.getFloat(0));});
|
|
|
+ msg.dispatch("/peristaltic", [](OSCMessage &msg){analogWrite(peristaltic_pwm_pin, msg.getInt(0));});
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -145,7 +154,6 @@ void setup() {
|
|
|
Ethernet.init(15);
|
|
|
teensyMAC(mac);
|
|
|
Ethernet.begin(mac);
|
|
|
-
|
|
|
Udp.beginMulticast(ipMulti, portMulti);
|
|
|
|
|
|
|
|
@@ -158,7 +166,6 @@ void setup() {
|
|
|
|
|
|
|
|
|
X_top_step.trace( Serial );
|
|
|
-
|
|
|
X_top_step.begin(X_top_stepper, X_top_controller)
|
|
|
.setEnablePin(18)
|
|
|
.setLimitType(3).setLimitPins(A3).limitReversed(false).limitThresholds(600, 750, 950, 1200);
|
|
@@ -169,18 +176,15 @@ void setup() {
|
|
|
|
|
|
|
|
|
Y_top_step.trace( Serial );
|
|
|
- Y_top_step.begin(Y_top_stepper, Y_top_controller, Udp, bndl, "/Y_top")
|
|
|
+ Y_top_step.begin(Y_top_stepper, Y_top_controller)
|
|
|
.setEnablePin(23).enableReversed(1)
|
|
|
|
|
|
.setLimitType(1).setLimitPins(16).limitReversed(true);
|
|
|
Y_top_stepper.setMaxSpeed(800);
|
|
|
Y_top_stepper.setAcceleration(2500);
|
|
|
Y_top_stepper.setInverseRotation(false);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+ Y_top_OSC.begin(Y_top_step, Udp, bndl, "/Y_top");
|
|
|
+
|
|
|
|
|
|
|
|
|
Serial1.begin(9600);
|
|
@@ -195,23 +199,24 @@ void setup() {
|
|
|
.list( feeder2list )
|
|
|
.onCommand( feeder2_callback );
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+ pill_trap.attach(14);
|
|
|
+
|
|
|
+
|
|
|
+ pinMode(peristaltic_dir_pin, OUTPUT);
|
|
|
+ digitalWrite(peristaltic_dir_pin, peristaltic_direction);
|
|
|
+ pinMode(peristaltic_pwm_pin, OUTPUT);
|
|
|
+ analogWrite(peristaltic_pwm_pin, 50);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
}
|
|
|
|
|
@@ -235,7 +240,9 @@ void loop() {
|
|
|
Serial.println("got OSC");
|
|
|
|
|
|
X_top_OSC.onOSC(msgIn);
|
|
|
+ Y_top_OSC.onOSC(msgIn);
|
|
|
feederOSC(msgIn);
|
|
|
+ motorsOSC(msgIn);
|
|
|
|
|
|
|
|
|
}
|