Академический Документы
Профессиональный Документы
Культура Документы
WELCOME TO
THE OFFICIAL
MAGAZINE
PAGE 34
T
his issue marks the fifth birthday of
the magazine. Happy birthday us! Its
been an incredible journey from its
humble beginnings as a community fanzine,
to this issues Google-powered giveaway. Over
the course of the last five years weve generated
more than four thousand pages of Raspberry Pi
content designed to help, inspire, and entertain
you on your journey with the worlds favourite
credit card-sized PC.
In conjunction with our friends at Google,
weve got quite the birthday present for you.
Those of you who read the print edition will
have in your hands a brand-new kit designed
specifically to help you bring Natural Language
SEE PAGE 34 FOR DETAILS
Interaction to your Raspberry Pi projects.
Over the course of 20 pages, Lucy Hattersley
expertly demonstrates the power of Googles new
Voice HAT, coupled with the Google Assistant THIS MONTH:
API, to create a cardboard contraption capable of
answering any question you put to it. Thats just
the beginning, though, and we cant wait to hear
14 BUILD YOUR AIY PROJECTS KIT
Get to grips with your new Google-powered project
about the amazing projects you make!
Heres to the next five years of the official 50 ADD A POWER SWITCH TO YOUR PI
Raspberry Pi magazine. Enjoy the issue. Safely shut down your Pi without having to pull the plug
DISCLAIMER: The Google AIY Projects kit is a free gift. It is provided as is implied warranties of satisfactory quality, fitness for a particular purpose,
without any representation or endorsement made and without warranty compatibility, and accuracy. All liability arising from such issues is
of any kind whether express or implied, including but not limited to the expressly excluded to the fullest extent permitted by law.
This magazine is printed on paper sourced from The MagPi magazine is published by Raspberry Pi (Trading) Ltd., 30 Station Road, Cambridge, CB1 2JH. The publisher,
sustainable forests and the printer operates an editor, and contributors accept no responsibility in respect of any omissions or errors relating to goods, products or services
environmental management system which has referred to or advertised in the magazine. Except where otherwise noted, content in this magazine is licensed under a
been assessed as conforming to ISO 14001. Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0). ISSN: 2051-9982.
raspberrypi.org/magpi April
May 2016
2017 3
Contents
Issue 57 May 2017 raspberrypi.org/magpi
GOOGLE AIY
Parallel programming with Python
PROJECT KIT
Learn more about types and variables
IN THE NEWS
PI WARS PIONEERS
ASTRO PI WINNERS
MONSTER BORG
MAKERS TOOLKIT 64
Get yourself ready to make your dream project
The PiBorg team is
back with a new robot
13
COMMUNITY
PI ORDER
How a restaurant revolutionised its ordering system using a Raspberry Pi
We talk to the Raspberry Pi Guy
> EVENTS 90
POLA-PI ZERO 36 What Jams and Code Clubs can you go to this month?
ASTRO PI EU
WINNERS ANNOUNCED
French astronaut Thomas Pesquet announces latest winners of Astro Pi competition
n October last year, then thanked makers working on the Raspberry Pi Foundation. The
I with the European
Space Agency and CNES,
amazing computer code with your
Raspberry Pi [devices].
European Challenge provided school
students from every ESA member
The Raspberry Pi Foundation This years competition country with the opportunity to
launched the first ever European expands on our previous work design code to be run in space.
Astro Pi challenge.
Students from across Europe
were asked to write code
I encourage you to continue
for the flight of French ESA
astronaut Thomas Pesquet to the exploring using different
ways to use Astro Pi
International Space Station (ISS).
Below Thomas As I have been busy doing
Pesquet with an
science and engineering in space,
Astro Pi device on
board the ISS. you have been busy in your with British ESA astronaut Tim With so many excellent
Credit: ESA
classrooms preparing science Peake, explains Dave Honess, the submissions, it was really hard
(European Space
Agency) investigations, says Thomas. He Astro Pi Programme Manager at to choose the best code to run
NOW TRENDING
The stories we shared that
flew around the world
RX300
magpi.cc/2n5lJWX
THE WINNERS
Everyone produced great will be uploading your code
work, and the judges found digitally using the space-to-
it tough to narrow the entries ground link over the next few
down. In addition to the winning weeks. Your code will be executed,
submissions, a number of and any files created will be
teams were awarded Highly downloaded from space and
Commended status. These returned to winners for analysis.
teamswill also have their code A full list of winners and
FREE PI ZERO W
runon the ISS. highly commended teams can
The Raspberry Pi Foundation be found on the Raspberry magpi.cc/2lwRp6N
would like to say thank you to Pi Foundation website
Get a free Pi Zero W with an official case and
everyone who participated. ESA (magpi.cc/2o6mZwA).
adapter cables! Our new subscription offer was
the top tweet last month.
MONSTERBORG SMASHES
KICKSTARTER TARGET Monster success for PiBorgs biggest robot yet
P
owering forth on its 10cm wheels, the on rough surfaces, so we thought we would design
MonsterBorg has smashed through its something that essentially was a bigger, more
Kickstarter target: 1749% funded, with powerful off-road version.
pledges totalling 52,471 (magpi.cc/2oBdFzg).
We are stoked! exclaims PiBorgs Tim Freeburn,
who says the robot will soon also be on general sale
The MonsterBorg
Below The
from piborg.org.
Tim tells us the idea for MonsterBorg came about is based on PiBorgs
ThunderBorg board
ThunderBorg following the first FormulaPi race series using the
controller can drive
YetiBorg. A lot of people wanted to buy and build
larger motors than
previous boards the robots themselves, but to also use it outdoors or
Equipped with four 300 rpm Zhengke 37 mm
motors, MonsterBorg is PiBorgs fastest, most
powerful robot yet. It has enough torque to flip itself
over when going from full forward to full reverse on
flat ground! reveals Tim. It can tank-steer on all
sorts of surfaces grass, carpet, bitumen and it
climbs hills very well.
The MonsterBorg is based on PiBorgs new
ThunderBorg motor controller board. Also available
separately, this provides a dual output of up to 5 A.
A running time of up to three hours (using ten AA
batteries) will permit longer races in the upcoming
MonsterBorg FormulaPi series, whose use of the
Raspberry Pi 3 should lend itself to more complex
code such as neural networks and self-learning
algorithms, says Tim.I think we will see some
serious entries and some really great lap times.
NEW
RASPBERRY
JAM KIT
New resources for organisers
of Raspberry Jam events
R
aspberry Jams are hugely Communities and Outreach. Its
popular community been really interesting and exciting
events where people to gather all this advice and share it
gather to learn digital making with in this guidebook.
Raspberry Pi. Theyre a great way The Raspberry Jam Guidebook
to find out more about the Pi and is a free guide to running a Jam
meet like-minded folks. that you can download from
The Raspberry Pi Foundation the Raspberry Jam website. The your Jam. As soon as you have Above The new
Raspberry Jam
has released two new products to Starter Kit contains a projects submitted your Jam to the calendar Guidebook
support the teams that organise book, printed worksheets, leaflets, on the Raspberry Pi website, you
Raspberry Jams. stickers, and a copy of The MagPi. can request your Jam Starter Kit.
The community of Jam makers It also features a branding pack For more information on how to
has so much great advice for people of logos, assets, and templates download the Jam Guidebook and
starting their own Jam, says Clare for you to easily make your own Starter Pack, visit the Raspberry
Sutcliffe, Executive Director of posters and flyers to advertise Jam website (magpi.cc/28Nxeff).
PIONEERS WINNERS
he Raspberry Pi Foundation has announced
T the winners of its first Pioneers challenge.
We laid down the epic challenge of making
us laugh, says Olympia Brown, Senior Programmes
Manager. And boy, did the teams deliver! My face hurt
from all the laughing on judging day.
Theme winners were The Technological Tricksters,
with their Singing Potato. Heritage Hackers and their
Water Pistol Trap won the Inspiring Journey award,
Black Thunder and their Living Joke Robot won the
Best Explanation award, while Shady Hackers and their
Scare Chair Rig won the Technically Brilliant award.
The Pioneers programme challenges teenagers aged
12-15 to form teams of digital makers and share their
builds online. The next Pioneers challenge will be
announced shortly. Head over to the Pioneers website
The Pioneers programme challenges (magpi.cc/2oMN2rc) and sign up for the newsletter to
teenagers to form digital maker teams
be kept up to date.
SURVEY MAKER
RESULTS IN NUMBERS SURVEY
Results of maker survey show keen interest
OVER 15,000
in smart technology
MAKERS
ack in January 2017, we at Google. These results, along
B asked the Raspberry Pi
community to respond
with other feedback we gather
from the community, will help
to a Google survey canvassing us figure out where to take AIY
RESPONDED
opinions from makers. Projects next.
We conducted a survey to The team at Google are busy
understand how makers would analysing this data and plan
63%
want to use artificial intelligence to share more results via their
in their work, says Kristine website soon. In the meantime,
Kohlhepp, a User Experience you can get a sneak peek (to the INTERESTED IN
Researcher working on AIY Projects right) of some of the results.
MACHINE
LEARNING
MACHINE LEARNING
MAKERS
Over half of makers wanted to learn more.
about machine learning. Of those
PROJECTS
69% ON IOT
HAVE WORKED
PROJECTS
The Voice HAT included with
this months AIY Projects kit
57% ENGINEERS IDENTIFY AS
RASPBERRY
TURK
This chess robot moves the pieces by robotic hand
nspired by the 18th- determines when its the Raspberry
I century Mechanical Turk,
Joey Meyer has built
Turks turn, and it then makes a move
using its robotic arm, equipped with
a chess-playing robot based on a an electromagnet to lift the pieces.
Raspberry Pi 3 (raspberryturk.com). After the Turk spends one second
OpenCV is used to interpret the thinking using the Stockfish
overhead view of the board from a chess engine, Joey tells us: It takes
Camera Module. A Python program between 20-40 seconds to make
its move depending on how far it
has to reach and whether or not it
is capturing a piece (needs to make
two trips).
Not only does the Raspberry Turk
look impressive, but nobody has
managed to beat it yet. The Stockfish
engine is so powerful that even
running on a computer as small as the
The Raspberry Turk makes a move using its
Pi, it can play at Grandmaster level. robotic arm, which also removes captured pieces
FREE C/C++
oftIntegration Inc has launched Ch 8.0,
S the most complete cross-platform C/C++
interpreter, available free for Raspberry Pi
LEARNING TOOL
users as part of the C-STEMbian OS based on Raspbian
(magpi.cc/2o1JVNO). The latter also includes a
WiringPi binding for Ch to enable easier access to the
Pis GPIO pins in C/C++ programs.
Equipped with a user-friendly IDE (ChIDE), Ch
Cross-platform C/C++ interpreter
is designed to help students learn coding, robotics,
for Raspberry Pi and maths. Wayne Cheng, SoftIntegrations VP for
Application and Business Development, points out:
Ch is a superset of C with salient features of C++ and
many extensions including computational arrays,
plotting, QuickAnimation, and advanced numerical
computing capabilities. Ch is also a command shell, a
very high-level language (VHLL) for shell programming
and scripting for rapid prototyping. Therefore, Ch can
be used not only for learning C/C++, but also for serious
software development and applications.
As well as 1999 ISO C Standard (C99) and C++ classes,
Ch supports many industry standards including POSIX,
X11, and OpenGL. An Embedded version of Ch is also
Running a program from
ChIDE on the Raspberry Pi available, enabling users to embed Ch into C/C++
applications as a scripting and programming engine.
PI WARS
PROS/VETERAN WINNER
2017
Roboteers from around the world
Brian Corteils 2 wheels or not 2
gathered in Cambridge for the Pi wheels won the Pros/Veterans event
SCHOOL WINNERS
1. ExaBot (Michael Syree)
2. Kenilworth School Computer Club (Edward
Powell, Daniel Sendula)
3. Cranmere Code Club (Richard Hayler)
4. Adams Federation (Kevin Brace)
5. QM-Pi-Bot (Jon Witts)
PROS/VETERAN WINNERS
1. 2 wheels or not 2 wheels (Brian Corteil)
2. Ipswich Makerspace / Robot Tractorbot
(Keith Ellis)
3. Metabot3 (John Palombo / Lance Robson)
4. KEITH 3 Mostly Harmless (Harry Merckel)
5. Hitchin Hackspace (David Booth)
#AIY
Your AIY Projects kit comes in four
colours: Red, Blue, Green, and Yellow.
Tweet us yours using the hashtag #AIY
MADE BY
YOU WITH
The AIY Projects team chat to us about the
making of this incredible Raspberry Pi kit
N
atural Human Interaction become very popular in the last research to make sure people can
is this idea of being able year, says Billy. Not just with assemble the kit and figure out
to communicate with an consumer products, but also as a how to make it work.
electronic device the same way set of tools for device makers. The initial project is just an
you and I are talking right now, Google wants to help makers opener, reveals Blaise Agera
says Billy Rutledge, Director of familiarise themselves with voice y Arcas, Principal Scientist at
AIY Projects at Google. Weve interfaces, but its also really keen Google. Its fun to be able to
caught up at Raspberry Pi Towers to tap into the creative prowess of make a cardboard kit that uses the
to discuss the AIY Projects kit, and the maker community. Google Assistant, but this is about
the future of artificial intelligence Were excited to put the kits out a lot more than just making a
with the maker community. into the world and see what people lower-cost DIY version of Home.
Were all familiar with make with them, says Kristine The future belongs to intelligent
graphical user interfaces (GUI), Kohlhepp, a User Experience devices. Billy says: At some point
notes Billy. Well, building a VUI Researcher working on AIY Projects soon, well see a new generation
is now the big thing. Voice has at Google. Weve done a lot of of devices that you can just walk
12
11
13
10
YOUR AIY
PROJECTS
VOICE KIT
6
7
aiyprojects.withgoogle.com
KIT
the heart of the AIY Project kit, microphone. Then youll move on
and everything connects to it. It to folding the cardboard case and
also provides breakout GPIO pins, placing the components inside.
organised into two blocks: Servos Finally, youll assemble the
and Drivers. arcade-style button and secure it
Put the parts together to build Youll connect the Voice (and the microphone) to the case.
HAT accessory board to your Ready? Lets start building
a voice-enabled device Raspberry Pi via the GPIO pins. your kit.
Youll Need Raspberry Pi 3 Small, needle-nose pliers Phillips 00 screwdriver Scotch tape
STANDOFFS
terminal is the speaker connection (it
has Speakers printed above it on the
Start with the two standoffs. These are the small board). Each of the two connections
plastic cylinders, and they fit into the yellow has a small + and - symbol printed
mount holes on the Raspberry Pi board. Insert below. Find the speaker with the red
the standoffs into the two yellow holes on the and black wires attached. Insert the
opposite side from the 40-pin GPIO header (on red wire into the positive + terminal on
the same side as the HDMI connection). Push the Voice HAT accessory board. Now
them firmly, and they will hold in place. add the black wire into the negative
SECURE THE HAT - terminal. They wont be fixed yet, so
hold them in place.
Now get the Voice HAT accessory board and
attach it to the GPIO pins on the Raspberry Pi
board. Carefully line up the GPIO connector
on the Voice HAT accessory board with the
pins of the GPIO header on the Raspberry Pi.
Gently press down to make sure the Voice HAT
accessory board is secure. Press down on the
spacers on the other side of the board to snap
the boards together.
4 SCREW IN
THE WIRES 5 THE BUTTON CABLE
At this point, the two wires will be sitting Find the 4-wire button cable: it has a
in the sockets unsecured. Hold the wires white male connector on one end and
in place, and gently turn each screw in four separate wires with metal contacts
the socket using a Phillips 00 screwdriver. on the other. Insert the white plug into the
Gently tug on the wires to make sure matching white socket marked Button on
theyre secure. Now place the speaker to the Voice HAT accessory board (it is the
one side of the board so you can access one nearest to the red button). The cable
the other components. will only go in one way around, so dont
force it. Check that the colours of the cable
match the image. Dont worry about the
four separate wires with metal contacts;
well come back to these later.
7 ONNECT THE
C
MICROPHONE
Take the other end of the 5-wire
daughter board cable and connect it
to the Voice HAT accessory board.
11 PUSH IT OUT
The flap above the 1 and 2
folds has a U-shaped cutout.
Push it out.
12 FOLD OUT
THE FLAP
Then fold the rest of the flap
outward. Fold the section
labelled FOLD UP so that
it is flush with the surface
youre working with. Theres
a little notch that wraps
behind the U-shaped flap
to keep it in place.
15 LIDE INTO
S
THE RASPBERRY PI
Turn the cardboard frame around. Take the
Pi + Voice HAT hardware and push it into
the bottom of the frame below flaps 1 and
2 (pictured). The cardboard frame should
expose the USB ports of the Raspberry Pi.
19 ACK THE
P ADD THE BUTTON 20
ARCADE BUTTON Insert the plastic button into
Find your arcade button. There will be a the top flap of the cardboard
plastic button, a spacer, and a nut. If theyre box from the outside in. The
connected, unscrew the nut and spacer from pushable button side should
the main button and place them to one side. face outward, with the larger
screw on the inside; i.e. the side
marked BUTTON Spacer first.
21 ECURE
S
THE BUTTON
Now take the spacer
and add it to the screw.
Next, screw in the washer
to secure the button in
place. Make sure that
the spacer sits between
the washer and the
cardboard lid.
25 PLACE IN BUTTON 26
You now have a completed lamp with a microswitch
mechanism. Look at the button to see spacers that press
down on the red microswitch. When you press the button, it
pushes the microswitch. Insert the lamp into the button.
SET UP THE
SOFTWARE
SDK
>STEP-01 console.cloud.google.com in
and helps you get things done (aiyprojects.withgoogle.com/ project. Give the project a name,
voice). like aiyproject, and click Create.
ou now have a fully
Youll Need Y assembled cardboard
device that is almost ready
>STEP 2
Set up the network
>STEP 6
Enable the services
to respond to your questions. Click on the Networking icon and Click on the Products & services
Assembled AIY
To do this, youll set up a Google choose your network. Now double- menu and choose API Manager.
Projects kit
Developer project and activate the click the Check WiFi icon. Search for and click Enable API at
MicroSD card brand-new Google Assistant SDK. the top of the screen. Click Google
AIY Projects Google has provided a >STEP 3 Assistant API and click Enable.
image file Python sample application that Check the audio While youre here, select Speech
demonstrates how to use the Next, double-click the Check API and click Enable.
Google account
Google Assistant SDK. To set it audio icon. If there is a problem,
up youll need to download the check the Voice HAT accessory >STEP 7
AIY Projects image file from boards connection to the speaker Set up OAuth consent
aiyprojects.withgoogle.com/voice/. and microphone. Click on Credentials in the API
Burn the image file to a microSD Manager sidebar (on the left)
card using a program like Etcher >STEP 4 and choose the OAuth consent
(etcher.io). This software copies Set up the cloud screen tab. Enter the name of the
the image file to the SD card (see Open the Chrome web browser and app, such as AIY Project, in the
Burn SD cards with Etcher, click on Google API Console in the Product name shown to users
magpi.cc/2fZkyJD). Bookmarks bar (or enter field. Click Save.
mv client_secret src/main.py
CREATE A
VOICE USER INTERFACE
FOR YOUR PROJECTS
Swap out traditional interfaces with a custom
voice control using your AIY Projects voice kit
y now, you have built a > STEP 1 trigger and which API to use for
Youll Need B device that embeds the
Google Assistant. Thats
View the source
The source code for the voice-
voice recognition. Dont worry: If
you mess it up, theres a backup
cool, but its just the beginning. recognizer app is part of the copy kept in home/pi/voice-
Google Cloud
With Google Cloud Speech API, image that youve just installed. recognizer-raspi/config.
Speech API
you can create an interactive, You can view the Python source
custom Voice User Interface (VUI) code in the /home/pi/voice- > STEP 3
for your project. recognizer/raspi/ directory. Check Cloud Speech API
This enables you to explore a You should already have the
new generation of devices that > STEP 2 credentials.json file in your
you can have a conversation View the config home directory. We installed
with, without the need for The application can be configured this in the previous tutorial. This
remote-control devices (such as by adjusting the properties found provides access to the Google
joysticks or smartphone apps). in /home/pi/.config/voice- Cloud Speech API. Double-click
Lets reconfigure the kit to use recognizer.ini. This file lets you the Check Cloud icon on the
the Google Cloud Speech API. configure the default activation desktop to test the Google Cloud
Speech API. If it says Everythings
set up to use the Google Cloud,
close the Terminal window and
skip ahead to Step 5.
TensorFlow is an open-source
software library for machine
learning. It was originally
developed by researchers and
engineers working on the Google
Brain Team within Googles
Machine Intelligence research
organisation. You can learn more
about TensorFlow, and how it can
be used to add intelligence to your
own projects, at tensorflow.org. To
see how you can use TensorFlow to
enable on-device audio detection,
visit the AIY Projects website at
aiyprojects.withgoogle.com/voice.
GETTING
HELP
With so many options to explore
with this first AIY Project from
Google, you should make good
use of the vibrant Raspberry Pi
community. The Raspberry Pi
community is on hand to help
HANDY COMMANDS
you with any issues, and make sudo systemctl start voice-recognizer
suggestions for your projects. Head
sudo systemctl stop voice-recognizer
to the Raspberry Pi forums and find
the new AIY Projects page. sudo systemctl enable voice-recognizer
magpi.cc/1NlH5rQ sudo systemctl disable voice-recognizer
systemctl status voice-recognizer
> STEP 4
Check credentials
If you do not have credentials.json > STEP 7 >STEP 9
in your home directory, open the Edit config Create voice commands
API Manager in Cloud Console and Its time to turn on the Cloud You can create new actions in
choose Create Credentials > Service Speech API. Editing the config src/action.py, and enable them
account key. Select your project file enables you to switch from in src/main.py. To control an LED
under Service Account or choose the Google Assistant SDK to the that youve connected to GPIO 4
New Service Account (give it a Cloud Speech API. Open a Terminal (the leftmost pin marked 0 under
name and set the Role to Project window and enter: Drivers on the Voice HAT Action),
> Owner). Choose JSON as the Key add action.py code to src/action.py:
Type and click Create. Rename the nano /home/pi/.config/voice-
file to credentials.json and place it recognizer.ini actor.add_keyword:
in your home directory. actor.add_keyword('light on', action.
Delete the # before this line: GpioWrite(4, True))
> STEP 5 actor.add_keyword('light off', action.
Check Cloud Speech API cloud-speech = true GpioWrite(4, False))
You need to have the Cloud
Speech API enabled to use the Press CTRL+O, press RETURN, then Then add the following main.py
service. Open the API Manager CTRL+X to save and exit. Now enter: code to src/main.py under other
in Cloud Console and choose calls to actor.add_keyword:
Library. Click on Speech API and sudo reboot
click Enable (if you see Disable, import RPi.GPIO as GPIO
its already enabled and you can
move on). > STEP 8 class GpioWrite(object):
Start it up
> STEP 6 Open Start dev terminal and enter: '''Write the given value to the given GPIO.'''
Check billing
You need to have billing set up src/main.py def __init__(self, gpio, value):
with Google to use the Cloud GPIO.setmode(GPIO.BCM)
Speech API. Open Cloud Console. You can now issue a limited GPIO.setup(gpio, GPIO.OUT)
If you dont have a billing account, number of commands: self.gpio = gpio
click New billing account and self.value = value
go through the setup. Check your What are the three laws of robotics?
project is selected in the Projects Hello def run(self):
menu at the top. Click Products & What time is it? GPIO.output(self.gpio, self.value)
Services > Billing. To connect or Volume up
change the billing account, click Volume down You can discover more information
the three-dot button, then select on using the GPIO pins at
Change billing account. Press CTRL+C to quit the interaction. aiyprojects.withgoogle.com/voice.
MAGIC MIRROR
y now you will have set up
B your AIY Projects voice kit,
and discovered how to add
Natural Human Interaction to your Add a Voice User Interface to a mirror
projects. Wow! display for the ultimate creative assistant
The question is: what are you
going to build? What projects will magpi.cc/2nwpxBA
be amazing with voice control?
The good news is youre not Michael Teeuws Magic Mirror came first in our Top
alone. Thousands of members of 50 list of greatest projects.
the Raspberry Pi community will be Perhaps the only thing that could make this
building Natural Human Interaction project more awesome would be voice control.
projects. And we want you to share The good news is that Magic Mirror has a
them with us, and each other. powerful community behind it. And theyve already
To get the ball rolling, Google been busy working with voice interaction.
has been running a Hackster MMM-Hello-Mirror, by a user known as
community for Google Beta Matzefication, is a voice control system for the
Testers. These lucky makers were Magic Mirror based on Google Speech Recognizer
sworn to secrecy and received an (magpi.cc/2nwyGtO). The AIY Projects kit will
AIY Projects voice kit early. make a Voice User Interface a real possibility.
We asked members of the Your reflection has never looked smarter.
Hackster group and members
of the Raspberry Pi community Adding voice control to the Magic Mirror
working in voice control what they makes it more naturally interactive
thought the best ideas for projects
KIT-CAT CLOCK
were. Here are their suggestions
for projects theyd like to build. magpi.cc/2nZxQIX
Now its your turn. Create
something amazing and share it Kit-Cat Clocks are big in the USA, to where the voice is coming
with the Raspberry Pi community where theyre an art deco classic from, says maker Paul Langdon.
on Hackster (magpi.cc/2oPx6nb). dating back to 1932. It will detect the voice position
I want to try to tie servos of the speaker using the two- The Kit-Cat Clock
is an art deco
to eyes in one of those Kit-Cat microphone array in the Voice classic being
clocks, so it will direct its eyes HAT microphone board. given AI smarts
hackster.io/google/products/aiy
ROBOTICS
magpi.cc/2oLP8dG
WAND DUEL
spell has hit them
magpi.cc/2omrDrh
NABAZTAG IOT
magpi.cc/2nZMqAh
FREE
PI ZERO W
Subscribe in print for 12
months today and receive:
A free Pi Zero W (the latest model)
Free Pi Zero W case with three covers
Free Camera Module connector
Free USB and HDMI converter cables
....................................................................................................................................
$69 (USA) *If giving The MagPi as a gift, please complete both your own details (above) and the recipients (below).
Address ........................................................................................................................
80 (EU) Name and full postal address of your bank or building society:
$129 (USA)
Address ...........................................................................................................................
........................................................................................................................................
n n n n n n Account number n n n n n n n n
Branch sort code
Get three issues: Please pay Select Publisher Services Ltd Direct Debits from the account detailed in this instruction
subject to the safeguards assured by the Direct Debit Guarantee. I understand that this instruction
may remain with Select Publisher Services Ltd and, if so, details will be passed electronically to my
bank/building society.
$37.50 (US) (quarterly) SUBSCRIPTION PRICING WHEN PAYING BY CHEQUE OR CREDIT/DEBIT CARD
POLAPI-ZERO
Quick
The tiny Zero-powered thermal-printing camera that recreates
the joy of using a Polaroid
Facts he PolaPi-Zero is the cases to retrofit vintage classics,
Quick
WINDOWS 98
WATCH
Facts
> Windows 98
is emulated
usingQEMU
> The Pi A+ is
overclocked
at 800MHz
Wind back the clock with this chunky wristwatch
> Michael wants
to make a Pi 3
f Microsoft had designed While he admits the ancient OS Once hed accrued the required
I
version
a smartwatch back in used to drive him mad back in the components, including a
> Hes also
working on the late Nineties, it day, he has an odd nostalgia for it. Raspberry Pi Model A+, it only
a Robo Skull might have looked something Many years later you look back took a few hours to put together.
like this! Michael Darby, aka on it and want to relive it. I think Theres a tutorial on his site:
314reactor, has built a chunky, time has a funny way of keeping magpi.cc/2nX9ss4. The Pi A+
Pi-powered wristwatch running more of the good than the bad sits in the bottom of an Adafruit
the Windows98 operating system. within memory. Pi Protector case with a PiTFT
2.4inch HAT touchscreen on top.
Five tactile buttons have been
added to the latter, although only
one is currently used to shut
down the system cleanly. The
watch is powered by a slimline
LiPo battery connected via a
PowerBoost 500 with switch, while
Velcro feet secure the watch body
to a wrist strap.
Emulation is employed to get
Windows 98 working on the
watch, using the QEMU hypervisor
running in Raspbian. Its relatively
simple, says Michael. Once
youve set up a QEMU environment
on another PC and installed
Windows 98 to it, its a case of
dragging the virtual hard drive
BUILD YOUR
OWN TIMEPIECE
>STEP-01
Add a touchscreen
Remember this? The classic flying windows screensaver
Equipped with a heatsink and spacers for mounting
the PiTFT 2.4-inch touchscreen, a Pi A+ with optional
overclocking runs the QEMU hypervisor in Raspbian.
file over to the Pi and running virtual graphics card on QEMU on
it there. the Pi that will allow Windows 98
When the Windows 98 system to run in 8-bit colour.
eventually boots, it really does While Michael has considered
work, although Michael admits using a Pi Zero for the watch,
its too slow to be usable and he has a different plan for an
touchscreen navigation is tricky. upgraded version: It could be
I need to look into calibration, made marginally slimmer with a
The Raspberry Pi, housed inside The Pipsta printer is used to print
the box, hosts an Apache web out the order. The kitchen staff tear
server to provide web access off the order and cook the food
Quick
Facts
> Waiting staff
use an Amazon
Fire HD to
takeorders
I
restaurant help at my fathers and paper. Ehsans answer was to In the kitchen is a Raspberry Pi
restaurant on Friday and code and hack his way out. board hosting the Apache website.
> The online
system took 27 Saturday evenings, says The result is PiOrder, a fully A program written in PHP and HTML
orders in its first Ehsan Rahman. automated EPOS (electronic point is used to provide the webpages.
two weeks That establishment is the of sale) system. PiOrder comprises Apache is used to host the
> The EPOS Khyber Tandoori, an Indian Raspberry Pis, several Pi Camera webpage used by the waiting staff
system has
restaurant based in Kingswood, Modules, and a Pipsta thermal to take orders. It also offers online
been in use for
eight months Surrey (magpi.cc/2miqcqv). printer (magpi.cc/2miwYMQ). ordering for takeaway customers.
Thanks to the Raspberry The waiting staff use large Kindle Chefs are alerted to new orders
> Customers get
live updates on Pi, it has become a highly Fire tablets to take orders. Two via a speaker attached to the
waiting times automated environment. smaller tablets are kept near the Raspberry Pi.
Two years ago, Ehsan became phones so staff can take orders The Pipsta printer also prints
frustrated at writing orders on pen over the telephone. a hard copy of the order, and a
BUILD A MENU
Raspberry Pis with Camera Modules
provide CCTV for the restaurant, which
can be viewed using the system
ORDERING SYSTEM
>STEP-01
Tablet interface
Waiting staff place orders on a webpage, viewed on
Amazon Kindle Fire tablets. A Raspberry Pi running
Apache serves up the webpage over a WiFi network.
Camera Module takes a photograph the system has been resilient.
of the order to ensure it has Theres an automated test every
printed out correctly (and to act as day at 5:30 for a single popadom,
a backup). More Camera Modules so the chefs and waiting staff
are used by managers to keep an know the system is up and
eye on how busy the kitchen is. working, explains Ehsan.
As well as making Ehsans There are even spare Raspberry
waiting duties easier, PiOrder Pi boards in case of failure. But
saves on costs.Just Eat charges Ive not needed them yet after two
approximately 699 + VAT just for years, Ehsan reveals.
signing up, reveals Ehsan. Then As a result of all this tinkering,
it charges around 11% per order, an the restaurant is incredibly high-
amount that rapidly racks up. tech. As well as the ordering
More importantly, we have system, they are using Raspberry >STEP-02
control over our software and order Pi Model B boards as smart CCTV Kitchen printer
flow, adds Ehsan. cameras. Ehsan has even set up a The order is printed out in the kitchen using a
Raspberry Pi connected to a Pipsta printer. A
The chefs would not go back Camera Module scans the order as a backup
and sends a push alert to the manager.
to reading handwritten orders
ever again
The system is a mixture of PHP, Raspberry Pi 3 to act as a remote
JavaScript, and jQuery, with Bash monitoring system, so my father
scripting used to communicate can see how busy the restaurant is
between the Raspberry Pis. The from home.
great thing about Unix files is just Ehsan isnt finished. He plans
how reliable they are, says Ehsan. to enable customers to order
The other waiting staff and food from their table using a
Ehsans father have completely smartphone or tablet.
stopped using pen and paper. The chefs and my father were
There were some teething not convinced at first, but slowly >STEP-03
troubles: the original WiFi they saw the benefit. The waiting Remote management
system occasionally dropped staff love the ability to update The manager can keep an eye on how many orders
the connection, and the Pipsta orders with just a few taps. And the have been placed. The system also enables them to
struggled to print large orders. chefs would not go back to reading view the kitchen-monitoring and security cameras.
But after sorting those issues, handwritten orders ever again.
TOUGH PI-ANO Hammer the keys on this incredibly robust musical instrument
Quick
Facts B
rian McEvoy wanted
to make a toughened
While Brian contemplated
the Tough Pi-anos design for
perfect piano replica with easily
replaceable octaves, he started
electronic keyboard for his two years, it only took him a crafting wooden piano keys. After
> The Tough
Pi-ano has 48 cousin, who has Downs syndrome: couple of weeks to build, putting experiencing too many problems,
keys in total He loves music therapy but he his woodworking skills to however, these were replaced
> It will be used breaks pianos on a weekly basis. good use. Keeping everything with plastic arcade buttons. In
for music Brians aunt asked him to help simple was integral to making the end, arcade buttons were the
therapy with therapy devices for his cousin a solid structure. Since the best solution since they were easy
> The keys are and other such kids. The idea was original design concept was for a to source and replace.
plastic arcade exciting because there is a whole
buttons
different mindset when designing
> A Pi Zero
for someone who will not handle
controls
each octave things with gentle hands. These
projects have to absorb damage
> The USB sound
cards cost without hurting anyone.
$0.99 each The result is the Tough Pi-ano.
It has no exposed metal, and the
keyboard area is covered with thick
plastic. For its keys it uses arcade
buttons, which are inexpensive and
easy to replace. Each of four octaves
is powered by a Pi Zero, with a USB
Twelve arcade buttons are wired
sound card outputting the audio to
to each Pi Zero, via a resistor board
an external amplifier and speakers.
The 1K resistor
boards were
added to reduce
issues with
electrical noise
>STEP-03
Wiring it up
For each octave, the arcade buttons are wired
to a resistor board, which is connected to a Pi Zero.
A USB sound card is used to output the audio.
I
f youve never played Minecraft and you a Terminal (Menu > Accessories > Terminal) and
want to be a master block builder, well help typing these commands, pressing ENTER after each:
you get stuck into the game, build a house,
and get started with the API. sudo apt-get update
Minecraft is a game which has achieved sudo apt-get install minecraft-pi
monumental success; more than 120 million copies
have been sold across all its versions. Not bad Playing the game
for a game which doesnt really have a point! If it Click Menu > Games > Minecraft: Pi Edition to run
does have a point, as an indie sandbox game, its the game. Minecraft: Pi Edition offers one playing
to make stuff. And people have really made stuff, mode, Classic, which is all about exploring and
from fully functioning computers to scale models building. Click Start Game, then click Create New (or
of the Starship Enterprise. choose an existing world) to enter a world.
The best things about Minecraft: Pi Edition are
that its free, and that it comes with an API. You > The mouse changes where you look
dont get this with any other version of Minecraft. > Holding the left button destroys blocks
Use the API to write Minecraft is installed by default on Raspbian. If > Right button places blocks
a Hello Minecraft
World program you have an older version, you can get it by opening > W
, S, A, D move you forward, backward, left,
and right
> 1, 2, 3, 4, 5, 6, 7, 8 change what you are holding
> E opens the inventory
> ESC takes you back and to the Menu
> S
PACE is jump. Double-tapping it makes you fly
or stop flying
The API
The API (application programming interface) allows
you to write programs which control, alter and
interact with the Minecraft world, unlocking a whole
load of Minecraft hacking. How about creating
massive houses at the click of a button; writing a game
which uses a LED and buzzer to help you find a block;
or recreating Nintendos Splatoon in Minecraft?
44 May
xxxx 2017
2016 raspberrypi.org/magpi
MINECRAFT: PI EDITION Tutorial
The API works by changing the world as the
gameis being played, allowing you to:
raspberrypi.org/magpi xxxxx
May 2016
2017 45
Tutorial STEP BY STEP
PHIL KING
When not writing and sub-editing
on The MagPi, Phil loves to work on
Pi projects. This article is based on
an official resource by Marc Scott.
@philking68 @Coding2Learn
The light-dependent
resistor (LDR) has
lower resistance
when the laser is
shining onto it
A simple piezo
buzzer is made to
beep whenever the
laser tripwire beam
is broken
MAKE A
LASER TRIPWIRE Learn how to use an LDR to detect a laser pointer beam
Youll >STEP-01
Need T
he Raspberry Pi can easily detect a digital
input via its GPIO pins: any input thats Connect the LDR
approximately below 1.8V is considered off, An LDR (also known as a photocell) is a special type of
> GPIO Zero
and anything above 1.8V is considered on. An analogue electrical resistor whose resistance is very high when
> 1 solderless input can have a range of voltages from 0V up to 3.3V, its dark, but reduced when light is shining on it. With
breadboard
however, and the Raspberry Pi is unable to detect the Raspberry Pi turned off, place your LDR into the
> 1 light- exactly what that voltage is. One way of getting around breadboard, then add the capacitor. Its essential to
dependent
resistor (LDR) this is by using a capacitor, and timing how long it get the correct polarity for the latter component: its
takes to charge up above 1.8V. By placing a capacitor longer (positive) leg should be in the same breadboard
> 1 1F capacitor
in series with a light-dependent resistor (LDR), the column as one leg of the LDR. Now connect this
> 1 laser pointer
capacitor will charge at different speeds depending on column (with a leg of both components) to GPIO 4.
> 5 male-to- whether it is light or dark. We can use this to create a Connect the other leg of the LDR to a 3V3 pin, and the
female jumper
laser tripwire! other leg of the capacitor to a GND pin. Your circuit
wires
should now resemble the diagram above.
> 5 female-to-
female jumper
wires (optional) >STEP-02
> 1 drinking straw
Test the LDR
On the Pi, open IDLE from the Main Menu: Menu
> 1 plastic box
> Programming > Python 3 (IDLE). Create a new
file by clicking File > New File, enter the code from
ch8listing1.py, then save it. At the start, we import
the LightSensor class from GPIO Zero. We then
assign the variable ldr to the LDR input on the GPIO4
pin. Finally, we use a never-ending while True:
loop to continually display the current value of the
light sensed by the LDR, which ranges from 0 to 1. Try
Above Place your laser tripwire across a doorway; running the code and then shining your laser pointer
when someone breaks the beam, the alarm will sound on it to vary the light level.
ch8listing1.py Language
>PYTHON 3
from gpiozero import LightSensor
DOWNLOAD:
magpi.cc/2bhxwxC
ldr = LightSensor(4)
while True:
print(ldr.value)
ch8listing2.py
from gpiozero import Buzzer
Above Shining the laser onto the LDR in a darkened room will
dramatically affect the measured lightlevel buzzer = Buzzer(17)
buzzer.beep()
>STEP-03
ch8listing3.py
Enclose the LDR
Unless youre working in a darkened room, youll
probably notice little difference between the measured
light level when the laser pointer is directed onto the from gpiozero import LightSensor, Buzzer
LDR and when its not. This can be fixed by reducing the from time import sleep
amount of light that the LDR receives from other light
sources in the room, which will be essential for our laser ldr = LightSensor(4)
tripwire device to work effectively. Well achieve this buzzer = Buzzer(17)
by cutting off a short section between 2cm and 5cm
of an opaque drinking straw, and inserting the head of while True:
the LDR into one end. Now try the test code again and sleep(0.1)
see how the measured light level changes when you if ldr.value < 0.5:
shine the laser pointer into the other end of the straw. buzzer.beep(0.5, 0.5, 8)
You should notice a larger difference in values. sleep(8)
else:
>STEP-04 buzzer.off()
Wire up the buzzer
To create an audible alarm for our laser tripwire, well
add a piezo buzzer to the circuit. Again, the polarity respective devices on GPIO pins 4 and 17. We then use a
has to be correct: connect the column of the buzzers while True: loop to continually check the light level on
longer leg to GPIO 17, and the shorter leg to a GND the LDR; if it falls below 0.5, we make the buzzer beep.
pin. Lets test whether it is working. In IDLE, create You can change this number to adjust the sensitivity;
a new file, enter the code from ch8listing2.py, and a higher value will make it more sensitive. Try running
save it. At the top, we import the Buzzer class from the code. If you break the laser beam, the buzzer should
GPIO Zero. Next, we assign the buzzer variable to beep for eight seconds. You can adjust this by altering
thebuzzer output on GPIO 17. Finally, we use the buzzer.beep parameters and sleep time.
buzzer.beep to make the buzzer turn on and off
repeatedly at the default length of one second. To stop >STEP-06
it, close the Python shell window while it is off. Package it up
Once everything is working well, you can enclose your
>STEP-05 Raspberry Pi and breadboard in a plastic box (such as
Test the tripwire an old ice cream tub), with the drinking straw poking
Well now put it all together so that laser pointer shines through a hole in the side. If you prefer, you can remove
at the LDR through the straw, and whenever the beam the breadboard and instead connect the circuit up
is broken, the buzzer sounds the alarm. In IDLE, create directly by poking the legs of the components into
a new file, enter the code from ch8listing 3.py, and save female-to-female jumper wires, with the long capacitor
it. At the start, we import the Buzzer andLightSensor leg and an LDR leg together in one wire end, connected
classes from GPIO Zero. We also import the sleep to the relevant pins. Place the tub near a doorway, and
function from time; well need this to slow the script place the laser pointer on the other side, with its beam
down a little to give the capacitor time to charge. As shining into the straw. Run your code and try walking
before, we assign variables for the buzzer and LDR to the through the doorway: the alarm should go off!
5 for a WiFi
smart button?
Yeah, we'll
have seven
Buy different
buttons so you
can identify
which is
which later
You'll need a
low-power,
always-on
computer
with wireless
that's the
definition of
a Pi Zero W
HACK AN AMAZON
DASH BUTTON
Rescue Amazons 5 smart button from the monotony
Youll of ordering loo roll, and use it to do anything you like.
Need he Internet of Things has two flaws: the name, The catch with these Dash Buttons is that you can
> Dash Buttons
magpi.cc/
T and the need to get your phone out of your
pocket, unlock it, swipe to the appropriate app,
only order certain products from certain firms. This
matters, as Amazon will discount the price of a Dash
2mUKaqT and wait for the app to load before you can do perform Button from the first purchase made with it. Make
> A smart thing a basic task, such as turning on a light. Buttons are sure you buy a button that lets you order something
> Some patience handy for a reason: theyre exactly where they need to youd buy anyway; that way, your Button is free.
be, and you can just press them. So if were going to Once the Dash Button arrives, use the Amazon
have smart things, we need smart buttons. app(Android and iOS only) to set it up and order
Typically these cost 40, but Amazons Dash Button thatfirst item. There are decent instructions at
costs a fiver. With a little tinkering and subversion, it amzn.to/2mNhAqt. Once youve ordered your
can power anything from smart bulbs to alerts on your product, go back into the Dash Devices and disable
familys smartphones to logging your billable hours. it. Then bear with us enable the Button again, but
Head over to Amazon to buy some Dash Buttons this time dont select a product. Instead, just quit the
(youll need to be a Prime subscriber) and youll be app (dont quit the process, close the whole app). This
baffled by the options: you can emergency-order raw will have copied your WiFi credentials to the button
virgin coconut oil (only 16.62 for 1.2kg), 20-sheet without re-establishing the link to Amazon. It is now
binding machines, or Nerf Darts with a Dash Button. an unshackled smart button ready to be repurposed.
required. Once in, follow the usual update procedure: from scapy.all import * DOWNLOAD:
magpi.cc/
sudo apt-get update && apt-get -y dist-
DashButtonCode
upgrade. As your Dash Button has already accessed def arp_detect(pkt):
your router, its MAC address should be listed in your if pkt[ARP].op == 1: #network request
routers logs or DHCP tables. The location differs if pkt[ARP].hwsrc == 'xx:xx:xx:xx:xx:xx'
according to manufacturer. The button will show up return "Button detected!"
as Internet Device or similar.
Now were ready to code. The idea behind this hack print sniff(prn=arp_display, filter="arp", store=0)
is to use the Pi as an interpreter. It constantly monitors
your network for the appearance of the Dash Button, EXAMPLE CODE
lights.py
then uses that appearance as a trigger for some other
action. Were going to use Python to intercept those
button presses, but this requires an extra module:
from scapy.all import *
sudo apt-get install -y pip from lifxlan import *
sudo pip install scapy
#Buttons
Pip is a Python-specific installer, and Scapy is the andrex = 'xx:xx:xx:xx:xx:xx'
module well use to sniff for the Dash Buttons MAC
address (pkt[ARP].hwsrc) appearing on the network. #Lights
As the Dash Button only powers up when you press bedroom = Light('xx:xx:xx:xx:xx:xx', '192.168.1.xxx')
its button, its MAC address will only appear after second_arp = False
a button press.
def arp_detect(pkt):
Button whole if pkt[ARP].op == 1: #network request
Now that we can intercept a button press, lets do if pkt[ARP].hwsrc == andrex:
something with it. Weve got a LIFX smart light, so current_state = bedroom.get_power()
we need the LifxLAN Python module: pip install if current_state == 0:
lifxlan. Open the trigger script and add the LifxLAN bedroom.set_power("on")
modules functions to the script with the line from else:
lifxlan import *. bedroom.set_power("off")
Now we need to find the MAC and IP address of the
smart bulb from our router, and to name the bulb in the if second_arp == False:
Python script using the Light object of the LifxLAN sniff(prn=arp_detect, filter="arp", store=0)
module: bedroom = Light('xx:xx:xx:xx:xx:xx', second_arp = True
'192.168.1.xxx'). We need to find the current power else:
level of the bulb in order to toggle it, which we do with second_arp = False
the current_state = bedroom.get_power() variable
and the bedroom.set_power() commands of our if, Shoot for the (Button) Moon
else statements. Annoyingly, the Dash Button sends So, what else could you press your Dash Button to do?
two ARP packets every time it is pressed, so we need to Hook your Python script into an online spreadsheet and
ignore the second ARP packet by using the second_arp you can log the time between button presses useful
Boolean variable. for a musician logging practice sessions, or a freelance
Once done, save your script, make it executable accountant logging billable hours. Tired of shouting
(chmod +x lights.py) and add it as a cronjob up the stairs for your kids to come down for dinner?
(crontab -e) to make sure it runs every time your Pi You could go the JavaScript route to connect an SMS
boots: @reboot sudo python /home/pi/lights.py. messenger: press your Dash Button and theyll receive
Now weve got a smart button that we can stick to any a text message (magpi.cc/2mt3zmo). Or use a service
wall, table, desk or bookcase to turn on our smart lights. like Pushover (pushover.net) to make a smart doorbell,
And if a LIFX bulb sounds steep at 60 each, it would sending alerts to your smartphone or watch.
cost a lot more to install a new dumb light switch once Aaron Bell has detailed how to make a hacked Dash
youve factored in gouging cable runs in the wall, hiring Button into an IFTTT trigger (magpi.cc/2msVvC5).
plasterers to make good and repainting a whole room Wed also thank Ted Benson for being one of the first
or hallway. People have made Dash Buttons work with Dash hackers (magpi.cc/2msUzhh), although updated
Philips Hue and Samsung SmartThings devices, too. Amazon firmware is incompatible with his code.
ADD A
magpi.cc/2nCOVrA
SAFE OFF-SWITCH
TO POWER DOWN
YOUR RASPBERRY PI
Add a switch to your Raspberry Pi to safely shut it down without pulling the power
o keep prices down, the Raspberry Pi is missing Raspberry Pis GPIO pins. This article focuses on doing
Youll T something that most electronic devices come something useful with those switches and LEDs.
$ nano ~pi/shutdown-press-simple.py
$ sudo su
# echo "~pi/shutdown-press-simple.py &" >> /
etc/rc.local
DOWNLOAD:
magpi.cc/2nD29F7
A safe off-switch
Preventing accidental button pushes us to do much more with a button press, such as
One major drawback of the previous code is that any turning an LED on and off or setting it blinking, by
accidental push of the button will shut your Raspberry attaching this to the buttons when_pressed event.
Pi down. It would be better if you needed to hold the We need to ensure that the LED is turned off if the
button down for several seconds before everything button is not held down for the entire length of
powers down. Check out shutdown-with-hold.py. time.This can be accomplished by attaching to the
Instead of hard-coding the GPIO number 21 and when_released event.
the hold time, this code does a few things differently. As before, the important work has been moved into
First, it defines variables to hold these numbers at the functions named when_pressed(), when_released(),
top of the code. For a program this small, declaring and the same shutdown() function we used before.
the values at the top is not necessary, but it is good These are assigned to their corresponding button events.
practice to declare any configurable variables near
the top of the code. When making changes later, you Going further
wont have to hunt through the code to find these Can you think of other ways to provide feedback while
variables. Secondly, it allows the GPIO number and pressing the hold button, or alternative ways to signal
hold time to be overridden on the command line, so that it is time to turn off? How about using a buzzer,
that you can change them later without modifying or popping up a message on a screen? You could also
the program. use the on-board activity LEDs, making them blink
We then define a function named shutdown() to faster and faster as it gets closer to shutdown time.
execute the poweroff system command. The button Or even play an audio clip, such as Im melting. The
is also assigned to a variable for use in the next GitHub repository contains additional examples such
statement. This time, we are also specifying that the as these. How about watching the low battery signal
button must be held down, and when the hold time from a battery pack as a signal to shut down? Let your
(6 seconds) has passed, any function assigned to the imagination run wild.
when_held event will be executed. We then assign Now, which of your projects are you going to add
that event to the shutdown() function we defined shutdown and reset buttons to?
earlier. The call to pause() is needed to cause the
Left Example of
script to wait for the button presses. both an off and
If you look at the examples that come with the reset switch on
a Raspberry Pi
GPIOZero source, youll find a script very similar to Zero. Right-angle
this one (magpi.cc/2lANxVA). headers are used
for a compact
connection.
Feedback while pressing the button The switches
are mounted
We can do better. The major thing lacking with the directly onto an
above code is any sort of feedback. It is hard to tell Adafruit case
that anything is really happening while you have the
button pressed down. Fortunately, GPIO Zero allows
MIKES PI BAKERY
Veteran magazine author from the old
days and writer of the Body Build series.
Co-author of Raspberry Pi for Dummies,
Raspberry Pi Projects, and Raspberry Pi
Projects for Dummies.
DIY
magpi.cc/259aT3X
CUT-OUT
THEATRE
Create your own cut-out theatre controlled from your mobile device
Youll
Need T
he idea for this project is to replicate a cut-out for anything. TouchOSC is an excellent application that
theatre using the Raspberry Pi to show your turns your mobile device into an OSC command-and-
production. As the Pis screen will display control station. It is hard to convey how satisfying it is
> Apple or Android the finished performance, that leaves no space on to control the performance from a tablet!
mobile device
the screen for your controls. You might think that
> TouchOSC app
you could use a keyboard, but that would not provide TouchOSC
> Raspberry Pi 3 proportional control and would be difficult to drive. While it is not a free app, at less that 5/$6 it is not
The alternative, of using external hardware, could very expensive. There are two parts to it: the app
get expensive. A cheap solution, if you already have that runs on your mobile device, and an editor for
a smartphone or tablet, is to use that to control the designing the custom control screens on your laptop.
theatre. All you need is an interface you can customise, Go to the TouchOSC webpage at magpi.cc/2nSa69S
and a way to send and receive messages. Enter OSC. to download the app and the editor. There are plenty
OSC stands for Open Sound Control, and is an open, of controls on offer, including faders, pads, rotary
extendable method of exchanging messages. While controls, and push buttons. Follow the instructions in
it was originally designed for sound applications like Creating the custom performance to create a simple
mixers and effects units, its flexible enough to be used custom interface for this project.
DOWNLOAD:
magpi.cc/1NqJjmV
Implementation
We did hope to implement the OSC messages
in Python, as there are a few libraries to do this.
Unfortunately this proved impossible, because the
ones we tried had poor documentation that was out
of date, and either fell over when trying to cope with
three faders, or required complex multithreading
programming with no practical examples available
online. Instead, we turned to Processing, which has
a simple and reliable interface for incoming OSC
messages. We used Processing in the Ribbons project
Fig 1:
HOST: Set this to the address of the Raspberry Pi.
Hover the pointer over the WiFi icon to find it.
The theatre
The theatre is simply a collection of graphics for the
LOCAL IP ADDRESS: The address to put in the software is:
String iPadIP = "192.168.1.69"; backdrops, props, and actors. These ware taken mainly
from the story of Little Red Riding Hood in the Boston
Sunday Globe of 1895. Curiously, this did not include an
in The MagPi #49, but in case you didnt install it then, axe-carrying woodsman for the final scene, so we had
it can be installed from a command line by typing: to take one from another story and eliminate his wife by
judicious use of the clone tool in our photo processing
curl https://processing.org/download/ package! Fig 2 shows the results of this process.
install-arm.sh | sudo sh There are two actors in this story, and each one has
its own slider control. Each actor also has a number of
After reboot, itll then appear in the Raspbian menu different costumes, with Riding Hood, in an amazing
under Programming. As with all network programs, show of virtuosity, also playing the part of the
you need to configure everything for your setup. woodsman, and Grandmas head. This saves on sliders
In this case you only need two IP addresses. In the and makes the control panel cleaner. There are two
Processing code you need the IP address of the tablet, heads for Grandma: one for talking to the Wolf, and
and on the tablet you need to set the IP address of the the other for when the Wolf is pretending to be her.
Raspberry Pi. This is shown in Fig 1. As in a network, The movement controlled by the sliders is restricted
the IP address can change from day to day, and it can to a simple nod, which is operated by tapping on
be tedious always having to change the configuration opposite ends of the slider.
before anything will work. You can get round this by The elements are stacked up in a fixed order from
accessing your router and telling it to always give a back to front, defining what will show in front of
fixed IP address to both your Pi and your tablet. what. A more complex setup could control this order,
at least for the actors and props, but were keeping
things simple. The main task in adapting the graphics
is to isolate the elements against a transparent
background. You need to use a PNG type file and not
a JPEG to define the transparent part. The image
files must be placed inside the data subfolder of your
Processing sketchs folder, in the sketchbook folder.
The software
The structure of the Cutout_Theater.pde sketch is
quite simple. The Draw function runs repeatedly, and
if a change has been signalled by the DisplayUpdate
variable, it draws the new window. This prevents a lot
A B
>STEP-03
Add the push buttons
Right-click and select a push button. Resize it to 45 by
45, place it at 60, 148, and make it yellow. Click on the
copy and paste icons and set the x position to be 210.
Repeat this for x equals 360. Repeat this, move it to
60, 380 and make it red. Again, copy this and make
three more buttons at x equals 210, 360, and 510. Paste
again, change it to orange and place at 726, 109. Make
four more copies at the same x position, but with y
positions of 189, 269, 349, and 429. Check the controls
have the addresses shown in the picture. You will need
to click on each control in turn to see this information.
The Setup function defines the ports used for the OSC
messages and loads in all the individual images. By /1/push1 /1/push2 /1/push3 /1/push9
Taking it further
You can set up another play with your own characters,
and once you see how it works, change the controller
to cope with more variables. However, be careful not
to make the control too cluttered. You could use some
controls to trigger sound effects or animations, like
the curtain automatically rising, or a prop falling over.
You can replace the slider controls for the actors with a
small XY pad for flying objects, or to put a bit of bounce
into a walk. You could replace the single graphic of
an actor with a sequence to show things like walking.
Finally, you can add special effects, like lightning
or a character dissolving in a teleporter.
MULTIPROCESSING
WITH PYTHON Power up your Pi from Python by running loops in parallel
using the multiprocessing module (fractals are included)
odern computers are good at multitasking. Embarrassingly parallel fractals
M Quad-core devices like the Pi 2 and 3 can share
work between their cores, and your programs
The program mandelbrot.py plots an image of the
Mandelbrot set, which has an infinitely complex shape
can run up to four times faster if you know how to code based on a surprisingly simple mathematical rule. At
them in parallel. However, this is not always easy. its core, it performs a simple but potentially expensive
Programming languages like Python are sequential, calculation for every pixel. These calculations are all
executing instructions one at a time. What if you independent, so they can be run in any order or in
want to use all four cores? Luckily, there is help from parallel (this is called an embarrassingly parallel
the multiprocessing module, which allows parts of problem). Take a look at the program. The work is done
your program to run in parallel. To demonstrate how by a pair of nested for loops (labelled main loops)
it works, we will adapt a program so that its central which call the function mandelbrot(), defined a few
part runs in parallel, creating some beautiful fractal lines earlier, for each pixel in the image. This is the
images in the process. First, you may need to install time-consuming part. As with all basic loops in Python,
the matplotlib module, using: the calculations are performed sequentially, or one at
a time. Try running the program from the command
sudo apt-get update line (unfortunately, multi-process programs cannot be
sudo apt-get install python-matplotlib launched from IDLE):
Right An image
of the entire python mandelbrot.py
Mandelbrot set,
as produced
by the program It should generate a Mandelbrot set image like the
mandelbrot.py one on the left. You can resize it and use the controls
on the bottom left of the window to zoom and examine
it in detail. This program uses only one processing
core and runs in about 40 seconds on a Pi 3. We would
like to run the main loops in parallel. This is relatively
simple, thanks to multiprocessing.
Introducing multiprocessing
Before we can parallelise the loops, we need to make
a small change. Replace the main loops with:
AN INTRODUCTION TO C
sure you are
PART 11
using the right
symbol. A . is
used if your
AND VARIABLES
your variable is
a pointer to an
instance of the
structure. Using
the wrong one
will usually give
an error from
the compiler.
Global variables, type definitions, enumerations, and structures
n this instalment, we are going to look This looks easier than passing values about all
NEW TYPES
INSIDE I at some of the more advanced uses
for variables and types, including the
over the place, so why not just do this all the time?
The answer is memory. Local variables in functions
STRUCTURES
differencebetween local and global variables, are temporarily allocated space while the function is
A structure can defining new types, and the use of enumerations running, and the memory is freed up as soon as the
contain other
new types and data structures. function ends. But global variables are allocated space
(either plain In the examples in this series, we have always when the program starts, and that space isnt freed
types, enums put variables inside function definitions. These are until the program ends if you allocate enough of
or indeed other
structures). therefore local variables; that is, variables which are them, you can run out of memory on some systems.
Just make sure local to those functions and have no meaning outside
the typedefs
for them occur
the function. Type definitions
before the In a previous instalment, we looked at the range of
typedef of Global variables variable types in C: char, int, float, and so on. C
the structure C also allows global variables; that is, variables which also allows you to define your own types, with what
in which
you want to are defined outside all functions. These have global is known as a typedef. Heres an example:
include them. scope, which means that they can be read and written
from any function within the program. Lets look at typedef unsigned char BYTE;
an example:
This defines a new type called BYTE, which
NUMBERED
#include <stdio.h> is another name for an unsigned char. (It is
ENUMS
conventional to give user-defined types names in
When you int result; capital letters, to distinguish them from variables.)
create an When we say this defines a new type, what it really
enum, the void add (int a, int b) does is create an alias to an existing type. This seems
compiler
assigns a { a bit pointless, but it can help in two ways. First, it can
numeric value result = a + b; make it more obvious what your code is doing if you
to each of the } make the type names specific to your programs data.
possible values.
By default, Second, by defining specific types, you can get the
it numbers void main (void) compiler to warn you if you use the wrong type for a
the first in the { function argument or variable.
list as 0 and
counts up from add (3, 4); There are a couple of cases where typedefs are
there. You can printf ("The result is %d\n", result); particularly useful these are enumerated types
override this } and data structures.
by putting an
equals sign
after each In this example, the variable result is a global. It Enumerated types
named value can be read or written within both the add function Sometimes we want a variable which can only take
and setting it
to the value and the main function. We write a value to it in add, one of a few possible values. C provides a type called
you want. and read it back in main, so we dont need to return enum for this purpose, which defines an integer with
a value from add. a fixed set of named values. Heres an example:
typedef enum {
false, The typedef keyword
allows you to create your
true own new data types
} BOOLEAN;
b_var = false;
if (b_var == true)
{
A data structure
printf ("TRUE\n"); enables you to
} combine multiple
pieces of data in
else the same type
{
printf ("FALSE\n");
}
}
Structures
The other useful thing you can do with typedef is
to use it to define a data structure, a collection of We use a typedef to create a data type called
individual variables which are grouped together. MY_DATA. The definition of the structure consists of
Heres an example: the keyword struct with a list of variables enclosed
by curly brackets. In this case the structure consists of
#include <stdio.h> three integer variables.
In the main function, we declare an instance of the
typedef struct { structure as a variable called data of type MY_DATA.
USE
int inval1; We then access the individual elements of the
DIFFERENT
NAMES
int inval2; structure by giving the name of the structure variable
int outval; (data), a full stop (.), and the name of the specific While it is
} MY_DATA; element. So the line data.inval1 = 5 sets the value perfectly valid
to give a local
of the element inval1 of data to 5, and so on. variable the
void add (MY_DATA *d) The function add takes a pointer to a MY_DATA same name
{ structure as its only argument. As ever, a function as a global
variable in the
d->outval = d->inval1 + d->inval2; cannot change the values of its arguments, but can same program,
} change values pointed to by its arguments, so we pass don't do it! If
a pointer rather than the structure itself. you have a
global and a
void main (void) To access the elements of a structure from a pointer local with the
{ to it, we replace the full stop with an arrow made up of same name,
MY_DATA data; a minus sign and a greater-than sign (->). So the add the local
version is used
function reads the values of inval1 and inval2 in the in the function
data.inval1 = 5; structure pointed to by d, and then writes the result in which it
data.inval2 = 7; back to outval in the same structure. is declared,
and the
add (&data); Structures are useful if you need to pass a lot global is used
of data around between functions. They are more everywhere
printf ("%d + %d = %d\n", data.inval1, memory efficient than having large numbers of global else this
can result in
data.inval2, data.outval); variables, as you only need to create the structure unexpected
} when it is needed rather than taking up memory all behaviour.
the time.
SCRATCH GAME:
PARKING MANIA Create a Scratch game that tests your skills at parking.
Youll Will you get your Scratch driving licence?
Need n this tutorial, well make a basic parking Alternatively, you could create your own sprites
> Car sprite
magpi.cc/
I game using colour-based collision sensing
with Scratch. Scratch is a child-friendly
and backdrop to make your game unique. Maybe you
want to replace the blue river on the backdrop with a
2kiV2gc programming environment, developed by MIT. You can pink river, or replace the trees with footballs? If so,
> Car park create games, music or even apps in this platform, and it it is easy to edit or paint a new sprite costume using
backdrop
is used in ICT lessons in schools. For this guide, you will Scratchs built-in editor, so be creative.
magpi.cc/
2kj3sEB follow some easy steps to create a simple but effective
>STEP-03
On your marks
Lets get the car on the road. Under the previous
blocks, attach a wait 5 seconds Control block.
This will give the player five seconds to get the mouse
ready at the start of a game. Next, add a forever
Control block. Inside the latter, place a point towards
mouse-pointer Motion block, then a move 5 steps
>STEP-04
Crash detection
Next, well create some code to check whether the
car has hit the grass. Under the previous blocks, still
within the forever block, add an if then Control
block. In its small hexagonal field, add a touching
color Sensing block. Click its blue square, then click
on the green grass of your course on the stage to set
the correct colour. In the gap of the if then block,
place a say Game Over for 2 seconds Looks block,
then attach a stop all Control block this will stop
all scripts running when the car crashes.
>STEP-05
Grab the coin
We now need to create a second script for the car, to
detect whether it is touching the coin in the parking
space. Add another when green flag clicked block
to the scripts area, then attach a forever block. Inside
the latter, place an if then block. In its hexagonal
field, add a touching Sensing block, and click its drop-
down to change it to Sprite 2 (or the name of your coin
sprite). In the gap of the if then block, place a say
Left This is the only
You Win for 1 seconds block, then attach a stop piece of code you
all block. This script makes sure that after the green will need to create
your basic game
flag is clicked, if the car is touching the coin, the car will
say You Win and the game will stop. Now its your turn. Here are some challenges for you
to complete. Can you get the car to restart following a
>STEP-06 crash? How about creating a 5-4-3-2-1 countdown at
Play it the start of the game? Maybe you could add a timer? Can
You have now created a very basic parking game. you create multiple levels? Why not add a coin variable?
Weve made it fairly simple, so you should be able Instead of the car saying you have lost or won, why not
to code it and play it within an hour. Have a go on make a special backdrop for the announcement? Why
the game and see whether you can earn your driving not, when you pass, create a driving licence? Otherwise,
licence or should you just stick with a bus pass? change the game in any way you want.
SPEEDS
Processor
You can overclock the Raspberry Pi (increase the speed
of the CPU), although with the Pi Zero, Pi Zero W and Pi 3
you do so at your own risk. Other models support official
overclocking modes in the config menu, increasing the
CPU speed to up to 1 GHz. Any overclocking outside
these menu options is at your own risk.
HOW FAST IS THE RASPBERRY PI?
USB
Processor You cannot increase the USB speed, but using fewer
This is a bit different depending on the Raspberry Pi. USB devices at any one time will help to improve
The Model A, B, A+, and B+ are 700 MHz single-core performance. Make sure your USB devices are USB 2.0
processors. The Pi Zero and Pi Zero W have the same Hi-Speed, and that they are properly powered.
processor but it clocks at 1 GHz. The Raspberry Pi 2
and 3 are both quad-core, with the Pi 2 at 900MHz Networking
and the Pi 3 at 1.2 GHz. The Pi 3 processor is also You can increase the speed of your wired network
64bit, but it is used in 32-bit mode. by using a USB Gigabit LAN adapter. While it wont
be a full Gigabit, it will be somewhat faster than the
USB standard Ethernet connection on the Raspberry Pi.
The USB ports on all models are USB 2.0, which means
they are limited to about 280 Mbit/s. On models with
wired internet (Model B, B+, 2 and 3), the network WHAT ABOUT OTHER PORTS?
cable is routed through the USB ports.
GPU
Networking The VideoCore IV for the Raspberry Pi is rated at
As the Ethernet is routed through the USB ports, you 250MHz and can do 24 GFLOPS. The Raspberry Pi 3s
cannot make full use of Gigabit LAN on the Raspberry VideoCore has been overclocked slightly so it runs
Pi. The networking is limited to 100 Mbit/s maximum between 300 MHz and 400 MHz depending on whether
speed. The wireless networking on the Pi 3 and Pi it is working on 3D or video.
ZeroW is 802.11n operating at 2.4 GHz, which means
it operates at a maximum of 150 Mbit/s. CSI
This is the connector for the Camera Module. It has
Right How
quickly do all a fairly high data rate of about 1 Gbit/s maximum per
the pieces of a Pi lane. There are a couple of available lanes in the CSI of
communicate?
the Raspberry Pi, so it has a maximum perfomance of
about 2Gbit/s, although the camera only uses one lane.
DSI
The DSI is used to connect a screen to the Raspberry
Pi. It runs at about the same speed as the CSI. Both are
connected directly to the GPU, so they cant be used for
generic data in the same way as a USB port. The DSI only
uses one of its lanes when displaying data on a screen.
MAKERS
TO O L K I T
Everything you need to build awesome projects
ere into digital making here at TheMagPi. the big impressive builds. If you have collected a few bits and
W Incredible projects using Raspberry Pis cross
our news and social feeds every day, and we
bobs to build these small projects, you may have assembled
the kit you need to attempt something bigger.
love to discuss them and how wed go about making Over the next few pages well show you what you
them. We tend to cover many programming and small need to make your own amazing, Raspberry Pi-powered
projects in the magazine, so we dont often get to do monster projects.
PROTOTYPING COMPONENTS
CIRCUITS
You can use these components in a
breadboard. Most of them can be used
in your final circuits as well.
PROTOTYPING WIRE
This wire uses a single core of
metal throughout, which means
Taking your first steps into building circuits for a project that it bends easily. This makes it
easy to use for prototyping circuits.
A B C D E F G H I J While you can solder with this wire,
he humble breadboard
1 1
T is an amazing device for
prototyping circuits. We often
it is not ideal for soldered circuits.
BUTTON
A common input device; pushing
down the button completes the
circuit. Inputs can also include light
sensors, temperature sensors, etc.
LED
The classic LED can be
used to test your circuit,
or to add lights to your
project. Other outputs
include buzzers,
speakers, motors,
actuators, and more.
BUILDING
REAL CIRCUITS
Turn your prototype circuit into a permanent circuit
readboard circuits are MULTICORE WIRE
B great, and you could easily
fit one into a project if you
This bendy, flexible wire is much
better suited to soldering than the
have space. Alternatively, use a single-core wire used for prototyping.
soldering iron to make your circuit
smaller and more permanent, and
to protect against loose wires.
Heres what youll need to get
started with soldering.
WIRE CUTTER/STRIPPER
A special tool that not only helps you
to cut a wire to the desired length,
HELPING HANDS but also can strip the plastic coating
When soldering tricky circuits, you away from the metal inside.
can sometimes feel as if you need
SOLDERING IRON several sets of hands. Helping
The most important piece of kit for hands can help! They usually
soldering is the device that allows include a heavy base and two
you to solder. Its basically a very crocodile clips, so you can hold two
hot pen tip that melts a metal alloy. things together steadily. They often
After cooling, the solder keeps your include a magnifying glass to help
wires and components in place, and with very delicate tasks.
conducts electricity.
CHOOSING A
SOLDERING IRON
DESOLDER PUMP Most soldering irons have a simple
SOLDER If you need to remove some solder on/off switch; theyll be hot when
This is the metal alloy that melts and from a circuit, heat it up with the theyre on. You can spend more money
cools to join components and wires soldering iron and then suck it up and find soldering irons that have
together. It usually contains tin and with this handy tool before it cools. multiple temperature settings, but
lead, or tin and copper. Also known as a solder sucker. youll only need these for specific
applications. For a first soldering iron,
you can easily get away with a simpler
(and cheaper) option.
INTRODUCTION
TO
SOLDERING
Not everyone learns how to use a soldering iron in school
SOLDERING
WIRES
>STEP-01
Measure twice
Make sure your wire is the
correct length for your circuit.
PREPARING YOUR You can always strip one end SOLDERING
SOLDERING IRON and leave the rest attached to TO A BOARD
the spool to cut later. As the
>STEP-01 wire is very flexible, it is best >STEP-01
Not plug and play to cut it a little longer than Fit the component
A soldering iron is not ready to you need it to be. Usually youll be soldering a
be used straight out of the box. component to a PCB, so make sure
You first need to put it through >STEP-02 youve got the right part and that
a process called tinning. Turn Tin the wire it is orientated correctly. Slot it
your soldering iron on and allow Once youve stripped the plastic, through the board and trim the legs
it to heat up. Soak the sponge you should tin the wire. Hold of the component if you need to.
from the soldering iron stand one end in a helping hand and
with water and squeeze it out a bit apply some solder to the exposed >STEP-02
before replacing it on the stand. wire so that it coats and covers Solder it on
Some stands have a brass wire it. This makes it easier to solder Add a little solder so that the leg and
cleaning ball instead of a sponge onto something else. the metal on the board are fused
these dont require water. together. This makes sure that
>STEP-03 current can flow properly through
>STEP-02 Attach the wire the board and the component.
Clean and tin Helping hands come in very
When the iron is hot enough handy here, holding both >STEP-03
to steam when it touches the the wire and the component Soldering considerations
moistsponge, wipe it on the you want to solder. It is If youre soldering on something
sponge or the cleaning ball on good practice to tin the leg like a header with several pins,
both sides to clean it a little. Now of the component and the wire make sure you have a plan of
put a bit of solder all over the tip you want to solder to it, and attack. Solder your components in
of the soldering iron. then heat up the solder on both a sensible order to avoid interesting
in order to fuse them together. wrist gymnastics.
>STEP-03
Repeat
Repeat this a few times before
starting to solder a circuit, and FINISHING OFF
do it a few more times while Physical circuits can be finished off by tying up trailing wires
soldering. Its best to do a bit of and using wire wrap to cover exposed connections. Wire
tinning whenever you turn on wrap shrinks as it is heated up (with a heat gun or hair dryer)
your soldering iron. and keeps your connections safe and secure. To protect a PCB
solder joint, we recommend covering it in a little hot glue
using the low temperature setting on a glue gun.
TOOLS FOR
BUILDING
Whether its a kit or a custom design, heres what youll need to put it together
good traditional toolbox is UTILITY KNIVES
A the makers best friend.
While a well-stocked
A good Stanley-style utility knife
and a craft knife will help you cut and
garage may provide the tools trim pieces for your project. Parental
you need for most making tasks, guidance advised.
heres what you should keep in
your toolbox to complement your
trusty hammer.
UNDERSTANDING SCREWS
tohand to make sure everything something. Superglue, wood glue,
getstightly fastened. hot glue, epoxy resin its good to
Youll find different UNC UNF METRIC have a selection to hand to cover
screw measurements any eventuality.
used online, depending 1-64 1-72 M2 0.4
on whether the guide 3-48 3-56 M2.5 0.45
youre following uses 4-40 4-48 M3 0.5
imperial or metric 6-32 6-40 M3.5 0.6
scales. Heres a handy 8-32 8-36 M4 0.7
table for converting 10-24 10-32 M5 0.8
screw diameters 4-20
1
4-28
1
M6 1 PLIERS
between imperial (UNC 5
16-18
5
16-24 M8 1.25 Standard pliers and long-nose pliers
or UNF) and metric. 3
8-16
3
8-24 M10 1.5 can get you out of a jam when you
cant quite brute-force something
yourself. Dont get stuck without them.
3D PRINTING
A new way to make cases and parts, 3D printing can make makers dreams a reality
Right An amazing
Typically, 3D printed objects have surface finish. These take very idea for a 3D print
a rough surface texture, due to the little work, but they have their own project we covered
in issue 56.
layering nature of the printing disadvantages: youll need to build
process. You can change the way your own DIY kit and deal with Below Before and
after images of an
you print to cut down on this some nasty chemicals. acetone vapour-
effect, either by using different Dont forget to buy a small round smoothed 3D print
from PeterA8s
materials or by employing a file to widen screw holes if you great guide:
different 3D printing technique. need to! magpi.cc/2oxLj8R
Mostly, youll find yourself
sanding and filling and sanding
and filling again to produce a
smooth finish. Another solution
is to add layers of PVA glue, which
can be easily painted over.
You can also try using acetone
vapour baths to smooth out your
WOODWORKING
Take your first steps into carpentry and make some truly wonderful projects
fully stocked woodworking POWER DRILL
A workshop can be vast,
includes a lot more than
Need to make some holes? This is
what you need. Pick up a variety of
just a saw, and can get quite drill heads for wood and youll be on
expensive. Along with the tools your way. Be careful, though, as drills
in your makers toolbox, here are can be dangerous.
some of the basics youll need for
projects involving woodworking. VICE
Keeping your wood in place with a
vice makes it easier to cut. We also
really like the workbenches that
grip your piece of wood, and even
create a gap underneath so you can
safely drill holes without damaging
the bench.
POWER TOOLS
Want to improve your carpentry skills? Then you may want to get some
power tools. Of course, these should only be used with adult supervision.
We recommend a power sander (sanding large bits of wood by hand is very
boring) and a jigsaw.
A jigsaw is a handheld tool with a saw blade jutting downwards. It is very
useful for cutting complex shapes into, or out of, a piece of wood. To use it,
you rest the metal plate on the wood and push the jigsaw along. This pushes
the blade through the wood, usually following a pre-marked path.
! FIRST!
method weve covered here! Be sure to buy
some safety goggles (sawdust is nasty) and
watch your fingers with everything you do!
WOODWORKING TIPS
01. MEASURE AND SKETCH 03. FILLING HOLES AND DENTS
You cant just pick up some MDF from B&Q and Screw holes and any nicks or other minor deformities
cut it blindly; you need to know what youre doing. in the wood can easily be smoothed out by filling them
Design your project on paper, then break it down with some wood filler. Use as little as possible and use
into the individual parts youll need to make. Take a filler knife to scrape off any excess. Let the filler dry
measurements and create a mock-up with paper or and sand it down until it is smooth. You may need to
cardboard if you can to make sure its what you want. do this in several layers.
MAKERSPACES
No space for a workshop? Find a local makerspace
akerspaces (also known as can be difficult. Many makerspaces locations near you. Alternatively,
M hackerspaces) are amazing
places where people come
require only a small monthly
membership fee to use all their
a bit of Google-fu should help you
find somewhere in your area.
together to build things. From equipment. Theyre also usually Being a maker is also about
software to circuits and 3D prints filled with knowledgeable people being part of a wider community,
to metalwork, a good makerspace who can help you with any tricky and joining a makerspace can
gives you access to loads of tools for parts of your projects. open the door to a community of
building and making. Buying tools To find a makerspace, check out makers, and a wealth of support,
can be expensive and finding space hackspace.org.uk and look for on your doorstep.
Right The
Makespace in
Cambridge is one of
our favourite places
in the world (and
its usually a bit
quieter than this)
RASPBERRY PI
PROJECTS BOOK
Amazing hacking and making projects
from the creators of magazine
Inside:
How to get started with Raspberry Pi
able
Availw
no
magpi.cc/MagPiStore
plus all good newsagents and:
Maker
Says
Build
your very
own internet-
connected
radio with
the Pirate
Radio Kit!
Pimoroni
PIRATE RADIO
PI ZERO W PROJECT KIT
This musical pirate booty is something to treasure
Related
he most expensive of The body of the radio is fairly wound it round the bolts at the rear
T the four new Raspberry
Pi Zero W project kits
easy to assemble from acrylic
pieces, legs, retainers, nuts and
of the radio.
Unless you opt to buy a couple
AMP ZERO from Pimoroni, the Pirate Radio bolts using the illustrated of Pimoronis ingenious hammer
PHAT comprises a case full of quality step-by-step online guide headers separately, you will need
JustBooms components everything you (magpi.cc/2o1i7d7). As long as you to break out the soldering iron
Zero-sized need to build your own internet follow the guide carefully to get to attach the supplied standard
board delivers
up to 20W radio. As with the other three the orientation right, everything male and female headers to the Pi
RMS of high- kits, the packaging is top-notch slots together neatly. The acrylic Zero W and pHAT BEAT. The latter
resolution and the hinged plastic case pieces are all laser cut, including a then slots onto more bolts at the
audio to a pair
of passive can be reused to store other neat speaker grille, so there are no rear of the radio, with the ZeroW
speakers using components after the build. nasty rough edges. mounted on top. The speaker
an optional The key electronic items The supplied 5W speaker simply wires are inserted into a couple of
external
powersupply. featured in the Pirate Radio kit are slots onto four bolts holding the the terminal blocks on the pHAT
a Pi Zero W, with built-in wireless translucent front acrylic layer in BEAT, with the latters dip switch
LAN and Bluetooth, and one of place. Fortunately, the speaker set to mono to combine its stereo
Pimoronis new pHAT BEATs. Also comes with a length of dual wire channels. With that, your internet
available separately, the latter is a already connected, so theres radio is built!
neat bit of kit that crams dual I2S no need to solder it. Were not
24 / $37
DAC/amplifiers onto a Pi Zero- sure why the wire is much longer Streaming software
sized board, and can pump out than required, though; while you The Pi Zero Ws built-in wireless
magpi.cc/2lNJMKO
3W per channel. could always cut it to size, we just connectivity means theres
40 / $50
pHAT BEAT
no need to use a WiFi dongle can be controlled via the pHAT
Pimoronis new Pi Zero-sized audio board packs
plugged into a USB to micro- BEATs five side-mounted buttons:
twin MAX98357A DAC/amplifiers for stereo output.
USB adapter, which makes for forward/back to select stations, While the Pirate Radio uses mono mode, you could
a more streamlined look to the pause/play audio, and volume up/ always add an extra speaker. Alternatively, you
radio. Even so, such an adapter is down. The only slight downside can buy the pHAT BEAT separately (16.50/$21)
included in the kit, along with an is that the buttons are tiny, and a and build your own custom stereo radio, or even
HDMI adapter. This is presumably little difficult to locate on the side repurpose an old ghetto blaster. The pHAT BEAT
to enable you to hook the Zero of the radio at times. The sound also features six push-buttons and two rows of
W up to the monitor to install quality is good, however, with super-bright APA102 RGB LEDs, for use as a VU
the software in Raspbian and set a decent amount of volume. Its meter or custom-controlled using the boards
up WiFi, although we went the real-time volume level is shown Python library (magpi.cc/2otOwp6).
Quality components
everything you need to build
your own internet radio
instant headless route by adding dynamically by the pHAT BEATs
ssh and wpa_supplicant.conf super-bright LED VU meter.
(with our router details) files to In addition, we followed
the microSD card before first boot. Pimoronis tutorial to turn the Last word
On the software side, Pimoroni Pirate Radio into an AirPlay speaker
has put together guides for three for streaming audio from an iPhone While its a slight shame that it doesnt make use
project examples. The first is for and iPad. Both this and the VLC of the pHAT BEATs stereo capabilities, this is an
an internet radio based on the radio work alongside each other excellent kit that is easy to assemble and results
VLC daemon. As with the other happily, so you can switch from in a genuinely useful audio device with good
examples, a single command is one use to the other. Highlighting sound quality. As well as internet radio and music
used to install all the required the radios versatility, Pimoroni streaming, potential uses include an Alexa-style
packages. You can then edit the has also put together a Spotify
voice assistant (with the addition of a USB mic),
a speaker for musical HATs, and a speaking clock.
playlist file to add URLs for your streaming project using Modipy,
favourite radio stations. With controllable from a remote
this particular project, everything computer or device.
Maker magpi.cc/2oqkumh
Says 25 / $31
A
powerful,
sleek and
intelligent
smart device
that is
perfect for
controlling
your high-
definition
audio setup
JustBoom
JUSTBOOM
SMART REMOTE
A minimalist AV remote with a six-axis gyro installed.
Should this replace your current media remote?
here were always jokes and can easily be recentred by making satisfying clicks as you
T about the Wii Remote
looking like a TV remote
turning the motion controls off
and on again. We found on Kodi
push them. Theyre also nice and
large, so youre unlikely to push
control, and it looks as if the that it tracked across the screen the wrong one.
JustBoom team has taken these fairly slowly, forcing you to bend As mentioned earlier, they do
26 /$35
Maker
Says
Add low-
power display
technology to
your Pi Zero
projects!
Pi Supply
PAPIRUS
ZERO MEDIUM
displayed. Other code examples
include Conways game of life,
which works well, and a digital
clock. While some minor latency is
An ePaper screen for the Raspberry Pi Zero noticeable as the numbers change
on the latter, a clear command can
any moons ago, we took a the board with the double-sided be used to wipe the display clean.
M look at the original, full-
size PaPiRus HAT. Now
sticky pads supplied. We tested
out the 2.0-inch Medium display
The Papirus Python library
includes a write function to
its the turn of its smaller sibling, with 200 96 pixels, but a Small print text strings, which can be
designed specifically for use with 1.44-inch screen (128 96) is also positioned and sized, although its
Related
the Pi Zero. Unlike conventional available, along with a multi- not clear how to change the font.
displays, it uses electronic paper screen pack containing both sizes. A draw function displays a one-bit
(ePaper) technology to render text With the unit assembled and (black and white) bitmap image
PAPIRUS and images, which can remain mounted on a Pi Zeros GPIO The MagPi logo looked really cool!
HAT on screen without any power equipped with male header (not Handily, the software will convert
The original connection for many days before supplied), its time to install the most image types automatically.
full-size PaPiRus
features a taller slowly fading. Obviously, this is software via a single Terminal
display, up to ideal for saving battery power in a command. A second command is Last word
2.77 inches portable project, such as a smart required to set the correct screen
in size. The
conference badge. The display is size, then youre ready to roll. While not suitable for
same ePaper
technology is high contrast and readable even in One of the installed folders applications requiring a fast
used to render bright sunlight. contains a few Python code screen refresh, the PaPiRus
text and images. Zero is ideal for saving battery
Like its big brother, the PaPiRus examples to get you started,
Zero is supplied in two main including a temperature readout
power in portable projects. The
ePaper display is very easy to
parts: the pHAT board with pre- that makes use of the pHATs built-
read in all but the lowest light
soldered female header, and the in LM75 temperature sensor. The
conditions, from any viewing
screen itself, which is very thin. Buttons example demonstrates
angle, and features a decent
Assembly involves inserting the the use of the pHATs five GPIO-
110 ppi pixel density.
screens mini ribbon cable into connected buttons. Located along
35 / $50
the connector at the side of the the top edge, theyre tiny but could
magpi.cc/2ouxPtz
pHAT, then securing the screen to prove useful for switching the info
GROUP
Which program should you be using to code on the Raspberry Pi?
GEANY
he humble integrated development
T environment (IDE). Used the world over
to play with code and make programs on
computers of all kinds. Youre probably familiar with
Scratch or IDLE, IDEs that serve a specific purpose,
in this case coding in Scratch or Python respectively. A very popular cross-platform IDE, Geany has been around for
Some IDEs let you program in several languages. Here quite a while and has received a reputation as a nice lightweight
are some of the best on the Raspberry Pi. alternative to the bigger IDEs like Eclipse. Its perfectly suited
for the Raspberry Pi, aiding you in coding in all manner of
CODE::BLOCKS
programming languages, and its actually pre-installed on
Raspbian PIXEL by default.
As well as allowing for the all-important highlighting of code
depending on the language, Geany also offers the ability to test
A fairly traditional IDE, Code::Blocks is well code in a very similar way to the Run function in IDLE. Different
known as an alternative for C coding, but it variables and functions can be jumped to from the left-hand
can handle many different languages as well. column, allowing for quick browsing of the entire code.
Its not included in Raspbian PIXEL by default Its a great piece of software that allows you to easily manage
but it is in the package manager, so its just files and entire projects that use many types of code, and as its
a case of installing it from the Terminal or in already on Raspbian, you can test your code on it as well.
the software installer.
Code::Blocks lets you organise your code and
projects very easily, displaying the different
functions and classes and whatever is important
in the sidebar. It also contains a lot more
debugging, testing, and building options than
main rival Geany; however, we had some issues
getting it to preview some Python code.
Its a very solid choice if you need a little more
data and debugging in your projects, and again
you can run compiled software straight on your
Raspberry Pi for very efficient testing.
codeblocks.org geany.org
ADAFRUIT
WEBIDE
A quite different IDE, this one resides
completely online. Its not like Scratch 2,
though, where you work on software online.
This is a hybrid system that you install on the
Raspberry Pi and then access via a web browser
on a networked computer.
The code and software on here is then stored
in the cloud through Bitbucket, meaning you
can access it from anywhere. Code can also be
run directly to the Raspberry Pi via a Terminal
so you can test it out as well. It allows you to
use a whole host of different programming
languages, and supports decent highlighting
of them all.
It doesnt offer the same debugging and
GEDIT
compiling suites of Geany or Code::Blocks,
nor does it have a breakdown of functions and
variables, instead favouring a project overview
with your folders and files visible at all times.
Still, its a great idea, especially when using a
headless Raspberry Pi.
magpi.cc/2nwsuod
AWARDS
WINNER
Running locally on the Raspberry Pi, gedit is the GNOME text
editor. While there is already a text editor in Raspbian, gedit
supports code highlighting for a variety of programming
GEANY
languages, which the default text editor does not do.
Youll need to install it from the package manager, and it does RUNNER-UP
add a fair few other packages to get it running. The good thing is
that as well as being in the program menus, you can access it via
the Terminal if you want to edit a file in there. Instead of using
ADAFRUIT WEBIDE
something like nano python.py you can use gedit python.py.
Its quite simple, though, offering just a pure view of the
code with some highlighting and no project view, debugging, or DISTRACTION-FREE
compiling options. Its pretty good if you need just a simple IDE
that has few distractions.
CODING AWARD
gedit.org GEDIT
raspberrypi.org/magpi May 2017 79
Review BOOKS
THE HARDWARE
RASPBERRY PI As if that were not enough, a short
HACKER
section on intellectual property a
BESTSELLERS
weasel term that Huang dismisses
rapidly, before looking at shanzai
innovations rarely seen here
UNIX:
Author: Nicholas Tollervey
a decade. Sarwar and Koretsky
Publisher: OReilly
Price: Free download focus on Solaris and PC BSD, but
ISBN: N/A the coverage here will be more than
THE TEXTBOOK
magpi.cc/2ndCi3U 90% relevant to your Pi, or the VPS
that hosts your website. The telltale
Thoughtful introduction changes include a new,
to Pythons strngths and Authors: S
yed Mansoor Sarwar, nearly 100-page chapter
suitability for education, Robert M Koretsky
its readability, simplicity, on Python, and coverage
Publisher: CRC
cross-platform, and the Price: 89.00 of Git and virtualisation.
secret weapon a wonderful
ISBN: 978-1482233582 Youll need a lot of
community. Pass it on to
magpi.cc/2ndNhtU shelf space for this 1300-
a teacher you know.
page hardback, but itll
HELLO WORLD
Raspbian is one of many pay you back its price
GNU/Linux distributions over many years if youre
Authors: Various, contributing that can run on the Pi, looking for a text book
editor Miles Berry but GNU/Linux itself is one of which combines introductory
Publisher: Raspberry Pi more than 200 members of the tutorials on everything from shell
Foundation UNIX family. An operating system scripts and systems programming,
Price: Free PDF download
fast approaching its half century, to file encryption and remote
ISBN: N/A
helloworld.cc thanks to a number of sensible logins. While not the only good,
design decisions which, amongst comprehensive Linux reference,
Written by educators, for other things, have permitted its wider remit, and many exercises
educators, a magazine from
gradual evolution, while retaining for the reader, make it one of the
the Raspberry Pi Foundation
that takes a cross-curricular a set of commands which would more educational.
look at tech, and educating work on a release of any vintage.
young digital makers. A
Changes can be most clearly
fascinating and diverse range
of useful content. seen when a classic old manual Score
like this is updated after more than
on the long-awaited language coverage with Make and play back beautiful scores,
Perl 6, 2017 should no padding or fluff. Short and join a community of users sharing
see the publication paragraphs and code snippets their music. Superb tutorial and
comprehensive reference.
of several no doubt weighty take you through everything from
tomes on the language. First off building a web server, to creating
Making Music with Computers
the mark, with a nicely concise new operators. Promises, and Perl
Authors: Bill Manaris, Andrew R Brown
introduction (150 pages), Andrew 6s Channel class, fit the language
Publisher: CRC Press
Shitovs guide is based on a series for the concurrent world, and Price: 33.99
of introductory articles originally Grammars build on Perl 5s powerful ISBN: 978-1439867914
written in Russian. way with regular expressions. This magpi.cc/2ndCBvf
Perl 6 is not an incremental book will open your eyes to Perl 6s
Well-written, beginner-friendly guide
set of improvements over capabilities and uses: it is as concise to creating music programmatically
Perl5. Its a different language, and expressive as the language. with algorithms and data in Python
beautifully declarative, with useful (via Jython).
GUIDE TO DRONES
magpi.cc/2ndOOAr
photographer wanting to take to
the air without actually The missing manual on programming
Author: Colin Smith all things audio on Linux, from sound
flying themselves.
Publisher: Rocky Nook fonts to controlling latency.
After suitable safety
Price: 26.99
ISBN: 978-1681981147
magpi.cc/2ndyFeh
warnings spinning
propellers and falling
Music Data Analysis
Authors: Claus Weihs, Dietmar Jannach,
objects have the ability to
Igor Vatolkin, Gnter Rudolph
Lots of makers injure people, and most Publisher: CRC
have bought countries have regulations Price: 44.99
or built drones theyre that you need to be aware ISBN: 9781498719568
cool and have plenty of potential of (this book is written from a US magpi.cc/2ndoSF6
THE MONTH IN
RASPBERRY PI
Everything else that happened this month in the world of Raspberry Pi
FOOL
APRIL FOUR-LS
The Raspberry Pi 4 isnt out, but some
YouTubers had their own fun with
fake ones
ME ONCE...
or better or worse, every year on 1 April people
F and companies come together to lie to sorry,
fool their audience in the great tradition of
magpi.cc/2nSrD1n
VOLTLOG
April Fools Day. The Raspberry Pi community is not
one to pass up on such an opportunity and there were a
few jokes going around on the day, centred around the Were very, very impressed with the working PCB
humble Blueberry Delta. mock-up of an imaginary Raspberry Pi 4 design
that was made for this video. It looks very real and
even lights up! A lot of work went into making this
RETROPIE FORUM board just for a little joke. Theres a follow-up video
showing how he made it, which is fascinating.
The RetroPie forum brought back
a bit of a classic joke, redirecting
everyone trying to get to the
RetroPie forum for support to a
LMGTFY (let me Google that for
you) page, searching for retropie
documentation.
KODI SHUTDOWN
magpi.cc/2nSdAsy
In a stealth move to upgrade
ETA PRIME
the website and forums, Kodi
pretended theyd been shutdown.
Apparently a real threat they get We cant quite identify the board used in this
regularly (people dont understand video, although wed like to point out the boot-up
that Kodi doesnt provide content), screen for Raspbian is now a bit different, which
it fooled many people until the instantly gives it away. A great effort, though.
site reverted.
DE CLU B
CO E MONTH FIRFIELD
OF TH PRIMARY
CODE CLUB
manda Coffey was talking running club coach, Ian. Their
A with another mum at her
school when she heard
Code Club has been running for
nearly two years now and is always Operated by: Amanda Coffey
about Code Club for the first time. oversubscribed with students Occupation: Teacher and parent
It sounded really interesting, wanting to learn how to code. Its
Amanda tells us. I am not a also resulted in some more formal them what game to make but only
coder, but I had dabbled in the lessons outside the Code Club to given them a few blocks. She was
past. I remember typing code try to catch the kids who hadnt quite smug when she said it was
into my Spectrum when I was six been able to get in. easy and that her game worked
or seven but I had never been I was standing in the perfectly and was great.
taught to code. Coding wasnt a playground when a child who had I have seen first hand how even
scary thing, it was just something recently gone up to secondary a small amount of coding knowledge
can help in the workplace, Amanda
seeing coding as just another tool, than Latin, impossible to learn, too
geeky, etc. This new generation
The Micro Pi Noon course for very small robots, built by Brian Corteil One of this years wackier designs, this robot version of Ely
who was responsible for the robot build in The MagPi #51 Cathedral was a favourite at the event (photo by Anne Carlill)
magpi.cc/2nR03zS
A VERY SECURE magpi.cc/2nQIUGc
RASPBERRY PI
Want to keep your Raspberry Pi
as secure as possible? Then lock
it inside a lock box with a digital
security code. At least with this
RETROPIE
the video, you can see him flash his lights as he magpi.cc/2nQUL7n
jumps to drift around corners. Hes even able to use
the real accelerator and brake pedals. Hopefully it
get disconnected when he goes for an actual drive.
ARCADE
A good arcade build is always
magpi.cc/2nQVIg9 lovely to look at, and this
wooden creation is no different.
We especially like the glowing
RetroPie text embedded into the
top of the wood. This is designed
to sit on a tabletop, but wed love
to see some more old-school
fullsize cabinet builds.
OCARINA CONTROLLED
magpi.cc/2nUQJN6
HOME AUTOMATION
This Raspberry Pi recognises five notes on an ocarina,
so you can play the songs from the Legend of Zelda:
Ocarina of Time to activate stuff around the house. Its
so accurate that it lights specific LEDs for the specific
notes being played. It comes with appropriate sound
effects and recognises the best sound, Song of Storms,
to turn on a humidifier.
COMMUNITY PROFILE
MATTHEW
TIMMONS-
BROWN
Boasting the most successful Raspberry Pi-
related channel on YouTube, meet Matt, the
electric skateboard-riding Raspberry Pi Guy
Matthew I
first set up my YouTube
channel because I noticed
Raspberry Pi roundup videos being a
staple of the birthday celebrations.
a massive lack of video With his website, Matt aimed
Category: Advocate tutorials for the Raspberry Pi, to collect together the many
Day job: Student and explains Matthew Timmons- strands of The Raspberry Pi Guy
Raspberry Pi YouTuber Brown, known to many as The into one, neat, cohesive resource,
Raspberry Pi Guy. At 17 years old, and it works. From newcomers to
Web: theraspberrypiguy.com
the Cambridge-based student has the credit card-sized computer
@RaspberryPiGuy1
more than 60,000 subscribers to to hardened Pi veterans, The
his channel, making his account Raspberry Pi Guy offers aid and
the most successful Raspberry Pi- inspiration for many. Looking for
specific YouTube account to date. a review of the Raspberry Pi Zero?
If youve attended a Raspberry Pi Hes filmed one. Looking for a
event, theres a good chance youve step-by-step guide to building a
already met Matt. And if not, youll Pi-powered Amazon Alexa? No
have no doubt come across one or problem, theres one of those too.
more of his tutorials and builds Last summer, Matt introduced
Below From speaking at events to
creating videos and resources, Matt online. On more than one occasion, the world to his Raspberry Pi-
Timmons-Brown continues to build
his work has featured on the controlled electric skateboard, soon
upon a wonderful reputation in the Pi
community as The Raspberry Pi Guy Raspberry Pi blog, with his yearly finding himself plastered over local
HIGHLIGHTS
Pi event, theres a good chance being too young to officially join, Matt was able to call
upon the help of local makespace members to complete
RASPBERRY SHAKE
OSOP brings seismography to everyone with the incredible Raspberry Shake kit
eismic activity monitoring Raspberry Pi communities when want to try and use automated
S is important. It helps give
people early warnings about
his companyran a very successful
Kickstarter campaign for
processing systems, and those
systems work best if you have a high
possible natural disasters, as well as a consumer-grade seismograph. density of stations. To have a really
plotting how the earth beneath our Thats what weve been doing high level of confidence that seismic
feet is moving. It helps scientists to for years, Branden continues. activity is of a certain magnitude
make better predictions and better We had a product that cost an in a certain place, you need to have
models of our planet. order of magnitude less money high density. Raspberry Shake was
Our company is called than anything else on the market born out of that philosophy, but it
OSOP and its existed for about and with that product weve helped was also born out of the idea that
ten years. Were dedicated to countries through geophysical we wanted to create a hobbyist
Below The making high-density solutions institutes. That solution, even seismograph. When we went into
Raspberry Shake
for earthquake monitoring. though it was an order of the Kickstarter campaign, we went
is very small. It
only needs 26 Branden Christensen is the magnitude cheaper than other into it thinking we just wanted to
GPIO pins, so it
CEO of OSOP and he recently things available on the market, was create a seismograph that will be
can work on any
Pimodel came to fame in the maker and still $5,000 a unit. cool for us and our friends. It was
something wed wanted to do as
Turning to crowdfunding kind of a side project and we didnt
Like Raspberry Pi, they were know if there would be a market
interested in lowering the for it, so we thought why dont we
price even further and decided throw it on Kickstarter and well
a network of hobbyist scientists have our answer.
with seismographs could have We thought if we can make the
fun while still collecting Kickstarter campaign successful
usefuldata. and sell 20 or 30 of these units
Were always interested in then well make it. We ended up
creating as high-density a network hitting our funding level for 20
as we can, explains Branden. The units in 18 hours. And then we
motivations behind this are that went up to $50,000, and finally we
with earthquake locations we always almost made it up to $100,000.
network as we can
date are not the turnkey solutions
that include the Pi and everything
and you just plug them in; its the
it from being this gee-whizz lots of geeks out there like us that one that has everything but the Pi.
seismograph to being something have a bunch of Raspberry Pis just You can get yourself a Raspberry
for geophysical institutes as well. kicking around. Shake, or find out more about
We changed those specifications. So we said, lets do this it, from raspberryshake.net.
We were able to get better prices on differently. Lets create a product Join the growing network of
components so we ended up with that will run on any Raspberry Pi, hobby seismologists!
STATIONVIEW
This is StationView: a readout of all the connected number has since gone up. There are units coming
devices in the network. It shows the feedback from online every day. Yesterday Aruba came online and
the high-density/highfidelity system Branden is Poland came online last week. Saudi Arabia came
aiming to create. online but then disappeared. People at home plug
These are about 220 of the 700 or so units that their Raspberry Shake in, choose data sharing and
weve shipped, Branden informed us, although the boom, they automatically appear on the map.
Monitoring is done in
real-time so the accuracy
is extremely good
RASPBERRY JAM
EVENT CALENDAR
Find out what community-organised, Raspberry Pi-
themed events are happening near you
2 ROANOKE
RASPBERRY JAM
Roanoke, VA, USA
FIND OUT
ABOUT JAMS
Want a Raspberry Jam in your
area? Want to start one?
Email Ben Nuttall about it:
ben@raspberrypi.org
8 RASPBERRY JAM
BOGOT
Bogot, Colombia
1 SKIPTON
RASPBERRY JAM
Skipton, UK
5 STAFFORD
RASPBERRY JAM
Stafford, UK
COULD USE
MORE JAMS
MINECRAFT
7 LIBRARY JAM
Coventry, UK
4 NORWICH
RASPBERRY JAM
Norwich, UK
FROM THE FORUM: The error about the graphical package manager not
being in Raspbian is our fault we missed it when
WRITE TO US
checked online and its different. It also seems to have quite a few
more OSs covered than my print version (unless I was sleeping?).
It jumped from Raspbian to something like OSMC/RetroPie. Some
Have you got something youd like to say?
three or four more pages? Is there a big error in the print version? Get in touch via magpi@raspberrypi.org or on The MagPi
bensimmo section of the forum at: raspberrypi.org/forums
MUST BE WON!
In association with
WHAT WOULD
YOU BUILD
WITH THE
WD PIDRIVE
COMPUTE
CENTRE KIT?
To enter visit:
wdlabs.io/mp57contest
Learn more:
PRODUCT OR
PROJECT?
Major product makers are opening their arms to hobbyists.
Matt Richardson explores why
aking inspiration from a widely known could also sense depth, a feature that would be useful
T Mahatma Gandhi quotation, I like to tell
people, make the thing you wish to see
for identifying the position of objects in a space. At
first, there was no hacker support from Microsoft,
in the world. In other words, you dont have to so Adafruit Industries announced a $3,000 bounty
wait for a company to create the exact product to create open-source drivers so that anyone could
you want. Prototyping with hardware has become access the features of Kinect for their own projects.
easier and more affordable, empowering people to Since then, Microsoft has embraced the use of Kinect
make products that suit their needs perfectly. And for these purposes.
the people making these things arent necessarily Consumer product companies even make versions
electrical engineers, computer scientists, or of their products that are specifically meant for
product designers. Theyre not even necessarily hacking, making, and learning. Belkins WeMo home
adults. Theyre often self-taught hobbyists who are automation product line includes the WeMo Maker,
empowered by maker-friendly technology. a device that can act as a remote relay or sensor and
Its a subject Ive been very interested in, and I hook into your home automation system. And iRobot
have written about it in this column before. Heres offers Create 2, a hackable version of its Roomba
what Ive noticed: the flow between maker project floor-cleaning robot. Its aimed at STEM educators,
and consumer product moves in both directions. In but could be used for personal projects too. Electronic
other words, consumer products can start off as maker instrument maker Korg takes its maker-friendly
projects. Just take a look at the story behind many of approach to the next level by releasing the schematics
the crowdfunded products on sites such as Kickstarter. for some of its analog synthesizer products.
Conversely, consumer products can evolve into maker Why would a company want to do this? I think
products as well. The cover story for this issue of there are a few possible reasons. For one, its a way of
TheMagPi is a perfect example of that. Google has given encouraging consumers to create a community around
you the resources you need to build your own dedicated a product. It could be a way for innovation with the
Google Assistant device. How cool is that? product to continue, unchecked by the firms own
But consumer products becoming hackable hardware limits on resources. For certain, its an awesome feel-
isnt always an intentional move by the products good way for a company to empower their own users.
maker. In the 2000s, TiVo set-top DVRs were a hot Whatever the reason these products exist, its the
product and their most enthusiastic fans figured out digital maker who comes out ahead. They have more
how to hack the product to customise it to meet their affordable tools, materials, and resources to create
needs without any kind of support from TiVo. their own customised products and possibly learn a
thing or two along the way.
Embracing change With maker-friendly, hackable products, being
But since then, things have changed. For example, a creator and being a consumer arent mutually
when Microsofts Kinect for the Xbox 360 was released exclusive. In fact, youre probably getting the best of
in 2010, makers were immediately enticed by its both worlds: great products and great opportunities
capabilities. It not only acted as a camera, but it to make the thing you wish to see in the world.
www.helloworld.cc
@HelloWorld_Edu
fb.com/HelloWorldEduMag
98 May
xxxx 2017
2016 raspberrypi.org/magpi
Tutorial
ESSENTIALS
LEARN | CODE | MAKE