control for robotic arm that can play chess using a granular gripper

Dependencies:   Encoder mbed HIDScope Servo MODSERIAL

Fork of chessRobot by a steenbeek

Committer:
annesteenbeek
Date:
Thu Oct 08 00:39:57 2015 +0200
Revision:
39:41635b1b11de
Parent:
38:2c18429ad352
Child:
40:0d88aa25a57d
states to float

Who changed what in which revision?

UserRevisionLine numberNew contents of line
annesteenbeek 14:0c0d1bfd94ea 1 #include "buttons.h"
annesteenbeek 14:0c0d1bfd94ea 2 #include "mbed.h"
annesteenbeek 17:872fcf85116d 3 #include "config.h"
annesteenbeek 25:874675516927 4 #include "actuators.h"
annesteenbeek 0:525558a26464 5 // functions for reading all the buttons and switches
annesteenbeek 27:5eb5ec295ab2 6 AnalogIn pot2(pot2Pin);
annesteenbeek 30:a20f16bf8dda 7 AnalogIn pot1(pot1Pin);
annesteenbeek 0:525558a26464 8
annesteenbeek 32:2006977785f5 9 // Led states:
annesteenbeek 32:2006977785f5 10 // 0 leds: motors disabled
annesteenbeek 35:e26a573e3e9f 11 // redLed: control X speed
annesteenbeek 35:e26a573e3e9f 12 // greenLed: control Y speed
annesteenbeek 35:e26a573e3e9f 13 // blueLed: control Servo pos
annesteenbeek 36:6f9670eb9168 14 DigitalOut redLed(LED_RED);
annesteenbeek 36:6f9670eb9168 15 DigitalOut greenLed(LED_GREEN);
annesteenbeek 36:6f9670eb9168 16 DigitalOut blueLed(LED_BLUE);
annesteenbeek 32:2006977785f5 17
annesteenbeek 32:2006977785f5 18 AnalogIn button1(button1Pin);
annesteenbeek 32:2006977785f5 19 AnalogIn button2(button2Pin);
annesteenbeek 39:41635b1b11de 20 float prevState1 = 1;
annesteenbeek 39:41635b1b11de 21 float prevState2 = 1;
annesteenbeek 32:2006977785f5 22 int actuatorState = 0;
annesteenbeek 32:2006977785f5 23
annesteenbeek 34:f315b2b38555 24 float pot1Val = 0;
annesteenbeek 34:f315b2b38555 25 float pot2Val = 0;
annesteenbeek 34:f315b2b38555 26
annesteenbeek 32:2006977785f5 27
annesteenbeek 0:525558a26464 28 void checkSwitches(){
annesteenbeek 32:2006977785f5 29
annesteenbeek 32:2006977785f5 30 // 3 states: X control, Y control en Servo control
annesteenbeek 32:2006977785f5 31 // button 1 to enable/disable actuators
annesteenbeek 32:2006977785f5 32 // button 2 to switch between states
annesteenbeek 32:2006977785f5 33
annesteenbeek 38:2c18429ad352 34 if(button1.read() == 0 && prevState1 != 0){
annesteenbeek 34:f315b2b38555 35 motorsEnable = !motorsEnable;
annesteenbeek 32:2006977785f5 36 }
annesteenbeek 38:2c18429ad352 37 if(button2.read() == 0 && prevState2 != 0){
annesteenbeek 34:f315b2b38555 38 actuatorState++;
annesteenbeek 34:f315b2b38555 39 if(actuatorState==3){
annesteenbeek 34:f315b2b38555 40 actuatorState = 0;
annesteenbeek 34:f315b2b38555 41 }
annesteenbeek 32:2006977785f5 42 }
annesteenbeek 38:2c18429ad352 43 prevState1 = button1.read();
annesteenbeek 38:2c18429ad352 44 prevState2 = button2.read();
annesteenbeek 32:2006977785f5 45
annesteenbeek 32:2006977785f5 46 pot1Val = pot1.read();
annesteenbeek 32:2006977785f5 47 pot2Val = pot2.read();
annesteenbeek 32:2006977785f5 48
annesteenbeek 32:2006977785f5 49 if(motorsEnable){
annesteenbeek 32:2006977785f5 50 switch (actuatorState){
annesteenbeek 32:2006977785f5 51 case 0: // potmeters control X speed
annesteenbeek 36:6f9670eb9168 52 redLed.write(0); greenLed.write(1); blueLed.write(1);
annesteenbeek 34:f315b2b38555 53 motorSetSpeed1 = 300*(pot2.read()-pot1.read());
annesteenbeek 32:2006977785f5 54 break;
annesteenbeek 32:2006977785f5 55 case 1: // potmeters control Y speed
annesteenbeek 36:6f9670eb9168 56 redLed.write(1); greenLed.write(0); blueLed.write(1);
annesteenbeek 32:2006977785f5 57 motorSetSpeed2 = 300*(pot2.read()-pot1.read());
annesteenbeek 32:2006977785f5 58 break;
annesteenbeek 32:2006977785f5 59 case 2: // potmeters control Servo pos
annesteenbeek 36:6f9670eb9168 60 redLed.write(1); greenLed.write(1); blueLed.write(0);
annesteenbeek 32:2006977785f5 61 servoPos = pot2.read();
annesteenbeek 32:2006977785f5 62 break;
annesteenbeek 32:2006977785f5 63 }
annesteenbeek 32:2006977785f5 64 }else{
annesteenbeek 36:6f9670eb9168 65 redLed.write(1); greenLed.write(1); blueLed.write(1);
annesteenbeek 32:2006977785f5 66 }
annesteenbeek 34:f315b2b38555 67 }