Thursday, March 20, 2014

PicoBoard Scratch Violin

Recently I facilitated a MaKey MaKey workshop at the Westport Library Maker Space. The middle school age participants built game controllers, pianos, and other devices to interact with Scratch and web-based games they enjoyed. Two middle schoolers with no previous experience with the MaKey MaKey decided they wanted to build a violin. I helped them make this dream a reality!

While they drew the body for the violin on cardboard I stripped the insulation from some telephone wire for the violin's strings. The students also cut out a neck for the violin and we hot glued the parts together. I was not sure how well a bridge would hold up so we skipped building that part of the violin. We did build up some cardboard for the wires so they formed an arc that the bow could touch.

The students both play violin so they were able to tune each string in Scratch. The bow is connected to Earth on the MaKey MaKey, while each string is clipped to one of the four arrow keys.


The build turned out great and it was amazing to see the violin come to life and be able to play notes.

I was not content to rest, however. What if the violin could be made to play different notes depending upon where the player's finger was on the fingerboard? 

I knew that the MaKey MaKey probably was not the tool to use in this case. Instead, my attention turned to the PicoBoard.

The PicoBoard is capable of reading resistance values through ports A-D, shown above. Scratch can read the resistance values as well. I was headed in a good direction. 

However, when I hooked up a section of wire and touched it with the bow, I only got readings of 0 or 100. I needed some help. First I talked to one of the school custodians, Farid. He explained that I probably needed resistors because the changes in resistance might be too subtle for Scratch or the PicoBoard to detect. Then I took to Twitter to ask help from my friend Andrew.

By the end of the day Andrew had put together this prototype. 

Andrew wrote a wonderful blog post about the project and his findings.

Convinced we had a working design, I built a quick prototype to figure out what kind of resistor to use. I ended up using a 2.2K Ohm resistor in my build because it gave me distinct enough readings in Scratch to be able to have the software play three different octaves of the same note on each string. The prototype also allowed me to make some design changes, like moving the resistors to the underside of the finger board and recessing them in narrow grooves I cut with a Dremel. I 3D printed a couple of small rectangles, 5mm tall by 5mm deep and as wide as the fingerboard to support the copper wire above the copper tape and resistors. 

I found the Emergency Violin Bridge on Thingiverse, imported it into Tinkercad and modified it slightly, then 3D printed it, too.

I used the awesome WindFire Designs Circle Tool to draw the body of the violin.

I used the rest of the trim from the prototype as the fingerboard for the violin. I cut the violin's body from 3/8" plywood. I also cut a small piece of plywood and glued it to the bottom of the violin body to give the violin a little thickness.

I used a wood shim to tilt the fingerboard slightly, like on a real violin, then glued the fingerboard and shim to the violin's body.

I re-printed the bridge in black ABS and used a drill and a Dremel to carve out the spot to insert the bridge.

After marking up the fingerboard with measurements for the wire, resistors, and copper tape, I drilled holes for the wire and tape and used the Dremel to route slots for the resistors.

To prepare the fingerboard electronics, strips of copper tape about 5mm wide and 6 centimeters long were cut and affixed to the fingerboard.

The resistors were installed on the underside of the fingerboard.

The resistors and four short pieces of wire, to clip the PicoBoard into the copper tape runs, were soldered to the copper tape.

The solder and copper tape were covered with another layer of copper tape.

I stripped the insulation from four strands of solid, 22 gauge wire to use as strings. 

With the PicoBoard clipped to the wires at the top of the copper tape runs as well as to the wire "strings," Scratch makes a sound when the wire is pressed to the fingerboard.

The Scratch blocks for this project read the resistance values that each copper tape strip reports through the PicoBoard when the player touches the violin string to a copper pad. Depending on what resistor you use, your values will be different.

I particularly enjoyed this project because it combined woodworking, electronics, programming and 3D design and printing. I could not have completed this project without the assistance of Farid and Andrew. Again, Andrew wrote a really excellent blog post about learning cycles that I urge you to read because he captures the community of help that educators interested in the maker movement need to draw on to strengthen and build the community and better educate their students about how to learn a new skill in the twenty first century.

Monday, February 17, 2014

3D Printed Snow Plow and Toy Customization

My son talks about the plow and the sounds it makes. The plow rumbles past our house, pushing a wall of snow. It "boops" when it backs down the street. Winter Storm Pax and the surrounding storms left us with too much snow. My son talked about his dump truck being a plow as he drove it up and down the arm of the sofa. I decided his Green Toys dump truck needed a plow attachment. I used digital calipers to measure the distances at the front of the truck. I printed a test part that was smaller and faster to print and model glued it together to test the design.

