Project DataAquisitie

Dependencies:   LM75B MMA7660 Servo mbed

Fork of analogintest3 by Peter Mertens

Committer:
mvanendert
Date:
Mon May 18 20:04:55 2015 +0000
Revision:
1:2b6bdf677573
Parent:
0:e4782112c3fd
Child:
2:b3eddbd12635
Misan DataAquisitie;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
u0068206 0:e4782112c3fd 1 #include "mbed.h"
u0068206 0:e4782112c3fd 2 #include "SerialRPCInterface.h"
mvanendert 1:2b6bdf677573 3 #include "LM75B.h"
mvanendert 1:2b6bdf677573 4 #include "C12832.h"
mvanendert 1:2b6bdf677573 5 #include "MMA7660.h"
mvanendert 1:2b6bdf677573 6 #include <time.h>
mvanendert 1:2b6bdf677573 7 #include <stdlib.h>
mvanendert 1:2b6bdf677573 8 #include "Servo.h"
mvanendert 1:2b6bdf677573 9
mvanendert 1:2b6bdf677573 10 // // // // // // // // // // // // // // // // // // // //
mvanendert 1:2b6bdf677573 11 // // // // // // //* Pennen defineren voor libs */ // // // // //
mvanendert 1:2b6bdf677573 12 C12832 glcd(p5, p7, p6, p8, p11); //Grafische display aangesloten op P5,6,7,8,11
mvanendert 1:2b6bdf677573 13 MMA7660 MMA(p28, p27); //I2C Accelerometer
mvanendert 1:2b6bdf677573 14 LM75B LM75(p28,p27); //LM75 Temp Sensor
mvanendert 1:2b6bdf677573 15 SerialRPCInterface SerialInterface(USBTX, USBRX); //USB seriele communicatie opzetten
mvanendert 1:2b6bdf677573 16
mvanendert 1:2b6bdf677573 17 PwmOut r (p23); //RGB Led op pen 23-25
mvanendert 1:2b6bdf677573 18 PwmOut g (p24);
mvanendert 1:2b6bdf677573 19 PwmOut b (p25);
mvanendert 1:2b6bdf677573 20 DigitalIn up(p15); //Joystick aangesloten op P12-16
mvanendert 1:2b6bdf677573 21 DigitalIn down(p12);
mvanendert 1:2b6bdf677573 22 DigitalIn left(p13);
mvanendert 1:2b6bdf677573 23 DigitalIn right(p16);
mvanendert 1:2b6bdf677573 24 DigitalIn fire(p14); //Drukknop joystick zit op pen P14
mvanendert 1:2b6bdf677573 25
mvanendert 1:2b6bdf677573 26 DigitalOut connectionLed(LED1); //Accel OK LED
mvanendert 1:2b6bdf677573 27
mvanendert 1:2b6bdf677573 28 BusOut leds(LED1,LED2,LED3,LED4); //Leds op MBED zelf defineren
mvanendert 1:2b6bdf677573 29
mvanendert 1:2b6bdf677573 30 // // // // // // // // // // // // // // // // // // // //
mvanendert 1:2b6bdf677573 31 // // // // // // //*Variabelen aanmaken */ // // // // // // //
mvanendert 1:2b6bdf677573 32 float potentiometer1 = 0;
mvanendert 1:2b6bdf677573 33 float potentiometer2 = 0;
mvanendert 1:2b6bdf677573 34 float Xaxis = 0;
mvanendert 1:2b6bdf677573 35 float Yaxis = 0;
mvanendert 1:2b6bdf677573 36 float Zaxis = 0;
mvanendert 1:2b6bdf677573 37
mvanendert 1:2b6bdf677573 38 int modus = 0;
u0068206 0:e4782112c3fd 39 int alarm1 = 0;
u0068206 0:e4782112c3fd 40 int alarm2 = 0;
mvanendert 1:2b6bdf677573 41 int kleur = 0;
mvanendert 1:2b6bdf677573 42 int rood = 0;
mvanendert 1:2b6bdf677573 43 int groen = 0;
mvanendert 1:2b6bdf677573 44 int blauw = 0;
mvanendert 1:2b6bdf677573 45
mvanendert 1:2b6bdf677573 46 char orientation;
mvanendert 1:2b6bdf677573 47 char side;
u0068206 0:e4782112c3fd 48
mvanendert 1:2b6bdf677573 49 char Left;
mvanendert 1:2b6bdf677573 50 char Right;
mvanendert 1:2b6bdf677573 51 char Down;
mvanendert 1:2b6bdf677573 52 char Up;
mvanendert 1:2b6bdf677573 53 char Front;
mvanendert 1:2b6bdf677573 54 char Back;
mvanendert 1:2b6bdf677573 55
mvanendert 1:2b6bdf677573 56
mvanendert 1:2b6bdf677573 57 RPCVariable<float> rpc_ai1(&potentiometer1,"potentiometer1");
mvanendert 1:2b6bdf677573 58 RPCVariable<float> rpc_ai2(&potentiometer2,"potentiometer2");
u0068206 0:e4782112c3fd 59 RPCVariable<int> rpc_alarm1(&alarm1,"alarm1");
u0068206 0:e4782112c3fd 60 RPCVariable<int> rpc_alarm2(&alarm2,"alarm2");
mvanendert 1:2b6bdf677573 61
u0068206 0:e4782112c3fd 62 AnalogIn pot2(p19);
mvanendert 1:2b6bdf677573 63 AnalogIn pot1(p20);
mvanendert 1:2b6bdf677573 64
u0068206 0:e4782112c3fd 65 DigitalOut led(LED1);
u0068206 0:e4782112c3fd 66 DigitalOut led2(LED2);
u0068206 0:e4782112c3fd 67
mvanendert 1:2b6bdf677573 68 DigitalIn enter(p14);
mvanendert 1:2b6bdf677573 69
mvanendert 1:2b6bdf677573 70 PwmOut speaker(p26);
mvanendert 1:2b6bdf677573 71 PwmOut Zaxis_p(p23);
mvanendert 1:2b6bdf677573 72 PwmOut Zaxis_n(p24);
mvanendert 1:2b6bdf677573 73
mvanendert 1:2b6bdf677573 74 Servo Servo1(p21);
mvanendert 1:2b6bdf677573 75 Servo Servo2(p22);
mvanendert 1:2b6bdf677573 76
mvanendert 1:2b6bdf677573 77 void RGB_routine();
mvanendert 1:2b6bdf677573 78 void ReadPot();
mvanendert 1:2b6bdf677573 79 void Accelero();
mvanendert 1:2b6bdf677573 80 void Servosturing();
mvanendert 1:2b6bdf677573 81
mvanendert 1:2b6bdf677573 82 // // // // // // // // // // // // // // // // // // // //
mvanendert 1:2b6bdf677573 83 // // // // // // //*Begin van het hoofdprogramma */ // // // // //
u0068206 0:e4782112c3fd 84 int main() {
mvanendert 1:2b6bdf677573 85
mvanendert 1:2b6bdf677573 86 speaker.period(0.5);
mvanendert 1:2b6bdf677573 87 r.period(0.001);
mvanendert 1:2b6bdf677573 88 g.period(0.001);
mvanendert 1:2b6bdf677573 89 b.period(0.001);
mvanendert 1:2b6bdf677573 90
mvanendert 1:2b6bdf677573 91
mvanendert 1:2b6bdf677573 92 glcd.cls(); //Clear het display
mvanendert 1:2b6bdf677573 93 glcd.locate(0,3); //Zet de cursor op X = 0 & Y = 3
mvanendert 1:2b6bdf677573 94 glcd.printf("Project Misan"); //Zet "Project Misan" op het LCD
mvanendert 1:2b6bdf677573 95 wait(1); //Wacht 1 seconde
mvanendert 1:2b6bdf677573 96 glcd.printf("Use the joystick"); //Zet "Project Misan" op het LCD
mvanendert 1:2b6bdf677573 97
u0068206 0:e4782112c3fd 98 while (1){
mvanendert 1:2b6bdf677573 99
mvanendert 1:2b6bdf677573 100 if (fire)
mvanendert 1:2b6bdf677573 101 {
mvanendert 1:2b6bdf677573 102 while(fire){}
mvanendert 1:2b6bdf677573 103 modus = modus++;
mvanendert 1:2b6bdf677573 104 speaker = 0.5;
mvanendert 1:2b6bdf677573 105 }
mvanendert 1:2b6bdf677573 106
mvanendert 1:2b6bdf677573 107 switch (modus)
mvanendert 1:2b6bdf677573 108 {
mvanendert 1:2b6bdf677573 109 //RGB Controller
mvanendert 1:2b6bdf677573 110 case 0:
mvanendert 1:2b6bdf677573 111 glcd.cls(); //Clear het display
mvanendert 1:2b6bdf677573 112 glcd.locate(0,0); //Zet de cursor op X = 0 & Y = 0
mvanendert 1:2b6bdf677573 113 glcd.printf("RGB Led controller");
mvanendert 1:2b6bdf677573 114 RGB_routine();
mvanendert 1:2b6bdf677573 115 break;
mvanendert 1:2b6bdf677573 116
mvanendert 1:2b6bdf677573 117 //ADC Potentiometer
mvanendert 1:2b6bdf677573 118 case 1:
mvanendert 1:2b6bdf677573 119 glcd.cls(); //Clear het display
mvanendert 1:2b6bdf677573 120 glcd.locate(0,0);
mvanendert 1:2b6bdf677573 121 glcd.printf("Read Potentiometers");
mvanendert 1:2b6bdf677573 122 ReadPot();
mvanendert 1:2b6bdf677573 123 break;
mvanendert 1:2b6bdf677573 124
mvanendert 1:2b6bdf677573 125 //Accelerometer MMA7660
mvanendert 1:2b6bdf677573 126 case 2:
mvanendert 1:2b6bdf677573 127 glcd.cls(); //Clear het display
mvanendert 1:2b6bdf677573 128 glcd.locate(0,0);
mvanendert 1:2b6bdf677573 129 glcd.printf("MMM7660");
mvanendert 1:2b6bdf677573 130 glcd.locate(0,10);
mvanendert 1:2b6bdf677573 131 glcd.printf("Accelerometer");
mvanendert 1:2b6bdf677573 132 Accelero();
mvanendert 1:2b6bdf677573 133 break;
mvanendert 1:2b6bdf677573 134
mvanendert 1:2b6bdf677573 135 case 3:
mvanendert 1:2b6bdf677573 136 glcd.cls(); //Clear het display
mvanendert 1:2b6bdf677573 137 glcd.locate(0,0);
mvanendert 1:2b6bdf677573 138 glcd.printf("Servo");
mvanendert 1:2b6bdf677573 139 Servosturing();
mvanendert 1:2b6bdf677573 140 break;
mvanendert 1:2b6bdf677573 141 }
mvanendert 1:2b6bdf677573 142 }
mvanendert 1:2b6bdf677573 143 }
mvanendert 1:2b6bdf677573 144
mvanendert 1:2b6bdf677573 145
mvanendert 1:2b6bdf677573 146
mvanendert 1:2b6bdf677573 147
mvanendert 1:2b6bdf677573 148 // // // // // // // // // // // // // // // // // // // // // // // // //
mvanendert 1:2b6bdf677573 149 // // // // // // //* RGB routine voor kleurwijzigen met de Joystick */ // // // // //
mvanendert 1:2b6bdf677573 150 void RGB_routine()
mvanendert 1:2b6bdf677573 151 {
mvanendert 1:2b6bdf677573 152 if (up)
mvanendert 1:2b6bdf677573 153 {
mvanendert 1:2b6bdf677573 154 switch (kleur)
mvanendert 1:2b6bdf677573 155 {
mvanendert 1:2b6bdf677573 156 case 0:
mvanendert 1:2b6bdf677573 157 r = 1.0 - (rood += 0.05);
mvanendert 1:2b6bdf677573 158 break;
mvanendert 1:2b6bdf677573 159 case 1:
mvanendert 1:2b6bdf677573 160 g = 1.0 - (groen += 0.05);
mvanendert 1:2b6bdf677573 161 break;
mvanendert 1:2b6bdf677573 162 case 2:
mvanendert 1:2b6bdf677573 163 b = 1.0 - (blauw += 0.05);
mvanendert 1:2b6bdf677573 164 break;
u0068206 0:e4782112c3fd 165 }
mvanendert 1:2b6bdf677573 166
mvanendert 1:2b6bdf677573 167 }
mvanendert 1:2b6bdf677573 168
mvanendert 1:2b6bdf677573 169 if (down)
mvanendert 1:2b6bdf677573 170 {
mvanendert 1:2b6bdf677573 171 switch (kleur)
mvanendert 1:2b6bdf677573 172 {
mvanendert 1:2b6bdf677573 173 case 0:
mvanendert 1:2b6bdf677573 174 r = 1.0 - (rood -= 0.05);
mvanendert 1:2b6bdf677573 175 break;
mvanendert 1:2b6bdf677573 176 case 1:
mvanendert 1:2b6bdf677573 177 g = 1.0 - (groen -= 0.05);
mvanendert 1:2b6bdf677573 178 break;
mvanendert 1:2b6bdf677573 179 case 2:
mvanendert 1:2b6bdf677573 180 b = 1.0 - (blauw -= 0.05);
mvanendert 1:2b6bdf677573 181 break;
mvanendert 1:2b6bdf677573 182 }
mvanendert 1:2b6bdf677573 183 }
mvanendert 1:2b6bdf677573 184
mvanendert 1:2b6bdf677573 185 if (right)
mvanendert 1:2b6bdf677573 186 {
mvanendert 1:2b6bdf677573 187 switch (kleur)
mvanendert 1:2b6bdf677573 188 {
mvanendert 1:2b6bdf677573 189 case 0:
mvanendert 1:2b6bdf677573 190 kleur += 1;
mvanendert 1:2b6bdf677573 191 break;
mvanendert 1:2b6bdf677573 192 case 1:
mvanendert 1:2b6bdf677573 193 kleur += 1;
mvanendert 1:2b6bdf677573 194 break;
mvanendert 1:2b6bdf677573 195 case 2:
mvanendert 1:2b6bdf677573 196 kleur = 0;
mvanendert 1:2b6bdf677573 197 break;
mvanendert 1:2b6bdf677573 198 }
mvanendert 1:2b6bdf677573 199
u0068206 0:e4782112c3fd 200 }
mvanendert 1:2b6bdf677573 201
mvanendert 1:2b6bdf677573 202 if (left)
mvanendert 1:2b6bdf677573 203 {
mvanendert 1:2b6bdf677573 204 switch (kleur)
mvanendert 1:2b6bdf677573 205 {
mvanendert 1:2b6bdf677573 206 case 0:
mvanendert 1:2b6bdf677573 207 kleur = 2;
mvanendert 1:2b6bdf677573 208 break;
mvanendert 1:2b6bdf677573 209 case 1:
mvanendert 1:2b6bdf677573 210 kleur -= 1;
mvanendert 1:2b6bdf677573 211 break;
mvanendert 1:2b6bdf677573 212 case 2:
mvanendert 1:2b6bdf677573 213 kleur -= 1;
mvanendert 1:2b6bdf677573 214 break;
mvanendert 1:2b6bdf677573 215 }
mvanendert 1:2b6bdf677573 216
mvanendert 1:2b6bdf677573 217 }
mvanendert 1:2b6bdf677573 218 }
mvanendert 1:2b6bdf677573 219
mvanendert 1:2b6bdf677573 220 // // // // // // // // // // // // // // // // // // // // // // // // //
mvanendert 1:2b6bdf677573 221 // // // // // // //* Inlezen en visualiseren van de potentiometers */ // // // // //
mvanendert 1:2b6bdf677573 222 void ReadPot()
mvanendert 1:2b6bdf677573 223 {
mvanendert 1:2b6bdf677573 224 potentiometer1 = pot1; //steek de waarde van de Potentiometer1 in ai1
mvanendert 1:2b6bdf677573 225 potentiometer2 = pot2; //steek de waarde van de Potentiometer2 in ai2
mvanendert 1:2b6bdf677573 226
mvanendert 1:2b6bdf677573 227 glcd.cls();
mvanendert 1:2b6bdf677573 228 glcd.locate(0,0); //Zet de cursor op X = 0 & Y = 0
mvanendert 1:2b6bdf677573 229 glcd.printf("Pot 1: %f ", potentiometer1); //Print de waarde van de potententiometer 1 op het display
mvanendert 1:2b6bdf677573 230 glcd.locate(0,10); //Zet de cursor op X = 0 & Y = 10
mvanendert 1:2b6bdf677573 231 glcd.printf("Pot 2: %f ", potentiometer2); //Print de waarde van de potententiometer 2 op het display
mvanendert 1:2b6bdf677573 232 }
mvanendert 1:2b6bdf677573 233
mvanendert 1:2b6bdf677573 234
mvanendert 1:2b6bdf677573 235 void Accelero()
mvanendert 1:2b6bdf677573 236 {
mvanendert 1:2b6bdf677573 237 if (MMA.testConnection())
mvanendert 1:2b6bdf677573 238 {
mvanendert 1:2b6bdf677573 239 leds = 1;
mvanendert 1:2b6bdf677573 240 }
mvanendert 1:2b6bdf677573 241
mvanendert 1:2b6bdf677573 242 Xaxis = MMA.x();
mvanendert 1:2b6bdf677573 243 Yaxis = MMA.y();
mvanendert 1:2b6bdf677573 244 Zaxis = MMA.z();
mvanendert 1:2b6bdf677573 245
mvanendert 1:2b6bdf677573 246 glcd.cls();
mvanendert 1:2b6bdf677573 247 glcd.locate(0,0); //Zet de cursor op X = 0 & Y = 0
mvanendert 1:2b6bdf677573 248 glcd.printf("X-Axis: %f G", Xaxis);
mvanendert 1:2b6bdf677573 249 glcd.locate(0,9); //Zet de cursor op X = 0 & Y = 10
mvanendert 1:2b6bdf677573 250 glcd.printf("Y-Axis: %f G", Yaxis);
mvanendert 1:2b6bdf677573 251 glcd.locate(0,18); //Zet de cursor op X = 0 & Y = 18
mvanendert 1:2b6bdf677573 252 glcd.printf("Z-Axis: %f G", Zaxis);
mvanendert 1:2b6bdf677573 253 wait(1);
mvanendert 1:2b6bdf677573 254
mvanendert 1:2b6bdf677573 255 orientation = MMA.getOrientation();
mvanendert 1:2b6bdf677573 256 side = MMA.getSide();
mvanendert 1:2b6bdf677573 257
mvanendert 1:2b6bdf677573 258 glcd.locate(0,27); //Zet de cursor op X = 0 & Y = 0
mvanendert 1:2b6bdf677573 259 glcd.printf("Side: %s Orientation: %s", side, orientation);
mvanendert 1:2b6bdf677573 260 }
mvanendert 1:2b6bdf677573 261
mvanendert 1:2b6bdf677573 262
mvanendert 1:2b6bdf677573 263 void Servosturing()
mvanendert 1:2b6bdf677573 264 {
mvanendert 1:2b6bdf677573 265
mvanendert 1:2b6bdf677573 266 potentiometer1 = pot1; //steek de waarde van de Potentiometer1 in ai1
mvanendert 1:2b6bdf677573 267 potentiometer2 = pot2; //steek de waarde van de Potentiometer2 in ai2
mvanendert 1:2b6bdf677573 268 wait(0.1);
mvanendert 1:2b6bdf677573 269
mvanendert 1:2b6bdf677573 270 Servo1 = potentiometer1;
mvanendert 1:2b6bdf677573 271 Servo2 = potentiometer2;
mvanendert 1:2b6bdf677573 272
mvanendert 1:2b6bdf677573 273 glcd.cls();
mvanendert 1:2b6bdf677573 274 glcd.locate(0,0); //Zet de cursor op X = 0 & Y = 0
mvanendert 1:2b6bdf677573 275 glcd.printf("Servo-1: %f", Servo1);
mvanendert 1:2b6bdf677573 276 glcd.locate(0,10); //Zet de cursor op X = 0 & Y = 10
mvanendert 1:2b6bdf677573 277 glcd.printf("Servo-1: %f", Servo2);
mvanendert 1:2b6bdf677573 278
mvanendert 1:2b6bdf677573 279 wait(1);
mvanendert 1:2b6bdf677573 280 }
mvanendert 1:2b6bdf677573 281
mvanendert 1:2b6bdf677573 282
mvanendert 1:2b6bdf677573 283
mvanendert 1:2b6bdf677573 284
mvanendert 1:2b6bdf677573 285
mvanendert 1:2b6bdf677573 286
mvanendert 1:2b6bdf677573 287
mvanendert 1:2b6bdf677573 288
mvanendert 1:2b6bdf677573 289
mvanendert 1:2b6bdf677573 290
mvanendert 1:2b6bdf677573 291
mvanendert 1:2b6bdf677573 292
mvanendert 1:2b6bdf677573 293
mvanendert 1:2b6bdf677573 294
mvanendert 1:2b6bdf677573 295
mvanendert 1:2b6bdf677573 296
mvanendert 1:2b6bdf677573 297
mvanendert 1:2b6bdf677573 298
mvanendert 1:2b6bdf677573 299
mvanendert 1:2b6bdf677573 300 /*switch (side)
mvanendert 1:2b6bdf677573 301 {
mvanendert 1:2b6bdf677573 302 case "Front":
mvanendert 1:2b6bdf677573 303 switch (orientation)
mvanendert 1:2b6bdf677573 304 {
mvanendert 1:2b6bdf677573 305 case "Left":
mvanendert 1:2b6bdf677573 306 glcd.locate(0,27); //Zet de cursor op X = 0 & Y = 10
mvanendert 1:2b6bdf677573 307 glcd.printf("Front Left");
mvanendert 1:2b6bdf677573 308 break;
mvanendert 1:2b6bdf677573 309
mvanendert 1:2b6bdf677573 310 case "Right":
mvanendert 1:2b6bdf677573 311 glcd.locate(0,27); //Zet de cursor op X = 0 & Y = 10
mvanendert 1:2b6bdf677573 312 glcd.printf("Front Right");
mvanendert 1:2b6bdf677573 313 break;
mvanendert 1:2b6bdf677573 314
mvanendert 1:2b6bdf677573 315 case "Down":
mvanendert 1:2b6bdf677573 316 glcd.locate(0,27); //Zet de cursor op X = 0 & Y = 10
mvanendert 1:2b6bdf677573 317 glcd.printf("Front Down");
mvanendert 1:2b6bdf677573 318 break;
mvanendert 1:2b6bdf677573 319
mvanendert 1:2b6bdf677573 320 case "Up":
mvanendert 1:2b6bdf677573 321 glcd.locate(0,27); //Zet de cursor op X = 0 & Y = 10
mvanendert 1:2b6bdf677573 322 glcd.printf("Front Up");
mvanendert 1:2b6bdf677573 323 break;
mvanendert 1:2b6bdf677573 324 }
mvanendert 1:2b6bdf677573 325 break;
mvanendert 1:2b6bdf677573 326
mvanendert 1:2b6bdf677573 327
mvanendert 1:2b6bdf677573 328 case "Back":
mvanendert 1:2b6bdf677573 329 switch (orientation)
mvanendert 1:2b6bdf677573 330 {
mvanendert 1:2b6bdf677573 331 case "Left":
mvanendert 1:2b6bdf677573 332 glcd.locate(0,27); //Zet de cursor op X = 0 & Y = 10
mvanendert 1:2b6bdf677573 333 glcd.printf("Back Left");
mvanendert 1:2b6bdf677573 334 break;
mvanendert 1:2b6bdf677573 335
mvanendert 1:2b6bdf677573 336 case "Right":
mvanendert 1:2b6bdf677573 337 glcd.locate(0,27); //Zet de cursor op X = 0 & Y = 10
mvanendert 1:2b6bdf677573 338 glcd.printf("Back Right");
mvanendert 1:2b6bdf677573 339 break;
mvanendert 1:2b6bdf677573 340
mvanendert 1:2b6bdf677573 341 case "Down":
mvanendert 1:2b6bdf677573 342 glcd.locate(0,27); //Zet de cursor op X = 0 & Y = 10
mvanendert 1:2b6bdf677573 343 glcd.printf("Back Down");
mvanendert 1:2b6bdf677573 344 break;
mvanendert 1:2b6bdf677573 345
mvanendert 1:2b6bdf677573 346 case "Up":
mvanendert 1:2b6bdf677573 347 glcd.locate(0,27); //Zet de cursor op X = 0 & Y = 10
mvanendert 1:2b6bdf677573 348 glcd.printf("Back Up");
mvanendert 1:2b6bdf677573 349 break;
mvanendert 1:2b6bdf677573 350 }
mvanendert 1:2b6bdf677573 351 break;
mvanendert 1:2b6bdf677573 352 } */
mvanendert 1:2b6bdf677573 353