After ordering the toy on the Friday night I was really surprised when it arrived on Sunday afternoon.
Tearing down the display was really easy and it seemed to come apart really easily to reveal a 75hub LED panel. There was few more boards and comments to remove (and keep for later projects).
Wiring the display to the Raspberry PI was very easy and I followed this guide.
The display runs from a 5V DC supply but can't be powered from the 5V / ground pins on the Raspberry Pi. I used a fairly multi-voltage power supply to for the display.
Controlling the display with a Raspberry Pi and Python.
Clone this GitHub repository.
Bad interaction with Sound (taken from rpi-rgb-led-matrix)
If sound is enabled on your Pi, this will not work together with the LED matrix, as both need the same internal hardware sub-system (a first test to see if you are affected is to run the progrem with --led-no-hardware-pulse and see if things work fine then).
If you run lsmod and see the snd_bcm2835 module, this could be causing trouble. (The library actually exits if it finds this module to be loaded).
In that case, you should create a kernel module blacklist file like the following on your system and update your initramfs:
sudo update-initramfs -u
Reboot and confirm that the module is not loaded.
Have a look in rpi-rgb-led-matrix/bindings/python/
You will then need to build for python 2 or 3 (see README.md)
Before running the example python scripts you will need to make the following edit to
line 13 of rpi-rgb-led-matrix/bindings/python/samples/samplebase.py
self.parser.add_argument("-r", "--led-rows", action="store", help="Display rows. 16 for 16x32, 32 for 32x32. Default: 32", default=32, type=int)
change 32 to 16 for the default size
self.parser.add_argument("-r", "--led-rows", action="store", help="Display rows. 16 for 16x32, 32 for 32x32. Default: 16", default=16, type=int)
- Raspberry Pi Zero (or Zero W)
- Pimoroni Automation hat
- Connecting cables & jumper leads
- PIR sensor
- Cheap light box
Step 1 - Strip out the light box internals, keeping the LEDs
Step 2: I wanted to check that the LEDs would operate on the 5V output from a Raspberry Pi so I hooked it up to my bench power supply. I could go as high as 6V if needed.
Step 3: Remove all the insides from the light box including the battery compartment.
Step 4: Connect up the LED strip to the output (1) and 5V supply on the automation pHAT. The outputs are actually switchable connections to the ground and can be controlled with the Python library.
Step 5: Connect up the PIR and calibrate.
The PIR is relatively easy to use and has a very simple python command if using GPIO Zero, as I'm using the automation pHAT I decided on a different approach to detecting if the PIR had been triggered. I connected the VCC and Ground input to the automation pHAT. The signal was then connected to analogue input 1 and the incoming voltage read. The voltage would swing between 0.2V (no motion detected) to 3.31V (motion detected). By looking for this voltage on analogue input 1 a motion detection could be triggered.
There have been many projects I have wanted to make and my first was a name badge I wore to BETT back in January.
A second project I have been keen to make was a Bible verse a day display screen for my desk to give me encouraging verses during the day. I soon discovered that this wasn't going to be the easiest task as I needed a simple way of converting long strings to multi line text.
If you would like a copy of the code it is available here on GitHub
This project can easily be used for other purposes and is very useful if you want to be able to display a long piece of text over the whole display at different font sizes. I have included a step which calculates the average character width for the current font so calculates automatically how many characters can fit onto one line and where to split the string into the correct line lengths.
Example 1: calculating the average character width and the number of characters which will fit on the display
Example 2: selecting a random verse from the list and splitting it into the correct length lines
Example 3: dealing with the ends of lines to ensure that split words have a dash
Help Google Assistant keeps telling me the weather in Fahrenheit.
I love my Goggle Assistant AIY project and have even moved to Google calendar so it can tell me what I am doing today!
One thing kept bugging me about the Google Assistant - the way it would only give me weather details in Fahrenheit.
After much searching for settings and configuration I stumbled across this incredibly simple solution.
"Use Celsius from now on"
You will then get a confirmation reply:
"Okay, I will remember that you prefer Celsius"
Adventures in flight tracking - part 1
Whilst looking through the lovely Raspberry Pi goodies at Pimoroni over Christmas my eye was drawn to the DVB-T dongle which was described as being 'ideal for ADS-B (real-time plane tracking)'. For £12 (currently £10) I thought this would be nice little project to kick off 2018.
Linked from the Pimoroni shop page was Alex Ellis' blog with a very detailed tutorial on setting up flight tracking by picking up ADS-B transmissions. This blog is very comprehensive and also introduced me to the world of docker. The tutorial also sets up the dump1090 application which has a great web interface which lets you view aircraft in real time.
Get eyes in the sky with your Raspberry Pi
If you are new to Docker I would defiantly do the final recommended step in the installation,
sudo usermod -G docker pi
I also found that one of the final steps didn't work (there was also a comment from someone else with the same issue)
docker logs --tail 20 -f 1090
The next stage involved setting up the Pimoroni scrollpHAT-HD. Rather than attaching the pHAT straight to the Pi I soldered just six pins onto the pHAT and used jumper cables to attach it off the Pi.
the scrollpHAT can be installed with:
curl -sS https://get.pimoroni.com/scrollphathd | bash
The pHAT only requires the following connections.
BCM 2 (SDA)
BCM 3 (SCL)
Displaying the currently scanned flights.
I modified code from @th0ma5 http://th0ma5w.github.io which filters out the list of planes in view from data.json and prints changes to standard out. By then selecting only the characters in positions 32-39 per line and then tidying up the output I could isolate the flight numbers.
The code then reads the current list of flights into a list which then is displayed on the scrollpHAT HD. It took a little bit of tweaking to get the names to scroll enough so you could read them.