Nicolae Marton / Mbed 2 deprecated TDP3_OOP

Dependencies:   mbed

Committer:
Nicolaemf
Date:
Sat Feb 02 16:38:08 2019 +0000
Revision:
2:74d8b693bc62
Parent:
1:a2ceed49374e
Child:
3:54c41af9e119
Added comments to the main file, changed the pinout to a more coherent format;

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 2:74d8b693bc62 22 Motor Left 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 1:a2ceed49374e 64 IRSensor.WeightPID();
Nicolaemf 1:a2ceed49374e 65 IRSensor.CalculatePID();
Nicolaemf 1:a2ceed49374e 66 IRSensor.MotorControl(controlLeft,controlRight);
Nicolaemf 2:74d8b693bc62 67
Nicolaemf 2:74d8b693bc62 68 toggleIR = IRSensor.m_toggle;
Nicolaemf 1:a2ceed49374e 69 }
Nicolaemf 1:a2ceed49374e 70
Nicolaemf 0:a02a278513d9 71 }
Nicolaemf 0:a02a278513d9 72
Nicolaemf 0:a02a278513d9 73 }