This is a program for a DIY robotic arm for demonstrates the capacities of the BIXI Bluetooth module
Dependencies: Servo TextLCD mbed
main.cpp@1:c3a33d9372f5, 2016-06-14 (annotated)
- Committer:
- clementb
- Date:
- Tue Jun 14 13:49:24 2016 +0000
- Revision:
- 1:c3a33d9372f5
- Parent:
- 0:9438fe754ab6
- Child:
- 2:2728901fd798
This version include a text menu
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
clementb | 0:9438fe754ab6 | 1 | #include "mbed.h" |
clementb | 0:9438fe754ab6 | 2 | #include "TextLCD.h" |
clementb | 0:9438fe754ab6 | 3 | #include "Servo.h" |
clementb | 0:9438fe754ab6 | 4 | |
clementb | 0:9438fe754ab6 | 5 | |
clementb | 0:9438fe754ab6 | 6 | TextLCD lcd(D12, D11, D5, D4, D3, D2); |
clementb | 0:9438fe754ab6 | 7 | |
clementb | 1:c3a33d9372f5 | 8 | Servo servoRL(D10); |
clementb | 1:c3a33d9372f5 | 9 | Servo servoHL(D9); |
clementb | 0:9438fe754ab6 | 10 | |
clementb | 0:9438fe754ab6 | 11 | DigitalIn menu(USER_BUTTON); |
clementb | 1:c3a33d9372f5 | 12 | DigitalOut led(LED1); |
clementb | 0:9438fe754ab6 | 13 | |
clementb | 0:9438fe754ab6 | 14 | int page; |
clementb | 1:c3a33d9372f5 | 15 | int j = 0; |
clementb | 0:9438fe754ab6 | 16 | int xPos = 0; |
clementb | 0:9438fe754ab6 | 17 | int yPos = 0; |
clementb | 0:9438fe754ab6 | 18 | |
clementb | 1:c3a33d9372f5 | 19 | int servoRLMov(int version){ |
clementb | 1:c3a33d9372f5 | 20 | if(version==1){ //From left to righ |
clementb | 1:c3a33d9372f5 | 21 | for(int i=0; i==100; i=i+0.01){ |
clementb | 1:c3a33d9372f5 | 22 | servoRL = i; |
clementb | 1:c3a33d9372f5 | 23 | wait(0.01); |
clementb | 1:c3a33d9372f5 | 24 | } |
clementb | 1:c3a33d9372f5 | 25 | } |
clementb | 1:c3a33d9372f5 | 26 | else if(version==2){ //From righ to left |
clementb | 1:c3a33d9372f5 | 27 | for(int i=100;i==0; i=i-0.01){ |
clementb | 1:c3a33d9372f5 | 28 | servoRL = i; |
clementb | 1:c3a33d9372f5 | 29 | wait(0.01); |
clementb | 1:c3a33d9372f5 | 30 | } |
clementb | 1:c3a33d9372f5 | 31 | } |
clementb | 1:c3a33d9372f5 | 32 | return 0; |
clementb | 1:c3a33d9372f5 | 33 | } |
clementb | 0:9438fe754ab6 | 34 | |
clementb | 1:c3a33d9372f5 | 35 | int servoHLMov(int version){ |
clementb | 1:c3a33d9372f5 | 36 | if(version==1){ //From low to high |
clementb | 1:c3a33d9372f5 | 37 | for(int i=0; i==100; i=i+0.01){ |
clementb | 1:c3a33d9372f5 | 38 | servoHL = i; |
clementb | 1:c3a33d9372f5 | 39 | wait(0.01); |
clementb | 1:c3a33d9372f5 | 40 | } |
clementb | 1:c3a33d9372f5 | 41 | } |
clementb | 1:c3a33d9372f5 | 42 | else if(version==2){ //From high to low |
clementb | 1:c3a33d9372f5 | 43 | for(int i=100; i==0; i=i-0.01){ |
clementb | 1:c3a33d9372f5 | 44 | servoHL = i; |
clementb | 1:c3a33d9372f5 | 45 | wait(0.01); |
clementb | 1:c3a33d9372f5 | 46 | } |
clementb | 1:c3a33d9372f5 | 47 | } |
clementb | 1:c3a33d9372f5 | 48 | return 0; |
clementb | 1:c3a33d9372f5 | 49 | } |
clementb | 1:c3a33d9372f5 | 50 | |
clementb | 1:c3a33d9372f5 | 51 | int main(){ |
clementb | 1:c3a33d9372f5 | 52 | page = 1; |
clementb | 0:9438fe754ab6 | 53 | lcd.cls(); |
clementb | 0:9438fe754ab6 | 54 | lcd.locate(0,0); |
clementb | 1:c3a33d9372f5 | 55 | lcd.printf("BIXI - demo arm\n"); |
clementb | 1:c3a33d9372f5 | 56 | lcd.locate(0,1); |
clementb | 1:c3a33d9372f5 | 57 | lcd.printf("Clement BALLOT\n"); |
clementb | 1:c3a33d9372f5 | 58 | servoRL = 0; |
clementb | 1:c3a33d9372f5 | 59 | servoHL = 0; |
clementb | 1:c3a33d9372f5 | 60 | while(j != 30){ |
clementb | 1:c3a33d9372f5 | 61 | led = 1; |
clementb | 1:c3a33d9372f5 | 62 | wait(0.05); |
clementb | 1:c3a33d9372f5 | 63 | led = 0; |
clementb | 1:c3a33d9372f5 | 64 | wait(0.05); |
clementb | 1:c3a33d9372f5 | 65 | j = j++; |
clementb | 0:9438fe754ab6 | 66 | } |
clementb | 0:9438fe754ab6 | 67 | |
clementb | 1:c3a33d9372f5 | 68 | while(1) { |
clementb | 1:c3a33d9372f5 | 69 | if(menu == 0) { |
clementb | 1:c3a33d9372f5 | 70 | page = page++; |
clementb | 1:c3a33d9372f5 | 71 | if(page >4){ |
clementb | 1:c3a33d9372f5 | 72 | page = 1; |
clementb | 1:c3a33d9372f5 | 73 | } |
clementb | 0:9438fe754ab6 | 74 | } |
clementb | 1:c3a33d9372f5 | 75 | |
clementb | 1:c3a33d9372f5 | 76 | wait(1); |
clementb | 1:c3a33d9372f5 | 77 | |
clementb | 1:c3a33d9372f5 | 78 | if(page == 4) { |
clementb | 1:c3a33d9372f5 | 79 | lcd.cls(); |
clementb | 1:c3a33d9372f5 | 80 | lcd.locate(0,0); |
clementb | 1:c3a33d9372f5 | 81 | lcd.printf("Loading P4... "); |
clementb | 1:c3a33d9372f5 | 82 | lcd.locate(0,1); |
clementb | 1:c3a33d9372f5 | 83 | lcd.printf("P4 : low > high "); |
clementb | 1:c3a33d9372f5 | 84 | wait(2); |
clementb | 1:c3a33d9372f5 | 85 | lcd.locate(0,0); |
clementb | 1:c3a33d9372f5 | 86 | lcd.printf("Running P4... "); |
clementb | 1:c3a33d9372f5 | 87 | led = 1; |
clementb | 1:c3a33d9372f5 | 88 | wait(0.2); |
clementb | 1:c3a33d9372f5 | 89 | led = 0; |
clementb | 1:c3a33d9372f5 | 90 | wait(0.2); |
clementb | 1:c3a33d9372f5 | 91 | led = 1; |
clementb | 1:c3a33d9372f5 | 92 | wait(0.2); |
clementb | 1:c3a33d9372f5 | 93 | led = 0; |
clementb | 1:c3a33d9372f5 | 94 | wait(0.2); |
clementb | 1:c3a33d9372f5 | 95 | led = 1; |
clementb | 1:c3a33d9372f5 | 96 | wait(0.2); |
clementb | 1:c3a33d9372f5 | 97 | led = 0; |
clementb | 1:c3a33d9372f5 | 98 | wait(0.2); |
clementb | 1:c3a33d9372f5 | 99 | led = 1; |
clementb | 1:c3a33d9372f5 | 100 | wait(0.2); |
clementb | 1:c3a33d9372f5 | 101 | led = 0; |
clementb | 1:c3a33d9372f5 | 102 | } |
clementb | 1:c3a33d9372f5 | 103 | else if(page == 3) { |
clementb | 1:c3a33d9372f5 | 104 | lcd.cls(); |
clementb | 1:c3a33d9372f5 | 105 | lcd.locate(0,0); |
clementb | 1:c3a33d9372f5 | 106 | lcd.printf("Loading P3... "); |
clementb | 1:c3a33d9372f5 | 107 | lcd.locate(0,1); |
clementb | 1:c3a33d9372f5 | 108 | lcd.printf("P3 : righ > left"); |
clementb | 1:c3a33d9372f5 | 109 | wait(2); |
clementb | 1:c3a33d9372f5 | 110 | lcd.locate(0,0); |
clementb | 1:c3a33d9372f5 | 111 | lcd.printf("Running P3... "); |
clementb | 1:c3a33d9372f5 | 112 | led = 1; |
clementb | 1:c3a33d9372f5 | 113 | wait(0.2); |
clementb | 1:c3a33d9372f5 | 114 | led = 0; |
clementb | 1:c3a33d9372f5 | 115 | wait(0.2); |
clementb | 1:c3a33d9372f5 | 116 | led = 1; |
clementb | 1:c3a33d9372f5 | 117 | wait(0.2); |
clementb | 1:c3a33d9372f5 | 118 | led = 0; |
clementb | 1:c3a33d9372f5 | 119 | wait(0.2); |
clementb | 1:c3a33d9372f5 | 120 | led = 1; |
clementb | 1:c3a33d9372f5 | 121 | wait(0.2); |
clementb | 1:c3a33d9372f5 | 122 | led = 0; |
clementb | 1:c3a33d9372f5 | 123 | } |
clementb | 1:c3a33d9372f5 | 124 | else if(page == 2) { |
clementb | 1:c3a33d9372f5 | 125 | lcd.cls(); |
clementb | 1:c3a33d9372f5 | 126 | lcd.locate(0,0); |
clementb | 1:c3a33d9372f5 | 127 | lcd.printf("Loading P2..."); |
clementb | 1:c3a33d9372f5 | 128 | lcd.locate(0,1); |
clementb | 1:c3a33d9372f5 | 129 | lcd.printf("P2 : high > low "); |
clementb | 1:c3a33d9372f5 | 130 | wait(2); |
clementb | 1:c3a33d9372f5 | 131 | lcd.locate(0,0); |
clementb | 1:c3a33d9372f5 | 132 | lcd.printf("Running P2... "); |
clementb | 1:c3a33d9372f5 | 133 | led = 1; |
clementb | 1:c3a33d9372f5 | 134 | wait(0.2); |
clementb | 1:c3a33d9372f5 | 135 | led = 0; |
clementb | 1:c3a33d9372f5 | 136 | wait(0.2); |
clementb | 1:c3a33d9372f5 | 137 | led = 1; |
clementb | 1:c3a33d9372f5 | 138 | wait(0.2); |
clementb | 1:c3a33d9372f5 | 139 | led = 0; |
clementb | 1:c3a33d9372f5 | 140 | } |
clementb | 1:c3a33d9372f5 | 141 | else if(page == 1) { |
clementb | 1:c3a33d9372f5 | 142 | lcd.cls(); |
clementb | 1:c3a33d9372f5 | 143 | lcd.locate(0,0); |
clementb | 1:c3a33d9372f5 | 144 | lcd.printf("Loading P1... "); |
clementb | 1:c3a33d9372f5 | 145 | lcd.locate(0,1); |
clementb | 1:c3a33d9372f5 | 146 | lcd.printf("P1 : left > righ"); |
clementb | 1:c3a33d9372f5 | 147 | wait(2); |
clementb | 1:c3a33d9372f5 | 148 | lcd.locate(0,0); |
clementb | 1:c3a33d9372f5 | 149 | lcd.printf("Running P1... "); |
clementb | 1:c3a33d9372f5 | 150 | lcd.locate(0,0); |
clementb | 1:c3a33d9372f5 | 151 | led = 1; |
clementb | 1:c3a33d9372f5 | 152 | wait(0.2); |
clementb | 1:c3a33d9372f5 | 153 | led = 0; |
clementb | 1:c3a33d9372f5 | 154 | } |
clementb | 1:c3a33d9372f5 | 155 | } |
clementb | 0:9438fe754ab6 | 156 | } |