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

GPIO Zero with CamJam Edu Kit 1

GPIO Zero with CamJam Edu Kit 1

Physical computing Raspberry Pi workshop using the CamJam Edu Kit 1 with Python and GPIO Zero. Workshop given at the Raspberry Pi Birthday Party.

Ben Nuttall

March 06, 2016
Tweet

More Decks by Ben Nuttall

Other Decks in Education

Transcript

  1. GPIO Zero
    with CamJam Edu Kit 1
    Introducing the GPIO Zero library with
    simple components from the CamJam Edu Kit

    View Slide

  2. View Slide

  3. Boot the Pi and open Python 3

    View Slide

  4. Open a new file

    File > New File

    File > Save

    Save as camjam.py

    View Slide

  5. GPIO Button
    from gpiozero import Button
    button = Button(21)
    while True:
    print(button.is_pressed)
    Save and run:
    Ctrl + S
    F5

    View Slide

  6. GPIO Button
    from gpiozero import Button
    button = Button(21)
    while True:
    if button.is_pressed:
    print("Hello")
    else:
    print("Goodbye")

    View Slide

  7. GPIO Zero Button
    from gpiozero import Button
    button = Button(21)
    while True:
    button.wait_for_press()
    print("Pressed")
    button.wait_for_release()
    print("Released")

    View Slide

  8. 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()

    View Slide

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

    View Slide

  10. 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()

    View Slide

  11. 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()

    View Slide

  12. 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()

    View Slide

  13. 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:
    button.wait_for_press()
    lights.off()
    buzzer.on()
    button.wait_for_release()
    lights.on()
    buzzer.off()

    View Slide

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

    View Slide

  15. 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()

    View Slide

  16. 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

    View Slide

  17. Documentation and help guides

    gpiozero.readthedocs.org

    raspberrypi.org/resources

    raspberrypi.org/education/downloads

    View Slide

  18. GPIO Zero
    with CamJam Edu Kit 1
    Introducing the GPIO Zero library with
    simple components from the CamJam Edu Kit

    View Slide