Introduction: RC-Waiter
I created a RC-Waiter for a school project with Arduino. You can control this with your phone using Bluetooth. you can drive it anywhere you want. It has a range for about 9 meters. It has a tray attached on top of it to put your drinks on. So what it does is basically bring food or drink or anything you want to yourself or anyone else without having to stand up.
In this Instructables I will show you how you can make this RC-Waiter.
Step 1: Materials
These are the materials i used for this project:
1- Arduino Uno:
You can also use a different type of Arduino, but i used the arduino uno because i already had one.
2- USB A to B cable:
A cable to connect your arduino to your pc.
3- L298N Bipolaire Stapmotor and DC-motor Motorcontrol A motor control for two DC motors or one bipolar stepping motor.
4- Bluetooth HC-06 module RF transceiver Slave:
This wil be used to control the car with your phone using bluetooth
5- Any Arduino car kit:
There a lot of car kits to be found online My car kit already had: 2x Montaignplate 4x Motor 4x Wheel Switch 4x AA Battery holder(6V in total) Needed screws and bolts
6- 4x AA batteries
7- Power / power-bank for the arduino uno:
In my case i used a power bank but you can use any kind of power source to power your arduino
8- soldering machine:
The best way to attach the cables to your motor is to solder them. So your car wouldn't suddenly stop because the wired weren't attached correctly.
9- Solder Tin:
You actually need tin in order to attach the wires to you motor. Without it it's pretty hard soldering XD.
10- Male-Female wires
11- Prototype wires
12- A Tray: A tray to put your drinks on.
13- Pieces of wood : You could also use something else but i used a couple pieces of wood to attach the tray to.
My pieces are: 6 mm in height, 2 mm in width and 4,5 in length
14- a piece of cotton to cover up the cable management. I use a piece of cotton because it is light and looks like a towel that a waiter also would carry with him.
15- a powerful stapler (staple gun): this to attach the cotton to the tray.
16- Screws with a short length: I used 3,5 mm length screws to attach the hinges from the rc car to the tray
17- Small Hinges: I used small hinges that fits your piece of wood that is attached to your car. I did this so i can still customize the cable management if i want, and to replace the batteries of course. The size of the hinge depends how you big your pieces of wood are.
Step 2: The Circuit
Once you have bought all the materials, it is time to replicate this Bluetooth device.
Honestly the circuit isn't that complex. You don't even need a breadboard in order to make this circuit. The only thing i used my breadboard for is to test the batteries and motors connected through a LED light (this was just for testing).
Connect the motors to the L298N motor driver board. Connect both wires of the 2 motors from each side, left and right. On the left side put both red wires together and put it into OUT 3. To the same with de black wires and put it into OUT4. On the right side put both red wires together and put it into OUT 1. To the same with de black wires and put it into OUT2. You can also look at the picture above.
Out1 > Left Side Motor Red Wire +
Out2 > Left Side Motor Black Wire -
Out3 > Right Side Motor Red Wire +
Out4 > Right Side Motor Black Wire -
Connect the L298N motor driver board to your arduino. In the arduino uno i used the digital pins 5,6,9 and 10. You can also use other pins if you want but i used these. Digital pin 5 goes to IN1 on my motor board. Digital pin 6 goes to IN2 on my motor board. Digital pin 9 goes to IN3 on my motor board. And Digital pin 10 goes to IN4 on my motor board. You can also look at the picture above.
IN1 > D5
IN2 > D6
IN2 > D9
IN2 > D10
You also want to connect your bluetooth module to your arduino. This so you can control your RC with your mobile through bluetooth.
Rx bluetooth module > Tx arduino uno
Tx bluetooth module > Rx arduino uno
GND bluetooth module > GND arduino uno
Vcc bluetooth module > 3.3V arduino uno
NOTE: Connect the TX to the RXXD. And NOT to the same. NOTE: the password for most bluetooth modules are 1234
For the power:
12V L298N motor driver board > Connect Battery Red Wire (The 4 AA batteries)
GND L298N motor driver board > Connect Battery Black wire and Arduino GND pin
5V L298N motor driver board > Connect to Arduino 5V pin
And of course don't forget to connect a power bank to you Arduino.
NOTE: Disconnect the Bluetooth module before uploading the code otherwise you will get a error and the code will never upload and will get an error. After you have uploaded the code you can put it back in again.
Step 3: The Code
Bluetooth app on your mobile android phone:
The app that i used can be found here.
The Bluetooth app that we will use, uses these characters to send signals to the module:
F - Forward
B - Backward
S - Stop
R - Right
L - Left
So we will use these characters in our code so the arduino understands what the signals that are being send mean an what he has to do with it. Of course it is very obvious from this point. We will use F to let it drive forwards and B to let it drive backwards. And for example when the left wheels go backwards and the right wheels go forwards the car is turning to the left. That is basically the method that i used in my code.
The code:
int leftForward = 5;
int leftBackward = 6; int rightForward = 9; int rightBackward = 10; int go = 255; // Motortoerental (0-255) int state = 'W'; // Startvoid setup() { Serial.begin(9600); // Bluetooth verbinding pinMode(rightForward, OUTPUT); pinMode(rightBackward, OUTPUT); pinMode(leftForward, OUTPUT); pinMode(leftBackward, OUTPUT); }
void loop() {
if(Serial.available()>0){ // Leest de bluetooth en geeft door in welke staat hij zit state = Serial.read(); } if(state=='F'){ // Forward Serial.println(state); analogWrite(rightBackward, 0); analogWrite(leftBackward, 0); analogWrite(rightForward, go); analogWrite(leftForward, go); } if(state=='R'){ // Right Serial.println(state); analogWrite(rightBackward, go); analogWrite(leftBackward, 0); analogWrite(rightForward, 0); analogWrite(leftForward, go); } if(state=='S'){ // Stop Serial.println(state); analogWrite(rightBackward, 0); analogWrite(leftBackward, 0); analogWrite(rightForward, 0); analogWrite(leftForward, 0); } if(state=='L'){ // Left Serial.println(state); analogWrite(rightBackward, 0); analogWrite(leftBackward, go); analogWrite(rightForward, 0); analogWrite(leftForward, go); }
if(state=='B'){ // Reverse Serial.println(state); analogWrite(rightBackward, go); analogWrite(leftBackward, go); analogWrite(rightForward, 0); analogWrite(leftForward, 0);
} if (state =='U'){ // Aan knop, verplaatst de detectieafstand
} if (state=='W'){ // Uit knop, doet niks meer. } }
Attachments
Step 4: Building the Case / Tray
Of course you don't have to follow this design part because it still functions the same, but this was the design i came up with.
I bought a pretty cheap and light tray to put on my car. Make sure its light and not to heavy otherwise the motors are not strong enough. Also keep in mind that you want to put drinks and stuff on the tray so make sure there is enough force left to push the car forward.I also painted it white so it would look a bit better. It also looks a bit expensive now.
Besides the tray i also cut off a piece off cotton. I used this to cover up all the cable management and stuff. It also looks looks like a towel that a waiter also would carry with him.
Now Attach the pieces of wood, hinges screws etc.. together and you will get a similar result as the picture above.
Now you can serve a cold drink while using a remote controlled tray :).
Here is my result:
Thank you and have fun serving drinks and stuff!