Dependencies:   Farbsensor IRSensorLib PID_Control Servo mbed PixyLib

main.cpp

Committer:
ZHAW_Prometheus
Date:
2017-05-18
Revision:
8:077d0bb213a2
Parent:
7:5949f408b6da
Child:
9:b83994ef4b08

File content as of revision 8:077d0bb213a2:

#include "mbed.h"
#include "cstdlib"
#include "IRSensor.h"
#include "Servo.h"
//#include "Pixy.h"
#include "Farbauswertung.h"
#include "Fahren.h"
#include "liftAnsteuerung.h"
#include "Pixy.h"
#include "PID_Control.h"

/**
*Aus- und Eingänge initialisieren
*/
//Button
DigitalIn   usrButton(USER_BUTTON);
//IRSensoren
DigitalOut  enable(PC_1);
DigitalOut  bit0(PH_1);
DigitalOut  bit1(PC_2);
DigitalOut  bit2(PC_3);
AnalogIn    distance(PB_1);
//Motoren
DigitalOut  enableMotorDriver(PB_2);
PwmOut      pwmLeft(PA_8);
PwmOut      pwmRight(PA_9);
//LED's
DigitalOut  led0(PC_8);
DigitalOut  led1(PC_6);
DigitalOut  led5(PC_9);
DigitalOut  led3(PA_7);
//Farbauswertung
AnalogIn    SensorG(PA_0);
AnalogIn    SensorR(PA_1);
Servo       ServoAusw(PB_7);
Servo       ServoFoerder(PC_7);
//Lift
Servo       ServoLift(PA_6);
//Kamera

//Serielle Ausgabe
Serial          pc(SERIAL_TX,SERIAL_RX);

//Kamera
Serial          cam(PC_5, PB_10);
Pixy            pixy(cam);
PID_Control     pid;

//Robotersteuerung
Farbauswertung  farbauswertung(&SensorG, &SensorR, &ServoAusw);
Fahren          fahren(&enable, &bit0, &bit1, &bit2, &distance, &enableMotorDriver, &pwmLeft, &pwmRight, &pixy, &pid);
LiftAnsteuerung lift(100, 10, &ServoLift);


int main() 
{
    farbauswertung.setSerialOutput(&pc);
    fahren.setSerialOutput(&pc);
    pid.setPIDValues( 0.001f, 0.001f, 0.00015f, 0.3f, -0.3f, 1000);
    
    //ServoLift = 1.2f; //1.2
    ServoFoerder = 0.1f; //0.1
    
    fahren.fahrInit();
    
    //Ticker camausw;
    //camausw.attach(&cam, &Camauswertung::auswertung, 0.5);
    
    Ticker farbe;
    farbe.attach(&farbauswertung, &Farbauswertung::auswertung, 0.01);
    
    Ticker drive;
    drive.attach(&fahren, &Fahren::fahrRutine, 0.01);
    
    Ticker elevator;
    elevator.attach(&lift, &LiftAnsteuerung::steuerung, 0.01);
    
    
    
    while (1) {
        
        wait(0.001);
    }
}