Category Archives: project

Fish Feeder Project – Part 2 – Completed!

After seeing the simple Automatic Fish Feeder on Thingiverse, I immediately ordered the required parts and set about modifying the design for my purposes.

Fish Feeder - Original Model
Fish Feeder – Original Model

I liked this particular design, as we only have a 2 bettas in 2 bowls, and we need to ensure only a couple of very tiny pellets drop with each feeding.  I did want to make a few changes.  It was not clear how the motor was controlled in the original design – I wanted to use an optical slot sensor to detect when to start and stop the rotating disc.

With OpenSCAD and Inkscape, I modified the original design.  I added slots to the rotating disc, which could be detected by the slot sensor, and modified the support to suit my fish bowl.

Completed Fish Feeder
Completed Fish Feeder
Parts and Assembly Notes
  • Arduino Nano
  • 9V DC power supply
  • Optical Slot Sensor (I used an Omron EESX1002-W3A – I just picked one at random from my local electronics store)
  • Geared motor, DealExtreme SKU 214121
  • TIP120 transistor
  • 1N4001 diode
  • Wires, resistors as per schematics
  • Prints of Support-RichardMod.stl, discwslots.stl, Lid_for_motor.stl (files below)

The motor is connected to pin D9, and wired as per https://www.arduino.cc/en/Tutorial/TransistorMotorControl

The slot sensor is connected to pin A0, and wired as per http://www.martyncurrey.com/connecting-an-photo-interrupter-to-an-arduino/
I glued the slot sensor to the side of the support

It took some code tweaking to get the disc to stop at every hole.  I couldn’t control the speed of the motor with pulse width modulation – perhaps because it’s geared, or there was too much friction, it just didn’t move unless I gave it the top speed.  I settled moving the disc in small increments, checking the measurement from the slot sensor, repeating until it sensed it was in the right position.

Demo

Once built, send a ‘1’ over the serial port to the Arduino, and it will advance the rotating disc to the hole.

Source files: http://www.hotelexistence.ca/projects/FishFeederFiles.zip

Primary School Reading Log

My kids are both avid readers, but neither have been good with maintaining a reading log, sometimes requested by their teachers.

I thought if I reduced the effort required to maintain the reading log, they’d be more likely to track the books they read.  I created a website where, using a smart phone, they could just take a picture of the bar code on a given book.  The website would read the bar code, and make a call to the Google Books API to retrieve the book title and author, and add it to the reading log.

Reading Log Website
Reading Log Website

It was used for a month or two, and then the novelty wore off.  We’re back to just reading books, as opposed to tracking what we read, which I guess is the important thing anyway.

In the past, I’ve worked with AWS, but I thought I would use the Google Cloud platform for this project to try something different, and now my free trial has expired, so the site is no longer up.

I wanted to use the QuaggaJS in-browser (Javascript) bar code reader, which would save sending the bar code picture to the server, but, in testing, the Java based Zxing was much better at consistently reading the bar codes, so the website gets the user to take the picture of the bar code, sends the picture to the server, and the bar code is converted to an ISBN server-side.

I haven’t documented it, but source can be found here: https://github.com/raudette/readinglog

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 this YouTube video (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