is totes becoming a teacher…

My Giant, Arduino and Aurasma Enhanced Classroom Creeper!

So some time last year, as I was walking past a games store at a local shopping centre, I noticed a giant cardboard creeper placed in front of their reduced-price console games table. Inspired, and perhaps a little on the lazy side, I decided to walk in and ask if they would consider donating it to my classroom once they were finished.

I was somewhat surprised when the person I spoke to at the counter said, “Yeah, we’ve had a quite a few people ask about him, some guy has offered to pay us $50. Leave your name and number on this piece of paper and we’ll get back to you if and when he’s for sale.” <- Please note that these definitely were not the actual words he used but they were something along those lines, and you should get the gist.

I also put a photo of the creeper on Instagram, stating that I thought my year one class could probably make a better one, to which a colleague replied, “With their eyes closed!” Anyway, this was enough to get me started on making my own giant creeper.

To cut a long story short, it took way longer than expected, was really messy, at times complicated, and ended up involving more than the just the students in my class. You can see a whole bunch of photos of the creeper building process below; super fun!

He’s done now, and I do reckon he’s heaps better than the one at the store, and as spawned out of the original plan, I’ve created some Aurasma triggers using screenshots of student work so that classroom visitors can use their devices to see some of the awesome stuff that students do in my class. Here is a shot of some principals using Aurasma to check out 1L’s work!

I decided to keep going with it, and programmed an Arduino Uno Board with an attached Adafruit MP3 Shield, PIR sensor and 5V speaker to make the creeper ‘Hiss, boom!’ whenever somebody moves! I had to teach myself how to solder and all that type of stuff, but it was totally worth it, because I now have an interactive creeper in my classroom!

As you can see, it’s taken a long time, but he’s totally awesome! This term, I’m gonna start building a zombie with my year 4 class. The plan is to eventually have a whole bunch of mobs scattered around my room, all programmed to make their own individual noises whenever anybody moves, with Aurasma triggers of student Minecraft work stuck on all of their bodies. I envisage a visit to my classroom as being akin to stepping into a museum like the Powerhouse … in time!

I’m also starting an afternoon coding club this term, so hopefully #GiantCreeper will serve as inspiration for some of my students to learn more about coding and how to apply it in a fun and hands on way!

I just looked through the photos one last time, and realised this project has taken me about 9 months. When I started it, I thought it would only take a couple of weeks! To be fair, I didn’t originally plan all of the Aurasma and Arduino stuff, but hey, it happened.

If you’re interested in making your own, you can use the Arduino code pasted below (modified from this awesome Christmas wreath project) to program your own Arduino Minecraft mob. When motion is detected, it picks a track at random, most of which are the creeper “Hiss, boom!”, although there is an ‘Easter egg’ in there, a five second snippet of the Creeper Revenge song by Captainsparklez, which plays every once in a while and totally excites the 4H Creepers!

Happy makering!!!

/***************************************************
This is an example for the Adafruit VS1053 Codec Breakout

Adafruit invests time and resources providing this open source code,
please support Adafruit and open-source hardware by purchasing
products from Adafruit!

Written by Limor Fried/Ladyada for Adafruit Industries.
BSD license, all text above must be included in any redistribution
****************************************************/
#include <MemoryFree.h>
// include SPI, MP3 and SD libraries
#include <SPI.h>
#include <Adafruit_VS1053.h>
#include <SD.h>

//this array is initialized once, randomly selected in the loop
//Instead of using a random load of MP3s from the file system, I ran into problems after looping through the filesystem about 10 times the board would lock up
//I believe there was a problem opening the file system over and over again to query for random files
//secondly, I have files on the system that I dont want to play
char* myFiles[]={“track001.mp3”, “track002.mp3”, “track003.mp3”,
“track004.mp3”, “track005.mp3″,”track006.mp3″,”track007.mp3″,”track008.mp3″,”track009.mp3”,
“track010.mp3″,”track011.mp3″,”track012.mp3″,”track013.mp3″,”track014.mp3”,
“track015.mp3″,”track016.mp3″,”track017.mp3″,”track018.mp3″,”track019.mp3”,
“track020.mp3”};

// initialise the music player
if (! musicPlayer.begin()) { // initialise the music player
Serial.println(F(“Couldn’t find VS1053, do you have the right pins defined?”));
while (1);
}
Serial.println(F(“VS1053 found”));
//musicPlayer.sineTest(0x44, 500); // Make a tone to indicate VS1053 is working at startup

// Set volume for left, right channels. lower numbers == louder volume!
musicPlayer.setVolume(0,0);
/***** Two interrupt options! *******/
// This option uses timer0, this means timer1 & t2 are not required
// (so you can use ’em for Servos, etc) BUT millis() can lose time
// since we’re hitchhiking on top of the millis() tracker
//musicPlayer.useInterrupt(VS1053_FILEPLAYER_TIMER0_INT);

// This option uses a pin interrupt. No timers required! But DREQ
// must be on an interrupt pin. For Uno/Duemilanove/Diecimilla
// that’s Digital #2 or #3
// See http://arduino.cc/en/Reference/attachInterrupt for other pins
// *** This method is preferred
if (! musicPlayer.useInterrupt(VS1053_FILEPLAYER_PIN_INT))
Serial.println(F(“DREQ pin is not an interrupt pin”));