RoboMonitor: Half Robot. Half Monitor.

Cyrus Tabrizi, 8/22/13

    The following is one of my robotics project from my freshmen year at Thomas Jefferson High School for Science and Technology. The goal of the project was to create a maze-navigating robot, but to do so according to certain rules and with limited materials and time. Materials-wise, we were only given one or two black ABS plastic sheets (a couple square feet in total), two standard hobby servos, some gears (and servo attachments), two CDs (to be used as wheels), a Kilroy microcontroller, a few button sensors, and some metal axles. We didn’t have to use all these materials, but at least 50% of our robot had to be constructed from what was provided.


RoboMonitor 1

    I decided to make a robotic computer monitor. The RoboMonitor (for short) has a white ABS plastic chassis, two hub-enclosed, servo-driven tires, two button-sensors, and a working monitor and keyboard. Granted, the keyboard has no keys and the monitor only shows a blank white image, but at least the blank white image has some depth to it (3D displays are the next big thing after all…)

    Personally, the RoboMonitor is one of my favorite projects. It may not have any special electronics or programming, but its design is certainly unique, it functions well, and it’s unusually labor-intensive to make. The best part, though, is that I’ve documented the entire process from start to finish to make it easier for anyone to make one!


RoboMonitor 12 RoboMonitor 38
Manufacturing

 The first thing you’ll need to do is collect your materials. The following is a list of materials needed, along with a description of useful details and/or their purposes.


  •    ABS Plastic – I needed roughly two to three square feet of ABS plastic to build the robot, but depending on how the plastic is cut out, more or less of it may be needed. Only a square foot or so is needed to build the base of the robot, whereas the remaining two square feet of plastic may be needed to build the upper portion of the robot (using a laser cutter with the parts oriented efficiently should reduce the need for additional plastic significantly)
  •    Tape – A fair amount of duct tape is needed to keep various wires in place. The tape should be the same color as the spray paint. Also, you will need several pieces of double sided tape.
  •    Button Sensors – Two standard button sensors are used to provide the robot with a form of feedback that can help to navigate around obstacles.
  •    Popsicle Sticks – Yes, Popsicle sticks. I used two of them to extend the triggering range of the two button sensors.
  •    Plexiglas – A single sheet of Plexiglas measuring approximately 1’ by 1.5’ is enough for this robot. It is used to create a translucent screen in the upper portion of the body. Plexiglas can be found at a local Home Depot.
  •    Spray Paint – One bottle of white spray paint is enough to paint the entire robot. The white/grayish nature of the paint (gray when on the plastic) gives it the look of an old PC. White spray paint can be found at a local Home Depot or a similar store.
  •    Foil – A couple square inches of foil are used in the back of the monitor to reflect the light from the LED’s.
  •    LED’s – Seven clear LED’s are used to illuminate various parts of the robot. Five LED’s are placed in the screen and 2 are placed in the underbody. These LED’s can be found online and at a local Radio Shack or electronics store.
  •    Resistors – Three 470 Ω, two 330 Ω, and two 10000 Ω resistors are needed. Again, these resistors can be found at a local Radio Shack or electronics store.
  •    Wire – A yard or so of wire is used to connect the two button sensors, the seven LED’s, and various resistors to the Kilroy Board. Preferably, the wire should be of whitish color as to blend in with the rest of the robot.
  •    Kilroy Board or other microcontroller – A standard Kilroy Board or Arduino is needed to control the two servos, power the seven LED’s, and receive incoming signals from the button sensors. A breadboard is also needed to organize various electronic components.
  •    Battery – A single 9V battery is needed to power the servos and the Kilroy Board or similar microcontroller. Also, a 9V battery connector is needed to attach the battery to the Kilroy Board.
  •    Servos with attachments– Two standard servos are needed to drive the robot. You will also need the attachment kits that come with them to attach the wheels to the servos.
  •    Wheels – For this robot, two Lego Technic Wheels were used. These wheels were approximately an inch wide, and three to four inches in diameter. These wheels were only provided in one Lego set (the Super Street Sensation, 8448) and become harder and harder to acquire due to their rare nature. These wheels were chosen for the excellent grip that they provide. They can be purchased by themselves on an online Lego store called BrickLink or on Ebay. Also, a couple of extra Lego parts were used to make a secure connection between the wheel and the motor.

