![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
control for robotic arm that can play chess using a granular gripper
Dependencies: Encoder mbed HIDScope Servo MODSERIAL
Fork of chessRobot by
buttons.cpp
- Committer:
- annesteenbeek
- Date:
- 2015-10-07
- Revision:
- 35:e26a573e3e9f
- Parent:
- 34:f315b2b38555
- Child:
- 36:6f9670eb9168
File content as of revision 35:e26a573e3e9f:
#include "buttons.h" #include "mbed.h" #include "config.h" #include "actuators.h" // functions for reading all the buttons and switches AnalogIn pot2(pot2Pin); AnalogIn pot1(pot1Pin); // Led states: // 0 leds: motors disabled // redLed: control X speed // greenLed: control Y speed // blueLed: control Servo pos DigitalOut redLed(RED_LED); DigitalOut greenLed(GREEN_LED); DigitalOut blueLed(BLUE_LED); AnalogIn button1(button1Pin); AnalogIn button2(button2Pin); int prevState1 = 0; int prevState2 = 0; int actuatorState = 0; float pot1Val = 0; float pot2Val = 0; void checkSwitches(){ // 3 states: X control, Y control en Servo control // button 1 to enable/disable actuators // button 2 to switch between states if(button1 !=0 && prevState1 == 0){ motorsEnable = !motorsEnable; } if(button2 !=0 && prevState2 ==0){ actuatorState++; if(actuatorState==3){ actuatorState = 0; } } prevState1 = button1; prevState2 = button2; pot1Val = pot1.read(); pot2Val = pot2.read(); if(motorsEnable){ switch (actuatorState){ case 0: // potmeters control X speed redLed.write(0); greenLed.write(1); blueLed(1); motorSetSpeed1 = 300*(pot2.read()-pot1.read()); break; case 1: // potmeters control Y speed redLed.write(1); greenLed.write(0); blueLed(1); motorSetSpeed2 = 300*(pot2.read()-pot1.read()); break; case 2: // potmeters control Servo pos redLed.write(1); greenLed.write(1); blueLed(0); servoPos = pot2.read(); break; } }else{ redLed.write(1); greenLed.write(1); blueLed(1); } motorSetSpeed2 = motorSetSpeed2 - 300*pot1.read(); }