I’ve been meaning to put some content on here for a while and recently I got around to getting an Uno and motor shield. Given I also have access to a 3d printer and have a shedload of microswitches, semis and other goodies knocking around – Robocar is an obvious choice!
I’ve had a few Arduino’s in the past but have always used them as an ISP to write to AVR instead of just embracing the Arduino eco-system. I’m over that nonsense now and will be learning as I go.
The plan
A four-wheeled car type thingy which drives two rear wheels and steers with two front wheels.
For starters, I want to make it go forward until it hits an obstacle detected by a front-left & front-right µswitch-bumper system. At that point, it will reverse/turn around 90 degrees and go forward again.
The parts
The code
I’ve hacked together some of the example sketches from the Arduino IDE to get a small motor to run when input A5 on the Uno goes high.
// Adafruit Motor shield library
// copyright Adafruit Industries LLC, 2009
// this code is public domain, enjoy!
#include <AFMotor.h>
AF_DCMotor motor(4);
const int buttonPin = A5; // the number of the pushbutton pin
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status
void setup() {
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);}
void loop() {
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// turn on motor
motor.setSpeed(200);
motor.run(FORWARD);}
else {
motor.setSpeed(0);
motor.run(RELEASE);
}
}
Read More: How to build a Arduino Robocar