Kandybot is Internet Controlled multipurpose robot which can be control anywhere from the world using Android app. Kandybot can be used for surveillance, home automation, kill zombies and whatever you want to do imaginations is yours. Kandybot is powered by Firebase and Kandy.io. For controlling the movements of bot at realtime we are using Firebase Realtime Database. And Kandy.io gives us livestream of video from robot.
Step 1: Things You Need
- Arduino Uno x2
- Bluetooth Module(HC-05)
- Motor Shield
- Servo Motor x2
- High Torque DC Motor 100 RPM x4
- LiPo Battery
- Track Belt
- Acrylic Sheet(5mm)
- Acrylic Cutter
- L-Clamp for Wheel Motors
- L-Clamp (Lots of)
- Nut & Bolt (Lots of)
- Wires(Lots of)
- Android phone x 2
- Toogle Switch
Step 2: Working Principle
There are two main things we need to make Internet Controlled Robot. First is control the robot movements and gripper at realtime and second is transmitting video from Kandybot to Internet. For Controlling the robot movements and gripper at realtime we are using Firebase Realtime Database. For transmitting video we are using Kandy.io.
We are using two Android phones both are connected to kandy.io and firebase. One is directly installed on robot's head (Let's call it Kandy mobile) and another is use as controller which can be anywhere and connected to internet(Let's call it Controller Mobile).
Suppose user press the forward movement button the message will be sent to firebase realtime database. Kandy mobile is also connected to firebase realtime database therefore it will know user pressed forward movement button. Kandy Mobile will control the movement by sending bluetooth message to arduino. After receiving message from bluetooth, arduino control the motors.(Note: We can directly connect Kandy Mobile with Arduino using serial connection But I use bluetooth so that I can control the bot without using Internet at home).
Step 3: Designing Model
I used Google Sketchup for designing. It is simple and easy to use.And you can make model for 3D printing. I don't have 3D printer so I hand cut everything. Download the design below for more understanding.
Step 4: Building Model.
If you have 3D printer you can 3D print the model right away and skip this step. Otherwise keep reading.
I used Acrylic Sheet to build the model. First thing you need to do is make base for the robot that can hold the wheels using Side shaft L-Clamp. For giving height join two small vertical plates to the base.
After that you need to cut 6 hexagonal plates of same size and connect them like a box using L-Clamp, For the back I used door magnet it makes removing easy.(You can stick them together but by using L-Clamp we can dismantle them easily in case if we need any change.) Now put the box on top those two vertical plates.Build hands and head referencing the 3D model and connect them to the body.
Congratulation you successfully build the model for Kandybot.
Step 5: Attaching Electronics
1) Connect Motor Shield to first Arduino .
2) Solder the A0-A5 pins on Motor Shield shown in pic.
3) Connect the A0-A5 pins of Motor Shield to A0-A5 pins of Second Arduino.
4) Connect HC-05 Bluetooth Module to Second Arduino
- VCC=>VCC ,
5) Connect Wheel motors and Servo motors from head and hand to Motor Shield.
6) Just attach the electronics to Kandybot.
7) Connect the LiPo Battery
Step 6: Coding - Arduino
Step 7: Coding - Android
We need to develop two separate Android Apps for Kandy Mobile and Controller Mobile.
For both of these you need to create account on Firebase and Kandy.io.
After creating account on both download the reference source code from Kandy.io documentation here.
What I did is instead of adding API to to new app, I hack the reference code.
First connect the firebase to your reference apps(Make two copies) .Follow the instruction after creating firebase account.Create two user accounts inside your kandy.io account , one is for Kandy Mobile and other for Controller Mobile.And enter the credentials of one user in Kandy Mobile app and other in Controller Mobile App.
- For Controller Mobile App you have to add movement control, Gripper Control and head control buttons. After button click send the data to firebase realtime database.
- For Kandy Mobile App you have to access the firebase realtime database and when the data is changed send the data to Arduino through bluetooth.
Download my source code below and change the user credentials and add your own google-service.json file.
Done!! Congrats you completed the working of Kandybot.
Step 8: Testing
It's time to test our brand new Kandybot. Here the working video of Kandybot.
Step 9: Touch Up
Now's the time to touch up Kandybot.
Instead of painting Kandybot I used Velvet paper and Black tape. Just stick the paper to Acrylic the way you like and color you like. Done!!
Kandybot is ready at your service. And you can connect any sensor you want to make it better. Even though the instructable is finished the Kandybot does not, we are keep trying to improve it. If you have any idea that can be implemented in Kandybot or want to participate in future development of robot join the team
If you like this project please vote for it in Contest.
Participated in the
Epilog Contest 8
Participated in the
Arduino Contest 2016
Participated in the
Design Now: 3D Design Contest 2016