Andrew Burks

Personal Projects

Tactile Simon Completed

by on Dec.05, 2010, under Personal Projects, Simon

I was able to complete the game of Simon that I was developing for my cousins in time.  The hardest part by far was getting the IR sensors to cooperate.  Here are some photos of the final product, followed by a really artistic video my roommate Mike made for me.


Top Iso

Two versions: Lombardo and Buss

Double Top Iso

Very Bright LEDs

Double Lit Up

Everything Connected to Top Structure

Lid Out

Electronics on the Back


Arduino with Tons of Inputs and Outputs


IR Emitter/Detector Breakout Board

IR Board


MOSFET and Servo

Leave a Comment :, , , more...

Tactile Simon

by on Nov.18, 2010, under Personal Projects, Simon

Years ago, when I was in elementary school, my cousins Lisa and Erin would always give my brother and I great Christmas gifts when the extended family got together for Thanksgiving.  Now that they both have kids of their own, I thought it was about time to repay them.  Two weeks before Thanksgiving this year, I got the idea to use my robotics experience to make a toy for each of the families.


I wanted a toy that was interactive, but simple.  I needed moving parts, but nothing fragile or exposed.  Somehow I came up with the idea to do a tactile version of Simon.  All I knew was that I wanted a wheel you could grip that would spin in a pattern that you had to repeat.  The toy needed to be entirely encased to protect the electronics, but I wanted the kids to be able to see what was going on inside as well.

Full Iso



On top there is a wheel with four colors on it and notches around the outside for gripping.  The top wheel is made of clear polycarbonate and the colors are printed on transparency paper and attached with contact paper.  This design lets the LED in the notch below one section of the wheel illuminate the active color by shining through the colored transparency.

There is a second wheel below the top cover, but it is constrained to rotate with the top wheel.  It is made of white HDPE, with strategic portions of its bottom surface colored black.  Both of these circles are attached to a Servo which can rotate the wheels in either direction at variable speeds.



The primary sensors on this robot are the four IR emitter/detector pairs.  A combination of an infrared LED and phototransistor, these sensors allow a microcontroller to determine how reflective a surface is.  Because white surfaces are more reflective than black surfaces, this sensor pair can parse the pattern of black and white on the bottom wheel.  Combined, these sensors tell the robot how the wheel is oriented.

Besides the power switch, the only other input device on the robot is the button on the left of the device.  After turning the wheel to a certain color, pressing this button will log the current color as your next guess at the pattern.

There are two LEDs on the robot.  One is in a cutout below the top wheel, and it is used to indicate the currently active color.  The second LED is an RGB LED, so it it capable of producing different colors on its own.  Displaying Red, Yellow, Green, or White during different portions of the game provides great visual feedback for the user.

Finally, there is a buzzer which allows the toy to make noises all across the audible range of human hearing.



Everything plugs back in to an Arduino Duemilanove, which does all of the thinking.  Most of the components only need to be plugged into the Arduino to be ready to go, but some of them need to go across a resistor or capacitor first.  The IR emitter/detectors, however, are a bit of a pain.  I had to make a board that slips female headers right over the sensors’ leads and routes them through all the proper resistors to finally output a sensible signal to the Arduino.

The servo requires some special electronic attention.  Because I want people to be able to backdrive the Servo, I need to completely disconnect it from its power supply when it is the human’s turn to spin the wheel.  Using a custom MOSFET board designed by my friend Nico Paris for our RobOrchestra project, I was able to selectively power the Servo.

Leave a Comment :, , , , , , , , more...

Workstation Build Completed

by on Jun.14, 2010, under Personal Projects, Workstation

My new workstation is now humming along perfectly.  To review, the specs are:

  • Intel i7 920 Quad-core @2.66GHz (currently not overclocked)
  • ASRock X58 Motherboard
  • Nvidia FX Quadro 580 workstation graphics card
  • 6GB RAM
  • 1TB Samsung HDD
  • 650 Watt Corsair Power Supply
  • CoolerMaster Hyper 212 CPU cooler
  • CoolerMaster 335 Case

