While it may seem like a decently complex system at first glance, AndroidRover is actually quite easy to construct. In order to increase accessibility to everyone, most all of the parts are "Off the Shelf" from popular online stores. The two parts that do need to be custom created are also manufactured through online services, further increasing accessibility. The software is open source, so anyone with interest in Android and the IOIO interface system can inspect the source code freely, and modify what they see fit. If you are interested in making your own AndroidRover, here are some guidelines to use along your way:
Step 1 - Buy the Parts
Everything that comprises the AndroidRover is available online, but unfortunately not all from the same merchant. In some cases, it may be cheaper and faster to get some of the parts from local sources such as Radio Shack or a local hobby store. As the AndroidRover project expands, there may be a kit available that would include all of these parts in one order, however in the current stage of development, end users will need to purchase the items separately.
Step 1a - Off the Shelf Parts
Step 1b - Custom Parts
Step 2 - Assemble the Rover
The only tools needed to assemble the AndroidRover are a multi-bit screwdriver, a soldering iron, and a vice. A drill press will be helpful if any customizations are desired, but is not necessary. Assembly of the IOIO and the custom shield should take place before moving on to the rover. For basic operation, only pins and headers are required to be soldered to the shield and the IOIO micro-controller itself (Fig. 2-1, Fig. 2-2). After the IOIO and shield have been populated with pins, construction of the rover may begin.
Step 2a - Attach Vex Wheels to Rover 5 Chassis
Step 2b - Attach base to chassis
Step 2c - Attach components to base
Step 2d - Plug in all the wires
Step 3 - Install the Software
For the time being, in order to install the AndroidRover applications to the selected Android devices, an Android development environment is required. The most effective programming environment for IOIO development is Eclipse. You can find instructions to install the Eclipse Android plugin at http://developer.android.com/ and instructions on how to implement the IOIO libraries at https://github.com/ytai/ioio/. The application code is available on Github (see Download page), and any modifications that might be beneficial may be submitted for a pull request.
Step 3a - Server Application
Step 3a - Client Application
A bulk of the rover can be purchased from Sparkfun.com, the actual Rover 5 chassis used as the base for AndroidRover is only $60 with four motors included. The Vex mecanum wheels seem to have the best price directly from their website. A specific list of parts, their approximate costs, and links to their item pages is available at the bottom of this page.
The only two custom items that are part of AndroidRover, the PCB shield mapping the IOIO outputs to the motor driver board, and the Acrylic base everything mounts to, can be ordered online with files found on the "Download" page. Advanced Circuits (www.4pcb.com) was used for manufacture of the PCB, and the design was created in their PCBArtist software. The Acrylic base was laid out in the open source vector layout program Inkscape, following a template for laser cutting from Ponoko (www.ponoko.com)
There are several methods documented online of mounting the Vex mecanum wheels to the axles of the Rover 5 chassis, however the easiest method is to simply force the axles onto the wheels with a vice. As long as alignment is kept in mind, the Rover 5 axles work just fine when forced into the Vex wheel's center shaft. After all four wheels have been attached, assure that the height settings of the adjustable gearbox housings all match (Figure 2a-1). Before assembling the rest of the Rover, now is a good time to keep cord management in mind (Figure 2a-2). A few zip ties will make it easier to handle the sprawling nature of the power connectors for each gearbox.
The Rover 5 chassis is a blank slate, so a custom laser cut acrylic mounting base is required to hold all the components in their place. Attaching the base is as simple as snaking all of the chassis cables through the main opening in the base, attaching Velcro straps to secure the battery packs, screwing in the posts for the motor driver board, then securing it with the four screws that line up with the chassis four mounting holes (Figure 2b). If careful cable management was not observed in the previous step, this can be quite difficult. With the cables, straps and posts in place, the components of the rover can be added.
The first component to install is the AA battery pack. A four pack with switch fits nicely between the posts for the motor driver board (Figure 2c-1). Secure the pack with the Velcro straps installed in the previous step. If the battery pack does not terminate in a JST power connecter, some modifications may be required to include one (See item 5 in parts list). Next, assemble the pan/tilt bracket per the included instructions. Only two screws diagonal to each other are required to hold the bracket in place. The next component to install is the motor driver board. It will secure snugly to the posts in place around the battery pack (Figure 2c-2). With the included standoffs, secure the driver board to the posts, this can easily be done by hand, so removal of the board to access the battery pack can be done without tools. After the motor driver board and the pan/tilt bracket is in place, a method to attach the chosen Android device to the pan/tilt bracket must be devised. In the case of the original Droid, as shown, velcro straps can be used to secure the device tightly to the bracket.
Now that all the major components are in place, all that is left is to plug everything in (Figure 2d). First, make sure the shield is securely fastened to the IOIO. Then, attach the eight 4-pin patch cables from the motor driver board to the shield. When all 8 of the cables are in place, they should be stiff enough to hold up the IOIO assembly on their own. Next, attach the two 3-pin servo cables from the pan/tilt bracket to the shield. Then, connect the USB adapter included with the IOIO to the Android device. The JST connecter from the AA battery box will plug into the JST port on the IOIO, then, some jumper wires must be run from the 5v output on the IOIO to the 5v logic input on the driver board. After the battery is secured to the base with the velcro straps installed earlier, make any necessary modifications to the connectors so it can easily plug into the 9v-12v input on the driver board (see items 13 and 14 below). With that, the hardware portion of the rover is complete.
The server application must be deployed to the device that is attached to the pan/tilt bracket on the rover itself. After forking the project from Github, and setting up the development environment, all that is required is to plug in the device and press the play button in Eclipse to compile and upload the application. The device should be connected to the same local WiFi network as the other device.
The client application does not require the setup of the IOIO libraries, however, it must be compiled in the same fashion as the server application. Unlike the server application, the client may remain plugged into the development computer in order to monitor the debugging output. After uploaded to the Android device chosen for the remote, the application must be started before the server in order to operate correctly.
With the installation of the above applications, your very own AndroidRover is complete. You can now start the AndroidRover remote application, followed by the server application. The server will continue running in the background, so after the services are started you can initiate a Skype call, or use any other video call service available. Congratulations! With only an afternoon of effort, you have constructed a fully capable telepresence rover. Enjoy!
Where to find the parts you need:
|1||Rover 5 Robot Chassis||Sparkfun 10336||$60|
|2||Rover 5 Motor Driver Board||Sparkfun 11593||$25|
|3||IOIO OTG||Sparkfun 11343||$40|
|4||4 pin jumper wires||Sparkfun 10364||$8|
|5||JST power connecter||Sparkfun 8670||$2|
|6||Vex Mecanum Wheels||Vex 276-1447||$40|
|7||4 AA battery holder||RadioShack 2062253||$2|
|8||Velcro Wire Wraps||RadioShack 2102879||$2|
|9||1 ft. right angle micro usb||Newegg N82E16812200860||$5|
|10||Pan-tilt bracket||ServoCity SPT200||$46|
|11||Pan-tilt servos||ServoCity HS-422||$20|
|12||Speedpack 1800||HorizonHobby DYN1050||$12|
|13||Ultraplug Pigtail Male||HorizonHobby WSD2013||$4|
|14||Ultraplug Pigtail Female||HorizonHobby WSD2010||$4|
|15||NiMh Charger||HorizonHobby DYN4033||$70|
|16||Custom Acrylic Base||See tutorial above||$10|
|17||Custom IOIO Rover Shield||See tutorial above||$10|