For safety reasons every lighthouse has a signal that is distinctive and individual e.g. the lighthouse at Flamborough Head in Yorkshire flashes four times, waits 15 seconds and then flashes again. This signal is called the lighthouse character and you can see them all listed on the Trinity House Website. An activity for children would be to visit the Trinity House site, find the lighthouse nearest to them and discover the signal their lighthouse uses. They could then create a programme that simulates that lighthouse.

Learning objectives

You will be able to:

use the gPiO interface for input as well as output.

program an input and output control system.

understand how an LDR can be used as a light sensor.

Design brief

To create a lighthouse control program.

The control program must:

turn on the main light beam when it is dark and turn it off when it is daylight

make the main beam flash to produce a unique signal

turn on the fog horn when it is foggy and turn it off when it is not foggy

make the fog horn produce a unique sequence of sound

You will need to consider the range of sensors and select the most suitable input device for the job:

LDR (light sensor)

for sensor (in fact we do not have one so you can use a simple push switch for now)

You will need a processing device (computer), an interface to connect the components to the computer and a power supply.

Raspberry Pi

gPiO interface and power supply

You will need to consider the range of output devices to warn ships that they are approaching danger:

filament lamp

white LED

buzzer

You will need to select a programming language that can communicate with the input output devices:

Scratch

Python

Main light:

input, an LDR connected to a gPiO interface.

6 volt output connected to a bright, white, LED.

Fog horn:

input, a push switch connected to a gPiO interface.

6 volt output connected to a buzzer.

Making the model

The lighthouse is quite an easy model to make and all of the electrical components can be built into the model as it is made or they can be added afterwards.The gallery below shows a model made from a kitchen roll holder, an alternative is to use a Pringles tube. The LDR can be difficult to find so we’ve added it to our ‘Hard to Find’ Pinterest board.

Connecting to the gPiO Box

Design the circuits that will be built into your lighthouse model and use connection blocks to connect your model to the gPiO interface.

Bring all of the wires into the eight connection blocks

Use additional pieces of wire to connect the blocks to the inputs and outputs on the gPiO.

Scripts & Code

These are the Scratch Scripts and Python Code for this project. All of these are available in the Code Library. The scripts follow the flowchart, you can follow these scripts or create your own for a different lighthouse.

When using Scratch, pin connection numbers are dependent on whether you are using ScratchGPIO or GPIOServer. Use this document to determine the correct pins to use.

Flowchart

If you use Flowol(TM) in your school you can download this flowchart from the Code Library. Version 4 and above of Flowol can be used with the gPiO Box, so that you can use this flowchart to control physical devices directly. For more information on using Flowol with the gPiO please contact us.

There is also another version of this flowchart in the Code Library, to keep things simple we haven’t shown it here. The alternate version utilises Flowol’s ability to use subroutines to create more elegant code.

ScratchGPIO

This is the ScratchGPIO version of this project, you can download this script from the Code Library.

GPIOServer

This is the GPIOServer version of this project, you can download this script from the Code Library.The script shown will work, and appears simple to use.However, in practice the need to initially declare ports as Inputs or Outputs can be difficult for children to grasp and ‘gets in the way’ of actually producing the project code. A better solution is to create a template script that is hidden from the children and does the heavy lifting. This technique is fully documented here and the associated scripts are in the Code Library.

Python Code

For more advanced users we have included a Python version of this activity here and put a copy in the Code Library.

Post navigation

Your email address will not be published. Required fields are marked *

“The GPIO box is ideal for Primary Schools. We use them with the Raspberry Pi and Scratch GPIO. It makes it so much easier for children to connect inputs and outputs and therefore have a better understanding of the coding. Definitely recommend “

Anne Croft - Welbourne Primary School, PeterboroughJune 20, 2016

“When I first got my hands on a Raspberry Pi early experiments with breadboard and jumper wires were a disaster. I had decided that there probably wasn’t a niche for the Raspberry Pi at KS2 until I got my hands on a set of gPiO interfaces. I now teach physical computing on the Pi throughout my school, starting with children as young as 8 - and they love it!”