preso.pdf

E84b0476f3dc431aac7c8f5c71ed032b?s=47 Nina Zakharenko
May 05, 2019
1.4k

 preso.pdf

E84b0476f3dc431aac7c8f5c71ed032b?s=128

Nina Zakharenko

May 05, 2019
Tweet

Transcript

  1. Slides: bit.ly/pythonhardware Nina Zakharenko @nnja Light Up Your Life --

    With Python & LEDs! @nnja
  2. #PyCon2019 @nnja Livetweet @nnja

  3. Software doesn't have to be serious @nnja

  4. (Hardware doesn't have to be serious either) @nnja

  5. None
  6. ➜ whoami? » long time software engineer » newly minted

    hardware enthusiast Python at Microsoft: aka.ms/pycon2019 @nnja
  7. Python on hardware? Photo by David Clode on Unsplash @nnja

  8. Look in your swag bag !"# @nnja

  9. a few other devices that run python

  10. HalloWing m0 - (a spooky development kit) @nnja

  11. MicroPython & CircuitPython » MicroPython is a variant of Python

    3 designed to run of microcontrollers. » Runs within just 256k of code space and 16k of RAM. » CircuitPython is an education friendly Adafruit fork of MicroPython » Both are open source! @nnja
  12. Adafruit Circuit PlayGround Express Learning Platform - Cost: $25-> @nnja

  13. Python's Batteries Included Philosophy “The Python distribution has maintained the

    philosophy of "batteries included" -- having a rich and versatile standard library which is immediately available, without making the user download separate packages. This gives the Python language a head start in many projects.” PEP 206
  14. Circuit Playground Express Tour @nnja

  15. How do we Light up RGB LEDs? @nnja

  16. RGB LEDs RGB LEDs have one LED of each color

    - red, green, and blue. By combining the amount and intensity of these three colors (255 * 255 * 255) you can produce over 16 million color variations! image: randomnerdtutorials.com
  17. @nnja

  18. @nnja

  19. @nnja

  20. @nnja

  21. @nnja

  22. How do we program it? » Plug it in with

    a data + charge USB cable » See a CircuitPython drive? » on Mac OS in /Volumes/CIRCUITPY » Otherwise, install CircuitPython » Create or edit a code.py (or main.py) file in the root directory. » ! Your code reloads & runs instantly! @nnja
  23. from adafruit_circuitplayground.express import cpx RED = (255, 0, 0) cpx.pixels.brightness

    = 0.1 while True: # Keep looping forever.. cpx.pixels.fill(RED) @nnja
  24. from adafruit_circuitplayground.express import cpx cpx.button_a # Button A Pressed? True

    or False cpx.button_b # Button B Pressed? True or False learn.adafruit.com/circuitpython-made-easy-on-circuit-playground-express/
  25. from adafruit_circuitplayground.express import cpx RED = (255, 0, 0) BLUE

    = (0, 0, 255) cpx.pixels.brightness = 0.1 while True: # Keep looping forever... if cpx.button_a: cpx.pixels.fill(RED) elif cpx.button_b: cpx.pixels.fill(BLUE) else: cpx.pixels.fill(0) @nnja
  26. # Cycle between Red, Green, Blue each time a button

    is pressed from adafruit_circuitplayground.express import cpx import time RED = (255, 0, 0) # 255 Red, 0 Green, 0 Blue GREEN = (0, 255, 0) # 0 Red, 255 Green, 0 Blue BLUE = (0, 0, 255) # 0 Red, 0 Green, 255 Blue cpx.pixels.brightness = 0.1 my_colors = [RED, GREEN, BLUE] color_pos = 0 while True: # Keep looping forever... cpx.pixels.fill(my_colors[color_pos]) if cpx.button_a or cpx.button_b: # Button A or B was pressed color_pos = (color_pos + 1) % len(my_colors) time.sleep(0.2) # Sleep, to make the button less sensitive
  27. @nnja

  28. I ! Programming with Visual Studio Code + The Python

    Extension $ # To open on Mac OS $ code /Volumes/CIRCUITPY/ Note: Visual Studio Code and the Python extension is made by Microsoft @nnja
  29. Programming with Mu Editor: a simple Python editor for beginner

    programmers
  30. Investigating with print() my_colors = [("Red", RED), ("Green", GREEN), ("Blue",

    BLUE)] color_pos = 0 while True: # Keep looping forever... name, color = my_colors[color_pos] cpx.pixels.fill(color) if cpx.button_a or cpx.button_b: # Button A or B was pressed color_pos = (color_pos + 1) % len(my_colors) next_name, _ = my_colors[color_pos] print("Changing color from %s to %s" % (name, next_name)) time.sleep(0.2) # Sleep, to make the button less sensitive @nnja
  31. View print outs & errors via the serial console »

    To see print()s or errors, you need to receive output from the Circuit Playground Express by opening a connection to the serial console. » ! You won't see any output without it. @nnja
  32. easy serial console: with mu editor The easiest way to

    connect to the serial console is the serial button in the mu editor toolbar. @nnja
  33. advanced serial console: the terminal On Mac OS, can use

    the terminal and screen program to connect to the serial console on the Circuit Playground Express. $ ls /dev/tty.* # Select the usbmodem $ screen /dev/tty.usbmodem141401 # yours will be different! To quit screen, press ctrl+a followed by k @nnja
  34. None
  35. Powering Your Projects [1/2] » micro USB (same port for

    power & programming) » from a computer, portable phone charger, or wall » battery packs (JST connector) » need minimum 3.5V DC. Power with 3 household AAA batteries + enclosure with correct connector.
  36. Powering Your Projects [2/2] » lithium polymer (li-poly) batteries »

    warning: only for advanced users » small, lightweight, energy dense, fragile » needs special care! » don't heat, puncture, or bend » ! for kids w/o supervision » requires special charging
  37. Putting it all together » Adafruit demo code: bit.ly/initial_cpe »

    Demo covers majority of features, prints sensor readings, etc. » Flag you can set to turn the Circuit Playground Express into a piano ! using capacitive touch pads! ✨ @nnja
  38. Microsoft Make Code » ✨ Coding not required ✨ »

    ✨ Hardware not required ✨ » (incudes built in emulator) makecode.adafruit.com @nnja
  39. 90% of students said the micro:bit showed them that anyone

    can code. microbit.org/en/2017-07-07-bbc-stats/
  40. 86% of students said the micro:bit made Computer Science more

    interesting. microbit.org/en/2017-07-07-bbc-stats/
  41. microbit.org/en/2017-07-07-bbc-stats/

  42. Let's make new clubhouses Leah Buechley and Benjamin Mako Hill

    - LilyPad in the Wild
  43. Find projects · Adafruit Guides · Microsoft Make Code ·

    Instructables ← solder-free Circuit PlayGround Express Jack-o- Lantern learn.adafruit.com/circuit-playground-jack-o-lantern
  44. Anybody can learn! Start with an Hour of Code. http:/

    /code.org © Code.org. Code.org®, the CODE logo and Hour of Code™ are trademarks of Code.org “You can be a creator and an artist, not just a consumer.” Madison Maxey, founder of Loomia, a smart-fabric technology company madisonmaxey.com
  45. @the_gella Maker: Angela Sheehan - gellacraft.com

  46. @nnja

  47. github.com/nnja/pyearrings

  48. Our inventions mirror our secret wishes. -- Lawrence Durrell Photo

    by Pepe Reyes on Unsplash
  49. start something new... @nnja

  50. ... (almost new) ! @nnja

  51. Share your projects: #PythonHardware @nnja

  52. CircuitPython at PyCon? Today: Open space room 22 @ 5pm

    Tomorrow: CircuitPython Sprints @ 9am @nnja
  53. ! " bit.ly/python-class @nnja

  54. Thank You! @nnja Slides: bit.ly/pythonhardware *Additional resources on the next

    slide
  55. Resources » Circuit PlayGround Express Library - learn.adafruit.com/circuitpython-made-easy-on- circuit-playground-express/ »

    Circuit Python Essentials - cdn-learn.adafruit.com/downloads/pdf/circuitpython- essentials.pdf » AdaFruit Python Compatible m0 www.adafruit.com/?q=m0 and m4 www.adafruit.com/?q=m4 @nnja