Physical computing with GPIO Zero
Ben Nuttall
Raspberry Pi Foundation
UK Charity 1129409
Slide 2
Slide 2 text
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
Slide 3
Slide 3 text
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)
Slide 4
Slide 4 text
Python – GPIO Zero
from gpiozero import LED
from time import sleep
led = LED(17)
while True:
led.on()
sleep(1)
led.off()
sleep(1)
Slide 5
Slide 5 text
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
Slide 6
Slide 6 text
LED + Button
from gpiozero import LED, Button
led = LED(17)
button = Button(3)
button.when_pressed = led.on
button.when_released = led.off
Slide 7
Slide 7 text
Motion sensor
from gpiozero import LED, MotionSensor
led = LED(2)
sensor = MotionSensor(3)
sensor.when_motion = led.on
sensor.when_no_motion = led.off
Slide 8
Slide 8 text
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
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)
Slide 11
Slide 11 text
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)
Slide 12
Slide 12 text
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)
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
Slide 15
Slide 15 text
GPIO Zero - beta
●
www.pythonhosted.org/gpiozero
– Installation instructions
– Documentation
– Examples
●
Google Doc (linked from documentation)
– Suggestions
– Feedback
●
Contact me
– [email protected]
– @ben_nuttall on Twitter
●
#gpiozero on Twitter