Nicolae Marton / Mbed 2 deprecated TDP3_OOP

Dependencies:   mbed

Committer:
Nicolaemf
Date:
Wed Feb 06 14:02:07 2019 +0000
Revision:
4:645b5d648c64
Parent:
3:54c41af9e119
Child:
5:bb0bec710c91
Removed RobotControl from IR sensor;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Nicolaemf 0:a02a278513d9 1 #include <mbed.h>
Nicolaemf 0:a02a278513d9 2 #include "RobotControl_H.h"
Nicolaemf 1:a2ceed49374e 3 #include "IRSensor_H.h"
Nicolaemf 0:a02a278513d9 4
Nicolaemf 2:74d8b693bc62 5 /*
Nicolaemf 2:74d8b693bc62 6 Team Design Project 3 Group 1 : Create a Line Following Robot
Nicolaemf 0:a02a278513d9 7
Nicolaemf 2:74d8b693bc62 8 -----PINOUT-----
Nicolaemf 2:74d8b693bc62 9
Nicolaemf 2:74d8b693bc62 10 IR Sensor Pinout :
Nicolaemf 2:74d8b693bc62 11 - Left Sensor : PTC6
Nicolaemf 2:74d8b693bc62 12 - Middle Left Sensor : PTC5
Nicolaemf 2:74d8b693bc62 13 - Middle Sensor : PTC4
Nicolaemf 2:74d8b693bc62 14 - Middle Right Sensor : PTC3
Nicolaemf 2:74d8b693bc62 15 - Right Sensor : PTC0
Nicolaemf 2:74d8b693bc62 16
Nicolaemf 2:74d8b693bc62 17 Motor Left Control :
Nicolaemf 2:74d8b693bc62 18 - Motor Enable : PTA12
Nicolaemf 2:74d8b693bc62 19 - Backwards PWM : PTA4
Nicolaemf 2:74d8b693bc62 20 - Forward PWM : PTA5
Nicolaemf 2:74d8b693bc62 21
Nicolaemf 4:645b5d648c64 22 Motor Right Control :
Nicolaemf 2:74d8b693bc62 23 - Motor Enable : PTA13
Nicolaemf 2:74d8b693bc62 24 - Backwards PWM : PTD5
Nicolaemf 2:74d8b693bc62 25 - Forward PWM : PTD0
Nicolaemf 2:74d8b693bc62 26
Nicolaemf 2:74d8b693bc62 27 -----ARCHITECTURE-----
Nicolaemf 2:74d8b693bc62 28
Nicolaemf 2:74d8b693bc62 29 RobotControl:
Nicolaemf 2:74d8b693bc62 30 Class which controls the speed and Direction of the Robot
Nicolaemf 2:74d8b693bc62 31
Nicolaemf 2:74d8b693bc62 32 IRSensor :
Nicolaemf 2:74d8b693bc62 33 Class which deals with sampling the IR sensors and with the PID Calculations
Nicolaemf 2:74d8b693bc62 34 The sampling happens every 10 ms thanks to the IRsampling Ticker
Nicolaemf 2:74d8b693bc62 35
Nicolaemf 2:74d8b693bc62 36 */
Nicolaemf 2:74d8b693bc62 37
Nicolaemf 2:74d8b693bc62 38
Nicolaemf 2:74d8b693bc62 39
Nicolaemf 2:74d8b693bc62 40 Ticker IRsampling;
Nicolaemf 0:a02a278513d9 41
Nicolaemf 0:a02a278513d9 42
Nicolaemf 0:a02a278513d9 43
Nicolaemf 0:a02a278513d9 44 int main(){
Nicolaemf 0:a02a278513d9 45
Nicolaemf 2:74d8b693bc62 46
Nicolaemf 1:a2ceed49374e 47 bool toggleIR;
Nicolaemf 1:a2ceed49374e 48
Nicolaemf 1:a2ceed49374e 49 IRSensor IRSensor(PTC6, PTC5, PTC4, PTC3, PTC0, 0.0, 0.0, 0.0);
Nicolaemf 1:a2ceed49374e 50
Nicolaemf 2:74d8b693bc62 51 IRsampling.attach(callback(&IRSensor, &IRSensor::Sample), 0.01);
Nicolaemf 0:a02a278513d9 52
Nicolaemf 2:74d8b693bc62 53 //initialise the class twice, one controls the left part and the other the right
Nicolaemf 2:74d8b693bc62 54 RobotControl controlLeft(PTA12,PTA4,PTA5);
Nicolaemf 2:74d8b693bc62 55 RobotControl controlRight(PTA13,PTD5,PTD0);
Nicolaemf 0:a02a278513d9 56
Nicolaemf 0:a02a278513d9 57
Nicolaemf 0:a02a278513d9 58
Nicolaemf 0:a02a278513d9 59 while(1){
Nicolaemf 1:a2ceed49374e 60
Nicolaemf 2:74d8b693bc62 61 //waits for an interrupt to occur, then performs all the calculations
Nicolaemf 1:a2ceed49374e 62 if(toggleIR != IRSensor.m_toggle){
Nicolaemf 2:74d8b693bc62 63
Nicolaemf 4:645b5d648c64 64 //IRSensor.WeightPID();
Nicolaemf 4:645b5d648c64 65 //IRSensor.CalculatePID();
Nicolaemf 1:a2ceed49374e 66 IRSensor.MotorControl(controlLeft,controlRight);
Nicolaemf 2:74d8b693bc62 67
Nicolaemf 4:645b5d648c64 68 if(IRSensor.m_dirL != IRSensor.m_prevDirL) controlLeft.SetDirection(IRSensor.m_dirL);
Nicolaemf 4:645b5d648c64 69 if(IRSensor.m_dirR != IRSensor.m_prevDirR) controlRight.SetDirection(IRSensor.m_dirR);
Nicolaemf 4:645b5d648c64 70
Nicolaemf 4:645b5d648c64 71 controlLeft.SetSpeed(abs(IRSensor.m_speedL));
Nicolaemf 4:645b5d648c64 72 controlRight.SetSpeed(abs(IRSensor.m_speedR));
Nicolaemf 4:645b5d648c64 73
Nicolaemf 4:645b5d648c64 74 IRSensor.m_prevDirL = IRSensor.m_dirL;
Nicolaemf 4:645b5d648c64 75 IRSensor.m_prevDirR = IRSensor.m_dirR;
Nicolaemf 4:645b5d648c64 76
Nicolaemf 4:645b5d648c64 77 printf("toggle %d", toggleIR);
Nicolaemf 2:74d8b693bc62 78 toggleIR = IRSensor.m_toggle;
Nicolaemf 4:645b5d648c64 79 }
Nicolaemf 3:54c41af9e119 80 }
Nicolaemf 0:a02a278513d9 81 }