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:
Wed Oct 07 20:55:28 2015 +0200
Revision:
32:2006977785f5
Parent:
30:a20f16bf8dda
Child:
34:f315b2b38555
added buttons and leds for case switching and added servo

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 2:95ba9f6f0128 6
annesteenbeek 27:5eb5ec295ab2 7 AnalogIn pot2(pot2Pin);
annesteenbeek 30:a20f16bf8dda 8 AnalogIn pot1(pot1Pin);
annesteenbeek 0:525558a26464 9
annesteenbeek 32:2006977785f5 10 // Led states:
annesteenbeek 32:2006977785f5 11 // 0 leds: motors disabled
annesteenbeek 32:2006977785f5 12 // led1: control X speed
annesteenbeek 32:2006977785f5 13 // led2: control Y speed
annesteenbeek 32:2006977785f5 14 // led1&led2: control Servo pos
annesteenbeek 32:2006977785f5 15 AnalogOut led1(led1Pin);
annesteenbeek 32:2006977785f5 16 AnalogOut led2(led2Pin);
annesteenbeek 32:2006977785f5 17
annesteenbeek 32:2006977785f5 18 AnalogIn button1(button1Pin);
annesteenbeek 32:2006977785f5 19 AnalogIn button2(button2Pin);
annesteenbeek 32:2006977785f5 20 int prevState1 = 0;
annesteenbeek 32:2006977785f5 21 int prevState2 = 0;
annesteenbeek 32:2006977785f5 22 int actuatorState = 0;
annesteenbeek 32:2006977785f5 23
annesteenbeek 32:2006977785f5 24
annesteenbeek 0:525558a26464 25 void checkSwitches(){
annesteenbeek 32:2006977785f5 26
annesteenbeek 32:2006977785f5 27 // 3 states: X control, Y control en Servo control
annesteenbeek 32:2006977785f5 28 // button 1 to enable/disable actuators
annesteenbeek 32:2006977785f5 29 // button 2 to switch between states
annesteenbeek 32:2006977785f5 30
annesteenbeek 32:2006977785f5 31 if(button1 !=0 && prevState1 == 0){
annesteenbeek 32:2006977785f5 32 button1Pressed();
annesteenbeek 32:2006977785f5 33 }
annesteenbeek 32:2006977785f5 34 if(button2 !=0 && prevState2 ==0){
annesteenbeek 32:2006977785f5 35 button2Pressed();
annesteenbeek 32:2006977785f5 36 }
annesteenbeek 32:2006977785f5 37 prevState1 = button1;
annesteenbeek 32:2006977785f5 38 prevState2 = button2;
annesteenbeek 32:2006977785f5 39
annesteenbeek 32:2006977785f5 40 pot1Val = pot1.read();
annesteenbeek 32:2006977785f5 41 pot2Val = pot2.read();
annesteenbeek 32:2006977785f5 42
annesteenbeek 32:2006977785f5 43 if(motorsEnable){
annesteenbeek 32:2006977785f5 44 switch (actuatorState){
annesteenbeek 32:2006977785f5 45 case 0: // potmeters control X speed
annesteenbeek 32:2006977785f5 46 led1 = 1; led2=0;
annesteenbeek 32:2006977785f5 47 motorSetSPeed1 = 300*(pot2.read()-pot1.read());
annesteenbeek 32:2006977785f5 48 break;
annesteenbeek 32:2006977785f5 49 case 1: // potmeters control Y speed
annesteenbeek 32:2006977785f5 50 led1=0; led2=1;
annesteenbeek 32:2006977785f5 51 motorSetSpeed2 = 300*(pot2.read()-pot1.read());
annesteenbeek 32:2006977785f5 52 break;
annesteenbeek 32:2006977785f5 53 case 2: // potmeters control Servo pos
annesteenbeek 32:2006977785f5 54 led1=1; led2=1;
annesteenbeek 32:2006977785f5 55 servoPos = pot2.read();
annesteenbeek 32:2006977785f5 56 break;
annesteenbeek 32:2006977785f5 57 }
annesteenbeek 32:2006977785f5 58 }else{
annesteenbeek 32:2006977785f5 59 led1=0; led2=0;
annesteenbeek 32:2006977785f5 60 }
annesteenbeek 32:2006977785f5 61 motorSetSpeed2 = motorSetSpeed2 - 300*pot1.read();
annesteenbeek 32:2006977785f5 62 }
annesteenbeek 32:2006977785f5 63
annesteenbeek 32:2006977785f5 64
annesteenbeek 32:2006977785f5 65 void button1Pressed(){
annesteenbeek 32:2006977785f5 66 motorEnable = !motorEnable;
annesteenbeek 32:2006977785f5 67 }
annesteenbeek 32:2006977785f5 68
annesteenbeek 32:2006977785f5 69 void button2Pressed(){
annesteenbeek 32:2006977785f5 70 actuatorState++;
annesteenbeek 32:2006977785f5 71 if(actuatorState=3){
annesteenbeek 32:2006977785f5 72 actuatorState = 0;
annesteenbeek 32:2006977785f5 73 }
annesteenbeek 32:2006977785f5 74
annesteenbeek 32:2006977785f5 75 }