Robot code for searching an object and charging at it.

Dependencies:   HCSR04 Motor mbed

main.cpp

Committer:
abdsha01
Date:
2015-05-23
Revision:
3:7f7a82bf59b9
Parent:
2:6f15a798993d
Child:
4:0507835a3dce

File content as of revision 3:7f7a82bf59b9:

// Code written by:
// Jon Baker
// Alessandro Grande
// Abdul-Rehman Sharif
// Lucinda Hartfield

// Circuitry made by:
// Yucando Navarrete
// Vivekanand Gupta

// The following code will control a robotic car
// by detetecting an object and charging towards it
// it uses basic functions as:
// charge()        - used to charge on an object detected 
//                   the robot will move in a straight line
//                   until it detects the arena line where
//                   it will use reverse() to move back
// detect_object() - used to detect an object, the robot will
//                   move in a circle to find an object and 
//                   return 1 if it finds something and return
//                   0 if it does not find anything - the search
//                   will be carried out for 10 seconds.
// detect_line ()  - used to detect a line, it returns the following
//                   an int value as follows:
//                   0  - if no line is detected
//                   1  - if line detected from the front
//                   -1 - if line detected from the back
// reverse()       - reverses the robot with chargespeed in same position
// reverseandturn()- reverses whie moving in a circular direction

// Libraries for using the above functions and more ...
#include "mbed.h"
#include "functions.h"

// Two sensors are used to detect a line, line_sens1 and line_sens2
// if there is a difference between the readings of these sensors 
// the robot has detected a line.
// Setting pins for line sensor
DigitalInOut line1(p20);
DigitalInOut line2(p19);

// Setting pins for motor, as follows:
// Example: Motor____(PWM, Forward, Reverse)
Motor MotorLeft(p23, p28, p27);
Motor MotorRight(p22, p29, p30);

// Setting pins for ultrasonic sensor, as follows:
// Example: usensor(Trigger, Echo)
HCSR04 usensor(p25,p26);

// Set for debugging purpose
// Example: pc(TX, RX)
//Serial pc(USBTX, USBRX);


// Global parameters
// Speed at which it charges an object
// optimum value: 0.4 to 0.8
float chargespeed;
// Speed at which it rotates to find an object
// optimum value: 0.3 to 0.5
float searchspeed;
// Range of detection
// optimum value: 30 to 50
int range;

void initialise()
{
    chargespeed = 0.5;
    searchspeed = 0.3;   
    range = 40;
    
    // Wait for 5 seconds to move away from robot
    wait(5);
}

// The main loop - please write your code here
int main()
{
    // Initialise the code
    initialise();

    printf("Starting the robot...");

    Timer t;
    t.start();

    while(1) {

    }

}