Making an interactive Science Quiz using bareconductive.com Pi CAP board
Last month the team over at bareconductive.com kindly sent me a Pi CAP to experiment with. As revision is now upon us I decided to use it to make a revision aid for year 11 to help with their GCSE Physics exam.
The Pi CAP adds high resolution capacitive touch, distance sensors and high quality audio to your Raspberry Pi. Using electric paint you can easily connect the physical world to the Raspberry Pi.
I wanted to use specifically the capacitive touch with this project but have further ideas to extend it using the audio output too.
The conductive electric paint was 'interesting' to use and I forgot several times that it actually was paint, but it is water soluble!
Creating my quiz
I started by producing my quiz board with a track of electric paint running from each answer to the respective connectors on the Pi CAP. I decided that I would 'cold solder' the terminals straight onto the paper to make this a more permanent resource.
The code was relatively straight forward and I based my quiz on the sample simple touch python script.
I wrote a simple function which gets sent the expected touch number and checks to see if it has been pressed and returns a value of True or False.
I then wrote a series of questions. To avoid issues of letting go of the touch pad being identified as an answer I called the function again after each question but checked to see if the answer was 99. This was then ignored by the function and exited.
The whole code can be found here
The Raspberry Pi 5th birthday weekend was a fantastic event and really showed off the best that the community has to offer.
To run such a big event the Foundation called out to its biggest resource for help ….
The community pitched in and over the weekend nearly forty volunteers helped out across all areas of the event.
I ended up working in my favourite spot - on the stage helping organise the tech for the speakers and presenters. I also got to run a workshop and take part in a panel discussion.
A special moment of the weekend for me had to be when Philip Colligan called me onto stage during his keynote presentation.
Sadly, I seem to work in a school where praise is very thin on the ground. We definitely praise the students lots and reward their achievements but very rarely say well done to the staff.
A huge number of people contribute so much to the work of the Foundation and we do it for many reasons.
At the heart of it for me is a passion to share this technology and to use it to enrich the lives of young people I work with and run workshops for. We definitely don't do it for fame, awards or accolades.
As Philip rightly said, for every one of me there are another 30 doing an amazing and awesome job out there in the community.
So thank you Phil for your kind words to me, but also for really valuing our community!
Watch the entire video below.
I took inspiration from the Wizarding World of Harry Potter for this project build as it combines two of my favourite visual elements from the films, The Weasley's clock and The Marauder's Map. I have called this mashup The Marauder's Clock!
(Photos taken of the original props at the Harry Potter back stage studio tour)
The aim of the project was to build a clock containing the visual elements of both items. To achieve the authentic 'who is at home detection' I used a Raspberry Pi reading WIFI devices. The MAC addresses collected by the Pi were checked against a known list for myself and Philip and used to control the home / away hands on the clock face. I used an Arduino Uno to control the servos and LEDs on the clock face.
There are several different ways that you can connect a Raspberry Pi and Arduino together to share data, you can use USB or make a serial connection. I decided that I would go for a more hardware based approach and used a bank of 3 relays and a Pimoroni Explorer hat to connect the two. I showed a friend the project and he was curious as to why I would use relays for data transfer but another aspect of the project was to use it as a demonstration of data communications between two computers at school. In effect I have built a very simple parallel interface.
The Arduino build:
The Arduino has two servos attached and 4 LEDs. The left hand servo is a positional rotational servo and is used to indicate if the person is home or away. The right hand servo is a full continuous rotation servo and is used to mock up a minute hand which moves every second. I decided that I was going more for visual appeal so the hand moves more than 6 degrees each second.
I use three digital input connections on the Arduino which wait for a switch to be closed. These are activated by 5V relays powered by the Raspberry Pi. The first input checks the status of my mobile phone, the second my sons mobile and thirdly the status of the home internet.
I have used a simple repeating loop to:
Move the second hand for 30 seconds.
Check the status of digital input 1 (my phone) and move the home / away hand accordingly
Move the second hand for 30 seconds
Check the status of digital input 2 (my son's phone) and move the home / away hand accordingly
Move the second hand for 30 seconds
Check the status of digital input 3 (virgin broadband) and move the home / away hand accordingly
The Raspberry Pi build:
The Raspberry Pi zero has a Pimoroni Explorer hat attached which is used to power the 5V relays. The digital output pins on the hat are really just a controllable path to ground and don't actually produce any power which comes from the 5V power out. Using the 5V and these digital 'outputs' I am able to control the power to the relays and subsequently the signal sent to the Arduino.
The Raspberry Pi code is essentially very straight forward. I scan the network with arp-scan and look for two specific devices in the output. Depending on their presence I switch on the output to the various relays.
Building the case
The case is actually a satsuma crate from Tesco which I covered in an shop replica Marauder's map. A 12V power supply is used for the Arduino and the Pi is powered separately. I found that powering the relays and the WIFI was too power heavy to power the Pi off the Arduino, although I might refine that in the future.
I have been a huge fan of Ryanteck for a long time now and think what Ryan does is brilliant. Earlier this year Ryan started a campaign on KickStarter for RTK.GPIO, a USB Raspberry Pi Compatible GPIO Header. This is an easy way to add a Raspberry Pi style 40 pin GPIO header to a Mac or PC. Ryan achieved over £10,000 worth of pledges which is great!
This board can be used in two main ways. Firstly it can give you I/O connectivity for a Mac or PC, this will also support many Raspberry Pi HATs. I can see this being very useful for schools where they want to introduce elements of Physical Computing but haven't yet embraced a Pi suite of machines. Secondly, it can be used to get extra Raspberry Pi pins on a Pi or run your header off the Pi with the USB cable.
Ryan very kindly sent me a test unit which I have spent the last hour tinkering with. After a little bit of Mac setup and installation I had my first LED flashing away on my desk.
The Python code was very simple and would be recognisable to anyone who has already used a Raspberry Pi for similar projects.
This is definitely one project to watch!
from RTk import GPIO
LED = 22
Philip is a year 7 student from Birmingham, my son and an all-round really great kid!
Quite a few people have asked me which bits I did and which bits were his. Essentially I paid for the components and took him to the marker space to laser cut the case and the rest is his!
Over the six weeks school holidays Philip designed, built and programmed a Raspberry Pi powered Pokedex. A Pokedex is an electronic device for storing your Pokemon information in.
His project has two main functions.
- A directory of over 200 Pokemon photos which you recall by typing in their unique Pokemon number.
- A Pokemon Go style function which takes a photo with the Pi camera and then overlays a Pikachu with a transparent background.
The key components used in the construction:
- Raspberry Pi model A+
- An old car reversing monitor for the main display (composite output from the Pi)
- A Nokia 5110 phone screen for additional information
- A 4x4 membrane keypad
- A Raspberry Pi camera
The final project can be found here https://github.com/Flye001/Pokedex
The main code is multi10.py you will also need the libraries for the Nokia display and the keypad. You will also need to set the video output to composite.
Philip did a fantastic job of speaking about his Pokedex at the Cambridge Raspberry Jam in September 2016. He is such a shy boy so I was very proud to hear him speak.
Here is a video of Philip speaking about this project.