Category Archives: project

How to play the Willowdale game

Belle and Megan
Belle and Megan, characters in the game

Willowdale is a game I made with my kids where you can explore our neighbourhood.  You can read more about how we created it in  Creating A Game.

The Game

You can access the game at
http://willowdale.s3-website-us-east-1.amazonaws.com/

Controls

  • Arrow keys to navigate
  • Enter key to advance dialog
  • Move your character to the ladders to move from one map to the next
Ladder to move to another screen

Hints and Things to See

We’re not gameplay experts – if you want to explore, disregard the following.  However, if you just want to see what we’ve implemented, you can check out the following:

  • Walking into the kitchen at 55 Ellerslie will trigger dialog
  • Walking into the patio stones in the middle room of 55 Ellerslie will take you to Candyland
  • From Candyland, you can walk into Belle the fairy’s home.  Walking near Belle in her home will trigger dialog

Creating a game

The kids are always drawing characters and writing, and I was wondering – could we use this to make a game together?

It turns out, we can.

Scene from Willowdale
Scene from Willowdale

I’d guess in about 30 hours, we’ve put together a small world where:

  • The player can wander around our world
  • The kids have both drawn characters that appear in the game
  • My 7 year old has designed a couple of maps
  • Together with my 7 year old, we have written some dialogue
  • I figured out how to build out some simple logic, connecting scenes

First, I looked into various game making tools.  I ended up using Stencyl, the first one I tried.  I checked it out first because the free version is limited only in that it only allows you to publish your game to the web (as opposed to desktop or mobile versions), and, for me, a big bonus was that it runs in Linux.

I was really impressed, and would recommend it to anyone thinking of doing something similar.  There is a small library of assets you can use in your game, adding logic is similar to logic blocks in Scratch.

I did get stuck in a couple of places:

  • The recommended system for character dialog is not built-in, and instructions for installing it were hard for me to find.  I posted a question to the Stencyl forum, and the extension’s author sent me a link to the Stencyl Dialog Extension installation instructions within a couple of hours
  • I struggled adding the extension to my game – someone has put together a Dialog Extension Youtube Tutorial which helped out
  • Other small things – usually when I create something, with a little searching, I can usually find answers pretty easily on Stack Exchange.  I found it harder to find answers my issues with Stencyl, and spent more time trying different things – I think, largely due to a smaller development community

It wasn’t until we started that I realized how much effort is required to put together the artwork for a game.  It is one thing to scan in a drawing of a character, but another to create drawings of the character from every perspective, such that it is animated as it walks across the screen.

At this time, it’s not much of a game – just a small world to explore.  But it was fun to put together – you can check it out here: http://willowdale.s3-website-us-east-1.amazonaws.com/

 

Fish Feeder Project – Part 1

My 7 year old recently acquired a fish bowl with a betta fish.

Apparently, the PLA plastic used in 3D printers doesn’t degrade significantly in a fish tank, so I started looking for aquarium decorations we could print.  And I came across a design for a fish feeder: https://www.thingiverse.com/thing:1257953

I started modifying it to accommodate our fish bowls.  She asked to help out, so I suggested she do a sketch of her design.

Rachel Fish Feeder Sketch
Rachel Fish Feeder Sketch

Her design has a timer, and uses a suction cup to attach the feeder to the bowl.  I was skeptical, but she found a suction cup and demonstrated it would stick to the curved wall of the bowl.

I then set her up with Tinkercad.  Here’s the 3D model she made of her design:

Rachel Fish Feeder - 3D Model
Rachel Fish Feeder – 3D Model

Our fish feeder is still a work in progress, we’ll post pictures of our project when it is complete.

Toy House with Sound Effects

About a month ago, my youngest daughter borrowed a really neat toy called “Talkative Chick’s House Ppiyak-e House Bird Toy Mimiworld”, who’d brought the toy back with her on a trip from Korea.

Talkative Chick's House Ppiyak-e House Bird Toy Mimiworld
Talkative Chick’s House Ppiyak-e House Bird Toy Mimiworld

