
Juggler Position Control Parsing
Dependencies: MODSERIAL mbed Servo
Fork of juggler_mbed_position_control by
main.cpp@0:1b69f8402884, 2017-01-09 (annotated)
- 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?
User | Revision | Line number | New 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 | } |