Game Slayer Studios



Project Title
  • ATTICUS


Description
  • ATTICUS is a tank-style robot controlled by an Arduino device.


Project Members


Status Log


Primary Goals
  • To create a robot which is capable of forward/backward movement and left/right turning, with the ability to run either standalone with a preprogrammed set of instructions, or controlled in real-time via Serial communication over an attached USB cable.


Secondary Goals
  • Give ATTICUS use of one or more LED's and a piezo buzzer for visual and auditory communication.


Tertiary Goals
  • Install compass module so ATTICUS may use headings to better complete its instructions.
  • Upgrade power from standard Alkaline batteries to rechargable Polymer Lithum Ion Battery - 6Ah and likely construct new power regulator.
  • Install radio frequency communication module (XBee, Wifi, or GSM) to eliminate requirement of connected USB cable for Serial communication.
  • Install various other sensors (infra-red or ultrasonic distance sensors) to help ATTICUS become more autonomous (aware of its surroundings so it may respond accordingly to obstacles)
  • Construct charging station which ATTICUS can find automatically to perform self-recharging, and install charging socket on ATTICUS chassis.
  • Install small LCD/OLED screen and/or speaker with voice simulation module attached so ATTICUS may better communicate with human host.
  • Install GPS module in conjuction with GSM and additional power, and recharging station upgrades to make ATTICUS fully autonomous.


Tools
  • Soldering Iron (40W used in this project)
  • Solder (60/40 Rosin Core 0.32" Diameter used in this project)
  • Scalpel/Box Cutter
  • Wire Stripper/Clipper
  • Hard rubber cutting mat
  • Pliers
  • Screwdriver


Parts List (Primary)


Parts List (Secondary)
  • RGB LED
  • 100Ω Resistors x4
  • Diffuser (Cotton Ball and/or Ping-pong Ball)
  • Piezo Buzzer
  • Small Generic PCB
  • Straight Breakaway Pins from SparkFun
  • Female Headers from SparkFun


References
  • SparkFun:As you can see from most of the parts in my parts list, I absolutely love SparkFun Electronics. They have a great selection (although from high demand some of their cooler stuff is often out-of-stock), and wonderful prices. I'd consider moving closer to Colarado so shipping wouldn't take four days.
  • Arduino:I've so far done some pretty nifty experimenting with the Arduino (my first bon-a-fide project was a PHP Serial powered RGB LED which I could control from anywhere with an internet connection), and hope to do much more in the future.
  • JoakimCh:(From Arduino Forum) - Not only did his post provide most of the code I needed to control the motors (with a couple of my own modifications), but it saved me from pulling my hair out on how to wire the Arduino to the controller with its verbose comments.
  • SimpleSerial:It was a nifty adventure learning a tiny bit of C# to create a small app to communicate with the bot via Serial. I wanted something that would send keypresses immediately to the bot, instead of me having to hit Enter or click Send each time. Giant thanks go to simpleserial.com for this tutorial. In the future, I will fool around with the Visual C# Express development kit to further refine the ATTICUS control app.


Additional Thoughts
  • I originally was testing with a 2xAA battery box and the motors seemed to run fine, but now that I've got everything put together and have moved the bot around a bit, I'm glad I switched to a 4xAA battery box. Not to mention, the 4xAA fits perfectly on top of the dual motor gearbox attached with just a bit of electrical tape.
  • It was difficult to wrap my mind around the gearbox construction at first. Thankfully I got it all together and working on the first try, but I attribute it mostly to luck.
  • Being my first time realistically soldering, I think I did a pretty good job. I'm looking forward to soldering more in the future and getting better at it.
  • The tank treads were too loose at first, in the end I had to take the smallest segments out and move the gearbox four holes forward on the universal plate set. It would be nice if the plate set was a little longer for extra flexibility.
  • Speaking of the treads, they couldn't be much cooler! They come with plenty of wheels of varying sizes so you could make all sorts of traction layouts. I would say I'm looking forward to experimenting with them more, but connecting two sections of tank treads together is a real pain (possibly because of my thick fingers).
  • At first I thought wiring would be no problem with my handy-dandy pre-sized pre-stripped jumper wire kit from SparkFun. This project, however, used up over half of my longer wires, usually much longer than I needed - so for my next project, I'll be sure to get a spool and cut/strip them myself.
  • As I suspected, the bot being the size it is, it doesn't like the carpet. To my surprise, it goes just fine, but the treads like to pop off when turning, and even with my carpet at its cleanest, the soft rubber treads will pick up all sorts of hair and muck. Best, for now, to keep this a table-top robot. (Especially considering right now it still has to be tethered to USB for instruction.)
  • The breakaway pins from SparkFun made it easy to mount my Piezo/RGBLED board onto the breadboard beneath the Arduino, however the female headers I mounted on top were a pain. I learned that the female headers don't break away like the pins do, so I had to (rather haphazardly) cut the width of female headers I wanted. It would have been a lot easier with a Dremil, but in the future I'll be sure to purchase female headers in the size I need.
  • I had great luck with some foam board and electrical tape creating a new, more solid (and certainly better looking) chassis to house the bread board and Arduino. Part of it fits snuggly between the motors and the plate, and part of it hugs the battery box. It works very well for now, but I hope to design a "hood" for the vehicle at some point so the electronics are no longer exposed.
  • Learning C# has been somewhat of a pain, but I figured out enough to change the resolution of the ATTICUS control app to that of a PSP (I use one as a second display), as well as add check boxes to toggle the Red, Green, and Blue LED's. I also added four arrows which I hope to highlight to indicate which direction I'm informing the vehicle to go in. So far, though, I haven't figured out how to get them to work.


Pictures
  • Please forgive the poor quality, each picture was taken with my phone.

  • The Universal Plate Set with axle mounts where I want them.
    Universal Plate Set with axle mounts.
  • The dual-motor gear box assembled in high torque ratio.
    Dual-Motor Gear Box Assembled.
  • The gearbox attached to the chassis.
    Gear Box attached to chassis.
  • Wheels and axles attached.
    Wheels and Axles attached.
  • Treads attached. Starting to look awesome!
    Tank Action!
  • Battery box, breadboard, and rickety cardboard chassis attached.
    A little less awesome than earlier. Not proud of the cardboard chassis.
  • Motor controller installed on breadboard (after soldering pins to bottom of controller breakout board)
    Almost a robot.
  • Arduino attached, motor controller moved back, rickety chassis modded a bit.
    Almost there!
  • Arduino moved to a bit more stable position (relatively speaking), wiring done, and addition of my RGB LED & Piezo buzzer board.
    It is ALIVE!!!
  • Screenshot of the latest version of the Atticus Control application written in Visual C#. The arrows are currently just for show.
    Atticus Control
  • New sturdy chassis design, and I used sandpaper to frost the RGB LED so it's diffused without needing a cotton ball.
    Fear the BOT!