Tools

 There are a couple options here, but I’ll describe the tools that I used and any alternatives that I can think of as well.


  •    Glue-gun – I used my glue-gun heavily putting the ABS parts of this project together. There are, however, plenty of alternatives if you want to stay away from melting stuff. There are, for example, types of liquid glue you can use out of a bottle or you could use some nuts and bolts if you have some sitting around. If you’re opposition to melting stuff is just for glue, I’ve heard that ABS parts can be attached using ABS itself! Just melt some and use it as a paste? Let me know how that turns out.
  •    Saws, Legos, 3D printers, or Laser-cutters–I used a bandsaw and a handsaw (I didn’t have a bandsaw at home) to cut out my ABS parts. If you don't have access any type of saw, get your hands on a 3D printer or laser-cutter. Both of them are commonly used with ABS plastic. If you don't have access to those (which is probably the case if you don't even have access to a saw), then you'll have to make this thing out of Lego! Seeing as how Lego is also ABS plastic (and it's great in general), I think its a suitable alternative for the most of us.
  •    Sandpaper or file (if sawing by hand)—If you’re sawing by hand, or even if you’re 3D printing or laser-cutting, sandpaper will be your friend when things get sharp or pointy (or when parts are just barely too big and need some sanding down to fit properly)

RoboMonitor 32

Fabrication
WARNING: If you’re making this robot with your own two hands, it will take a very long time, lots of precision, and lots of patience, but it CAN be done. YOU WILL GET THROUGH THIS.

    This robot consists of a base, an upper body, and the monitor. The base consists of 9 plastic pieces and forms the structure that holds the servos and the button sensors. The upper body consists of 9 plastic pieces as well and is comprised of a keyboard, and the wheel hubs. The monitor is made up of 10 parts. The plastic pieces can be cut out as the robot is constructed or all at the same time. It is recommended to cut the pieces as the construction progresses because that allows for changes to be made as needed. Also, some pieces cannot be cut out until certain parts of the robot are built such as in the wheel hubs and in the monitor. Although it may be more time-consuming it is certainly worth it in the long run. Also, the pieces can be spray painted before, or after, or both. If before, be careful because if a piece needs to be sanded or adjusted in any way, the paint will come off. If after, there may be pieces that don’t get an equal coat of paint so be careful with this as well. It is recommendable to spray paint before and after as to cover everything, but again, be careful as you may end up spray painting parts that aren’t supposed to be spray painted such as the wheels or screen.


  • RoboMonitor 47
    RoboMonitor 48
       

    Base – As seen in the accompanying sketches, the base is comprises mainly of two large plastic pieces. Both measure approximately 2 & 11/16” wide but one is 5 ½” and the other is 6 ½”. The servos are next to each other and are separated by a small piece of plastic and two pieces of double-sided tape. The servos are then placed 2 ¼” away from the edge of the base and taped with double-sided tape to the bottom. Then, two more plastic pieces are inserted. These will be used later when the wheel hubs are being built. The plastic pieces have to be a millimeter or two + the radius of the wheel from the turning point on the servo. This prevents the wheel from rubbing against the plastic. These pieces are glued to the top piece and then with tape and glue, the top piece is added to the bottom and the servos. The reason no glue is used on the bottom is that if for some reason the robot had to be taken apart to get to the motors or the wheels, one could remove the bottom piece without destroying the entire robot. Also, drill two holes in the back of the robot to allow for the servo wires to be connected to the Kilroy Board.

        The next step is to add in two “bumpers” that are held in place by two small plastic pieces. This can be glued together as one, or the two pieces can be attached first and then the other two smaller ones added in later. This structure will house the button sensors. Next, drill two holes towards the front of the top piece that goes through said piece and the piece under it. This will provide a place for the wires connected to the button sensors to go through.


    RoboMonitor 49
  •    

    Upper Body – The first part in building the upper body is the wheel hubs which cannot be built before attaching the wheels. To attach the wheels various Lego parts are attached to the wheel which allows screws to be put through to a white plastic piece on the motor. Before continuing, turn on the motors and see if the connection to the wheel is solid and perfectly straight. If not, adjust it before continuing or build a more secure connection. If it is not secure before, it won’t be secure after either and this will cause it to rub against the plastic and either damage the tires, the motor, or affect the robot’s driving and maneuverability.


    RoboMonitor 34


    RoboMonitor 50
        Next, it is time to build the hubs. This is done by attaching the wheel and then measuring out the distance a millimeter or two away from the circle’s perimeter. This distance should be of the place the hub would be placed. With this distance measured, the two plastic pieces can be cut out. A heat gun is used to bend the plastic into its final form. Use thick heat-resistant gloves to prevent burning and hold the piece in place as it is bending. Check to see if the piece then fits around the wheel. If it does, continues to the second piece. If not, then re-heat the piece and bend it until it does fit both to the wheel and to the rest of the body. Then, glue these two pieces to the back and front of the frame as shown in attached sketches. The final step in building the hub is the cover. Hold the frame against a large piece of plastic and trace the curve of the hub against the plastic. Cut out the piece along the line. If it is not perfect (which it normally never is after cutting it initially), then sand it down, comparing it to the frame simultaneously. Be careful here as the hub may not be perfectly curved. After both pieces are fitted perfectly, glue the corresponding piece to each side of the frame (attach the wheels to the servos before doing so). After the wheel hubs are in place, cut out a piece of plastic that fits firmly and securely in between the wheel hubs. This is where the monitor will sit. Check to see if there is enough space between this piece and the piece below it as the Kilroy Board must fit in between snugly. This piece is then glued to both wheel hubs.

        After this is done, the electronics must be added. Build the circuit on top of the Kilroy Board and solder all of the wires to the corresponding LED’s and button sensors. Add the small breadboard to the top plastic piece in between the wheel hubs just behind the front bumper. Tape the button sensors inside the front bumper sending the cables through the two holes. Attach the LED’s and connect the small breadboard to the Kilroy Board. Tape the battery in the back of the robot and plug it into the Kilroy Board. Test out the electronics. After this, it will be much harder (if possible at all) to change any of the electronics as they will be hidden away.


    RoboMonitor 51
        Finally, build the keyboard out of four small plastic pieces as shown in the accompanying sketches. This is relatively simple to do. After gluing the pieces together, place the keyboard on top of the front bumper over the wires that are coming out of the two holes that were drilled earlier. Glue it in place.

        The following step is to attach the Popsicle sticks to the button sensors. This can be done in a variety of ways but the most efficient one makes use of triangles and can be done by cutting the Popsicle sticks into smaller pieces. After gluing this to the button sensor, cover it in white tape to preserve the look of the robot.


  • RoboMonitor 52
       

    Monitor – The first pieces to build are the two on either side of the monitor (as can be seen in the related sketches). This is because it is responsible for the rest of the monitor’s shape and size. Keep in mind that the monitor’s width should be the same or wider than the space dedicated to it earlier on the upper body. After cutting out these two pieces, the “back bones” can be cut out and formed. These two pieces are both bent so a heat gun must be used. These two parts can be glued together but make multiple references to the side pieces as the back pieces are being bent and glued together as the shape of the back must fit to the side as well. Cut out a piece of foil that fits the entire length of the back and put it in place (with the shinier side up). Glue the foil on the sides but not on the bottom as this will normally end up tearing the foil as it is bent.

        Then build the frame for the window. This is made up of four pieces and is simply glued together. Next, cut out the thin bottom piece that connects the frame to the plastic piece that will eventually hold the LED’s (this piece is pictured in between the frame and the bottom piece in the same sketch as previous). Also cut out the four pieces of Plexiglas that will end up being the screen. Glue the four screens together on the sides and then to the back of the frame. Glue this to the bottom piece and to the “LED” piece. This whole structure should then be glued to the back bone leaving a millimeter or two of a gap in between the bottom part. This is where the LED’s will be placed. Glue the sides on along the edges and the monitor is nearly complete. The next step is to simultaneously glue the monitor to the rest of the robot while taping the LED’s to inside of the monitor (this can be very tricky so try to fit the LED’s first and then glue the back of the monitor down).


RoboMonitor 45
Circuitry

    The electrical portion of this robot consists of a Kilroy Board as a microcontroller, a 9V battery to power the Kilroy Board, two servos for propulsion, two button sensors, seven resistors, a couple feet of wiring, and 7 LED’s. The main circuit is formed on the breadboard of the Kilroy Board.


  • RoboMonitor 17
       Kilroy Board – The purpose of the Kilroy Board is to run a program that implemented the board’s use of button sensors and servos. The Kilroy Board can do this with the use of a Picaxe 18X microcontroller and other electronic components. It is powered by a 9V battery attached to the back of the robot (shown in picture). Before running the robot, all of the connections should be checked, with focus on the battery and the servo wires.
  • RoboMonitor 13
       Breadboard – The robot has a unique feature in that the Kilroy Board and the breadboard on top of it can be pulled out for access while maintaining a connection to the rest of the robot. This is done by breaking the third piece of the breadboard and leaving the other two taped to the Kilroy Board. This piece by itself would be taped to the front of the robot under the monitor where all of the wiring would stay put. This piece allows the LED’s to stay in place (as pictured) while the Kilroy Board can move. The third part of the breadboard consists of only a positive lane and a negative lane and the seven LED’s take advantage of this by having wires connected to these terminals. Two longer wires were then connected to either terminal of the small breadboard and to the larger breadboard where it would then be connected to three 470 Ω resistors in series and then to the positive and negative terminals of the Kilroy Board. These longer wires straighten as the board is pulled out and bend as the board is pushed back in.
  •    LED’s – As discussed previously in the breadboard section, the three resistors that are needed for the LED’s are kept on the larger breadboard. This meant that none of the resistors are to be soldered to the actual LED’s. Instead, the only thing that is soldered to the LED’s is a single wire. This wire actually consists of two wires that, although electrically separate, are physically fixed to each other. This makes managing the LED’s and their corresponding wires much easier. To ease the process of connecting wires, one side should be marked (as seen in the accompanying picture) as either positive or negative depending on how it is connected to the LED.

  • RoboMonitor 14
       Button Sensors – The button sensors have a circuit of their own. Each button sensor requires two resistors and three wires. There are three terminals on a button sensor but only two will be used at any time. The purpose of this is that depending on the terminal selected either one of the following two can happen:
    1.    Pressing the button sensor will trigger the closing of the circuit
    2.    Releasing the button sensor will trigger the closing of the circuit
        Since the robot should respond when it hits something, the first option is to be selected. This means that the two terminals closest to the origin of the protruding metal piece should be used. The middle terminal should be connected to the positive terminal on the Kilroy Board whereas the first terminal should be connected to two resistors in parallel. One resistor, the 10,000 Ω, is to be connected to the negative terminal (ground) and the second resistor, the 330 Ω, should be connected to the input terminal on the Kilroy Board. These connections should be soldered to ensure a solid connection between the wires, the resistors, and the actual button sensors. An attempt should be made to keep the wires separate while soldering as if two terminals were to be connected, the button sensor would no longer work as long as that connection remains.

Programming

    There are many ways to program this robot as there are many ways to program any robot so a simple guide to making a working program will be provided instead of an explanation of a much more complex program.

    Essentially, any program whether it is to follow a maze, run into something, run away from something, or navigate an obstacle course, it has to interpret an input and create some sort of output.


  •    Inputs – Inputs are like messages that the robot receives from the outside world. It reads these messages and decides to do something based on what the message says and where that message is from. Sensors provide the robot with these messages. Depending on the sensor, various messages can be made. Button sensors send out two different messages, a 0 or a 1. Other sensors send a message back that could be anything from 0 to 5. And these sensors are sending these messages from different ports. This gives the robot more to think about when deciding what to do with a message. If a message is from the first port it may think about it differently than if it was from the second port. This is demonstrated in the following code. Code 1     This code allows the robot to act on a decision given that a certain message is received. In this case, a message of “1” received from “pin0” would carry out the “leftturn” command whereas if the message of “1” was received from “pin1” it would carry out the “righturn” command. If neither of these messages are received then it loops through this again until it does. This way, it is always checking for the messages and acting on them.
  •    Outputs – Outputs are what the robot sends out. Like inputs, these messages can be sent from different locations as well. This means that it can send a message to a different object if it wants to. There is also a special location that is specific for sending messages to servos. This is demonstrated in the attached code. Code 2     In this code (which is continued from the previous code), the robot has two messages it can send out. One causes it to turn left and the other causes it to turn right. This is done by controlling the movement of the servos with a command like “servo 6, 225” which is telling the servo at port 6 to do “225.” This message of “225” is known by the servo to go a certain direction. By making these decisions as a reaction to inputs, the robot can interact with its environment.

That is all for now! I already scavenged the wheels from this project (they're prized possessions and I couldn't live with myself leaving them there) but I think a took a few videos of it before I did. You all will be the first to know when its published! Contact me if you have any questions! Thanks for reading and stay tuned!


More pictures can be found on Flickr.