Vegetable Boxes

Harvesting turnip greens out of our vegetable boxes.
Harvesting turnip greens out of our vegetable boxes.

Two years ago we bought a greenhouse. It was aluminum framed with plastic panels. Unfortunately, its profile was not as wind-resistant as it needed to be for our campus. So last semester we built three vegetable boxes and salvaged the plastic panels from the greenhouse to build low-profile cold frames. These turned out quite nicely, and the Middle School’s Student-Run-Business’ Gardening Department have been experimenting with different types of produce.

Assembling the side panel for the cold-frames. The front and top plastic panels were salvaged from our aluminum-framed greenhouse.
Assembling the side panel for the cold-frames. The front and top plastic panels were salvaged from our aluminum-framed greenhouse.
Cilantro growing out of our raised beds with the cold-frames removed.
Cilantro growing out of our raised beds with the cold-frames removed.

The wood for the raised beds and the frames for the cold frames were purchased using funds from a grant by the Whole Kids Foundation and the pieces cut at the TechShop.

Quarto Set

Quarto board.
Quarto board.

One of the more interesting projects of the last year was the wooden Quarto set I made for our middle schoolers to use during their study hall.

The game is quite an interesting one, as was the build. The pieces (rectangular and cylindrical prisms capped with solid or hollow tops) were fairly simple to make using the table-saw for the bodies and laser cutter for the tops. However, I wanted to make a box for the pieces and have the board with its 4×4 grid of circle serve as the top.

Cutting out the top and bottom of the box out of plywood (on the CNC machine) was easy enough, as was lasering on the grid, but the most fascinating part was making the sides of the box. The rounded corners on the top required rounded sides, so I used the laser to cut a living hinge on a piece of plywood and glued it to the base. Then I used some spacer pieces for the inside to hold up an inset that would hold the pieces.

Quarto set box opened up.
Quarto set box opened up.

Cajón

Student sits atop a Cajón.
Student sits atop a Cajón.

Last year, for an interim project, one of my more musically inclined students decide to build a Cajón. It’s a box shaped drum that you can sit on, with a snare inside. He worked up a simple design in Inkscape and I cut it out on the CNC machine at the Techshop. It turned out quite well, and he even built one that I could keep at school.

Finger Labyrinths

Finger Mazes.
Finger Mazes.

Our first through third grade teachers requested these finger labyrinths. I asked Dr. Steurer to explain how they used them:

Sometimes you just need to be alone. Welcome to our 1-2-3 Classroom “Comfort Zone.” When a child needs a break, they may relax and take a time away from any feeling of pressure or being overwhelmed.

One activity found in the “Comfort Zone” is a finger labyrinth crafted by Dr. Urbano. Children are taught three easy steps for slowly tracing the beautifully designed wooden labyrinth.

Step One: Release – Pause and take a deep breath.

Take a deep breath before you begin your finger walk to the center. This is the time for you to calm yourself and get focused. Let go of everything.

Step Two: Receive – Take in the center.

The center is a place for you to gain calm and peace. You can stay in the center point as long as you need.

Step Three: Return – Slowly take the journey back.

Move back out of the center point. Make the transition from the center back into your daily routine, ready and armed with the experience of peace and calm.

The “Comfort Zone” is one area in our classroom used to support our children in improving their abilities to pay attention, to calm down when they are upset and to make better decisions.

​Being Mindful helps with emotional regulation and cognitive focus.

– Dr. Steurer

Generating 3d Terrain

3d model of the Hawaiian island chain.
3d model of the Hawaiian island chain, rendered in OpenSCAD.

After a lot of hours of experimentation I’ve finally settled on a workable method for generating large-scale 3d terrain.

Data from the NGDC’s Grid Extraction tool. The ETOPO1 (bedrock) option gives topography and bathymetry. You can select a rectangle from a map, but it can’t be too big and, which is quite annoying, you can’t cross the antimeridian.

The ETOPO1 data is downloaded as a GeoTIFF, which can be easily converted to a png (I use ImageMagick convert).