As a third grader building LEGO models of my own design I would have loved to have a contained axle and wheel set from LEGO that was 6 pegs wide instead of 4. This custom piece would have kept the proportions on my homemade Porche 911 model sexier, though at the time I didn't realize sexy was the quality I was working to achieve. 

This is what excites me about my son's toys! Any enhancement we imagine and can 3D model and print print extends the toy's usefulness and provides more engagement. 

Already, the subversively acronymed Free Universal Construction Kit allows "complete interoperability between 10 popular construction toys." What kinds of kit can you create to mash up one toy with another? How can upcycled materials personalize the toy and capture the object the child is interested in, such as a snow plow? Instead of purchasing a new toy, 3D printing creates bespoke additions or enhancements to existing toys.

Satisfied with the dimensions of the design, I went back to Tinkercad and improved on the design. I made the attachment a single piece, and I increased its size slightly to make it strong enough to be handled by a two and a half year old. If he breaks it we can print another! I released the design on Thingiverse and you can Tinker it as well. Keep on plowin'!

Friday, January 3, 2014

Blokify: Elementary 3D Architectural Design Without Minecraft

I want to use a block building 3D design environment with third and fourth graders. Minecraft is the obvious answer, and I have experimented with Printcraft. Printcraft is a Minecraft server customized for producing 3D STL files to print. There is an EU server and a US server available. The software is workshop tested and proved and also available for download if you want to run an intranet instance of Printcraft to sandbox your students' creations. Never has Minecraft and 3D printing been so easy. However, this package requires effort on your network administrator's part to unblock a bunch of different websites that do the heavy lifting when it comes to generating a 3D STL model. How can we make 3D printing easier?

Blokify is a great alternative to Minecraft. Block building in a creative environment. No griefing. Available from the app store.

You can generate a 3D model to be printed by an online service. Alternately, you can go to your local maker space, school, or friend and print your model!

You design your model on your iOS device: check the system requirements before installing on your device!

Tap and build your model. You can email the resulting STL file to yourself to print!

Wednesday, January 1, 2014

Building a Crystal Radio Receiver

Ever since I read Steven Caney's Kid's America in elementary school I wanted to build the crystal radio receiver pictured near the center of the book: a proto-nerd centerfold, if you will. As a child I did not have the skills to build this project. I wish I lived closer to my grandfather when I originally wanted to build the radio. He set up radio in the South Pacific for the United States Navy: I bet this project would have pleased him to no end!

My mother recently sent me my family's copy of this wonderful book. One could build an entire K-12 American Studies curriculum around the ideas in this book, published just after America's Bicentennial. From Hobo signs to storytelling, crafting to civic action, this book captures what it meant to be an American when being American meant doing it yourself, making, improving.

As a forty year old I decided I had the skills and means to build the crystal radio I always desired. Here is how I followed one set of directions. A quick search of the Internet will yield directions similar to those I followed.

Here is my parts list.
  • toilet paper tube or 3D printed toilet paper tube (.STL file provided below!)
  • 35 feet 22 gauge solid insulated hookup wire
  • germanium diode
  • 2 alligator clips
  • crystal earphone
  • wide rubber band for wire wrapping and radio tuning
Here is my tool list.
  • wire cutters/strippers
  • Dremel with grinder tool or coarse sandpaper, time, and patience
  • scissors
  • optional access to a 3D printer or print service

My prototype used a cardboard toilet paper roll like the directions indicated. My directions said I would get twenty nine feet of wire wound around the tube. Perhaps in 1978 toilet paper tubes were larger? I had a significant length of wire left from the twenty nine feet I cut.

The experience of winding the wire and trying to put holes through the cardboard near its edges convinced me I needed a more durable tube. I used my 3D printer, a MakerBot Thing-O-Matic, to print a replica of a cardboard toilet paper roll in ABS plastic. Unfortunately, the height limitation prevented me from printing the tube in one piece.

I redesigned my Tinkercad model to print in two parts that I could glue together. You can modify and download the model.

The two part model was about a centimeter taller than the failed print.

It was the same height and diameter as the toilet paper roll.

I experimented with printing a ring that would fit in the interior of the two halves of the tubes to strengthen the tube when I glued the pieced together. I tried using a raft.

The ABS distorted too much to be useful.

Raftless rings did not work out so well.

I ended up using Testors model glue to affix the two parts without the insert. I purposefully arranged the models and printed them so the parts being glued together would be at the top of the print, less susceptible to distortion on my printer.

I let the glue cure under pressure.