The toy consists of a little bird, and a little bird house. The bird house has four activities for the chick. When the chick is placed over one of the play areas, a sound effect is played – the coolest of which was a washroom. You can kind of get the idea from the Mimi World Talkative Chick House Toy review on YouTube (skip to 7 minute mark).

In any case, this was inspiration for a project I thought would be fun for she and I to work on together. Although I knew this wouldn’t be slick, I thought the quickest and easiest way to do this would be:

  1. Use a hall effect (magnet) sensor as a contactless sensor
  2. Install a magnet in a stuffed toy (not suitable for small children!)
  3. Take readings from the sensor with an Arduino
  4. Interpret the readings and play a selection of sound effects on a PC

We took a shoebox, and she built a home for a small stuffed toy, a “Teany Ty” she named Jelly. I cut open the the stuffed toy, and installed a couple of magnets, and sewed it back up. I picked up some hall effect (magnet) sensors from Creatron, and wired it up to an Arduino nano, and installed the sensors in key areas of the home.

Toy House – Outside View
Toy House - Inside View
Toy House – Inside View

I wrote a few lines of Python to read the data from the Arduino, and play back the samples. I’d never used Python before, and had heard about the PyGame libraries for years – I thought it would be rock solid, but even within a minute of play, with my setup, I had issues with MP3 sound effects that others had encountered as well. I converted them to WAV files and that went away.

We had fun picking and recording samples, eating and slurping water into the microphone. Freesound was a great place to look for sounds, though it didn’t quite have the breadth that my daughter was looking for (“I want a recording of a tiger walking on dry leaves”).

The sensor/magnet combination I chose wasn’t quite sensitive enough – the tiny magnet in the stuffed toy had to be really close to the sensor to trigger the sound.  It does work, and it was a fun build.

Source Code: ProjectBird.zip

 

Finding Neighbors With Niche Interests

On the Internet, it’s quite easy to find people with similar interests.   When I first started thinking about building out a mesh network in my neighborhood, a quick search led me to the Toronto Mesh, a very active group which actively contributes to the global mesh building community.  But no active members live near me.

In a smaller area, you might know all of your neighbors, but it would be unlikely that you would find someone with the same interest.

My neighborhood is densely populated – how do I find people who might be interested in dabbling around with a WiFi mesh?  First, I reached out to someone that I knew might be interested.  This is the best way – we immediately connected our networks, and our mesh grew to two nodes.

Next, I posted to Facebook.  Unfortunately, the subset of my Facebook connections in my neighborhood don’t overlap with my technology connections.

I printed a few signs and posted them on some community bulletin boards, which did not generate any response.  I decided I would try a small mailing, targeting the apartment and condo units within WiFi range of my unit.

Invitation to Build Mesh Network

I’ve sent out 47 postcards over the past week – I mailed some to a neighboring building, and hand delivered others, hoping I might get a response from one or two.  So far, no such luck.  Given the lack of a compelling application, and the attention I pay to all the material we receive in our mailbox, the limited response is not a complete surprise.

I’m not sure what I’ll try next.

Willowdale Mesh

I’ve always wanted to experiment with building out a mesh network.  Over the last few months, I have been reading about various technologies, and after stumbling on the Toronto Mesh, decided to experiment with their prototype CJDNS Raspberry Pi image.  After successfully testing this with several Pies and VMs, I’m going to start looking for others in the neighbourhood to see if we can build out a mesh network in Willowdale.

The current state of our network is documented here: here: http://www.hotelexistence.ca/willowdalemesh/

Dempsey Park, Willowdale, Ontario

Easy Music Everywhere. Audio Amplifier – Part 1

While in high school, I bought a really cool rack mount amplifier at a garage sale.  It was branded Queon, and had lots of inputs – it was great.  It was supplemented during my university years with an 8-track player/amp combo, acquired from Value Village.  The Queon met its end when a roommates’ cat knocked over a vessel of water that had been rested on top of the amp.  The 8-track player/amp combo met its end in a post-university move.

I’m not an audiophile, and have been using PC speakers ever since.  They sound OK, but:

  • The volume control always seems to fail
  • The permanently wired connections seem to fail
  • Sometimes, it is nice to listen to the radio
  • The bluetooth connectivity of little portable speakers is pretty handy
  • DLNA / Airplay / Google Casting functionality is also pretty neat

