Juggler Position Control Parsing

Dependencies:   MODSERIAL mbed Servo

Fork of juggler_mbed_position_control by Robert Katzschmann

Committer:
rkk
Date:
Mon Jan 09 00:33:14 2017 +0000
Revision:
0:1b69f8402884
Child:
1:153ce28ac5ed
juggler position control;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rkk 0:1b69f8402884 1 #include "mbed.h"
rkk 0:1b69f8402884 2 #include "MODSERIAL/MODSERIAL.h"
rkk 0:1b69f8402884 3 #include "SerialComm/SerialComm.h"
rkk 0:1b69f8402884 4
rkk 0:1b69f8402884 5 #define NUM_FLOATS 10
rkk 0:1b69f8402884 6
rkk 0:1b69f8402884 7
rkk 0:1b69f8402884 8 MODSERIAL pcSerial(USBTX, USBRX);
rkk 0:1b69f8402884 9
rkk 0:1b69f8402884 10 // Initialize a pins t//o perform analog and digital output fucntions
rkk 0:1b69f8402884 11 AnalogOut aout(p18);
rkk 0:1b69f8402884 12 DigitalOut led1(LED1);
rkk 0:1b69f8402884 13 DigitalOut led2(LED2);
rkk 0:1b69f8402884 14 //DigitalOut led3(LED3);
rkk 0:1b69f8402884 15
rkk 0:1b69f8402884 16 //Serial pc(USBTX, USBRX);
rkk 0:1b69f8402884 17 float valueFloats[NUM_FLOATS];
rkk 0:1b69f8402884 18 float voltage;
rkk 0:1b69f8402884 19
rkk 0:1b69f8402884 20 SerialComm serialComm(&pcSerial);
rkk 0:1b69f8402884 21
rkk 0:1b69f8402884 22
rkk 0:1b69f8402884 23
rkk 0:1b69f8402884 24
rkk 0:1b69f8402884 25 int main(void)
rkk 0:1b69f8402884 26 {
rkk 0:1b69f8402884 27 pcSerial.printf("Start!\n");
rkk 0:1b69f8402884 28 //pcSerial.baud(19200);
rkk 0:1b69f8402884 29
rkk 0:1b69f8402884 30 while(true) {
rkk 0:1b69f8402884 31 if(serialComm.checkIfNewMessage()) {
rkk 0:1b69f8402884 32 valueFloats[0] = serialComm.getFloat();//valueFloats, NUM_FLOATS);
rkk 0:1b69f8402884 33 led2 = !led2;
rkk 0:1b69f8402884 34 //pcSerial.printf("Result: ");
rkk 0:1b69f8402884 35 //pcSerial.printf("%f", valueFloats[0]);
rkk 0:1b69f8402884 36
rkk 0:1b69f8402884 37 // change the voltage on the digital output pin by 0.1 * VCC
rkk 0:1b69f8402884 38 // and print what the measured voltage should be (assuming VCC = 3.3v)
rkk 0:1b69f8402884 39 //for (float i = 0.0f; i < 1.0f; i += 0.1f) {
rkk 0:1b69f8402884 40 voltage = (abs(valueFloats[0]) > 3.3f) ? 3.3f : abs(valueFloats[0]);
rkk 0:1b69f8402884 41 aout = voltage / 3.3f;
rkk 0:1b69f8402884 42 //pc.printf("aout = %1.2f volts\n", aout.read() * 3.3f);
rkk 0:1b69f8402884 43 // turn on the led if the voltage is greater than 0.5f * VCC
rkk 0:1b69f8402884 44 led1 = (aout > 0.5f) ? 1 : 0; // voltage larger than 0.5*3.3
rkk 0:1b69f8402884 45 //led3 = !led3;
rkk 0:1b69f8402884 46
rkk 0:1b69f8402884 47 }
rkk 0:1b69f8402884 48 wait(1.0f);
rkk 0:1b69f8402884 49 }
rkk 0:1b69f8402884 50 }