Danielle Kruijver / Mbed 2 deprecated Controll_SBT_main

Dependencies:   mbed mbed-rtos

Committer:
DanielleKruijver
Date:
Fri Apr 12 09:55:53 2019 +0000
Revision:
1:3d46a0660d05
Parent:
0:3fbb3fa4ff64
Main SBT controllll

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Awiegmink 0:3fbb3fa4ff64 1 /*
Awiegmink 0:3fbb3fa4ff64 2 * To change this license header, choose License Headers in Project Properties.
Awiegmink 0:3fbb3fa4ff64 3 * To change this template file, choose Tools | Templates
Awiegmink 0:3fbb3fa4ff64 4 * and open the template in the editor.
Awiegmink 0:3fbb3fa4ff64 5 */
Awiegmink 0:3fbb3fa4ff64 6
Awiegmink 0:3fbb3fa4ff64 7 /*
Awiegmink 0:3fbb3fa4ff64 8 * File: main.cpp
Awiegmink 0:3fbb3fa4ff64 9 * Author: kwieg
Awiegmink 0:3fbb3fa4ff64 10 *
Awiegmink 0:3fbb3fa4ff64 11 * Created on February 28, 2019, 7:54 PM
Awiegmink 0:3fbb3fa4ff64 12 */
Awiegmink 0:3fbb3fa4ff64 13
Awiegmink 0:3fbb3fa4ff64 14 #include <cstdlib>
Awiegmink 0:3fbb3fa4ff64 15 #include <math.h>
Awiegmink 0:3fbb3fa4ff64 16 #include "mbed.h"
DanielleKruijver 1:3d46a0660d05 17 #include "rtos.h"
Awiegmink 0:3fbb3fa4ff64 18 #include "Sensor.h"
Awiegmink 0:3fbb3fa4ff64 19 #include "Filtered_data.h"
Awiegmink 0:3fbb3fa4ff64 20 #include "DataStore.h"
Awiegmink 0:3fbb3fa4ff64 21 #include "ComplementaryFilter.h"
Awiegmink 0:3fbb3fa4ff64 22 #include "PID_caller.h"
Awiegmink 0:3fbb3fa4ff64 23 #include "Force_to_wing_angle.h"
DanielleKruijver 1:3d46a0660d05 24 #include "Daan_Test1_maxon.h"
DanielleKruijver 1:3d46a0660d05 25 #include "Move.h"
DanielleKruijver 1:3d46a0660d05 26
Awiegmink 0:3fbb3fa4ff64 27 //DigitalIn button(USER_BUTTON);
Awiegmink 0:3fbb3fa4ff64 28 DigitalOut led(LED2);
Awiegmink 0:3fbb3fa4ff64 29 using namespace std;
Awiegmink 0:3fbb3fa4ff64 30
DanielleKruijver 1:3d46a0660d05 31 RawSerial pc(SERIAL_TX,SERIAL_RX);
DanielleKruijver 1:3d46a0660d05 32 CAN can(PB_8,PB_9); //NOG CHECKEN!!!
DanielleKruijver 1:3d46a0660d05 33
DanielleKruijver 1:3d46a0660d05 34 EPOS epos1(1);
DanielleKruijver 1:3d46a0660d05 35 EPOS epos2(2);
DanielleKruijver 1:3d46a0660d05 36 EPOS epos4(4);
DanielleKruijver 1:3d46a0660d05 37
DanielleKruijver 1:3d46a0660d05 38 Thread thread1;
DanielleKruijver 1:3d46a0660d05 39 Thread thread2;
DanielleKruijver 1:3d46a0660d05 40 Thread thread4;
DanielleKruijver 1:3d46a0660d05 41 /* -----------------------------------------------------------------------------
DanielleKruijver 1:3d46a0660d05 42 Main
DanielleKruijver 1:3d46a0660d05 43 ----------------------------------------------------------------------------- */
Awiegmink 0:3fbb3fa4ff64 44 int main(int argc, char** argv) {
DanielleKruijver 1:3d46a0660d05 45 pc.baud(921600);
DanielleKruijver 1:3d46a0660d05 46 can.frequency(250000); //NOG AANPASSEN IN EPOS COMPUTER PROGRAMMA ZODAT DE CAN FREQUENCY OP MOTORCONTROLLER OVEREENKOMT MET DIE VAN DE MASTER!! -> value 3
DanielleKruijver 1:3d46a0660d05 47 pc.printf("startup: \r\n");
DanielleKruijver 1:3d46a0660d05 48
Awiegmink 0:3fbb3fa4ff64 49 // Maak de objecten.
Awiegmink 0:3fbb3fa4ff64 50 DataStore * ruwe_data = new DataStore();
Awiegmink 0:3fbb3fa4ff64 51 DataStore * filtered_data = new DataStore();
Awiegmink 0:3fbb3fa4ff64 52 DataStore * complementary_data= new DataStore();
Awiegmink 0:3fbb3fa4ff64 53 DataStore * pid_data = new DataStore();
Awiegmink 0:3fbb3fa4ff64 54 DataStore * FtoW_data = new DataStore();
Awiegmink 0:3fbb3fa4ff64 55 Sensor * de_sensor = new Sensor();
Awiegmink 0:3fbb3fa4ff64 56 RuwDataFilter * filter = new RuwDataFilter();
Awiegmink 0:3fbb3fa4ff64 57 ComplementaryFilter * com_filter = new ComplementaryFilter();
DanielleKruijver 1:3d46a0660d05 58 PID_caller * PID = new PID_caller();
Awiegmink 0:3fbb3fa4ff64 59 control::ForceToWingAngle * FtoW = new control::ForceToWingAngle();
DanielleKruijver 1:3d46a0660d05 60 MOVE * moving = new MOVE();
Awiegmink 0:3fbb3fa4ff64 61
Awiegmink 0:3fbb3fa4ff64 62 // De associaties, de verbindingen tussen de objecten.
Awiegmink 0:3fbb3fa4ff64 63 de_sensor->m_ruwe_state_data = ruwe_data; // (1)
Awiegmink 0:3fbb3fa4ff64 64 filter->m_ruwe_state_data = ruwe_data; // (2)
Awiegmink 0:3fbb3fa4ff64 65 filter->m_filtered_data = filtered_data; // (3)
Awiegmink 0:3fbb3fa4ff64 66 com_filter->m_filtered_data = filtered_data; //(4)
Awiegmink 0:3fbb3fa4ff64 67 com_filter->m_complementary_data = complementary_data; //(5)
DanielleKruijver 1:3d46a0660d05 68 PID->m_complementary_data = complementary_data; //(6)
DanielleKruijver 1:3d46a0660d05 69 PID->m_PID_data = pid_data; //(7)
DanielleKruijver 1:3d46a0660d05 70 FtoW->m_complementary_data = complementary_data; //(8)
DanielleKruijver 1:3d46a0660d05 71 FtoW->m_PID_data = pid_data; //(9)
DanielleKruijver 1:3d46a0660d05 72 FtoW->m_FtoW_data = FtoW_data; //(10)
DanielleKruijver 1:3d46a0660d05 73 moving->m_FtoW_data = FtoW_data; //(11)
DanielleKruijver 1:3d46a0660d05 74
DanielleKruijver 1:3d46a0660d05 75 /* -----------------------------------------------------------------------------
DanielleKruijver 1:3d46a0660d05 76 All three motors are going to home.
DanielleKruijver 1:3d46a0660d05 77 ----------------------------------------------------------------------------- */
DanielleKruijver 1:3d46a0660d05 78 thread4.start(&epos4,&EPOS::Homing);
DanielleKruijver 1:3d46a0660d05 79 wait(15);
DanielleKruijver 1:3d46a0660d05 80
DanielleKruijver 1:3d46a0660d05 81 thread2.start(&epos2,&EPOS::Homing); //start de functie Homing
DanielleKruijver 1:3d46a0660d05 82 wait(15);
DanielleKruijver 1:3d46a0660d05 83 //Thread::wait(1);
DanielleKruijver 1:3d46a0660d05 84
DanielleKruijver 1:3d46a0660d05 85 thread1.start(&epos1,&EPOS::Homing); //start de functie Homing
DanielleKruijver 1:3d46a0660d05 86 wait(20);//Thread::wait(100); //was 100
DanielleKruijver 1:3d46a0660d05 87
DanielleKruijver 1:3d46a0660d05 88 thread4.join();
DanielleKruijver 1:3d46a0660d05 89 thread2.join();
DanielleKruijver 1:3d46a0660d05 90 thread1.join();
DanielleKruijver 1:3d46a0660d05 91 wait(20);
DanielleKruijver 1:3d46a0660d05 92
DanielleKruijver 1:3d46a0660d05 93 /* -----------------------------------------------------------------------------
DanielleKruijver 1:3d46a0660d05 94 All three motors are going in the startpositionmode.
DanielleKruijver 1:3d46a0660d05 95 ----------------------------------------------------------------------------- */
DanielleKruijver 1:3d46a0660d05 96 thread1.start(&epos1,&EPOS::StartPositionMode);
DanielleKruijver 1:3d46a0660d05 97 Thread::wait(1000); //was 1000
Awiegmink 0:3fbb3fa4ff64 98
Awiegmink 0:3fbb3fa4ff64 99
DanielleKruijver 1:3d46a0660d05 100 thread2.start(&epos2,&EPOS::StartPositionMode);
DanielleKruijver 1:3d46a0660d05 101 Thread::wait(1000); //was 1000
DanielleKruijver 1:3d46a0660d05 102
DanielleKruijver 1:3d46a0660d05 103
DanielleKruijver 1:3d46a0660d05 104 thread4.start(&epos4,&EPOS::StartPositionMode);
DanielleKruijver 1:3d46a0660d05 105 Thread::wait(1000);
DanielleKruijver 1:3d46a0660d05 106
DanielleKruijver 1:3d46a0660d05 107 thread4.join();
DanielleKruijver 1:3d46a0660d05 108 thread2.join();
DanielleKruijver 1:3d46a0660d05 109 thread1.join();
DanielleKruijver 1:3d46a0660d05 110 wait(20);
DanielleKruijver 1:3d46a0660d05 111
Awiegmink 0:3fbb3fa4ff64 112 de_sensor->get_data();
Awiegmink 0:3fbb3fa4ff64 113 int N=0;
DanielleKruijver 1:3d46a0660d05 114 while (N < 2) {
Awiegmink 0:3fbb3fa4ff64 115 led = !led;
Awiegmink 0:3fbb3fa4ff64 116 filter->FilterIt();
Awiegmink 0:3fbb3fa4ff64 117 com_filter->CalculateRealHeight();
Awiegmink 0:3fbb3fa4ff64 118 PID->PID_in();
Awiegmink 0:3fbb3fa4ff64 119 FtoW->MMA();
DanielleKruijver 1:3d46a0660d05 120 moving->Move();
Awiegmink 0:3fbb3fa4ff64 121 de_sensor->get_data();
Awiegmink 0:3fbb3fa4ff64 122 N=N+1;
Awiegmink 0:3fbb3fa4ff64 123 }
Awiegmink 0:3fbb3fa4ff64 124
Awiegmink 0:3fbb3fa4ff64 125 // Als de klus klaar is ruim de objecten op.
Awiegmink 0:3fbb3fa4ff64 126 delete (ruwe_data);
Awiegmink 0:3fbb3fa4ff64 127 delete (filtered_data);
Awiegmink 0:3fbb3fa4ff64 128 delete (pid_data);
Awiegmink 0:3fbb3fa4ff64 129 delete (de_sensor);
Awiegmink 0:3fbb3fa4ff64 130 delete (filter);
Awiegmink 0:3fbb3fa4ff64 131 delete (complementary_data);
Awiegmink 0:3fbb3fa4ff64 132 delete (PID);
Awiegmink 0:3fbb3fa4ff64 133 delete (com_filter);
Awiegmink 0:3fbb3fa4ff64 134 delete (FtoW);
DanielleKruijver 1:3d46a0660d05 135 delete (moving);
Awiegmink 0:3fbb3fa4ff64 136
Awiegmink 0:3fbb3fa4ff64 137 return 0;
Awiegmink 0:3fbb3fa4ff64 138 }