Juggler Position Control Parsing

Dependencies:   MODSERIAL mbed Servo

Fork of juggler_mbed_position_control by Robert Katzschmann

Committer:
Symplectomorphism
Date:
Sun Jan 15 02:43:07 2017 +0000
Revision:
1:153ce28ac5ed
Parent:
0:1b69f8402884
Child:
2:b4aef96e0cd7
serial code

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"
Symplectomorphism 1:153ce28ac5ed 4 #include <stdlib.h>
Symplectomorphism 1:153ce28ac5ed 5 #include <stdio.h>
Symplectomorphism 1:153ce28ac5ed 6 #include <math.h>
rkk 0:1b69f8402884 7
rkk 0:1b69f8402884 8 #define NUM_FLOATS 10
rkk 0:1b69f8402884 9
rkk 0:1b69f8402884 10
rkk 0:1b69f8402884 11 MODSERIAL pcSerial(USBTX, USBRX);
rkk 0:1b69f8402884 12
rkk 0:1b69f8402884 13 // Initialize a pins t//o perform analog and digital output fucntions
rkk 0:1b69f8402884 14 AnalogOut aout(p18);
Symplectomorphism 1:153ce28ac5ed 15 PwmOut led1(LED1);
Symplectomorphism 1:153ce28ac5ed 16 // DigitalOut led2(LED2);
rkk 0:1b69f8402884 17 //DigitalOut led3(LED3);
Symplectomorphism 1:153ce28ac5ed 18 Ticker aTimer;
rkk 0:1b69f8402884 19
rkk 0:1b69f8402884 20 //Serial pc(USBTX, USBRX);
rkk 0:1b69f8402884 21 float valueFloats[NUM_FLOATS];
rkk 0:1b69f8402884 22 float voltage;
rkk 0:1b69f8402884 23
rkk 0:1b69f8402884 24 SerialComm serialComm(&pcSerial);
rkk 0:1b69f8402884 25
Symplectomorphism 1:153ce28ac5ed 26 bool readyToSendNext;
rkk 0:1b69f8402884 27
Symplectomorphism 1:153ce28ac5ed 28 void timerFcn()
Symplectomorphism 1:153ce28ac5ed 29 {
Symplectomorphism 1:153ce28ac5ed 30 readyToSendNext = true;
Symplectomorphism 1:153ce28ac5ed 31 }
rkk 0:1b69f8402884 32
rkk 0:1b69f8402884 33
rkk 0:1b69f8402884 34 int main(void)
rkk 0:1b69f8402884 35 {
Symplectomorphism 1:153ce28ac5ed 36
Symplectomorphism 1:153ce28ac5ed 37 float fReceived = 0;
Symplectomorphism 1:153ce28ac5ed 38 float fToSend = 0;
Symplectomorphism 1:153ce28ac5ed 39 pcSerial.baud(115200);
rkk 0:1b69f8402884 40 pcSerial.printf("Start!\n");
Symplectomorphism 1:153ce28ac5ed 41
Symplectomorphism 1:153ce28ac5ed 42 /*
rkk 0:1b69f8402884 43 while(true) {
rkk 0:1b69f8402884 44 if(serialComm.checkIfNewMessage()) {
rkk 0:1b69f8402884 45 valueFloats[0] = serialComm.getFloat();//valueFloats, NUM_FLOATS);
rkk 0:1b69f8402884 46 led2 = !led2;
rkk 0:1b69f8402884 47
rkk 0:1b69f8402884 48 voltage = (abs(valueFloats[0]) > 3.3f) ? 3.3f : abs(valueFloats[0]);
rkk 0:1b69f8402884 49 aout = voltage / 3.3f;
rkk 0:1b69f8402884 50 // turn on the led if the voltage is greater than 0.5f * VCC
rkk 0:1b69f8402884 51 led1 = (aout > 0.5f) ? 1 : 0; // voltage larger than 0.5*3.3
rkk 0:1b69f8402884 52
rkk 0:1b69f8402884 53 }
rkk 0:1b69f8402884 54 wait(1.0f);
Symplectomorphism 1:153ce28ac5ed 55 }*/
Symplectomorphism 1:153ce28ac5ed 56 //int i = 0;
Symplectomorphism 1:153ce28ac5ed 57 readyToSendNext = false;
Symplectomorphism 1:153ce28ac5ed 58 aTimer.attach(&timerFcn, 0.002); // the address of the function to be attached (flip) and the interval (2 seconds)
Symplectomorphism 1:153ce28ac5ed 59
Symplectomorphism 1:153ce28ac5ed 60 while(1) {
Symplectomorphism 1:153ce28ac5ed 61 if(serialComm.checkIfNewMessage())
Symplectomorphism 1:153ce28ac5ed 62 {
Symplectomorphism 1:153ce28ac5ed 63 fReceived = serialComm.getFloat();
Symplectomorphism 1:153ce28ac5ed 64 }
Symplectomorphism 1:153ce28ac5ed 65 //
Symplectomorphism 1:153ce28ac5ed 66 if(readyToSendNext == true)
Symplectomorphism 1:153ce28ac5ed 67 {
Symplectomorphism 1:153ce28ac5ed 68 fToSend = fReceived; // / 3.3f;
Symplectomorphism 1:153ce28ac5ed 69 //led1 = fToSend; // voltage larger than 0.5*3.3
Symplectomorphism 1:153ce28ac5ed 70
Symplectomorphism 1:153ce28ac5ed 71 //i++;
Symplectomorphism 1:153ce28ac5ed 72 // led1 = (ftemp > 0.5f) ? !led1 : 0; // voltage larger than 0.5*3.3
Symplectomorphism 1:153ce28ac5ed 73 serialComm.sendFloat(fToSend); // write it back
Symplectomorphism 1:153ce28ac5ed 74 readyToSendNext = false;
Symplectomorphism 1:153ce28ac5ed 75 }
Symplectomorphism 1:153ce28ac5ed 76
Symplectomorphism 1:153ce28ac5ed 77 // float testFloat = 0.1*i;
Symplectomorphism 1:153ce28ac5ed 78
Symplectomorphism 1:153ce28ac5ed 79
Symplectomorphism 1:153ce28ac5ed 80 //wait(0.01f);
rkk 0:1b69f8402884 81 }
rkk 0:1b69f8402884 82 }