Tuesday 12th December - Day 2
Another early start on a cold and icy morning with a temperature of -4 degrees C. The car, train and tube journey ends again at the Eagle Lab in Notting Hill Gate. The team are all here, Hannah, Charlie, Ash and Dan ready for action.
Han is working on Micro:Bit interfacing, Ash is experimenting with air quality sensing and Dan with NFC. I have chosen the Cambridge developed credit card sized computer. The Raspberry Pi.
Two current buzz words being talked about in the tech industry are IOT and API. Therefore I want my project to include both and demonstrate how these words can be explained with a practical example. I have a project in mind and have broken it down into smaller parts and will tackle each one in turn. My ingredients for this project include Neopixels, seven segment LED display, an audio device and network connection. Today I will concentrate on Neopixels.
Neopixels are small optical components containing typically 3 or four light emitting diodes (LED’s). A three LED Neopixel contains a red, green and blue led and mixing these colours with varying brightness gives thousands of colours. Mixing light is a little different to mixing paint as full red, green and blue will give white. To achieve pure white means you have to balance these three colours perfectly so the white does not have a hint of any other colour. This is where the newer four colour LED works better as the fourth is white. Neopixels are supplied in strips of varying length and connected in series with a small processer to decode the signal for each pixel. We can send data to the first in the strip to tell it which colour and brightness we desire. The data is then forwarded to the next and so on. It’s like a postman delivering letters to houses in a street and each letter telling that address which light in your house to turn on and at which brightness.
The Neopixel strip is connected to the Raspberry Pi using only three connections. Two for power (+5v and 0v) and a data signal. The data is a precise timed signal containing all the information for each of the colours in every pixel in the strip including brightness. To generate this signal we need to install driver software for the specific controller chip connected to each pixel (WS281x). Luckily, we don’t need to write this software ourselves as they are available to download. Once installed, we can use simple commands to control the whole strip or each individual pixel.
A little while later my Raspberry Pi is setup, SD card installed, updated and Neopixels drivers installed. Before long my strip (still on the real) is displaying more colours than an 80’s disco ball.
First step completed. Now to add the seven segment display (x4). This is just for testing as the 8 digit version was only ordered while on the train this morning. Seven segment displays are so called as each number digit is made from seven segments (or 8 if you include the decimal point). The number 8 uses all seven parts while 1 uses only two segments (to the right of the display). Normally we would need to control each LED segment separately (that’s 56 LED’s without decimal points). This display has a built in controller chip (MAX7219) which does most of the hard work turning the display segments on and off and adjusting brightness. Similar to the Neopixels we only need a few connections to communicate with this controller and once again software drivers to enable the use of simple command instructions. After a little longer installing and checking connections, I now have a display of numbers and letters.
As well as the physical building, designing and experimenting today, the other most beneficial part of the day is the team building and the relationship between the engineers which is growing stronger. We all have our own particular skills, some overlap but all specialists and willing to learn from each other. It’s very noticeable that we all take pleasure in helping the team. A group of engineers in a team is far better than the sum of the parts.
More work on this project tomorrow and a team exercise (yet to be confirmed) which may include LittleBits.