Austin Mitchell
/
RoboBara
ECE 4180 Final Project
main.cpp@0:eff94d72c9f4, 2018-12-06 (annotated)
- Committer:
- amitchell41
- Date:
- Thu Dec 06 02:48:05 2018 +0000
- Revision:
- 0:eff94d72c9f4
- Child:
- 1:aaa03bac6dd6
my name is robomontoya you killed my father prepare to die
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
amitchell41 | 0:eff94d72c9f4 | 1 | #include "mbed.h" |
amitchell41 | 0:eff94d72c9f4 | 2 | #include "Servo.h" |
amitchell41 | 0:eff94d72c9f4 | 3 | #include "MMA8452.h" |
amitchell41 | 0:eff94d72c9f4 | 4 | #include "PinDetect.h" |
amitchell41 | 0:eff94d72c9f4 | 5 | |
amitchell41 | 0:eff94d72c9f4 | 6 | Serial pc(USBTX,USBRX); |
amitchell41 | 0:eff94d72c9f4 | 7 | DigitalOut myLed(LED1); |
amitchell41 | 0:eff94d72c9f4 | 8 | PinDetect pb1(p20); |
amitchell41 | 0:eff94d72c9f4 | 9 | |
amitchell41 | 0:eff94d72c9f4 | 10 | Servo _base(p21); |
amitchell41 | 0:eff94d72c9f4 | 11 | Servo _shoulder(p22); |
amitchell41 | 0:eff94d72c9f4 | 12 | Servo _elbow(p23); |
amitchell41 | 0:eff94d72c9f4 | 13 | Servo _gripper(p24); |
amitchell41 | 0:eff94d72c9f4 | 14 | |
amitchell41 | 0:eff94d72c9f4 | 15 | void swing(){ |
amitchell41 | 0:eff94d72c9f4 | 16 | _gripper.write(1.0); |
amitchell41 | 0:eff94d72c9f4 | 17 | wait(.1); |
amitchell41 | 0:eff94d72c9f4 | 18 | _gripper.write(0.0); |
amitchell41 | 0:eff94d72c9f4 | 19 | } |
amitchell41 | 0:eff94d72c9f4 | 20 | |
amitchell41 | 0:eff94d72c9f4 | 21 | int main() { |
amitchell41 | 0:eff94d72c9f4 | 22 | |
amitchell41 | 0:eff94d72c9f4 | 23 | pb1.mode(PullUp); |
amitchell41 | 0:eff94d72c9f4 | 24 | |
amitchell41 | 0:eff94d72c9f4 | 25 | double x = 0, y = 0, z = 0; |
amitchell41 | 0:eff94d72c9f4 | 26 | MMA8452 acc(p28, p27, 40000); //instantiate an acc object |
amitchell41 | 0:eff94d72c9f4 | 27 | |
amitchell41 | 0:eff94d72c9f4 | 28 | //set parameters -- use these and don't change |
amitchell41 | 0:eff94d72c9f4 | 29 | acc.setBitDepth(MMA8452::BIT_DEPTH_12); |
amitchell41 | 0:eff94d72c9f4 | 30 | acc.setDynamicRange(MMA8452::DYNAMIC_RANGE_4G); |
amitchell41 | 0:eff94d72c9f4 | 31 | acc.setDataRate(MMA8452::RATE_100); |
amitchell41 | 0:eff94d72c9f4 | 32 | |
amitchell41 | 0:eff94d72c9f4 | 33 | |
amitchell41 | 0:eff94d72c9f4 | 34 | while(1) { |
amitchell41 | 0:eff94d72c9f4 | 35 | |
amitchell41 | 0:eff94d72c9f4 | 36 | // if(!acc.isXYZReady()) |
amitchell41 | 0:eff94d72c9f4 | 37 | // { |
amitchell41 | 0:eff94d72c9f4 | 38 | // wait(0.01); |
amitchell41 | 0:eff94d72c9f4 | 39 | // } |
amitchell41 | 0:eff94d72c9f4 | 40 | // else |
amitchell41 | 0:eff94d72c9f4 | 41 | // { |
amitchell41 | 0:eff94d72c9f4 | 42 | acc.readXYZGravity(&x,&y,&z); //notice this is passed by reference use pointers |
amitchell41 | 0:eff94d72c9f4 | 43 | |
amitchell41 | 0:eff94d72c9f4 | 44 | if(y < 0) |
amitchell41 | 0:eff94d72c9f4 | 45 | _base.write(90+(y*-.90)); |
amitchell41 | 0:eff94d72c9f4 | 46 | else |
amitchell41 | 0:eff94d72c9f4 | 47 | _base.write(90-(y*-.90)); |
amitchell41 | 0:eff94d72c9f4 | 48 | |
amitchell41 | 0:eff94d72c9f4 | 49 | if(x < 0) |
amitchell41 | 0:eff94d72c9f4 | 50 | _shoulder.write(90+(x*-.90)); |
amitchell41 | 0:eff94d72c9f4 | 51 | else |
amitchell41 | 0:eff94d72c9f4 | 52 | _shoulder.write(90-(x*-.90)); |
amitchell41 | 0:eff94d72c9f4 | 53 | |
amitchell41 | 0:eff94d72c9f4 | 54 | if(!pb1){ |
amitchell41 | 0:eff94d72c9f4 | 55 | myLed=1; |
amitchell41 | 0:eff94d72c9f4 | 56 | swing(); |
amitchell41 | 0:eff94d72c9f4 | 57 | myLed=0; |
amitchell41 | 0:eff94d72c9f4 | 58 | } |
amitchell41 | 0:eff94d72c9f4 | 59 | |
amitchell41 | 0:eff94d72c9f4 | 60 | |
amitchell41 | 0:eff94d72c9f4 | 61 | // You can uncomment this line to see the values coming off the MMA8452 |
amitchell41 | 0:eff94d72c9f4 | 62 | printf("\n(%.2f,%.2f,%.2f) \n", x,y,z); |
amitchell41 | 0:eff94d72c9f4 | 63 | |
amitchell41 | 0:eff94d72c9f4 | 64 | } //end else |
amitchell41 | 0:eff94d72c9f4 | 65 | |
amitchell41 | 0:eff94d72c9f4 | 66 | } //end infinite while loop |
amitchell41 | 0:eff94d72c9f4 | 67 | //} // end main |
amitchell41 | 0:eff94d72c9f4 | 68 |