Week 12: Making a Robot

This will be the first task in this project that will be done in a small group of two to three people. The aim will be to have a robot that is able to move and avoid objects on its own. However, due to time constraints we were only able to produce the coding to enable the robot to move.

Manufacture:

This is a view of all the parts that will be required to put together the robot.

First thing to be done is to attach the arduino to the chassis. Now you must make sure to use plastic steppers as metal ones can short the circuit.

Once the arduino is secured to the chassis, the next thing to be done is to connect a breakout board to the arduino this will make connecting the stepper motors much easier.

The two stepper motors will be the next pieces to be added to the chassis and will be fixed in position using nuts and bolts

The stepper motors will then need to be plugged to the breakout board. This connects them to the arduino which will then control their movements.

Now that the robot is connected the last thing that is required is to link the arduino to a computer in order to code it. This is done using a USB cable.

 

Coding:

Coding starts by opening the arduino programming software and accessing the blink code. Once the code is obtained it will have to be repeated and altered as shown below in order to allow the robot to perform movements ranging from backwards then left, to forwards then right.

// the setup function runs once when you press reset or power the board
void setup()
{
// initialize digital coil A as an output.
pinMode(10, OUTPUT);
// initialize digital coil B as an output.
pinMode(11, OUTPUT);
// initialize digital coil C as an output.
pinMode(12, OUTPUT);
// initialize digital coil D as an output.
pinMode(13, OUTPUT);
//motor 2
pinMode(6, OUTPUT);
// initialize digital coil B as an output.
pinMode(7, OUTPUT);
// initialize digital coil C as an output.
pinMode(8, OUTPUT);
// initialize digital coil D as an output.
pinMode(9, OUTPUT);

}

int i=0;

void loop() {

while(i < 1000){
right();
i++;
}
}
void forward()
{
//STEP 1
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, HIGH);
delay(2); // delay
//STEP 2
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
delay(2); // delay
//STEP 3
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, LOW);
delay(2); // delay
//STEP 4
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
delay(2); // delay

//motor2
//STEP 1
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
delay(2); // delay
//STEP 2
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
delay(2); // delay
//STEP 3
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
delay(2); // delay
//STEP 4
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
delay(2); // delay
}

void backward()
{
//STEP 1
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, HIGH);
delay(2); // delay
//STEP 2
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
delay(2); // delay
//STEP 3
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, LOW);
delay(2); // delay
//STEP 4
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
delay(2); // delay


//motor2
//STEP 1
digitalWrite(9, HIGH);
digitalWrite(8, LOW);
digitalWrite(7, LOW);
digitalWrite(6, HIGH);
delay(2); // delay
//STEP 2
digitalWrite(9, HIGH);
digitalWrite(8, HIGH);
digitalWrite(7, LOW);
digitalWrite(6, LOW);
delay(2); // delay
//STEP 3
digitalWrite(9, LOW);
digitalWrite(8, HIGH);
digitalWrite(7, HIGH);
digitalWrite(6, LOW);
delay(2); // delay
//STEP 4
digitalWrite(9, LOW);
digitalWrite(8, LOW);
digitalWrite(7, HIGH);
digitalWrite(6, HIGH);
delay(2); // delay
}


void right()
{
//STEP 1
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
digitalWrite(10, HIGH);
delay(2); // delay
//STEP 2
digitalWrite(13, HIGH);
digitalWrite(12, HIGH);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
delay(2); // delay
//STEP 3
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
digitalWrite(11, HIGH);
digitalWrite(10, LOW);
delay(2); // delay
//STEP 4
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, HIGH);
digitalWrite(10, HIGH);
delay(2); // delay

//motor2
//STEP 1
digitalWrite(9, HIGH);
digitalWrite(8, LOW);
digitalWrite(7, LOW);
digitalWrite(6, HIGH);
delay(2); // delay
//STEP 2
digitalWrite(9, HIGH);
digitalWrite(8, HIGH);
digitalWrite(7, LOW);
digitalWrite(6, LOW);
delay(2); // delay
//STEP 3
digitalWrite(9, LOW);
digitalWrite(8, HIGH);
digitalWrite(7, HIGH);
digitalWrite(6, LOW);
delay(2); // delay
//STEP 4
digitalWrite(9, LOW);
digitalWrite(8, LOW);
digitalWrite(7, HIGH);
digitalWrite(6, HIGH);
delay(2); // delay
}

void left()
{
//STEP 1
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, HIGH);
delay(2); // delay
//STEP 2
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
delay(2); // delay
//STEP 3
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, LOW);
delay(2); // delay
//STEP 4
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
delay(2); // delay

//motor2
//STEP 1
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
delay(2); // delay
//STEP 2
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
delay(2); // delay
//STEP 3
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
delay(2); // delay
//STEP 4
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
delay(2); // delay
}

 

 

 

 

 

 

 

 

 

 

 

 

Print Friendly, PDF & Email

Leave a Reply

Your email address will not be published. Required fields are marked *