The Carduino
HOW IT WORKS
THE Carduino was done by the historic duo of Brad "the Real" Popiel and Dan "the Man" Kerry. We used a chassis for the body of the car, then two motors. For our project, we created a self-driving car that had "push buttons" on the front of it. Whenever the car would hit something, one of the "push buttons" would be hit and would send the car backwards, and then the car would turn away from the obstacle it initially hit. THE Carduino program works by having an internal code that tels the motors of the car to go straight unless, if one of the push buttons is hit, then it sends signal for the motors to back up and turn away from the object. When the motors are on HIGH to LOW, they go straight. When its LOW to HIGH, the car moves backwards.
PICTURES
CODE
int motor1 = 2; //declares the first pin for the motor
int motor2 = 4; //declares the other pin for the motor
int motorpmw = 9; // this is the pmw that will set how much battery power the motor is getting (speed)
int motor3 = 10; //declares the first pin for the motor
int motor4 = 6; //declares the other pin for the motor
int motorpmw1 = 13; //pmw that will set how many battery power the motor will get
int pushbutton1 = 11; //decalres the pin for pushbutton1
int pushbutton2 = 4; //declares the pin for pushbutton2
void setup()
{
pinMode(pushbutton1, INPUT); //declares pushbuttons as inputs
pinMode(pushbutton2, INPUT); // declares pushbuttons as inputs
pinMode(motor1, OUTPUT); // declares as output
pinMode(motor2, OUTPUT); // these simply are declaring them as outputs
pinMode(motorpmw, OUTPUT); //declares as output
pinMode(motor3, OUTPUT); //declares as output
pinMode(motor4, OUTPUT); // these simply are declaring them as outputs
pinMode(motorpmw1, OUTPUT); // declares as output
}
void loop()
{
analogWrite(motorpmw1, 255); // this is the analog speed value for the arduino (0-255)
analogWrite(motorpmw, 255); // this is the analog speed value for the arduino (0-255)
digitalWrite(motor1, HIGH); // turns motor off- backwards
digitalWrite(motor2, LOW); //turns the motors on - forwards
digitalWrite(motor3, HIGH); // turns motor off- backwards
digitalWrite(motor4, LOW); //turns the motors on - forwards
delay(10);
if (digitalRead(11) == HIGH) //if statement if puch button is hit
{
digitalWrite (motor1, LOW); //turns the motors on - forwards
digitalWrite (motor2, HIGH); // turns motor off- backwards
digitalWrite (motor3, LOW); //turns the motors on - forwards
digitalWrite (motor4, HIGH); // turns motor off- backwards
delay (500); // backs up fpr half second
digitalWrite (motor3, HIGH); // turns motor off- backwards
digitalWrite (motor4, LOW); //turns the motors on - forwards
delay (500); // turns to the right for half second
}
if (digitalRead(5) == HIGH) //if statement if push button is hit
{
digitalWrite (motor1, LOW); //turns the motors on - forwards
digitalWrite (motor2, HIGH); // turns motor off- backwards
digitalWrite (motor3, LOW); //turns the motors on - forwards
digitalWrite (motor4, HIGH); // turns motor off- backwards
delay (500); // backs up half second
digitalWrite (motor1, HIGH); // turns motor off- backwards
digitalWrite (motor2, LOW); //turns the motors on - forwards
delay (500); //turns to the left for half second
}
}
YOUTUBE VIDEO
CIRCUIT PROGRAM
PROBLEM ENCOUNTERED
The main problem we encountered while doing this project was finding the attention span to actually get the work done. Another problem we faced was finding whether the motor should be HIGH to LOW or LOW to HIGH to backwards or forwards. Finally, we faced a problem finding the correct connection from the h-bridge to the breadboard.
ADDITIONS
If we had more time we would have added LED lights for the back of the car and for the headlights.
Short video of your device working (post to YouTube or Google Video). You must describe the operation of the device and a brief overview of the code in your video.