The Hawaiian data with the downloaded grayscale.
The Hawaiian data with the downloaded grayscale.

Adjusting the color scale. One interesting property of the data is that it uses a grayscale to represent the elevations that tops out at white at sea-level, then switches to black and starts from there for land (see the above image). While this makes it easy to see the land in the image, it needs to be adjusted to get a good heightmap for the 3d model. So I wrote a python script that uses matplotlib to read in the png image as an array and then I modify the values. I use it to output two images: one of the topography and one of just land and water that I’ll use as a mask later on.

Hawaiian Islands with adjusted topography and ocean-land.
Hawaiian Islands with adjusted topography and ocean-land.

The images I export using matplotlib as grayscale png’s, which can be opened in OpenSCAD using the surface command, and then saved as an stl file. Bigger image files are take longer. A 1000×1000 image will take a few minutes on my computer to save, however the stl file can be imported into 3d software to do with as you will.

Note: H.G. Deitz has a good summary of free tools for Converting Images Into OpenSCAD Models

Bike Silhouette

TD cleaning up his new bike.
T. cleaning up his new bike.

One of my students with a TechShop membership wanted a bike silhouette for a wall hanging. He wanted it to be bigger than he could fit on the laser cutter, so I tried doing it on the CNC router. The problem was that to get the maximum detail we needed to use the smaller drill bits (0.125 inches in diameter), however, after breaking three bits (cheap ones from Harbor Freight) and trying both plywood and MDF, we gave up and just used the larger (0.25 inch) bit. Since the silhouette was fairly large (about 45 inches long), it worked out quite well.

Cell Phone Shelf

Cell phone rack in use.
Cell phone rack in use.

Managing cell phone usage at school is a tricky topic. We have some teachers who’d like to ban them outright, but we also have a growing number of parents who are expecting to be able to communicate with their kids–to organize pickups and carpooling during the day for example. The phones can be great for data-collection and documentation in classes, and a lot of my upper level math students prefer the Desmos app to using their graphical calculators.

Our current compromise is that middle schoolers have to leave their phones in the front office, where they can check them at lunch time or check them out if a teacher wants them to use them.

The high schoolers are allowed to keep their phones with them, but have to put them in a basket at the front of the classroom. Since they don’t like piling them into the basket, I experimented with the CNC machine to cut some plywood into a cell-phone shelf.

The shelf can hold about 30 phones, and I can easily see how many phones are on there from across the room, so I’d say this one worked out pretty well.

Go Board

Students playing Go.
Students playing Go.

I recently discovered that, although they may look it, Go boards are not necessarily square. They’re slightly longer in one dimension so that the board looks more square to the players on both sides.

A student asked me to make one for him–he’d ordered a set recently and didn’t like the board it came with–so, I wrote a small python program to generate the Go grid, then lasered it onto a nice piece of sanded plywood.

It worked out quite well. Apparently the plywood makes just the right “thunk” sound when you put down the pieces.

Go board in use.
Go board in use.

The script to generate the grid.
go_board_2.py

from visual import *
from svgInator_3 import *

length = 424.2  #mm
width = 454.5   #mm
nLines = 19
dx = length/(nLines-1)
dy = width/(nLines-1)

print "Lenght = ", length
print "dx = ", dx

f = svgInator("go_board.svg")

lineStyle = {"stroke": "#000", "stroke-width": "2pt",}

#lines
for i in range(nLines):
    x = i * dx
    y = i * dy
    #vertical
    f.line(pos=[vector(x,0), vector(x,width)], style=lineStyle)
    #horizontal
    f.line(pos=[vector(0,y), vector(length,y)], style=lineStyle)

#circles
grid_pos = [(3,3), (3,9), (3,15),
            (9,3), (9,9), (9,15),
            (15,3), (15,9), (15,15)]

for i in grid_pos:
    (x, y) = (i[0]*dx, i[1]*dy)
    f.circle(pos=vector(x,y), radius=2.0,
             style={"stroke": "#000", "fill":"#000"})

#bounding box
f.rect(dim=vector(length,width), style=lineStyle)

f.close()

Now I just have to learn to play.