L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1...

29
B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley [email protected] IoT49: Python Primer

Transcript of L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1...

Page 1: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 1

Electronics for IoT

Python Primer

Bernhard E. BoserUniversity of California, Berkeley

[email protected]

IoT49: Python Primer

Page 2: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 2

Last Time

IoT49: Python Primer

Page 3: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 3

Programming

• Assembly

• C

• Python

IoT49: Python Primer

Page 4: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 4

Python

IoT49: Python Primer

Page 5: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 5

Python

IoT49: Python Primer

Page 6: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 6

Python

IoT49: Python Primer

Page 7: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 7

Python

IoT49: Python Primer

Page 8: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 8

Runs “everywhere”

• PC, Mac, Linux, ESP32, …

• Versions:– Python 2.7– Python 3.4+

• MicroPython (missing some libraries, adding others)• Use Python 3 on host!• Most glaring difference:

IoT49: Python Primer

print “Hello World!”print(“Hello World!”)

Page 9: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 9

OS

• Windows, MacOS, Linux, …

• What’s the OS on the ESP32?– None! (almost, FreeRTOS)

• REPL– Read evaluate print loop– Like a command window,

but speaks “Python” rather than bash, …

IoT49: Python Primer

Page 10: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 10

Laptop …

IoT49: Python Primer

Page 11: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 11

Web … (http://repl.it)

IoT49: Python Primer

Page 12: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 12

ESP32 Microcontroller

IoT49: Python Primer

Page 13: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 13

Python Docs

IoT49: Python Primer

Page 14: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 14

Python Docs

IoT49: Python Primer

Page 15: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 15

Python Docs

• 13 MBytes (compressed)

• I have not read it either!

IoT49: Python Primer

Page 16: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 16

How to survive EE49 …

• … if I never programmed Python before– My situation 12 month ago!

IoT49: Python Primer

Page 17: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 17

Python for EE49

• Basic stuff– print, comments

• Data Types– Numbers, strings, list, dict– Indexing

• Expressions

• Variables

• Statements– If, for, while

• Library– Import

• Functions

IoT49: Python Primer

Page 18: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 18

Examples …

IoT49: Python Primer

Page 19: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 19

Examples

• Numbers

• Even/odd

• Division

• ints, floats

• Conversion, int, round

• Libraries: e.g. math.sin, math.pi

IoT49: Python Primer

Page 20: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 20

Editors – Plain Vanilla

IoT49: Python Primer

Page 21: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 21

Editors – Syntax Highlighting

IoT49: Python Primer

Page 22: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 22

Editors - IDE

IoT49: Python Primer

Page 23: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 23

Choices, choices …

IoT49: Python Primer

Page 24: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 24

More Python

IoT49: Python Primer

https://docs.python.org/3/tutorial/

Page 25: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 25

Exercises

IoT49: Python Primer

http://www.practicepython.org

Page 26: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 26

Help

IoT49: Python Primer

Page 27: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 27

Blinking LED

IoT49: Python Primer

Page 28: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 28

Microcontroller I/O

IoT49: Python Primer

Page 29: L02 Python Primer - People @ EECS at UC Berkeleyboser/courses/49... · 2018-01-18 · B. E. Boser 1 Electronics for IoT Python Primer Bernhard E. Boser University of California, Berkeley

B. E. Boser 29

Next Lecture

• Electricity!

IoT49: Python Primer