Introduction: "Hurry, Doctor!" an Arduino Powered Operation Style Electronic Board Game
I picked up an old Operation board game from the thrift store and my three-year old and I performed a few successful surgeries. My residency complete, the next day I visited the Dollar Tree for foil, foamcore and plastic boxes and started tinkering towards a lesson plan to build a bunch of them with my elementary school STEM students...
...down the rabbit hole...
I had also been looking for long-term middle school project ideas for the upcoming school year. Specifically, a healthy dose of real code running an electronic device that the kids get to make mostly by themselves and take home. Something with plenty of hands-on craftsmanship using X-Acto knives, a soldering iron, nuts and bolts, foil tape, and so forth.
About twenty hours later, every table in my classroom was covered in wire snippings and foamcore scraps, I had written and thrown away about 12,000 lines of code in order to have 750 that worked correctly, I had two breadboards and two prototypes within which four Arduinos blinked away, both of my whiteboards were covered in gibberish, the base of my drill press was buried in PVC shavings, and I was officially halfway done...
In the classic board game, 'Operation', players draw a card to determine which tiny plastic object to extract and for how many dollars, then they receive that amount of money if they pull the piece out of a tight opening with a pair of tweezers...as long as they don't accidentally brush against the metal edge. Touching the edge with the wired tweezers closes a circuit that lights up the patient's nose bulb and vibrates the playing field with a motor under its surface, indicating a failed surgery.
I figured that using an Arduino, I could maintain the basic game play but automate the scorekeeping, add simple sound effects, and enhance the game with a timer, so that players would earn more money by performing surgeries quickly.
"Hurry, Doctor!" turned out pretty well, happily running on a $3 clone Arduino Nano. Since my students each get to build and take home one of these, keeping the cost of consumables down towards $20 is pretty important.
While the final version uses scraps of a rigid material, 'Foamed PVC' to make the game board rigid and durable, (and make it easy for me to stack and jigsaw out several at a time to prepare them for the students), but the board can easily be made with foamcore instead if you don't have a local plastics store with a generous $1 scrap bin and the kind of free custom cutting services that you get if you used to work there fifteen years ago but Denny is still the manager there.
I am pretty sure that this whole thing can be built for a total of around $30, depending on how much you pay for your LCD display, your Nano, and how many resistors, M2 machine screws, drill bits and pieces of foil tape you happen to have around the garage. Like most maker projects, it may only require about ninety cents' worth of Super 77 or foil duct tape, or a few turns of a spade bit...but that's more like $10 each if you don't already have any at hand.
It's an ideal middle school class project, in my opinion, because the materials are commonly available and cheap, there is a lot of cutting and folding and gluing and drilling and measuring, and overall, it's a satisfyingly complex thing for a kid to have put together.
The code does a pretty good job of showing how functions can be strung together in an overall flow, how to do hardware things like monitor button presses, trigger piezo music, refresh the LCD, etc., and is therefore a fairly comprehensive introduction to what coding can do to make homemade hardware perform impressive actions.
Once the project is complete, it's also easy to see how to alter the code within the functions to personalize the game without ruining its basic operation- how to change the melodies played for certain events, change the names of the doctors, etc.
The build breaks down into three main parts- assembling and soldering the circuit onto a protoboard, downloading and testing the Arduino code, and finally assembling the game board surface/enclosure and mounting the protoboard and components within.
Step 1: Gather Components for Circuit
Like most electronics projects, the price-per-unit drops DRAMATICALLY as you build more units. All of the little components are almost the same price for a dozen as they are for one, especially with shipping charges. This makes the per-unit build cost tricky to define, but is a great benefit for classroom teachers!
Arduino Nano (I used a $3 clone and soldered the header pins on myself)
7/8" Diameter Piezo Buzzer
1602 LCD Display (project was tested with a 1602A and a 1602C)
(5) 1k ohm Resistors
(1) 220 ohm Resistor
10k Potentiometer (the one pictured here has come with every 'intro to Arduino' set I have...but I can't find a link to order one at the moment. The important thing is that its as flat as possible, to fit under the socketed Arduino)
(2) 7/16" square buttons, not the kind that latch open and closed (I used a Yellow square cap for the ENTER button and a Black square cap for the SELECT button, and the code refers to the buttons as Yellow and Black, but any color square cap is fine)
(1) Toggle switch
Spool of 22 gauge solid core copper wire, color unimportant (yellow in all the photos)
Spool of 26 gauge solid core copper wire, color unimportant (white in all the photos)
12 pieces of Female-connector hookup wire (can use female-to-male or female-to-female, as one connector is snipped off anyways)
(8) M2 x 12 machine screws
(8) M2 nuts
(16) M2 washers
(3) 3/16" x 3/4" machine bolts
(3) 3/16" nuts
(6) Large Flat 3/16" or 1/4" hole washers
Aluminum Foil Tape (same as tape used in enclosure)
Small angle trimmers
Automatic Wire Stripper (or the old fashioned red-handled kind, but my yellow and blue one is the best $10 I ever spent)
Small Zip Ties
3/32" Heat Shrink Tubing (less than a foot)
Step 2: Gather Materials for Game Board and Enclosure
(1) piece of 1/4" thick foamed PVC sign board cut to 7 1/2" x 10 1/2", or a piece of 1/4" thick foamcore, or any easy-to-machine, stiff 1/4" thick material cut to size (plywood is fine). If you don't want to use a jigsaw, and don't mind a slightly more fragile end result, use foamcore. If you use wood, follow all of the directions with no changes. If you use foamcore, skip the instructions for drilling out the Board Layer, and use an X-Acto knife instead of a jigsaw to cut out the purple regions and the holes for the ON/OFF switch and piezo.
(1) 7 7/8" x 10 7/8" x 1 1/2" thin cardboard gift box (available in sets of three at my local Dollar Tree...any enclosure of this size or very slightly larger will work) NOTE: the .pdf should not be resized, since none of the hole markers will line up with the components, and the whole thing won't fit together. You have to find a box very near the dimensions given.
(1) 30 x 40 sheet of foamcore from the Dollar Tree (two sheets if you are using one for the game board instead of PVC)
(1) sheet of white poster board from the Dollar Tree
7/8" Spade Drill Bit
1/2" Spade Drill Bit
3/32" Drill Bit
1/4" Drill Bit
Super 77 Spray Adhesive
Aluminum Foil Tape (the very strong kind used for duct work, available at any hardware store...I used some that was 1 7/8" wide, but other widths can be used)
Ball-point Pen or Stylus
Gorilla Tape or Duct Tape
Double-sided foam mounting tape
Elmer's White Glue
Jigsaw with plastic or metal blade (very small teeth)
Step 3: Solder 40-pin Socket and Socket Wires to Protoboard
This commences the first major phase of the project- building and testing the circuit, which will later be mounted in the enclosure.
The trick to preparing the circuit, which is mounted on a single piece of protoboard, is to keep the entire back side trimmed as flush as possible so that the big ENTER and SELECT buttons, which are soldered to the back, poke through the game board at the correct depth to be functional.
See the very end of this Instructable for brief instructions on breadboarding the circuit, if you'd like to, along with other Teacher Resources.
First, we will mount a 2 x 20 socket for the Nano (I try to use sockets, so I can reuse Arduinos) and solder the wires that will access all of the ports of the Nano through the socket.
Cut (12) 10" pieces from 26 gauge solid-core copper wire. Strip about 1/4" from one end of each, and bend the exposed wire at a 90 degree angle.
Cut (4) 10" pieces from 22 gauge solid-core copper wire. Strip about 1/4" from one end of each, and bend the exposed wire at a 90 degree angle.
Use one or more binder clips to secure the wires corresponding to the Wiring Diagram (image 5). Note that in the photos above, the 22 gauge 5V wire is missing...it shows up in the photos for the later steps, once I realized I forgot it!
Put just enough solder in each perfboard hole to form a tiny cone against the wire.
Trim as close to the board as you can with angle cutters.
Press the Nano into the socket and check that the correct pins correspond to the correct wires, using the last photo as a guide. The Nano is only 15 pins long, so five pins are left over opposite the USB port side of the Nano. These extra five openings in the socket won't be used.
Step 4: Solder Potentiometer to Protoboard
All of the component hookup wires in the next few steps will feed through the top (socket) side of the protoboard, since the back side needs to stay as flush as possible. All wires are stripped about 1/4" and then fed through the top of the board into the same hole that a component leg occupies, then the board is flipped and solder is applied to secure both the component leg and the wire, then both are trimmed flush with angle cutters when the solder cools.
Since it's a pretty small protoboard, we will 'hide' the potentiometer in the part of the socket that goes unused. The middle leg of the potentiometer gets a signal wire that will end up controlling contrast on the LCD, and the other two legs get a positive and a negative lead. Which leg is positive and which is ground won't matter- it just means that the potentiometer will have to be twisted the opposite way to dim the screen if you swap them- and our screen contrast won't need to be set often, most likely once during testing.
Solder enough wire to the three potentiometer legs so that there is extra for later when final connections are made. 10" lengths are sufficient.
Step 5: Solder Resistors to Protoboard
Put the lone 220 ohm resistor in the bottom row of the protoboard, then each of the 10k resistors just above it, for a total of six resistors in a line.
Cut two 10" lengths of 26 gauge wire, strip about 1/4" off of the end, and feed one end of each wire through the same hole occupied by either end of the 220 ohm resistor. Turn the board over, solder the wire ends and resistor legs into their protoboard hole, and snip off the excess.
Cut five 10" lengths of 26 gauge wire, strip about 1/4" off of one end of each, and feed the stripped end of each wire through the hole occupied by the RIGHT leg of each 1k resistor (the one that is closer to the center of the board, not the edge side.) ALL of these wires will go to +5V provided by the Arduino, so they will be twisted into a 'power bus' at a later stage. Each of the two buttons and the holster, success detector, and foil layer will go from 5V power through a resistor, and since the tweezers are grounded, this is how the Arduino finds out about various events- failed and successful surgeries and button presses.
Now, for the other side of the five 1k resistors, it is slightly more complex, because each resistor needs to see two wires- one that goes to a port on the arduino, and one that connects physically to the button or foil region that needs to be triggered.
Look at the attached Fritzing diagram to make sure the correct Arduino ports end up soldered to the correct resistors and components.
Working from the top down on the row of 1k resistors:
Take the wire soldered to the protoboard that goes to Port 13 of the Arduino Socket (the very first port on the bottom row of the Nano) and run it to the top resistor's left leg. Trim it to size, leaving about a half inch extra and being careful to run it AROUND, not OVER, the socket (or the Arduino can't be put in later...)
Strip about 1/4" from the wire and poke it through the same hole that the top resistor's left leg is in. Now, take a 10" length of 26 gauge wire and strip about 3/8" from one end and put it through the hole just to the left of the occupied hole you just used. Turn the protoboard over and solder all three of these wires together without invading the adjacent row of the protoboard.
Use this system to solder 10" wires AND signal wires to each of the 1k resistors. The top resistor gets the Port 13 wire, the second resistor gets the Port 2 wire, the third resistor gets Port A5 (we use one of the analog ports in the circuit, having used all of the digital ports on the Nano), the fourth resistor goes to Port 11, and the bottom 1k resistor gets Port 10.
When you're done with the resistors, the 220 ohm will have two wires going to nowhere. The 1k ohm resistors will each have a wire from the Arduino socket's correct port AND a wire going nowhere on the LEFT side, and a wire going nowhere on the RIGHT side.
Turn the protoboard over and snip the pin and wire ends flush with the angle trimmer.
Step 6: Solder Buttons to Protoboard
The exact location of the buttons is really important, since the protoboard's mounting holes and the holes for the buttons are already part of the enclosure design. Don't mount the buttons in the wrong protoboard holes!
Looking at the back of the protoboard with the socket on the top side, the YELLOW button goes on the bottom-leftmost place it can mount in the protoboard. Note the orientation of the four button pins- they are on the sides, not top and bottom.
Leave one empty row between the buttons and place the BLACK button next to the YELLOW, and turn the assembly over.
The buttons are the only parts that are soldered on the top of the protoboard. Cut two 10" lengths of 26 gauge wire, strip 1/4" from each, and feed the exposed wire through the same hole that the bottom-left pin of each button goes through. Solder the wires to the button pins, letting just enough solder puddle up so the button is also physically joined to the protoboard. These wires will join the ground bus someday, just leave them going nowhere for now.
One of the wires from the previous step, the one that joins the left side of the bottom-most 1k resistor (the resistor with the wire that goes to Port 10), is now cut to length, stripped and soldered to the top left pin of the YELLOW button, the one that is on the right side in the Fritzing diagram and the left side in the above photo.
The BLACK button gets the wire that comes from the Port 11 resistor, which should be the second-to-bottom 1k resistor, soldered to its top left pin.
Although neither button's remaining pins are electrically connected to anything, solder them to the protoboard so the buttons are mounted securely.
Step 7: Create +5V and Ground Busses
The power wires and ground wires will be gathered and bundled together with zip ties as shown in the second picture.
The 'Ground Bus' must include the following wires:
1) The wires that were previously soldered to the left side of the 220 ohm resistor and the bottom pins of each button
2) The wire that comes from the GND port on the top row of the Nano socket (the 12th hole in the protoboard's top row)
3) One of the wires from the potentiometer's left side, the side with two pins. It doesn't matter which, as long as you don't use the signal wire- the one that comes from the right side of the potentiometer, which only has one centered pin
4) One 6" wire (26 gauge) that will create another 'mini ground bus' for the three ground wires required by the LCD display
5) One 12" wire (26 gauge) that will eventually be attached to the tweezers
6) One 6" wire (26 gauge) that will eventually be attached to one pin of the piezo buzzer
The 'Power Bus' must include the following wires:
1) All five of the wires that were soldered to the right leg of the 1k resistors in a previous step
2) The wire that comes from the 5V port on the bottom row of the Nano socket (the 12th hole in the protoboard's bottom row)
3) The other wire from the potentiometer's left side (the wire you didn't use for the ground bus)
4) One 6" wire (26 gauge) that will create a 'mini power bus' for the two power wires required by the LCD display
Once you have the bundles zip-tied together, trim them. You do NOT have to trim them as close to the zip tie as the pictures indicate- that actually turned out to be a bit of a mistake when it came time to strip the ends!
Step 8: Create "Ribbon Cables" and Connect LCD Display
Clip one end off of the 12 female-connector hookup wires and strip 1/2" from the clipped end.
Create two groups of six wires (colors are helpful when making final connections, but no specific order is required) and bundle the female connectors with electrical tape to create a pair of 6-connector ribbon cables.
Since the LCD display with header pins is almost too tall for our enclosure, pins 1-6 and 11-16 must be bent with pliers to a near-45-degree angle downward as shown in the second photo above.
Attach one group of cables to Pins 1-6 on the LCD display, and the other from Pins 11-16. Pins 7-10 will not be used.
While making the following connections, make sure the LCD display is sitting on the tabletop about 4" away from the Protoboard. If you make all of these connections with wires that are too short, the finished circuit won't mount in the enclosure!
Strip 1/2" from one of the wires in the ground bus bundle and one of wires in the power bus bundle.
Twist the wires from LCD Pins 1, 12, and 16 together with the wire from the ground bus.
Twist the wires from LCD Pins 2 and 15 together with the wire from the power bus.
Twist the wires from LCD Ports 3, 4, 5 and 6 to the wires from Nano socket ports 7, 6, 5 and 4 (these wires are orange, cyan, blue and green in the Fritzing diagram above)
Twist the wires from LCD Ports 11 and 13 to the wires from the Nano socket ports 9 and 8 (these wires are lavender and brown in the Fritzing diagram)
Twist the wire from LCD Port 14 to the middle leg of the Potentiometer
Step 9: Connect LED, Piezo, and Tweezers
The entire circuit except for the main power wires (the GND and VIN ports on the bottom row of the Nano socket) will be finalized in this step. We don't need these GND and VIN for power yet, since we will use the USB port to upload the code for the game and it provides power for testing.
Connect the Port 12 wire from the Nano socket to the long leg of the Red LED. I happened to have a two-hole female header already joined to a power and ground wire, so I used that. You can also use female-connector hookup wire, the same as what was used to connect the LCD, if you have more of them. Or, you can just solder a pair of 6" wires (26 gauge) to the LED legs.
Connect the short leg of the LED to the wire that was already soldered to the right side of the 220 ohm resistor.
Same story with the piezo buzzer- you can use a two-hole header connector wire, a pair of female-connector hookup wires, or solder the connections.
Connect one leg of the piezo to a wire from the ground bus bundle, and the other leg to the wire coming from Port 3 of the Nano socket.
Connect one end of the alligator-clip hookup wire to the last remaining ground bus wire and the other end to the tweezers.
There should be three wires 'left over' from connecting the LCD and other components. These three wires are connected to Port 13 for the Foil Bed (failed surgery), Port 2 for the Holster (where the tweezers go before a surgery begins) and the Port A5 for the Success Foil (where the players touch the tweezers after a successful surgery, to stop the timer and calculate their score).
Strip 1/2" from the end of these three wires, trace them to their proper port, and label each with a piece of tape for testing in the next step. (Labels should say 'Holster,' 'Foil Bed,' and 'Success.'
Congratulations! Phase One is complete, and the circuit is ready for Arduino code and testing!
Step 10: Download Arduino Code, Adjust LCD Contrast, and Test Circuit
Welcome to Phase Two!
Press the Nano into the socket, making sure the D12 and D13 pins of the Arduino go into the first holes of the top and bottom rows of the socket, respectively, and the 5V, GND and VIN wires are all sent to the correct ports.
Connect the Nano to your computer with the USB cable, open the Arduino IDE, and make sure the Nano is recognized (assigned a COM port) and the correct ATmega processor type is selected...ATmega328 in my case.
Open up the Hurry Doctor Code file, and open the pitches.h file, add a tab to the Hurry Doctor Code, name it pitches.h, and copy/paste the pitches.h library into the second tab. Make sure your screen looks like the photo (note the pitches.h tab) and download the code to your Nano.
You should hear a short musical intro, the LCD should display "Welcome to Hurry, Doctor!" for a few seconds, and the next screen should say "Players: 1, Select or Enter".
Insert a small blade screwdriver into the Potentiometer and turn it back and forth until the LCD contrast is correct.
Press the BLACK button to make sure the Player Number toggles between 1 and 2, then press the YELLOW button to finalize a one-player game selection. Note that the LED should light up when you make your choice.
After the game assigns you a random doctor name, a surgery to attempt and a dollar amount, it should stay on the screen that says "Return Tweezers To Continue..."
Now, take the tweezers and touch the wire that you labeled 'Holster' in the previous step. This should change the display to "Lift Tweezers to Begin", and when you lift the tweezers and break the connection, a countdown timer should start.
Touch the tweezers to the wire you labeled 'Foil Bed' and the display should indicate that the surgery failed.
After a few seconds, another surgery will begin. Touch the tweezers to the Holster to start the timer, then touch the wire marked 'Success.' The game should indicate a successful surgery, and award you a dollar amount.
If this sequence is successful, solder all wire bundles and connections from the previous steps and protect each connection with the 3/32" heat shrink tubing.
Step 11: Begin Enclosure Assembly: Print and Mount Layer Templates
Welcome to Phase Three!
The enclosure of the game has a three-layer sandwich on top. The top layer, the one that is visible at the end, has the names of the surgical procedures next to their openings. Under it is a nearly identical layer that will have its openings lined in conductive foil. Finally, on the bottom is a rigid board layer that all of the buttons and electronic components are mounted to. These three layers are ultimately bolted together and will form the lid of the cardboard box that is the overall game enclosure.
Print the three Board Layout .pdf files, and carefully cut them out with scissors around the outermost rectangle (you will trim about 1/4 to 1/2" of paper on all four sides) and cover the back side of each template with a nice, even coat of Super 77 spray adhesive.
Eagle-eyed readers will notice that the photos depict an earlier iteration of the template files. As the Instructable progresses, the photos will become more accurate.
Make sure you wait for the adhesive to slightly dry before applying the templates per the instructions on the can- if you touch your knuckle to the paper, and some of the adhesive comes off on your knuckle, you still have to wait a bit until it is just tacky and not wet.
The Hurry Doctor Top Layer template mounts to some 50-cent Dollar Tree white poster board. I wouldn't use a very thick poster board- it makes it tough to cut the openings later with an X-Acto knife. Incidentally, this is the only copy of the Board Layout that is going to be visible when the project is done, so keep it safe from smudges, rips, etc.
The Hurry Doctor Middle Layer template is mounted to the lid part of the thin Dollar Tree cardboard gift box. Cut the lid so that it will lay flat- releasing each corner. Later, it will be taped back up into a 3D lid.
The Hurry Doctor Bottom Layer template is mounted to the 1/4" foamed PVC. This is the trickiest one to glue correctly, because the paper printout is a bit larger than the plastic, and you have to get it relatively centered. If you're using foamcore, leave a border of foamcore around the template and then trim to size after the adhesive has dried.
Once the three different board layouts are dry, trim all the way around the 1/4" PVC Board Layer with an X-Acto knife and use scissors to trim off extra poster board from the Top Layer.
Step 12: Drill Holes in Board Layer
The Board Layer template that you glued to the PVC is used to mark where all the holes are drilled, and what sections will be removed with a jigsaw.
Drill the holes in order from largest to smallest- first the big holes marked in yellow with the 7/8" spade bit, then the holes marked in green with the 1/2" spade bit, then the red-marked 1/4" holes, then the small black 3/32" holes.
A drill press is almost critical- several of the tiny mounting holes need to be VERY close to the edge of the jigsaw cutouts, and you can't miss the target by much on any of the mounting holes if the machine screws are to line up later.
Use the yellow circles to line up the center of the 7/8" bit and go very slowly, backing out often, to keep the plastic from melting as you cut.
The somewhat strange offset hole position for the ENTER button cutout is intentional- if you aren't careful, you can lose the mounting hole in the top right corner.
The hole for the ON/OFF switch also needs to be centered perfectly, since the body of the switch fits very precisely through the hole.
After you switch to the 1/2" spade bit, drill out all holes marked in green, which will be used as pilot holes for the jigsaw blade when you cut out the purple regions.
The holes marked in red are all drilled out with a 1/4" bit.
Finally, use a 3/32" bit to drill the 8 mounting holes, four around the LCD display and four around the SELECT and ENTER buttons.
Step 13: Remove Purple Regions From Board Layer With Jigsaw
Load the jigsaw with a plastic or metal blade, or whatever blade you have that has the most and smallest teeth. Pull the trigger very slightly (use the slowest speed possible) and keep the shoe of the jigsaw firmly on the surface of the plastic. Too much chattering will break the board. Anyone want to buy a few board fragments?
Start with the LCD region, which is the smaller of the two purple areas and has a 7/8" hole in it as well as the corner 1/2" holes. This 7/8" hole protruding slightly to the side is necessary because the LCD screen has a piece of plastic that won't let it sit flush otherwise.
Try to keep your cutting just on the outside of the purple region- if you leave any purple, the LCD won't fit. Be VERY careful around the corners. It's easy to ruin the tiny mounting holes for the LCD by cutting too far. Either use a square file or the jigsaw to very gently square the corners- you can't leave them radiused or the LCD won't fit.
When you cut the larger purple region, be especially careful at the bottom right corner, where the edge of the board is so near- it won't take much chattering or feeding too fast to break this part. Anyone want to buy one of these tiny parts?
You can square out the corners with either the jigsaw or with a file. Be gentle and go slowly either way.
Congratulations, the Board Layer is complete!
Step 14: Remove Regions From Foil Layer With X-Acto Knife
This step calls for some fine X-Acto work. It's fairly important to follow the lines precisely. This is one time when a nice cutting mat (the self-healing kind that quilters use) is worth every dollar.
Do cut and remove:
The LCD Panel
The ON/OFF Switch Panel (but not the words below)
The SELECT and ENTER Switch Panels (but not the words below)
The Completed Surgery Bin on the bottom right corner, above the exclamation point in the word 'Doctor!'
Do NOT cut and remove the two large, slightly ominous looking vertical rectangles running outside each of the minifigure's right and left hands
Finally, carefully cut and remove the six white shapes (future bin openings) in the body of the construction worker minifigure.
Step 15: Cut and Apply Foil Tape to Foil Layer
It takes a few adjacent pieces of foil tape to cover all of the edges of all six of the surgery cutouts in the Foil Layer.
WIthout removing the tape backing, plan and lay out the foil tape so that the pieces border each other exactly. You don't need or want any overlap.
Make sure you plan to cover each of the surgery cutouts with at least 1/4" extra all the way around. The picture shows this being done with three different pieces of tape- which is possible if you use 1 7/8" or 2" wide tape.
It is a good idea to make some reference marks on the Foil Layer template, before peeling the back off of the tape, since none will show when the project is finished and it's very important to place the tape correctly.
Try to keep things neat- this is the nice, shiny foil that will show through around the edges of the surgically removable objects and scream 'I am a well-built Operation game!"
It is VERY IMPORTANT that you DO NOT lay any foil tape over the red circles that mark where drilling happens on the PVC layer, within the two vertical rectangles on either side of the minifigure's hands. In a later step, a bolt will run through there and if it contacts the foil, all is lost.
Step 16: Cut and Wrap Foil to Fit Foil Layer Openings
Hopefully you haven't accidentally taped your Foil Layer too firmly to the tabletop through the surgery openings.
Flip over the Foil Layer so you can see the eleven openings, six of which reveal the sticky side of the foil tape.
With your X-Acto knife, cut an X pattern in the foil from the corners to the center on the sticky side of each simple rectangular opening.
The stranger shapes require several cuts inward. See the picture above.
Using tweezers, carefully fold over each little sticky foil tape triangle and adhere it to the inside of the Foil Layer's cardboard lid.
Take your time, try to fold each tiny triangle of foil as neatly as possible. The payoff is when you turn the Foil Layer back over and see clean, straight foil edges lining the cutouts.
Step 17: Bridge the Foil Sections
Now, you need to make sure that the foil sections are one continuous conductive region so that no matter where the tweezers touch, the Arduino can sense that it's a failed surgery.
If you used three regions of foil tape to wrap the cutouts, cut two tiny rectangles from your foil tape, peel the backing, and place them UPSIDE-DOWN (sticky-side-up) in places where they bridge neighboring foil regions but do not come within 1/4" of the hole openings. If you get too close, they will show through when the board layers are finished.
Then, cut two very slightly larger foil tape rectangles, and tape down the little bridges with them.
If you used more than three regions of foil, for example if you didn't have 2" wide foil tape, just make sure that all of the regions are bridged using the same method.
Step 18: Cut Openings in Top Layer and Adhere Top Layer to Foil Layer
Do cut and remove:
The LCD Panel
The ON/OFF Switch Panel (but not the words below)
The SELECT and ENTER Switch Panels (but not the words below)
The Completed Surgery Bin on the bottom right corner, above the exclamation point in the word 'Doctor!'
The six white future bin openings for the surgery objects in the body of the construction worker minifigure.
Do NOT cut and remove the two large, slightly ominous looking vertical rectangles running outside each of the minifigure's right and left hands.
Spray the back of the Top Layer with a nice, even coat of Super 77. When the adhesive is still tacky but no longer transfers to your knuckle, it's ready to bond.
It is very important that the Top and Foil layers line up precisely- more precise than your hand-cut openings probably are- so use the outermost rectangles printed on the templates to make sure all four corners are aligned. That way, any small errors you have made with the X-Acto knife will be evenly distributed across the board, rather than just one or two openings being 'perfect.'
Put the Foil Layer/Top Layer sandwich under a few heavy books for at least an hour.
Step 19: Attach Wires to Foil Layer
Even though the Foil layer has been bridged into one electrically conductive element, it doesn't hurt the game's longevity to connect to it with two wires instead, in case one wiggles loose at some point.
Cut two lengths of 26 gauge solid-core wire to about 12" (leaving plenty of extra, they'll be trimmed to size later) and strip about 3/4" of insulation from one end of each.
Since the "Wrenched Knee" and "Mental Block" openings offer plenty of foil surface area and are far apart on the game board, they provide a good place to mount our two wires.
Lay the wires to where the bare copper portion contacts plenty of foil, and use some electrical tape to hold the wires in position while you secure them with tiny rectangles of foil tape.
Step 20: Print, Mount, Cut and Assemble the Bins
Print out the Hello Doctor Bins template file, cut a piece of poster board slightly larger than 8 1/2" x 11", coat the template's back side with an even layer of Super 77, wait about two minutes for the adhesive to cure slightly but remain tacky, and mount the Hello Doctor Bins template to the poster board. Use the less-shiny, less good-looking side of the poster board if there is one.
Put the mounted template under a couple of old science books for a couple of hours.
In order to create very neat folds, it's important to use a ball-point pen or stylus to score the fold lines. It's much easier to score the lines before you cut out the bins! If you don't score the fold lines, it will be impossible to fold the poster board into neat, straight bins.
Use your X-Acto knife to cut out the seven bins.
Fold the tabs up towards you once to make sure the folds are following the score lines, then fold them downwards into their final position.
Tape the bins together. Usually, I'm a 'Gorilla-tape-on-everything' kind of teacher, but for the bins, electrical tape is a good idea. It has enough flex to make it easier to wrap around the bins, which are pretty small- you'd have to cut Gorilla tape into strips and that is no easy task. You don't have to worry too much about the final appearance, since only the inside of the bins will be visible to the game player.
Finally, locate the 'cut-out' portions of the mounting tabs for the Inner Child, Mental Block, Radial Fracture, Funny Bone, and Wrenched Knee bins. These need to be removed with scissors because these bins mount very close to each other on the game board, and the tabs are too thick to allow overlap. See the final image if you aren't sure what the cut-out portions are.
Step 21: Glue the Bins and Bin Support to the Foil Layer
Print out the Hurry Doctor Support template file.
Use the Super 77 to mount the Hurry Doctor support template to a square of poster board, and when it is dry, cut it out with scissors around the perimeter and use an X-Acto knife to cut out the bin openings.
Cut outside the OUTSIDE EDGE of the red rectangles, so the bins easily fit through the holes. If you leave any of the red line on the template, the bin won't fit through. It's OK to cut the openings about 1/16" too big.
The next part requires some fairly quick movements, so that the Super 77 doesn't set up before you're ready. Make sure you have all of the bins and the Elmer's glue close at hand.
Coat the TOP SIDE (the printed template side) of the Support template with a layer of Super 77, and quickly place the bins in their homes, first positioning the Inner Child bin and then the rest, open side up.
Quickly coat the top four tabs of each bin with a thin layer of Elmer's white glue.
Position the Foil Layer/Top Layer sandwich over the bin assembly and use the Completed Surgery bin to line up the bottom corner, then make sure all of the bins are positioned correctly.
Flip the assembly over and put some weight on each of the bins. My roll of foil tape, a small battery charger, and a pair of pliers turned out to be pretty good weights!
Allow at least three or four hours for the assembly to dry completely.
Step 22: Drill Holes in Top Layer/Foil Layer
This is something that the middle schoolers will enjoy- a real drill press, set up as safely as possible (through two layers of cardboard.) Great way to get your feet wet!
All of the holes are either 1/4" or 3/32". There are four 1/4" holes, including for the LED in the minifigure's helmet, and 15 3/32" holes including the nine for the Piezo speaker.
Always try to set up a block of plastic or wood to drill into, as it makes the holes much cleaner.
Step 23: Apply "Holster" and "Success" Foil to Top Layer
There are two electrically conductive regions on the Top Layer- the 'Holster', which is where the tweezers belong before a surgery begins (the Arduino senses when they are picked up in order to start the timer for the surgery) and the 'Success' region, which is where players set the tweezers after completing a successful surgery.
Cut a single piece of foil tape to 4 1/2" long and then exactly longwise in half to create two 4 1/2" x 1 15/16" pieces. Adhere them carefully within the vertical black rectangles next to the minifigure on either side.
Then, turn over the entire assembly and poke a hole in each 1/4" hole within the foil regions (there are three of them.)
Turn the board over once more and use a ballpoint pen to poke through and adhere the foil to the back side around the three holes, so they are cleanly lined in foil and as conductive as possible.
This concludes the first phase of construction. Now, it's time to get the electronics together!
Step 24: Attach LCD and Protoboard to Enclosure
Place the Board Layer under the Top Layer/Foil Layer sandwich and line up all of the holes.
Using (8) M2 x 12 machine screws, washers and nuts, attach the LCD and the Protoboard using the 3/32" mounting holes.
The second image shown above is optional- I cut a strip of poster board and folded it into a double thickness, then glued it just below the LCD enclosure. The reason for this is that the LCD won't lay flush otherwise- it'll tip downwards because there are some pins on the top edge that poke through a couple of millimeters.
The easiest way I found to mount both boards was to first put a washer on a bolt, push it through from the top, flip everything over so that the table top helped shove the bolt through and hold it, then carefully put a washer and nut on the end of the machine screw. The most difficult bolt to get to is the inside bottom protoboard bolt- I needed some needle-nose pliers to hold the nut in place and I gave up trying to get a washer on the bottom.
Step 25: Mount Lens, LED, Piezo and Power Switch
On the front of the enclosure, put some super glue on a tiny round Lego clear lens and shove it into the 1/4" hole on the minifigure's helmet. I had to drill out the 1/4" hole again because the alignment wasn't perfect and the lens barely squeezes in.
Flip the enclosure over and put the LED in the same 1/4" hole, then secure it using an inch or two of electrical tape. Put the positive (longer) leg from the LED into the correct female connector coming from the Perfboard circuit, then the negative (shorter) leg, then secure with a small piece of electrical tape. Tape the wires to the PVC board with electrical tape, so the connection doesn't wiggle loose and the bare legs of the LED are covered.
Place the Piezo buzzer in its 7/8" hole. Press the legs through an inch or two of electrical tape to hold the Piezo in place. Attach the Piezo wires' female connectors coming from the Perfboard circuit (the Piezo does not have polarity, so don't worry about which goes on which leg) and use another piece of electrical tape to secure the wires to the PVC board so they don't fall off.
Flip the enclosure once more to the front side, and shove the Power Switch through its rectangular hole. Note the orientation of 'On' and 'Off' and position the switch to line up correctly with the words on the Top Layer. The two terminals to solder to are on the 'Off' side of the switch, which isn't intuitive.
Step 26: Mount and Wire Battery Case
On the under side of the Foil Layer, place double-sided foam mounting tape on the bins marked "Wrenched Knee" and "Hopeless Case" and over the right half of the "Completed Surgery" bin. Press the 6 x AA battery case firmly into position.
Solder the positive lead from the Battery Case to one leg of the switch. Solder a wire from the other leg of the switch to the VIN wire from the Perfboard circuit.
Solder the unused GND wire from the Perfboard circuit to the negative lead from the Battery Case.
Protect all connections with Heat Shrink tubing.
Load the Battery Case with AA batteries and flip the switch to verify that all connections are sound. Make sure you aren't also USB connected at this step...it's not a good practice to supply the Nano with power from both the USB jack and the VIN pin.
Step 27: Mount Bolts for Tweezers, Holster Foil, and Success Foil
Cut three lengths of 10" wire (22 gauge) and strip an inch from the end of each. Use a ballpoint pen or pencil to wrap the wires tightly and create loops in the stripped ends.
Place flat washers onto two of the 3/16" by 3/4" machine bolts and run them through the holes in the Success and Holster foil regions. Flip the enclosure over. Place a washer, a looped wire, and a nut on each and tighten them. If you tighten them too much, you might cut the copper wire, so I went with 'sorta tight with a Philips screwdriver on the one side but only holding the nut with my fingertips.'
The wire from the Holster bolt is on the right side (the only side with two bolt holes). Twist, solder and heat-shrink this connection to the Holster wire from the Protoboard circuit.
The wire from the Success Detector is on the left side (above the bolt hole for the tweezer bolt). Twist, solder and heat-shrink this connection to the Success wire from the Protoboard circuit.
For the tweezer bolt, strip a 4" length of 22 gauge wire on one end to create a loop. Place the loop on the last machine bolt, then the washer, then run the bolt through the last hole on the game board. Flip the enclosure over and place a washer and the last 10" length of wire on the bolt, then the nut, then tighten the bolt, again just barely above finger-tight.
Join the tweezer bolt wire to the very last wire from the Protoboard- the Tweezer wire.
Step 28: Tape Down Stray Wires and Reinforce Box Corners
Cut some short strips of electrical tape and tape the Foil Layer wires to the PVC board. Tape a bundle of wires to the Inner Child and Radial Fracture bins. Check the Piezo and LED and their wires and tape them down as necessary.
Finally, some Gorilla Tape!
Cut a 3" length of Gorilla Tape (the 2" wide kind, or 2" wide duct tape works fine) and rebuild the box top by holding a corner together, running the tape around the corner, cutting down to the center with the X-Acto knife, and folding the flaps inward and down. The photos above make this much clearer than that last sentence did.
Step 29: Build Enclosure Bottom
The bottom of the box is nowhere near strong enough for the weight of the game board. We will add eight foamcore strips to reinforce it, and for the PVC board to rest on during game play.
Cut several strips of foamcore to 15/16" wide and use the box to cut four strips to the correct length for the long sides of the box. Place the strips in the box and measure the length needed for the shorter strips, then cut them to length and double check the fit. Too long is not good! The box bottom must fit into the box lid, and with the Gorilla tape on the corners, it's going to be a very snug fit.
Coat one side of the strips with Super 77 adhesive and while it is still tacky, press the foamcore strips into the box bottom as pictured.
Cut some Gorilla tape into four 1" lengths, and use these 2" x 1" pieces to reinforce the corners.
Step 30: Final Assembly and Game Play Directions
This is it, the final step!
It is pretty easy to get three of the four corners of the lid onto the bottom- it does take a bit of pressing inward on the final corner to force the lid down. This is, for the most part, a good thing- having a loose lid wouldn't help the game board's strength and longevity, and you only need to remove the bottom to change the batteries
Once the game board is together, turn it over and clip the Alligator hookup wire to the small wire from the Tweezer bolt and to the tweezers.
Place the Inner Child, Funny Bone, Radial Fracture, Mental Block, Wrenched Knee and Hopeless Case into their corresponding bins and you are ready to play!
The game play is pretty simple: When it's your turn, you put the tweezers on the Holster if they aren't already there, pick them up when prompted to, perform the surgery (left-handed sometimes!) and if successful, deposit the surgery item in the bin under the Success Foil and lay the tweezers on the Success Foil. If unsuccessful, of course, you don't have to do anything- the LCD is already telling you your turn is over.
The game continues until one of the doctors has earned enough money to win.
Step 31: Additional Resources (Word Docs, Code Stuff, Breadboard)
THE WORD DOCS
If you are unable to round up the proper Lego minifigure accessories, or wish to alter the game board to fit your own selections, it's a complex process (you're on your own) but attached above are the Word documents that you can use to change the cutout shapes and sizes for the bins, the labels for the surgeries, and the bins themselves. Buyer beware on all of the known MS Word compatibility issues. If you don't have the fonts I used or have a different version of Word, expect the unexpected.
THE ARDUINO CODE
As a teaching project, the arduino code provides easy opportunities to alter the names of the doctors and the melodies played for various events.
To change the seven randomly generated doctor names:
Find all FOUR instances of the text string 'Dr. Grave' in the main game code and replace 'Grave' with any doctor name of your choice, as long as the name is no more than nine characters long.
Find all FOUR instances of any name you'd like to change using this method.
To alter the music from the game:
Attached here is a "musical alteration" code snippet. It includes all of the variables and Arduino port assignments and the music from the intro, as well as pitches.h.
Open the Music Alteration file and make sure the pitches.h tab is included. Note the sequence of seventeen notes used in the game music (line 54)- NOTE_D4, NOTE_CS4, and so on. Note also the sequence of seventeen note durations in line 57 of the code.
You can use any pitches from the pitches.h file, and to control note durations, use the number 8 for an 8th note, 4 for a quarter note, 1 for a whole note, etc, to convert written music into piezo buzzer music.
You can download the code to the Arduino and listen to it, make sure it sounds right, change pitches, etc. until you are satisfied.
Rename the function to replace the one from the game that you are replacing, and copy and paste it over into the main game code. That's all there is to it!
THE BREADBOARD IMAGE
If you're a teacher doing this project in a STEM class like I am, you might want to have students breadboard the circuit. Attached is a Fritzing image of how I breadboarded the Nano version (after I'd already built a breadboard with the Uno as my first effort).
We have a be nice policy.
Please be positive and constructive.