![](/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:
- 34:f315b2b38555
- Parent:
- 32:2006977785f5
- Child:
- 35:e26a573e3e9f
File content as of revision 34:f315b2b38555:
#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 // led1: control X speed // led2: control Y speed // led1&led2: control Servo pos AnalogOut led1(led1Pin); AnalogOut led2(led2Pin); 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 led1 = 1; led2=0; motorSetSpeed1 = 300*(pot2.read()-pot1.read()); break; case 1: // potmeters control Y speed led1=0; led2=1; motorSetSpeed2 = 300*(pot2.read()-pot1.read()); break; case 2: // potmeters control Servo pos led1=1; led2=1; servoPos = pot2.read(); break; } }else{ led1=0; led2=0; } motorSetSpeed2 = motorSetSpeed2 - 300*pot1.read(); }