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

preso.pdf

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Nina Zakharenko Nina Zakharenko
May 05, 2019
2.8k

 preso.pdf

Avatar for Nina Zakharenko

Nina Zakharenko

May 05, 2019
Tweet

Transcript

  1. ➜ whoami? » long time software engineer » newly minted

    hardware enthusiast Python at Microsoft: aka.ms/pycon2019 @nnja
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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/
  8. 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
  9. # 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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.
  16. 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
  17. 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
  18. Microsoft Make Code » ✨ Coding not required ✨ »

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

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

    interesting. microbit.org/en/2017-07-07-bbc-stats/
  21. Find projects · Adafruit Guides · Microsoft Make Code ·

    Instructables ← solder-free Circuit PlayGround Express Jack-o- Lantern learn.adafruit.com/circuit-playground-jack-o-lantern
  22. 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
  23. CircuitPython at PyCon? Today: Open space room 22 @ 5pm

    Tomorrow: CircuitPython Sprints @ 9am @nnja
  24. 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