Build Observations

Putting together a computer was quick and easy.  Everything went super smoothly and was very straightforward.  I never really had to read the directions (although Mike Ornstein was guiding me heavily).  The hardest part was making sure all of my components were designed to work together.  I spent more time researching individual parts than I did assembling the whole system.

Overclocking seems unnecessary right now.  I have Solidworks running in RealView, and I can spin large models with no lag.  The biggest improvement is my rendering ability.  1920×1080 renders of complex geometries in Photoview used to take more than an hour, or just crash my laptop.  On the new computer, it takes only four and a half minutes.  This makes sense, considering that my Windows 7 Experience index raised from a 3.1 (Limited by graphics score) to a 6.9 (Limited by HDD score; Graphics and processor are highest – tie at 7.9).  I successfully played an HD movie over the weekend, and am very pleased with the results.


With one computer that i use in my room (or remote into) and another I take around with me, it is important to make sure they play nice.

I found a file synchronization tool, FreeFileSync, that I really like.  I have a “SYNC” folder on each computer, with everything I want to have available to me on any computer (School/Project/Personal files, Music, etc).  FreeFileSync matches this folder from each computer against a backup I set on my external hard drive.  So I have three sets of identical data in three separate places.

I was having trouble syncing my iTunes playlists.  The way iTunes handles its playlists and libraries is very weird.  I decided to convert to Windows Media Player, and I’ve never been happier.  All of my music (4-5GB) and playlists are synchronized now.  However, because WMP playlists are just xml data with absolute mp3 file locations, syncing the playlists would make it not work on one computer.  I solved this problem by drawing on my 15-123 PERL skillz and writing a quick script to convert the absolute file names into relative file names in the playlists (which are identical between computers) and now my playlists can synchronize too!

I have set up remote desktop and have given my friends an account so they can render on my machine.  I’m curious to see if i start remoting into my workstation when I’m on campus, or if I’ll just keep using my laptop most of the time.

I look forward to installing Synergy which should allow me to control the workstation with the keyboard and mouse on my lenovo (which I love) as well as using my laptop and workstation screens side by side, as if they were one computer.

Leave a Comment :, , , , , , , , , , , , more...

Why I Need a Better Computer

by on Jun.06, 2010, under Personal Projects, Workstation

Computing Needs

I don’t do that much with my computer.  I take notes in class with OneNote, and do schoolwork with Microsoft Office.  I browse the internet with Chrome, listen to music on iTunes, watch movies with KMPlayer, and chat with Pidgin.  My biggest computing needs come from 3D modeling in SolidWorks and its components, like the COSMOS FEA pack and the PhotoView 360 Rendering App.  These programs, which I frequently use for my projects, require a large amount of RAM and graphics processing capabilities.  Because there is no computer that is both portable enough to bring to class to take notes on and powerful enough to rotate a >1,000 part 3D model of a racecar, I am convinced that the best solution is to use two well synchronized computers for my two distinct use cases.

Current Computer: ThinkPad X61 Tablet

  • Windows 7 – 64 bit
  • Intel Core 2 Duo L7700 @1.80GHz
  • 4 GB RAM
  • Mobile Intel 965 Express Chipset Graphics
  • 12″ screen @ 768×1024
  • 320?GB ????rpm Hard Drive
  • Docking Station – DVD drive with CD-RW
  • Docking Station – Connects to External Hard Drives
  • Docking Station – Connects to 24″ Samsung monitor @ 1080×1920

Workstation Design

Graphics Card

My primary focus was a graphics card that would let SolidWorks run at its full potential.  I needed a workstation card with openGL support to get the most out of SolidWorks.  I decided on the NVIDIA Quadro FX 580 because of its balance between price and performance.  It connects with the PCI Express 2.0 x16 port, so it began to limit my motherboard options.