After successfully curing I had a single tube printed in durable ABS plastic. There is a singe hole at one end of the tube. I inserted an inch of wire and started tightly winding the 22 gauge solid insulated hookup wire around the tube. The plastic tube held up much better than cardboard. The rubber band allowed me to put down the project as I worked on it.

When I reached the end of the tube I stripped one inch of insulation from the wire and inserted the wire through hole one of the tube.

Next, I used a Dremel with a grinding attachment to wear off the insulation along the length of the tube. Working slowly proved to be the best strategy. Also, this made a giant mess.

I cut the 1/8" jack from the end of the crystal earphone and stripped the insulation from the wiring. This uncomfortable, clunky earpiece is required and cannot be replaced by a standard earphone.

One of the earphone wires is attached to the end of the tube coil wire through hole one of the tube, where the coil terminates.

A three foot hookup wire with an inch of insulation stripped from both ends is attached to the tube wire and the headphone through hole one. You will have three wires running through hole one: the coil, one of the headphone wires, and one of the hookup wires.

A germanium diode is wired into holes two and three on the tube.

The second wire from the earpiece is wired to the diode through hole two.

Another three foot hookup wire is connected to the diode behind hole three. The last five inches of this hookup wire is stripped of insulation and connected to the diode, then pushed through hole three from behind. This length of wire will touch the coil. By making this hookup touch different places along the coil you tune your crystal radio.

I finished by connecting alligator clips to the ends of the hookup wires. 

I clipped one hookup wire to the telephone wiring in my house: the alligator clip attaches to the metal prongs in the wall socket. The other hookup wire clipped to a nearby heating duct to ground the radio. I also grounded it to the cold water shutoff valve in my kitchen with similar results. When you have the radio successfully connected to an antenna and a ground you will hear a click then faint radio static! Eureka, your radio is listening for a signal!

I sat down and slowly swept the coil with the "cat's whisker," listening for a signal. At about this location, pictured below, I could hear a faint radio signal: a man talking! Probably some AM talk radio station, too faint to really hear, but I picked up a signal!

This was a great project that got me thinking in several different directions, from 3D printing to radio technology. I finally built an object that seemed unobtainable as a young maker. I got to iterate on my design at the beginning of the project and the end project benefited from the 3D printed tube. I can proudly display my new old tech next to my wife's grandfather's project that used an old phone as a lamp!

I really hope modern maker parents take the time to geek out and help their kids build a crystal radio. Radio is a technology that connects us to our grandparents, parents, our children and ourselves. This radio is not precise enough to dependably listen to a signal, but it is a fun project that can magically capture sounds from the ether! 

Sunday, December 15, 2013

TurtleArt Snowflakes

The snow has started to fall where I live so it is time to program TurtleArt to draw some snowflakes!

This project uses a Logo programming approach espoused by Cynthia Solomon. She helped program and develop the Logo programming language and taught students to program starting in the 1960s and continues to teach children and adults today!

Dr. Solomon encourages programmers to build small parts or tools that can be used to build bigger designs.

Snowflakes have a bit of randomness built in to their design. Supposedly no two snowflakes are alike. Our snowflake should have some randomness built in to its design, too. Our snowflake randomness will be in the diameter of the snowflake and in the length of the "barbs" along the "arms" of the snowflake. Some snowflakes will be larger than others. 

Create a new procedure from the My Blocks palette by dragging a diamond block from the top of the palette to the stage. Click on the diamond block then name it by typing ray.

To make our snowflakes randomly sized we are going to put values into the store in box1 block. Since the TurtleArt canvas size is 560 turtle steps from bottom to top, it would be nice to limit our snowflake's size so it fits in the TurtleArt window. You can change your values for how tall one arm of your snowflake will be. This is equivalent to the snowflake's radius.

Once you determine your snowflake's possible radius, program the turtle to move back and forth that distance. This creates the ray procedure.

I also want little barbs from the ray that correspond to the length of the ray the turtle drew. Use some Numbers blocks to make the turtle divide the length of the ray it just drew by four.

The barbs on the ray the turtle drew above are .25 the length of the snowflake's arm. The turtle moves a quarter of the length of the particular ray and turns left 45 degrees. It draws a simple barb shape.

Finally, reset the turtle to the beginning point of the ray:

Now we will use this simple tool to create a more complex design. 

First, some setup. We should make the screen a darker blue color. 

We can randomize the size of the pen, too.

The set color block here is redundant since we are using the set shade block to set the rays color to white. The set color block here might be useful for your remix of this project.

Finally, we can draw a six-rayed snowflake, or you can change the number of repetitions and the degrees the turtle turns.