A blog of geeky stuff – Games / Books / Code

Menu

Pi in the Sky

A few years ago, as part of a project I worked on, we sent a GoPro camera into the sky above the town centre here in Hull. A wonderful time was had by all, the young people were having fun seeing their city from a strange and new angle. Until, the giant red helium balloon made it’s escape (long story).

I sat on the idea until this year when I was asked if I could do something over the summer holidays with the young people of Hull.

“I could do some sort of balloon mapping photography thingy”

I foolishly announced.

As a result of this I found myself looking into how it was possible to do something similar to the GoPro workshop but with less expensive kit, and less canisters of helium.

I finally settled on the idea of using a Raspberry Pi, specifically a Raspberry Pi Zero W, as the brains of the operation. This amazing little computer can (in a pinch) serve as a desktop replacement machine – I’ve used my personal Pi Zero W on the odd occasion when I’ve destroyed my main PC and needed to get something off the internet onto a USB stick.

Raspberry Pi Zero W and the big brother Pi 3

The Pi Zero W is slightly over-specced for what we need to do with it’s built in Bluetooth and WiFi. but it’s tiny and super light.

It also has a specially designed, mega tiny, 5 megapixel camera that simply connects directly to the Pi Zero. It can be a bit fiddly, but it will connect to the Pi and add almost no extra weight to the package.

Next we needed a method of getting airborne. Here I returned to the original workshop and decided that a suitably sized helium balloon would do the job nicely. A short trip to the local balloon store (doesn’t everyone have one of those?) and I had a costing for a relatively huge balloon.

Yours truly with his big red balloon

Brilliant. I had all the parts I needed to get a camera airborne and take photos.

Until one lunch time, happily munching away on my sarnie (home made, boring – it must have been towards the end of the month) I realised I had not thought about how to power this kit.

A pretty major oversight if you ask me.

A quick Google search later and I had my answer. I knew the Raspberry Pi required the equivalent of a mobile phone charger to power it, a very useful addition as I have many micro USB cables and sockets around the house. Not much help, but, it turns out that the Pi Zero W draws such a small amount of power (1.2 amps according to the official Pi documentation). Which means that pretty much any mobile phone charger will do the job. There is still the small issue of plugging said charger in though. Especially as we will hopefully be soaring up where the air is clear as the song says…

Inspiration. Obvious. I’m sure it has occurred to you dear reader that surely I could use one of those portable mobile phone charging bricks. Well, yes. It occurred to me too, as I was starting at them in Home Bargains (other cheap shops are available).

I bought one there and then for the total cash price of £2.99, and tried it as soon as I got back to the office. It worked. Brilliant. How long would the juice last? Who knows, but it works!

Next up was to work through the code myself, so that I knew everything would work when I delivered the session with the young people.

The code turned out to be quite simple. The Picamera had it’s own set of instructions for python (my programming language of choice) and once you have initiated the camera module (a setting in the raspi-config application) you can download the code and simply go nuts.

The usual

sudo apt-get update

and then

sudo apt-get install python-picamera

to download and install the python commands for the camera.

Then it’s simply a matter of opening your python IDE of choice (if you are on the Pi then Thonny is my current favourite – and it comes with the latest version of Raspbian).

My code looked something like this :

import picamera #Import the code for the picamera
from time import sleep #Import the sleep command
camera = picamera.PiCamera() #Setup an alias for the camera
sleep(300) #pause for 5 minutes so we dont get photos of us sticking the pi to balloon
for img in range (0,3000): #Loop 3000 times incrementing by 1 each time
camera.capture ("/home/pi/hcl/image "+str(img).zfill(5)+".jpg") #Capture an image and store it in the location adding the loop number to the filename
sleep(2) #pause for 2 seconds before repeating

You may notice there is a random thing in the code. A “zfill(5)” – this ensures the number is at least 5 values long, ensuring that Linux filenames list properly. For some reason the Linux file system read the filenames as 10,11,12….18,19,1,21,22… etc which was a bit annoying. This means that all the filenames are 00001,00002,00003 and so on so they list correctly in the file explorer.

A quick test of the code meant that I knew everything worked and we had a system that could take photos on a regular basis.

Next up was to remove the comments and to test the young people as part of the workshop.

Before we went out we combined the Raspberry Pi, the Picamera and the battery pack, shoved everything apart from the camera into a food sandwich bag and used the highly technical method of a wooden craft lolly stick to stop the camera (on it’s flimsy ribbon) from moving around too much and giving us blurry photos.

I scavenged a reel of strong ribbon from our craft team and tied it to the bottom of the balloon (100m of ribbon was a good idea even if it was a bit overkill as we used only 30m of it before I got scared – the young people wanted to go higher, but I didn’t want to lose another balloon).

The battery pack held out and we got two runs of brilliant photos. One set from Bransholme and one set from the town centre and Queen’s Gardens. I took the photos and combined them in a couple of videos that you can see over on the Hull Library youtube channel.

Not too difficult at all. The camera is more than happy to take video instead, I was limited by the storage space on the pi, and the wind moves it around a fair bit when it’s in the air but filming shouldn’t be too hard. Have a go. The young people in the sessions loved it and were pretty much queuing up to be next to hold the balloon.