Creative Embedded Systems (Spring 2023)

Modules will be added as we go through the course. You may find the material from previous years helpful as a guide. Note that the course has been reworked from last year’s iteration of the course. As such, we will follow a different schedule, including in some cases covering different topics and assignments.

You can find the syllabus here

parts list

slides

lecture 1

lecture 2

Module 1

Generative Art

ESP32 TTGO T-Display demo (I probably should re-record this one - until then, be sure to watch the whole video. there is a bit of non-linear storytelling here)

The following link shows how to build a simple API service that allows your ESP32 to react to some remote user input (e.g. a user presses a button in their browser on their phone/laptop). This will be used as an on/off switch.

wireless api example

turn off the display

Module 2

Module 2 has two parts. In part 1, we build an interactive device and connect it with a wire to our laptop. In part 2, we first upgrade our device to send messages wirelessly over a direct UDP connection, then we upgrade to a MQTT connection using AWS IoT Core.

Interactive Devices

The below links shows how to get data from the ESP32, over a wire, to your computer and visualize/sonify that data.

Serial: Arduino->Python

WebSerial Visual

WebSerial Visual (Three.js)

WebSerial Audio

The below links show how to get data from the ESP32 to your computer over wifi. These connects are not “space decoupled” in that each device needs to be aware of the others virtual location (through an IP adrress). MQTT addresses this limitation.

ESP32 Station mode

ESP32 Client mode

Module 3

Distributed Systems

Module 4

Final Project