Make a torch and burglar alarm in Scratch with the CamJam EduKit and ScratchGPIO
Sean McManus, co-author of Raspberry Pi For Dummies, shows how you can use Scratch on the Raspberry Pi to code flashing lights and a burglar alarm
When I visited the Raspberry Pi stand at BETT 2015, I had a first chance to try the CamJam EduKit, which provides a pack of components for your first Raspberry Pi electronics projects. The kit is affordable and provides everything you need to get started with connecting and lighting up LEDs, connecting buttons, buzzers and motion sensors.
To prepare for the Scratch hackathon at the Raspberry Pi 3rd Birthday party in February 2015, I had a play with it, in particular looking at how Scratch can be used with it. The extensive documentation for the kit (which is great, by the way) is in Python, so this article shows some Scratch examples you can use with the components in the kit. If you don't want to buy the kit, you can source the components separately elsewhere.
Like many projects, this one began with Lego. To stop the breadboard sliding all over the place, I created a Lego housing for it and the Raspberry Pi that would keep them conveniently together.
My Raspberry Pi is in a PiBow case, which has the pin numbers on it. That was extremely helpful when connecting things up.
Connecting up components
To connect up the components, I'll refer you to the CamJam Worksheets for detailed documentation. In particular, I recommend that you build the circuit from Worksheet 6 of Kit 1 (shown below), but I recommend reading the earlier sheets for some context along the way.
- The resistors in the circuits with the the LEDs are 330 Ohm. If there are four colour bands, they will be Orange, Orange, Brown, and then Gold. If there are five bands, then the colours will be Orange, Orange, Black, Black, Brown.
- The resistor in the circuit with the button is 4.7 kOhm
- The long leg of the LED is the one shown with a kink in it in this diagram (the anode).
- The buzzer's long leg (positive) is shown in red here.
ScratchGPIO example 1: Torch
This simple example turns the Red LED on when you press the button down and turns it off when you release the button.
The sensor value block is used to detect the button press. Broadcasts are used to turn pins on and off.
Note that the pins are numbered differently in ScratchGPIO to how they are numbered in the Python documentation. In Scratch, turn your Pi so the top is facing you and the GPIO pins are in the top right corner, and then count from left to right, top to bottom.
ScratchGPIO example 2: FizzBuzz
Do you know the game FizzBuzz, where you take it in turns to count. If a number is divisible by 3 you have to say 'fizz', and if it's divisible by 5, you have to say 'buzz'. Here's a version of that here, where Scratch counts and turns the red LED on if the number is divisible by 2, the amber light if it's divisible by 3, and the green light if it's divisible by 5.
Adding the motion sensor to your Raspberry Pi
If you have the CamJam EduKit 2 (sold separately to kit 1), you can also use the motion sensor in Scratch. Follow the instructions in worksheet 5 for EduKit 2, and add the motion sensor to your existing circuit:
ScratchGPIO example 3: Make a Raspberry Pi burglar alarm
If you have everything connected up, including the motion sensor, here's some code for a burglar alarm, adapted from the code in the CamJam kit. The buzzer can be quite piercing, so I kept some code in the Scripts Area I could click to turn everything off at any time. The amber light flashes when the program is running, the green light is on when no movement is detected. The red light comes on and the buzzer sounds when motion is detected.
Hopefully, those simple demos will enable you to get going with the CamJam EduKit and ScratchGPIO. What can you build using the kit? Time to start exploring!