Running Finite Elements Analysis always hangs up my laptop (or crashes it) so I wanted a processor that could handle the load.  The Intel i7 family seemed to be my best bet.  I needed to choose between the i7 920 and i7 930, a difference of about 140MHz and $15.  I went with the 920 because it seemed like the more popular model, which would make community support when I try to overclock it much easier.


I wanted to find the cheapest Motherboard I could that would get me by.  I needed the 1366 socket for my processor, a PCI Express 2.0 x16 plug for my graphics card, and room for some RAM.  I found an ASRock board that had just what I wanted and had room for another x16 card with SLI support if I felt the need to expand.


When viewing a model in SolidWorks it loads the assembly and all parts and sub-assemblies and sub-sub-assemblies and sub-parts etc. into RAM.  in order to view the full model of the racecar, I wanted to make sure I had enough RAM.  Because the i7 is tri-channel, I thought 3 x 2GB sticks would be sufficient.  The motherboard wanted DDR3 RAM, so that’s what I got.

Heat Sink / CPU Cooler

Even though the i7 runs at 2.66GHz, because most of the cores arent being used all the time, it is very easy and standard to overclock them to about 4.0GHz.  However, I needed a good cooler to get there.  I chose the CoolerMaster Hyper 212 because of its good reviews and good value.

Power Supply

I wanted to make sure to leave room for expansion, so I didn’t skimp on the power supply wattage.  I found a great series of deals, sales, and rebates that ended up cutting the price of a CORSAIR 650 Watt power supply in half.  I might regret not paying a premium for modular wires, but I think it will definitely get the job done.

Hard Drive

Because I already have external hard drive with all of my data, I didn’t see the need for anything fancy.  I found a good deal on a 1TB 7200rpm hard drive that is more than enough for me.  I may regret not buying a small solid state drive to speed up the time it takes for me to boot and the time it takes to start programs.


I wanted an inexpensive case that was portable enough to be moved once or twice a year whenever I change where I live.  I also wanted to avoid any cheesy gamer cases with blue lights and annoying bells and whistles.  The CoolerMaster 335 seemed like a good, plain, simple, robust, economic option.

Optical Drive

I never use CDs or DVDs.  At Carnegie Mellon, the internet and intranet are so fast that it doesn’t make sense to transmit data any way besides the campus network.  I will not install an optical drive in the workstation, but if I need a CD drive desperately, I can always link to the docking station on my laptop.  I’m planning on installing the OS with my roomate’s 8GB USB thumbstick.


I’m going to be using the same Samsung 24″ 1080×1920 I already have with my laptop and docking station, except I can switch inputs between laptop and Workstation.

Keyboard and Mouse

While I plan on using the old wireless Logitech USB mouse I already have when I need to, I prefer the Trackpoint mouse on my Lenovo laptop.  It’s so much easier to transition from keyboard to mouse when the mouse is already next to your right pointer finger.  Temporarily I will borrow a roboclub keyboard, but eventually I might indulge in this keyboard from Lenovo.  Also, I know there is some software out there that can link my laptop to my Workstation and let me use the keyboard and Trackpoint on my X61 to control my Workstation



  • Windows 7 – 64 bit
  • Intel Core i7 920 OC @ 4.0GHz
  • 6 GB RAM
  • NVIDIA Quadro FX 580
  • 24″ screen @ 1080×1920
  • No Optical Drive
  • 1TB 7200rpm Samsung Hard Drive
  • Trackpoint keyboard?


I expect that when I’m in my dorm I will be using this computer, controlled from my laptop input with some synch program running between them.  While on campus I can take notes/go online with my laptop, but remote into my workstation for any serious business.  While off campus, depending on the internet connection, I might still be able to remote into the workstation to do serious work if I needed to.  The last component (i7 920) should arrive Monday, and I look forward to putting this together in the robotics room with the help of my friends.

2 Comments :, , , , , , , , , , , , , , , , , more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!