Day 1: (Mon Aug 30, Week 1) Welcome!

Please bookmark this site: https://courses.ideate.cmu.edu/16-223

Agenda

  1. Welcome!

    • What is IDeATe?

    • What is Physical Computing? What is a kinetic system?

    • Project focus: marble machines

    • Unspoken prerequisites.

    • 16-223 is a good portal for the IDeATe Physical Computing Minor

  2. Administrative

  3. In-class

    1. Mutual introductions, In-Class Exercise: Interview Game.

    2. Brief introduction to the Raspberry Pi Pico and CircuitPython.

    3. Each person pick up a Pico and a USB cable.

    4. Installing the Mu Python Editor.

    5. Crash course in CircuitPython basics.

    6. Please return the Pico and cable if you don’t expect to be continuing in the course.

    7. Introduce short programming assignment.

New Assignments

  1. Please write a variation of the pico_blink.py program (below) to produce a rhythmic pattern of your choice to be demonstrated at the start of the next class.

  2. Please complete the CKS Fall 2021 Skill Survey if you haven’t already. This should just take a few minutes.

  3. Please fill out the office hours poll if you haven’t already.

  4. Please complete laser-cutter training as soon as possible if you have not already done so. Note that we will soon have assignments requiring access, and you are responsible for ensuring your qualification. There are three parts:

    For more details: IDeATe Laser Cutter Policies, IDeATe Laser Cutter Overview

Figures

../_images/Pico.jpg ../_images/Pico-R3-SDK11-Pinout.png

Lecture code samples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# pico_blink.py

# Raspberry Pi Pico - Blink demo

# Blink the onboard LED and print messages to the serial console.

import board
import time
from digitalio import DigitalInOut, Direction, Pull

#---------------------------------------------------------------
# Set up the hardware: script equivalent to Arduino setup()
# Set up built-in green LED
led = DigitalInOut(board.LED)  # GP25
led.direction = Direction.OUTPUT

#---------------------------------------------------------------
# Run the main loop: script equivalent to Arduino loop()

while True:
    led.value = True
    print("On")
    time.sleep(1.0)

    led.value = False
    print("Off")
    time.sleep(1.0)