This robot is one I built to learn. Before this project I did get my feet wet with a few small scale Arduino projects like an ultrasonic robot, (that would move backwards until it was a certain distance away from the wall,) and I did get to play with a few of the shields designed for the Arduino, but I had never built a full scale project with this microchip, or really, any microchip. I knew if I was going to continue on this journey of being a hobbyist I would have to fully understand the Arduino inside out. I wanted a project that would accomplish my goal, (or just get closer to my goal of fully understanding the Arduino,) and one that would be useful or fun to play with after completion! The project that would help me do just that was the Robo-Mobile.
The Robo-Mobile consists of two parts: a chassis and a robotic arm. The arm was designed to be able to pick up items, move them, and drop them in specific places. It was also designed to have a solid range of motion and should be able to move objects with reasonable weight. This arm would then be mounted on a chassis that can then move around like a car. Since the chassis was easier to make, I will be starting this Instructable with the chassis, and I will move to the robotic arm afterwards. This robot was built purely from scratch. (Okay, maybe not the motors, or the Arduino, or the wheels, etc. But no kits or pre-built robot arms or chassis are used in this robot.)
There are many contests that I have entered this Instructable in. One contest I really have hopes up for is the Full Spectrum Laser Contest. I know that there are over 1000 entries and that I am really late, but if you like my Instructable please give me a vote. If I were to win the 3d printer or laser cutter I could greatly improve my robots and other projects.Thanks in advance!
There were many choices I made throughout the process of building this robot. But in this Instructable I am going to put the bigger and more important choices I made together, right here at the beginning.
Remote vs. AI
Every robot has to have some way it is controlled, the robot can be computer controlled through some kind of AI loop program, or the robot can be remote controlled, making movements based on user inputs! While making the Ultrasonic robot, (the other project I made with Arduino,) I chose to make an AI loop robot. I knew this time I would have to explore the realm of the remote control to improve my Arduino skills further. (AI loop robots are in fact harder to perfect because they need the ability to react to the outside without a user telling them what to do at every given time. But because I hadn't already made a remote controlled robot I thought it be interesting if I tried something new. Plus remote controlled robots are more fun to play with after the completion of the project!)
After deciding that this was going to be a remote controlled robot I needed a way to tell it what to do. I needed a way of communication. For communication, there were a few options. The first one being the old school wired communication. This would have been the easiest method to implement, but wired communication is "Old School," technology is moving forward and wireless has become a must have for new devices. (Ex. Wireless charging, Cell Phones, Wireless Keyboards and Mice, etc.) Wired communication would also constrain the robot's range, not allowing it to move without a wire "tail". The method I chose to use was the well known wireless communication called Bluetooth. I know that remote controlled cars usually use radio frequency and now that I'm looking back at this project I think using radio frequency instead of Bluetooth might have been a better idea for this specific project. But going back to the goal I had in mind, I went with Bluetooth for experience! I felt that other projects I would make in the future with an Arduino would be controlled using smartphones and other Bluetooth devices so I chose to use Bluetooth for this project! (The downside is lag. If I ever made a v2 I would explore with radio signals instead.)
Now for the controller. I knew I was going with Bluetooth. But making a controller work was a entire different story. Since my robot is really two parts, the chassis and the arm, I chose to split up my controllers too. For the chassis, I used a simple android app to control the movement of the robot. The android app was written by myself using MIT's App Inventor. (I will go into more detail in one of the next steps.) For the arm, I used a dummy robot arm that the real arm would mimic. When I move one of the joints on the dummy arm, the real arm on the robot would mimic the same position. This method has many benefits which include, ease of implementation and ease of use. If the controller was also a button based android app that moved a single motor one at a time, moving the arm to a specific posture would have been a pain. The only downside of this method was the need to build a 2nd arm which isn't really that bad considering after building one all you need to do is build a copy.
Before I cut the first piece of my chassis. I had to choose the material my robot would be made out of. As you may have seen from the pictures above that I chose to make mine out of plywood! I know that there are other materials out there that may suit this project much better, but I chose to use wood because I was confident working in wood! I knew how to operate wood fairly well being able to use the basic power tools suiting my needs. (Basic power tools I use include a Drill Press, a Miter Saw, a Jigsaw and a Dremel rotary tool. These tools were the tools I used to make my project but substituting the drill press out for a drill or a hand saw for the other power saws are perfectly reasonable.)
Time to start building!