Import Soul Wouldn’t it be nice if things just worked

14Oct/110

Interactive Donation Box – Folio

I just thought that i would post up my project's portfolio here for people wanting to read about its development, or for people who are doing D&T for their HSC and need a bit more of an idea on what needs to go into a portfolio. A bit of a disclaimer though if you fall into this category, is i have got no marks back yet for this project so i cannot guarantee it is what the DET is looking for in a portfolio.

D&T-Portfolio - V1
14Oct/110

Interactive Donation Box – Behind the scenes

This is a follow up article to explain the inner working of my interactive donation box if you don't have a clue what this is see my other post HERE. Besides all the visible track elements who's operation is clearly visible there are a number of hidden aspects of the machine.

The main part of this is the mechanism for sorting and counting coins (See video below). For this i used a mechanical system of sorting the coins based upon their size. I had originally used this system in a money box that sorted coins into different trays, and knew of a few things that would greatly improve its performance. Firstly to make the back rest out of some kind of plastic material so that its finish will remain much more constant than with wood which gradually changed over time as the finish was absorbed or rubbed off, the other improvement to be made was to use rectangular holes for the coins to fall though instead of circular holes, this just allows the coins longer to fall though their holes, making it virtually impossible for them to miss their hole.

A coin sorting money box that i made for a junior D&T course

After the creation of this video i made a few change to the sorter to improved it's reliability, mainly replacing the front guide that stops coins jumping off their tracks with a stiffer version to stop 20c coins sometimes escaping off the front.

To detect the coins after they had been sorted i decided upon using a beam break system as this would mean i could reliably detect the coins even without having to worry about if the coins were heavy enough to set off a micro-switch. So i simply have a row of leds on one side of the slots the coins fall though after being sorted and a row of Light dependent resistors on the other, these are hooked up to analog in pins on the arduino controlling the system.

After a coin has been detected the program is quite simple, a certain value is added to the counter depending on what coin has been inserted, the lift i turned on whenever this value is non-zero and the counter is decremented whenever a marble passes a micro-switch hidden within one of the lift guides.

There are only a few things that i would like to do in the future, the main being to reclaim my arduino out of the back of the display, probably replacing it with a MSP430 chip as these are very cheap (under a dollar) meaning i could reclaim my arduino for future projects.

Edit: If you are interested on more details on the construction of this project i have now made my portfolio available HERE.

28Sep/110

Interactive Donation Box

Well it was right down to the line but i managed to get my Design and Technology project finished and ready for marking, just... I only had confirmation that all the parts of the project played nicely together after rapidly programming it and getting to put coins into it for the first time at 3AM on the morning it was due. After a quick dash to office works at 7AM i was ready at school to hand my project in on time at 9AM.

Even though the projects design had to be greatly modified from its original 3 window design a I am really happy with how well the project has turned out and with all of the really positive responses I have got from other students and teachers. Without any more words here is the project.

Just in-case you haven't read my previous posts from way back about what the donation box actually is, here is a quick summary.

When somebody puts a coin into the machine it is sorted by currency and depending on the value of the coin a certain number of marbles are sent though a marble run (i decided on the rate of 1 marble per 10c). The idea of the project is that if it is made more interesting for people to donate then people are much more likely to make a contribution.

To better display this here is a video of the project in action

Also thanks to MWandel of woodgears.ca for his gear template generator and general articles on marble machines that made me pick this as a project

After i finish up with UNI preferences and scholarship applications i will hopefully have some more info up on what goes on behind the project

Edit: I now have another post up detailing some of the inner workings of the project HERE

Edit: If you are interested on more details on the construction of this project i have now made my portfolio available HERE.

6Sep/110

Pyweek 2011 – citySquare

This year I entered into pyweek. Pyweek is a python game programming competition where the competitors are given a theme and have a week to make a game on it. The theme that was voted in this time was "Nine Times" I wasn't really sure what I could do with this theme, and as a result my game is only very loosely linked to the theme.

The game that i came up with is a simple puzzle game where one must lay tiles within a grid to earn points. It plays out a bit of a mildly irritating single player version of Carcassonne. However I was reasonably happy with the game that i ended up with after a week of development.

I was also happy enough with the quality of the game that produced to use it as part of a project in the software design and development course that I am currently doing at school, for this I added a little bit more polish to the menus and gameplay and ironed out its few bugs. My teacher was luckily very impressed by the game and I ended up scoring full marks for the assignment (the game + a ton of documentation)

If after reading though all of that you would still like to play the game there download links and further instructions below

Downloads

The latest version of the game can be downloaded from github HERE

Objectives

The key objective to citySquare is to arrange all of the tiles in the right-hand tray on the grid to the left. The tiles that you have to match are comprised of three different types of terrain: roads, cities and plain old grass.

Controls

A tile can be picked up and put down by left clicking. While being held you can either right click or scroll to rotate the tile. The arrow keys can be used to shift all of the tiles around the grid and you can hold tab to view a breakdown of your score.
To return to the menus from gameplay simply press escape, while on menus you can also toggle full screen mode by pressing F4

Rules

Tiles must be placed so that the edges of each square match up with the squares around it. The entire edge of the grid should be grass and have NO roads or cities touching it.

Scoring

Points are scored based on completed roads and cities, however cities are scored in a way that will reward you for building larger cities. For example one city made up of four tiles would be worth much more than two cities made up of two tiles.

28Jun/110

pyGitBook

As part of doing the report for my Software Design and Development project i tried to find an easy tool that i could use to convert all of my git history into a basic (but nice looking) logbook that i could hand in as part of the project.

Unfortunately i couldn't find any tools that would do this for me. The closest i could find was the commit log that git-hub provided something similar to what i was after but provided alot of stuff such as avatars and commit hashes that i didn't need.

So i decided to quickly whip up a script to pass output from git-log and turn it into a nicely crafted logbook.

To interface with git i originally looked into GitPython but it proved to be rather buggy and hard to work with so i ended up going the much more low tech method of just parsing the output of a standard git-log command.

For the output i decided that using HTML via Jinja2 would be the easiest method as it would allow the template to be updated very easily down the track.

Eventually i came up with a system that i am reasonably happy with, it could do with a bit more work but it will do for now, at least until i have got all my projects out of the way.

An example of the output can be seen HERE

The script is available on github at https://github.com/Hugoagogo/pyGitBook