So what I want is an amp for some bookshelf speakers that have been sitting unused.  My ideal amp:

  • has a volume control
  • has a minimum of 4 inputs (PC, radio, Bluetooth, DLNA or alternative)
  • has a remote
  • is smaller rather than bigger

As most people are looking for home theater systems, there’s not much around that meets this criteria.  I have looked at inexpensive amplifiers from Amazon, such as the Lepai LP-2020, but it only has a single input.  I came across a place called Shenzen Audio, which had all sorts of neat audio products, but it’s hard for me to order something >$100 from completely unknown brands.  The Teac AI-301DA is what I want, but more than I’m willing to pay – I can sacrifice on audio quality and power.

So, I’m going to put together my own.  I’m going to pick an off-the-shelf amplifier module, and connect it to an audio switch, add a micro-controller to control the inputs and volume.  I’m even thinking of adding an “auto-input” switch, which tries to auto-switch to the intended input (there must be a reason amps don’t do this – I’ll find out when I try).

I’m sure I just don’t know how to search, but I’m surprised how little I could find about such circuits.  The best article I read was “How-To: Make a solid-state A/V switcher” on Engadget, but I wanted to avoid soldering surface mount components.  There are many switching chips out there, I found it challenging to pick out a basic one.  I also considered just using a mechanical switch, but decided I wanted the option of using a remote.

Finally, I decided to use an older design using a chip called a 4066.  A number of forums indicate that the audio quality of designs using this chip is poor, but I tried it out – it sounded fine to my ears.  It will be hard to tell for sure until it’s done, but there’s always an opportunity to replace it in future revisions.

Update – Weather Station

I finally moved my weather station from a solder-less breadboard to a prototype board.  I’m actually surprised the breadboard survived last winter.

Until I get around to adding an anemometer and rain gauge, this is probably as far as this project is going to go.

Weather Station Circuit Board
Weather Station Circuit Board

Designing A Mobile Phone Mount

In the car, I like to use my phone for playing podcasts and directions.  My work phone was recently upgraded, and I was looking for a practical way to mount it.

As cars are kept for years, and phones change regularly, I didn’t want:

  • anything permanent
  • anything that used adhesives (they never come off!)
  • suction cups
  • anything that blocks vents

The neatest design I’ve seen so far is a steering column mount on Thingiverse, which I had been thinking of modifying for my phone.  As my car has a two-tiered dashboard, I thought I would just create a dock that fit my phone in the lower tier.

I prototyped the dock with pink insulation foam, intending to model  and then 3D print the finalized design.

Foam Prototype of Mobile Phone Mount
Foam Prototype of Mobile Phone Mount

After using the prototype for a week, I realized a 3D printed dock was overkill.  The phone pretty much stood up by itself on the dashboard, without the dock, so long as I wasn’t driving on ramps well over the speed limit.

I just needed something to provide a little friction, to stop the phone from slipping around.  I ended up sacrificing a beloved mouse pad.

Slot cut in Mouse Pad for Mobile Phone
Slot cut in Mouse Pad for Mobile Phone

It works great!

Final Mobile Phone Car Mount
Final Mobile Phone Car Mount

Building SIO2Arduino to enable an Atari 800XL to use SD Cards

Last winter, I built an SIO2Arduino circuit – it is an adapter, that enables the Atari to use disk images loaded on to a regular SD card.

My build of the SIO2Arduino SD Card Adapter
My build of the SIO2Arduino SD Card Adapter

To the Atari, the SD card works just like a floppy drive.  It’s was built following the instructions found here:
http://whizzosoftware.com/sio2arduino/

With a program called SDRIVE, I can select a disk image on the SD card, and then load it:

Selecting an Atari image on the SD card using the SDRIVE program
Selecting an Atari image on the SD card using the SDRIVE program

I never did get the adapter working perfectly – I can load certain disk images, such as ballblazer, but not others, like Karateka.  I think it would take a lot more investigation, and perhaps digging into code, to figure out how to fix this issue.

ballblazer running on Atari from SD Card
ballblazer running on Atari from SD Card

Until I get a suitable TV, this is likely as far as I’m taking this particular project.