Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Physical computing with Scratch and Python

Physical computing with Scratch and Python

Physical computing with Raspberry Pi using Scratch and Python with GPIO Zero

A1995c9abe48450ce2f82d93ca0b863f?s=128

Ben Nuttall

March 21, 2016
Tweet

More Decks by Ben Nuttall

Other Decks in Education

Transcript

  1. Physical Computing with Scratch and Python

  2. None
  3. Boot the Pi and open Scratch

  4. GPIO Server • GPIO Server On

  5. Broadcast • configXout • gpioXon • gpioXoff • wait X

    secs • forever Component GPIO pin Red LED 25 Amber LED 8 Green LED 7 Buzzer 15
  6. Close Scratch and open Python 3

  7. Open a new file • File > New File •

    File > Save • Save as camjam.py
  8. GPIO Zero LED from gpiozero import LED led = LED(25)

    while True: led.on() sleep(1) led.off() sleep(1) Save and run: Ctrl + S F5
  9. GPIO Zero LED from gpiozero import LED led = LED(25)

    led.blink()
  10. GPIO Zero Button + LED from gpiozero import Button, LED

    button = Button(21) led = LED(25) while True: button.wait_for_press() led.on() button.wait_for_release() led.off()
  11. GPIO Zero Button + LED from gpiozero import Button, LED

    button = Button(21) led = LED(25) while True: led.on() button.wait_for_press() led.off() button.wait_for_release()
  12. GPIO Zero Button + LED from gpiozero import Button, LED

    button = Button(21) led = LED(25) while True: led.blink() button.wait_for_press() led.off() button.wait_for_release()
  13. Traffic Lights from gpiozero import Button, TrafficLights button = Button(21)

    lights = TrafficLights(25, 8, 7) while True: button.wait_for_press() lights.on() button.wait_for_release() lights.off()
  14. Traffic Lights from gpiozero import Button, TrafficLights button = Button(21)

    lights = TrafficLights(25, 8, 7) while True: lights.blink() button.wait_for_press() lights.on() button.wait_for_release()
  15. Traffic Lights from gpiozero import Button, TrafficLights, Buzzer from time

    import sleep button = Button(21) lights = TrafficLights(25, 8, 7) buzzer = Buzzer(15) while True: lights.on() buzzer.off() button.wait_for_press() lights.off() buzzer.on() button.wait_for_release()
  16. Traffic Lights while True: lights.green.on() sleep(1) lights.amber.on() sleep(1) lights.red.on() sleep(1)

    lights.off()
  17. Traffic Lights while True: button.wait_for_press() lights.green.on() sleep(1) lights.amber.on() sleep(1) lights.red.on()

    sleep(1) lights.off()
  18. Traffic Lights Sequence • Can you make a full traffic

    lights sequence? • Use the button for a pedestrian crossing • Use buzzer.beep() to indicate safe crossing
  19. Documentation and help guides • raspberrypi.org/documentation/usage/scratch/gpio • gpiozero.readthedocs.org • raspberrypi.org/resources

    • raspberrypi.org/education/downloads
  20. Physical Computing with Scratch and Python