The GEEC at CoderDojo Athenry

We were fortunate to be visited on 8 April 2017 by Ciara and Connor, two engineering students from NUI Galway who are part of the Geec team, building the Galway Energy Efficient Car – this is an electric car that a group of students have built from scratch, that is capable driving very long distances. For example, they estimate that it could cover the distance from Galway to Dublin for 14 cents worth of electricity!

Ciara and Connor both explained their roles in the project and answered many questions from enthusiastic members of CoderDojo Athenry. The CoderDOjo members found the Geec and its underlying technologies very interesting. It was fascinating to see that skills that many of them are learning (such as Arduino programming, soldering, and App Inventor) can be put to such great use.

The Geec

A team, a project and a car. The Galway energy-efficient car (better known as the Geec) is an eco-car designed and built by engineering students from NUI Galway. In May 2015, we competed with 196 other teams at Shell Eco-marathon Europe, where every car was challenged to drive 16 km on a closed street circuit in Rotterdam using the least amount of fuel or energy. The Geec represented Ireland’s first ever attempt in this definitive global ultra-efficiency event. We finished in the top half of the leaderboard in prototype battery-electric class, with a score of 287 km/kWh – roughly equivalent to 8,000 miles per gallon for a petrol or diesel car.

The talk covered the basics of how the car has been designed, built and tested, with the main focus on the electronics and software involved in the car.

Ciara Finan

Ciara is a final year Electronic and Computing Engineering student in NUIG. Her role on the Geec team is to implement the Data Acquisition and Display system. The system collects data from sensors on the car and then has to accurately display them in real-time to the driver. All the data is used to write out driving strategies for the marathon. It entails designing, testing and building a circuit with various sensors, an Android app to display the data to the driver and a logging system to save the data for further analysis.

Connor Duignan

Connor is a final year student studying Electrical and Electronic Engineering in NUIG. His role on the GEEC team is designing the power electronics system, which delivers power from the battery to the motor. This involves both software and hardware, with an Arduino being used as the interface between the electrical and virtual sides of the system.

Creators: Text Based Adventure

The last two weeks we were looking at something quite different: a text-based adventure system built in Unity. This was inspired by the Henry Stickmin games and also by the old 80s-style choose-your-own-adventure books.

158788261_51be05e517_z

Basic Program Design (Story Card)

The user is presented with a “story card”. A card consists of some text describing their current situation and (normally) a number of options to choose from.

Screen Shot 2017-04-05 at 14.12.23.png

Depending on which option they pick, the story branches from there, card-by-card, until it reaches an end (a card with no options).

Setting up a card is straightforward:

Screen Shot 2017-04-05 at 14.15.27.png

You enter the card description (the text the user sees on screen), the text that the user will see on each option button (the program supports up to four at the moment) and the card (or branch, but we’ll get to that later) to jump to when that option is selected.

There’s also the mention of “States to Set True/False” and we’ll explain that next.

Story States & Story Branches

We could have programmed the system entirely using only cards, but there’s one situation where this becomes tedious. Imagine that you have a choice; hitting a button for example. The consequences of this choice won’t become apparent until later in the story. If we only had story cards, then we’d have to branch the story immediately at his point, replicating the same steps on both branches until the point at which the consequences of your action played out.

Fortunately, there is a better way.

First, to remember the value we introduce the idea of a “story state’. It’s just a container for a true or false value. Cards can set the value of specific states when they are activated as seen above.

Screen Shot 2017-04-05 at 14.14.09

So, that covers remembering values, how do we then make use of them? This requires a “story branch”. A branch references a state and two places for the story to go (either of these can be a card or another branch). The value of the state determines which is picked.

Screen Shot 2017-04-05 at 14.19.01

 

Game Manager

This class looks after the story. It is responsible for updating the UI to the details of the current card, for handling the use clicking on specific buttons and generally directing the flow of the story. It also needs a StoryCard to start off the story with.

Screen Shot 2017-04-05 at 14.21.33.png

Project

 

The project, including a very simple story using a number of cards and also a couple of states, can be found here. There are two scenes in the project, Adventure which contain a simple story and Basic which is a good starting place for your own story.