Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Physical computing with GPIO Zero
Ben Nuttall
October 15, 2015
Education
1
220
Physical computing with GPIO Zero
Short talk in my new GPIO Python library for Raspberry Pi, given at Coding Evening in London
Ben Nuttall
October 15, 2015
Tweet
Share
More Decks by Ben Nuttall
See All by Ben Nuttall
Rapid prototyping in BBC News with Python and AWS
bennuttall
0
6
Running a Python Package Index for Raspberry Pi
bennuttall
0
27
From Acorns to Raspberries
bennuttall
0
9
Innovation in the newsroom
bennuttall
0
16
Innovation in the newsroom - MOS Running Order Manager
bennuttall
0
44
How to market your open source project
bennuttall
0
79
Manage your own Pi Cloud with hostedpi
bennuttall
0
41
Tools for maintaining an open source project
bennuttall
0
39
Tools for maintaining an open source Python project
bennuttall
0
67
Other Decks in Education
See All in Education
大学院に行くメリットについて考える (2022年度版)
imash
0
330
Course Review - Lecture 12 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
670
Learn Python Like a 12-Year-Old
seantibor
2
160
R7: A first look
hadley
2
870
Machine Learning Training
marisakamozz
1
420
開源套件的經營指南 Facebook-Crawler 套件的理念、策略與收穫
tlyu0419
0
150
Sosiaalisen median katsaus 07/2022
hponka
0
1k
Moodle 4.0 : les nouveautés avec Pimenko
pimenko
0
510
數學、程式和機器
ccckmit
1
610
Monaca Education EdTech導入補助金を活用した 無料導入説明会
asial_edu
0
500
革新技術と社会共創A「AIと地図」
furuhashilab
1
200
ITエンジニアも経営スキルを身につけよう 第1回
lsuzuki
1
240
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
107
16k
Building Flexible Design Systems
yeseniaperezcruz
310
34k
Automating Front-end Workflow
addyosmani
1351
200k
YesSQL, Process and Tooling at Scale
rocio
157
12k
Put a Button on it: Removing Barriers to Going Fast.
kastner
56
2.3k
How New CSS Is Changing Everything About Graphic Design on the Web
jensimmons
213
11k
What's new in Ruby 2.0
geeforr
335
30k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
236
1.1M
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
119
28k
5 minutes of I Can Smell Your CMS
philhawksworth
196
18k
In The Pink: A Labor of Love
frogandcode
131
21k
The World Runs on Bad Software
bkeepers
PRO
57
5.4k
Transcript
Physical computing with GPIO Zero Ben Nuttall Raspberry Pi Foundation
UK Charity 1129409
Ben Nuttall • Education Developer Advocate at the Raspberry Pi
Foundation – Software & project development – Learning resources & teacher training – Outreach • Hobbyist turned employee • Based in Cambridge • @ben_nuttall on Twitter
Python – RPi.GPIO import RPi.GPIO as GPIO from time import
sleep GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) led = 17 GPIO.setup(led, GPIO.OUT) while True: GPIO.output(led, True) sleep(1) GPIO.output(led, False) sleep(1)
Python – GPIO Zero from gpiozero import LED from time
import sleep led = LED(17) while True: led.on() sleep(1) led.off() sleep(1)
LED from gpiozero import LED from time import sleep led
= LED(17) led.on() # on led.off() # off led.toggle() # on>off or off>on led.blink() # flash on/off continuously
LED + Button from gpiozero import LED, Button led =
LED(17) button = Button(3) button.when_pressed = led.on button.when_released = led.off
Motion sensor from gpiozero import LED, MotionSensor led = LED(2)
sensor = MotionSensor(3) sensor.when_motion = led.on sensor.when_no_motion = led.off
Traffic Lights from gpiozero import TrafficLights lights = TrafficLights(9, 10,
11) lights.on() # all on lights.off() # all off lights.red.on() # red on lights.toggle() # swap state of all lights
Traffic Lights sequence lights.green.on() lights.amber.off() lights.red.off() while True: sleep(10) lights.green.off()
lights.amber.on() sleep(1) lights.amber.off() lights.red.on() sleep(10) lights.amber.on() sleep(1) lights.green.on() lights.amber.off() lights.red.off()
Full colour LED from gpiozero import RGBLED led = RGBLED(2,
3, 4) led.red.on() # full red led.color = (255, 0, 255) # purple led.blue = 100 # dim the blue value to 100 # now (255, 0, 100)
Motor from gpiozero import Motor from time import sleep motor
= Motor(forward=17, back=18) while True: motor.forward() sleep(5) motor.backward() sleep(5)
Robot from gpiozero import Robot from time import sleep robot
= Robot(left=(17, 18), right=(22, 23)) while True: robot.forward() sleep(10) robot.left() sleep(1)
Button controlled Robot from gpiozero import RyanteckRobot, Button robot =
RyanteckRobot() left = Button(26) right = Button(16) fw = Button(21) bw = Button(20) fw.when_pressed = robot.forward fw.when_released = robot.stop left.when_pressed = robot.left left.when_released = robot.stop right.when_pressed = robot.right right.when_released = robot.stop bw.when_pressed = robot.backward bw.when_released = robot.stop
Analogue - potentiometers from gpiozero import RGBLED, MCP3008 led =
RGBLED(2, 3, 4) pot = MCP3008() while True: red = pot.value led.color = (red, 0, 0) # set brightness of red
GPIO Zero - beta • www.pythonhosted.org/gpiozero – Installation instructions –
Documentation – Examples • Google Doc (linked from documentation) – Suggestions – Feedback • Contact me – ben@raspberrypi.org – @ben_nuttall on Twitter • #gpiozero on Twitter
CamJam EduKit • £5 starter kit (kit 1) • £7
sensors kit (kit 2) • £17 robotics kit (kit 3) • Free worksheets • Very reusable
Physical computing with GPIO Zero Ben Nuttall Raspberry Pi Foundation
UK Charity 1129409