$30 off During Our Annual Pro Sale. View Details »

Python Picamera with GPIO Zero

Python Picamera with GPIO Zero

Picamera workshop given at Pi Towers Raspberry Jam, October 2016

Ben Nuttall

October 15, 2016
Tweet

More Decks by Ben Nuttall

Other Decks in Programming

Transcript

  1. Python Picamera
    with GPIO Zero
    Introducing the camera board
    and Python module

    View Slide

  2. Raspberry Pi camera module
    - 5Mpx / 8Mpx
    - Full HD
    - Photo & video
    - Command line
    - Python module
    - Infra-red camera

    View Slide

  3. Connect the camera

    View Slide

  4. Add a GPIO Button

    View Slide

  5. Boot the Pi and open Python 3

    View Slide

  6. IDLE Python Shell
    >>> from picamera import PiCamera
    >>> from gpiozero import Button
    >>> camera = PiCamera()
    >>> button = Button(17)
    >>> button.when_pressed = camera.start_preview
    >>> button.when_released = camera.stop_preview

    View Slide

  7. Open a new file

    File > New File

    File > Save

    Save as camera.py

    View Slide

  8. Take a selfie
    from picamera import PiCamera
    from time import sleep
    camera = PiCamera()
    camera.start_preview()
    sleep(3)
    camera.capture("/home/pi/image.jpg")
    camera.stop_preview()
    Save and run:
    Ctrl + S
    F5

    View Slide

  9. Add GPIO Button code
    from picamera import PiCamera
    from gpiozero import Button
    from time import sleep
    camera = PiCamera()
    button = Button(17)
    camera.start_preview()
    button.wait_for_press()
    sleep(3)
    camera.capture("/home/pi/button.jpg")
    camera.stop_preview()

    View Slide

  10. Add a loop
    camera.start_preview()
    for i in range(5):
    button.wait_for_press()
    sleep(3)
    camera.capture("/home/pi/button%s.jpg" % i)
    camera.stop_preview()

    View Slide

  11. Picamera effects

    View Slide

  12. Picamera effects
    camera.start_preview()
    button.wait_for_press()
    camera.image_effect = 'negative'
    sleep(5)
    camera.capture("/home/pi/negative.jpg")
    camera.stop_preview() Try more effects:
    - negative
    - colorswap
    - sketch
    - emboss

    View Slide

  13. Picamera effects
    import random
    camera.start_preview()
    for i in range(5):
    button.wait_for_press()
    effect = random.choice(list(camera.IMAGE_EFFECTS))
    camera.image_effect = effect
    camera.annotate_text = effect
    sleep(5)
    camera.capture("/home/pi/%s.jpg" % effect)
    camera.stop_preview()
    Try more effects:
    - negative
    - colorswap
    - sketch
    - emboss

    View Slide

  14. Documentation and help guides

    picamera.readthedocs.io

    gpiozero.readthedocs.io

    raspberrypi.org/resources

    raspberrypi.org/education/downloads

    View Slide

  15. What next?

    Time-lapse

    Stop motion animation

    Wildlife camera

    View Slide

  16. What next?

    Sensor trigger

    Send to social media

    Robotics

    View Slide