Day 1: (Mon Aug 29, 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

  1. 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 2022 Skill Survey if you haven’t already. This should just take a few minutes.

  3. Please fill out the CKS F22 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# pico_blink.py
 2
 3# Raspberry Pi Pico - Blink demo
 4
 5# Blink the onboard LED and print messages to the serial console.
 6
 7import board
 8import time
 9from digitalio import DigitalInOut, Direction, Pull
10
11#---------------------------------------------------------------
12# Set up the hardware: script equivalent to Arduino setup()
13# Set up built-in green LED
14led = DigitalInOut(board.LED)  # GP25
15led.direction = Direction.OUTPUT
16
17#---------------------------------------------------------------
18# Run the main loop: script equivalent to Arduino loop()
19
20while True:
21    led.value = True
22    print("On")
23    time.sleep(1.0)
24
25    led.value = False
26    print("Off")
27    time.sleep(1.0)