Teach, Learn and Make with Raspberry Pi - Estonia seminar

A1995c9abe48450ce2f82d93ca0b863f?s=47 Ben Nuttall
September 08, 2015

Teach, Learn and Make with Raspberry Pi - Estonia seminar

Exploring teaching computing and informatics through physical computing with the Raspberry Pi

A1995c9abe48450ce2f82d93ca0b863f?s=128

Ben Nuttall

September 08, 2015
Tweet

Transcript

  1. Teach, Learn and Make with Raspberry Pi Ben Nuttall Raspberry

    Pi Foundation UK Charity 1129409
  2. Raspberry Pi Foundation • Registered UK charity 1129409 • Founded

    in 2009 to aid computing education • On general sale since 2012, available to all worldwide – Sold to education, industry and hobbyists – Sold 6 million to date • Free learning resources for makers and educators • Free teacher training - Picademy (currently UK, soon USA)
  3. Ben Nuttall • Education Developer Advocate at the Raspberry Pi

    Foundation – Software & project development – Learning resources & teacher training – Outreach • Hobbyist turned employee • Based in Cambridge, UK • @ben_nuttall on Twitter
  4. Raspberry Pi • Sonic Pi • Python • Physical computing

    • Minecraft: Pi Edition • Picamera • Astro Pi
  5. Sonic Pi • Sound synthesiser for creating music • Audible

    computing • Uses simple syntax text-based programming language Ruby • Used for compositions and live coding performances • Introduce computing concepts through music • Created especially for education
  6. Python • Powerful extensible programming language • Easy to read

    and write • Make software, games, GUIs, websites, robots and more • Ideal for physical computing • Extensive library of additional modules for Raspberry Pi hardware • Recommended for education
  7. Physical computing • Flashy lights • Motors & robots •

    Photo & video • Sensors • Internet of Things • Engaging and empowering
  8. 3V3 = always on

  9. GPIO = user controllable

  10. Flash LED with Python from RPi import GPIO from time

    import sleep GPIO.setmode(GPIO.BCM) led = 2 GPIO.setup(led, GPIO.OUT) while True: GPIO.output(led, True) sleep(1) GPIO.output(led, False) sleep(1)
  11. Traffic Lights from RPi import GPIO from time import sleep

    GPIO.setmode(GPIO.BCM) red = 9 yellow = 10 green = 11 leds = [red, yellow, green] for led in leds: GPIO.setup(led, GPIO.OUT) GPIO.output(green, True) GPIO.output(yellow, False) GPIO.output(red, False)
  12. Traffic Lights while True: sleep(10) GPIO.output(green, False) GPIO.output(yellow, True) sleep(1)

    GPIO.output(yellow, False) GPIO.output(red, True) sleep(10) GPIO.output(yellow, True) sleep(1) GPIO.output(green, True) GPIO.output(yellow, False) GPIO.output(red, False)
  13. An alternative approach class LED(object): def __init__(self, pin): self.pin =

    pin GPIO.setup(pin, GPIO.OUT) def on(self): GPIO.output(self.pin, True) def off(self): GPIO.output(self.pin, False) red = LED(9) yellow = LED(10) green = LED(11)
  14. An alternative approach green.on() yellow.off() red.off() while True: sleep(10) green.off()

    yellow.on() sleep(1) yellow.off() red.on() sleep(10) yellow.on() sleep(1) green.on() yellow.off() red.off()
  15. Traffic Lights green.on() yellow.off() red.off() sleep(10)

  16. Traffic Lights green.off() yellow.on() sleep(1)

  17. Traffic Lights yellow.off() red.on() sleep(10)

  18. Traffic Lights yellow.on() sleep(1)

  19. Traffic Lights green.on() yellow.off() red.off()

  20. Minecraft: Pi Edition • Free version of Minecraft on Raspberry

    Pi • Python programming interface • Learn Python by building things and making games in Minecraft • Creative computing
  21. Flowers from mcpi.minecraft import Minecraft from time import sleep mc

    = Minecraft.create() flower = 38 while True: x, y, z = mc.player.getPos() mc.setBlock(x, y, z, flower) sleep(0.1)
  22. Planting flowers grass = 2 flower = 38 while True:

    x, y, z = mc.player.getPos() # player position (x, y, z) block_beneath = mc.getBlock(x, y­1, z) # block ID if block_beneath == grass: mc.setBlock(x, y, z, flower) else: mc.setBlock(x, y­1, z, grass) sleep(0.1)
  23. Picamera • Official Raspberry Pi camera module • Command line

    interface for basic use • Python programming interface for projects • Still pictures, video, time- lapse
  24. Camera preview • Open Terminal window • raspistill -k

  25. Python – take a selfie from picamera import PiCamera from

    time import sleep with picamera.PiCamera() as camera: camera.start_preview() sleep(5) camera.capture('/home/pi/image.jpg') camera.stop_preview()
  26. Python – stop motion with picamera.PiCamera() as camera: camera.start_preview() frame

    = 1 while True: next = input('Press Enter to continue...') camera.capture('/home/pi/animation/frame%03d.jpg' % frame) frame += 1
  27. Astro Pi

  28. Sense HAT • 8x8 RGB LED matrix • Mini joystick

    • Gyroscope • Accelerometer • Magnetometer • Temperature sensor • Barometric pressure sensor • Humidity sensor
  29. Sense HAT - Python from sense_hat import SenseHat sense =

    SenseHat() sense.show_message('Hello world!')
  30. More examples https://github.com/RPi­Distro/python­sense­ hat/tree/master/examples https://github.com/bennuttall/sense­hat­examples

  31. Resources https://www.raspberrypi.org/resources/

  32. Teach, Learn and Make with Raspberry Pi Ben Nuttall Raspberry

    Pi Foundation UK Charity 1129409