Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of IEEE_14_Freescale by
main.cpp@4:adc885f4ab75, 2013-11-17 (annotated)
- Committer:
- soonerbot
- Date:
- Sun Nov 17 21:04:47 2013 +0000
- Revision:
- 4:adc885f4ab75
- Parent:
- 3:a223b0bf8256
- Child:
- 6:62d498ee97cf
Gyro working, compass giving values, and fiddling with control systems for driving forward/back
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
soonerbot | 0:3a3dd78038a6 | 1 | #include "mbed.h" |
soonerbot | 1:c28fac16a109 | 2 | #include "dbgprint.h" |
soonerbot | 1:c28fac16a109 | 3 | #include "robot.h" |
soonerbot | 0:3a3dd78038a6 | 4 | |
soonerbot | 1:c28fac16a109 | 5 | BusOut leds(LED_RED,LED_GREEN,LED_BLUE); |
soonerbot | 1:c28fac16a109 | 6 | Serial pc(USBTX, USBRX); |
soonerbot | 0:3a3dd78038a6 | 7 | |
soonerbot | 1:c28fac16a109 | 8 | robot bot; |
soonerbot | 0:3a3dd78038a6 | 9 | int main() { |
soonerbot | 1:c28fac16a109 | 10 | DBGPRINT("AA\n\r",1); |
soonerbot | 1:c28fac16a109 | 11 | char tmpchar = 0; |
soonerbot | 1:c28fac16a109 | 12 | leds = 0x2; |
soonerbot | 1:c28fac16a109 | 13 | const int* constbuf; |
soonerbot | 4:adc885f4ab75 | 14 | double targetAngle=0.0; |
soonerbot | 0:3a3dd78038a6 | 15 | while(1) { |
soonerbot | 1:c28fac16a109 | 16 | DBGPRINT("BB\n\r",1); |
soonerbot | 1:c28fac16a109 | 17 | leds = leds^0x7; |
soonerbot | 1:c28fac16a109 | 18 | tmpchar = pc.getc(); |
soonerbot | 1:c28fac16a109 | 19 | |
soonerbot | 1:c28fac16a109 | 20 | switch(tmpchar){ |
soonerbot | 1:c28fac16a109 | 21 | case 'q': |
soonerbot | 1:c28fac16a109 | 22 | constbuf = bot.bigenc.getVals(); |
soonerbot | 1:c28fac16a109 | 23 | DBGPRINT("\n\r%d\t%d\t%d\t%d\n\r",constbuf[0],constbuf[1],constbuf[2],constbuf[3]); |
soonerbot | 1:c28fac16a109 | 24 | break; |
soonerbot | 4:adc885f4ab75 | 25 | case 'z': |
soonerbot | 4:adc885f4ab75 | 26 | targetAngle = bot.gyro.getZDegrees(); |
soonerbot | 4:adc885f4ab75 | 27 | break; |
soonerbot | 1:c28fac16a109 | 28 | case 'w': |
soonerbot | 1:c28fac16a109 | 29 | bot.left.setPower(0.2); |
soonerbot | 1:c28fac16a109 | 30 | bot.right.setPower(0.2); |
soonerbot | 1:c28fac16a109 | 31 | break; |
soonerbot | 4:adc885f4ab75 | 32 | case 'W': |
soonerbot | 4:adc885f4ab75 | 33 | bot.driveForward(targetAngle,1000); |
soonerbot | 4:adc885f4ab75 | 34 | DBGPRINT("={%f,\t%f,\t%f}\n\r",bot.x,bot.y,bot.rot*180.0/3.14159); |
soonerbot | 4:adc885f4ab75 | 35 | break; |
soonerbot | 4:adc885f4ab75 | 36 | case 'E': |
soonerbot | 4:adc885f4ab75 | 37 | bot.driveForward(targetAngle,5000); |
soonerbot | 4:adc885f4ab75 | 38 | DBGPRINT("={%f,\t%f,\t%f}\n\r",bot.x,bot.y,bot.rot*180.0/3.14159); |
soonerbot | 4:adc885f4ab75 | 39 | break; |
soonerbot | 4:adc885f4ab75 | 40 | case 'X': |
soonerbot | 4:adc885f4ab75 | 41 | bot.driveForward(targetAngle,-1000); |
soonerbot | 4:adc885f4ab75 | 42 | DBGPRINT("={%f,\t%f,\t%f}\n\r",bot.x,bot.y,bot.rot*180.0/3.14159); |
soonerbot | 4:adc885f4ab75 | 43 | break; |
soonerbot | 4:adc885f4ab75 | 44 | case 'C': |
soonerbot | 4:adc885f4ab75 | 45 | bot.driveForward(targetAngle,-5000); |
soonerbot | 4:adc885f4ab75 | 46 | DBGPRINT("={%f,\t%f,\t%f}\n\r",bot.x,bot.y,bot.rot*180.0/3.14159); |
soonerbot | 4:adc885f4ab75 | 47 | break; |
soonerbot | 1:c28fac16a109 | 48 | case 'a': |
soonerbot | 2:7c6b494f9005 | 49 | bot.left.setPower(-0.1); |
soonerbot | 1:c28fac16a109 | 50 | bot.right.setPower(0.2); |
soonerbot | 1:c28fac16a109 | 51 | break; |
soonerbot | 1:c28fac16a109 | 52 | case 'd': |
soonerbot | 1:c28fac16a109 | 53 | bot.left.setPower(0.2); |
soonerbot | 2:7c6b494f9005 | 54 | bot.right.setPower(0.1); |
soonerbot | 1:c28fac16a109 | 55 | break; |
soonerbot | 3:a223b0bf8256 | 56 | case 'p': |
soonerbot | 3:a223b0bf8256 | 57 | DBGPRINT("%d\r\n",bot.gyro.getZ()); |
soonerbot | 3:a223b0bf8256 | 58 | break; |
soonerbot | 3:a223b0bf8256 | 59 | case 'l': |
soonerbot | 3:a223b0bf8256 | 60 | bot.gyro.calibrate(); |
soonerbot | 3:a223b0bf8256 | 61 | break; |
soonerbot | 4:adc885f4ab75 | 62 | case 't': |
soonerbot | 4:adc885f4ab75 | 63 | bot.pfac*=2; |
soonerbot | 4:adc885f4ab75 | 64 | DBGPRINT("pfac = %f\r\n",bot.pfac); |
soonerbot | 4:adc885f4ab75 | 65 | break; |
soonerbot | 4:adc885f4ab75 | 66 | case 'g': |
soonerbot | 4:adc885f4ab75 | 67 | bot.pfac/=2; |
soonerbot | 4:adc885f4ab75 | 68 | DBGPRINT("pfac = %f\r\n",bot.pfac); |
soonerbot | 4:adc885f4ab75 | 69 | break; |
soonerbot | 4:adc885f4ab75 | 70 | case 'y': |
soonerbot | 4:adc885f4ab75 | 71 | bot.ifac*=2; |
soonerbot | 4:adc885f4ab75 | 72 | DBGPRINT("ifac = %f\r\n",bot.ifac); |
soonerbot | 4:adc885f4ab75 | 73 | break; |
soonerbot | 4:adc885f4ab75 | 74 | case 'h': |
soonerbot | 4:adc885f4ab75 | 75 | bot.ifac/=2; |
soonerbot | 4:adc885f4ab75 | 76 | DBGPRINT("ifac = %f\r\n",bot.ifac); |
soonerbot | 4:adc885f4ab75 | 77 | break; |
soonerbot | 4:adc885f4ab75 | 78 | case 'u': |
soonerbot | 4:adc885f4ab75 | 79 | bot.dfac*=2; |
soonerbot | 4:adc885f4ab75 | 80 | DBGPRINT("dfac = %f\r\n",bot.dfac); |
soonerbot | 4:adc885f4ab75 | 81 | break; |
soonerbot | 4:adc885f4ab75 | 82 | case 'j': |
soonerbot | 4:adc885f4ab75 | 83 | bot.dfac/=2; |
soonerbot | 4:adc885f4ab75 | 84 | DBGPRINT("dfac = %f\r\n",bot.dfac); |
soonerbot | 4:adc885f4ab75 | 85 | break; |
soonerbot | 4:adc885f4ab75 | 86 | case 'i': |
soonerbot | 4:adc885f4ab75 | 87 | bot.angfac*=2; |
soonerbot | 4:adc885f4ab75 | 88 | DBGPRINT("angfac = %f\r\n",bot.angfac); |
soonerbot | 4:adc885f4ab75 | 89 | break; |
soonerbot | 4:adc885f4ab75 | 90 | case 'k': |
soonerbot | 4:adc885f4ab75 | 91 | bot.angfac/=2; |
soonerbot | 4:adc885f4ab75 | 92 | DBGPRINT("angfac = %f\r\n",bot.angfac); |
soonerbot | 4:adc885f4ab75 | 93 | break; |
soonerbot | 4:adc885f4ab75 | 94 | case 'T': |
soonerbot | 4:adc885f4ab75 | 95 | bot.pfac*=1.05; |
soonerbot | 4:adc885f4ab75 | 96 | DBGPRINT("pfac = %f\r\n",bot.pfac); |
soonerbot | 4:adc885f4ab75 | 97 | break; |
soonerbot | 4:adc885f4ab75 | 98 | case 'G': |
soonerbot | 4:adc885f4ab75 | 99 | bot.pfac/=1.05; |
soonerbot | 4:adc885f4ab75 | 100 | DBGPRINT("pfac = %f\r\n",bot.pfac); |
soonerbot | 4:adc885f4ab75 | 101 | break; |
soonerbot | 4:adc885f4ab75 | 102 | case 'Y': |
soonerbot | 4:adc885f4ab75 | 103 | bot.ifac*=1.05; |
soonerbot | 4:adc885f4ab75 | 104 | DBGPRINT("ifac = %f\r\n",bot.ifac); |
soonerbot | 4:adc885f4ab75 | 105 | break; |
soonerbot | 4:adc885f4ab75 | 106 | case 'H': |
soonerbot | 4:adc885f4ab75 | 107 | bot.ifac/=1.05; |
soonerbot | 4:adc885f4ab75 | 108 | DBGPRINT("ifac = %f\r\n",bot.ifac); |
soonerbot | 4:adc885f4ab75 | 109 | break; |
soonerbot | 4:adc885f4ab75 | 110 | case 'U': |
soonerbot | 4:adc885f4ab75 | 111 | bot.dfac*=1.05; |
soonerbot | 4:adc885f4ab75 | 112 | DBGPRINT("dfac = %f\r\n",bot.dfac); |
soonerbot | 4:adc885f4ab75 | 113 | break; |
soonerbot | 4:adc885f4ab75 | 114 | case 'J': |
soonerbot | 4:adc885f4ab75 | 115 | bot.dfac/=1.05; |
soonerbot | 4:adc885f4ab75 | 116 | DBGPRINT("dfac = %f\r\n",bot.dfac); |
soonerbot | 4:adc885f4ab75 | 117 | break; |
soonerbot | 4:adc885f4ab75 | 118 | case 'Q': |
soonerbot | 4:adc885f4ab75 | 119 | DBGPRINT("Compass vector = %d\t%d\t%d\r\n",bot.gyro.xmag,bot.gyro.ymag,bot.gyro.zmag); |
soonerbot | 4:adc885f4ab75 | 120 | break; |
soonerbot | 1:c28fac16a109 | 121 | default: |
soonerbot | 1:c28fac16a109 | 122 | bot.left.brake(); |
soonerbot | 1:c28fac16a109 | 123 | bot.right.brake(); |
soonerbot | 1:c28fac16a109 | 124 | break; |
soonerbot | 1:c28fac16a109 | 125 | |
soonerbot | 1:c28fac16a109 | 126 | } |
soonerbot | 0:3a3dd78038a6 | 127 | } |
soonerbot | 0:3a3dd78038a6 | 128 | } |