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

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