Introduction: TurtleArt Turtle
The goal of this exercise was to create a pair of physical turtle-like rovers which were readily programmable via TurtleArt, a Scratch-like program, written in Python, for the One Laptop Per Child project.
Along the way, we made some focused design decisions to make this project readily extensible and easily graspable. Our turtles are built around the Arduino, with our code interpretation software written in Python.
Along the way, we made some focused design decisions to make this project readily extensible and easily graspable. Our turtles are built around the Arduino, with our code interpretation software written in Python.
Step 1: Printing the Body
The body for our turtles was 3d printed. Our shell was designed in OpenSCAD, a FOSS computer-assisted design program available from http://www.openscad.org/ .
We attempted to print the shell on a CupCake 3d printer made by MakerBot Industries. We wound up using a Dimension SST 1200es, as it was available, bug free, and could handle larger volume prints.
We attempted to print the shell on a CupCake 3d printer made by MakerBot Industries. We wound up using a Dimension SST 1200es, as it was available, bug free, and could handle larger volume prints.
Attachments
Step 2: Making the Wheels
We produced custom wheels for this project by attaching a servo hub to PingPong balls with superglue.
This approach was selected as it's readily reproducible and cost-effective.
1)Trim the excess plastic from the additional servo splines leaving a circular hub.
2)Super glue the back part to a ping pong ball and let it dry.
3)Pin the ball to the servo and rotate it to see if it works.
4)Super glue the modified servos back to back.
5)Small amounts of hotmelt glue may need to be added to increase friction.
This approach was selected as it's readily reproducible and cost-effective.
1)Trim the excess plastic from the additional servo splines leaving a circular hub.
2)Super glue the back part to a ping pong ball and let it dry.
3)Pin the ball to the servo and rotate it to see if it works.
4)Super glue the modified servos back to back.
5)Small amounts of hotmelt glue may need to be added to increase friction.
Step 3: Attaching the Pen
We had originally created a pen holder, as can be seen on the silver turtle. However, we found that a much simpler solution was just attaching a mini sharpie to the servo. To do so, we modified the cap of the sharpie in the same way we had modified the wheels and attached it to the servo, as can be seen on the black turtle. This is also convenient when it's time for storage.
Step 4: Assemble Your Electronics
The electronics are fairly minimalist. An Arduino Uno with a computer-generated sketch forms the basis for the turtle. A ShiftBrite - serially controllable RGB LED - mimics the color-changing nature of TurtleArt pen ink. A microservo is used to turn the marker from side to side, and two hacked servos are used as speed-controlled gearmotors.
Step 5: Put It All Together
Once the structure is set with the circuits inside the shell and the wheels and the pen in place, it's time to make the project look like a turtle. For this, we used duct tape. The heads are made of egg cartons covered in duct tape and the fins are duct tape on their own. Be creative!
Step 6: TurtleArt Modifications
Some modifications were required to make TurtleArt generate Arduino commands.
We modified a version of TurtleArt to generate Arduino commands - everything required for Ubuntu is packaged at http://www.mediafire.com/?1291wxkbzerq70x. Extract the archive, run "turtleart.py," and build till your heart's content!
The program will output both internal and Arduino instructions. For example, the block structure in the image printed the following when run:
running code: [('forward', 12), 100.0, ('left', 14), 90.0, ('forward', 16), 100.0, ('right', 18), 90.0, ('forward', 20), 100.0]
FD(10);
LT(90);
FD(10);
RT(90);
FD(10);
END();
The second chunk of text should be copied and pasted into "color.pde," the Arduino sketch that turns "FD(10);" into servo commands.
Integrating these modifications with the upstream repository is a work in progress.
We modified a version of TurtleArt to generate Arduino commands - everything required for Ubuntu is packaged at http://www.mediafire.com/?1291wxkbzerq70x. Extract the archive, run "turtleart.py," and build till your heart's content!
The program will output both internal and Arduino instructions. For example, the block structure in the image printed the following when run:
running code: [('forward', 12), 100.0, ('left', 14), 90.0, ('forward', 16), 100.0, ('right', 18), 90.0, ('forward', 20), 100.0]
FD(10);
LT(90);
FD(10);
RT(90);
FD(10);
END();
The second chunk of text should be copied and pasted into "color.pde," the Arduino sketch that turns "FD(10);" into servo commands.
Integrating these modifications with the upstream repository is a work in progress.