EE185/EE285/CS241: Embedded Systems Workshop (Interactive Light Sculpture)
|
|
|
As part of celebrating the 125th anniversary
of Stanford's Electrical Engineering department,
we are
designing, engineering and installing an interactive light sculpture
in the 3-story glass stairwell of the Packard building. The sculpture will remain in Packard for 3-5 years,
allowing refinement, exploration of new engineering ideas, and new interactions.
The piece, titled FLIGHT,
is artistically designed by Charles Gadeken, a local light sculpture artist
whose pieces have been installed in Palo Alto,
San Francisco, Reno, Los Altos, Calabasas, and Robina (Australia). His most recent installation is
Entwined Elder Mother in Golden Gate Park. FLIGHT represents the past, present, and
future of the EE department as 76 moving shapes made of dichroic acrylic so they change color in the light;
each of these Fractal Flyers is individually programmable and represents an important part of the
department's past and present.
You can see the current state and design
of the Flyer and supporting software on the course git
repository.
In Autumn 2024, the class will focus on five projects. The emphasis in the course is
engineering: designing and defining processes that predictably create artifacts that meet
requirements. Because there are 76 Fractal Flyers and they will be installed for years, each one needs
to be robust and require very little maintenance. The five projects are:
- Body shell: The internals (motors, circuit board, etc) of a Fractal Flyer are covered
by an acrylic shell that clips onto the flyer. The shell is vacuum formed into the right shape then
laser cut into the right profile. In the last offering of the course, students decided on and sourced
acrylic, helped bring a vacuum former up in Lab64, developed and documented a vacuum forming process,
and formed a handful of body shells. In this quarter, students will vacuum form all of the bodies,
laser cut the bodies out of their sheets, finalize the gasket that attaches to the body shell,
test the body attachment hardware, and complete the body shells. They will also make the internal
acrylic structure that the internal body LEDs hang on. Students on this project will learn
about CAD, vacuum forming, laser cutting, and LED diffusion.
- Top plate and shafts: The top plate is the sheet of rigid aluminum that all of the parts of a flyer
attach to. It matches the outline of the body shell and defines the placement of all of the
other components. In this quarter, students will finalize the top plate dimensions and layout of
the mechanical and electrical components within the flyer. Once the top plate is finalized,
students will cut them out using Lab64's laser cutters. This group will also make the 4 shafts of
Flyers (two motor, two wing), which involves cutting shafts to length and drilling holes to lock
the wing leaves to shaft motion. Students on this project will learn about CAD, laser cutting,
mechanical precision, and mechanical design.
- Software: There are three major parts to FLIGHT's software: the firmware running on a Flyer,
the Java-based control software that sends commands to the flyers, and Linux kernel configuration for naming
and communicating with the flyers. In the previous offering of the class, students completed the Linux
configuration, tuned a PID loop in the firmware to control wing motion, and redesigned the Java software.
In this quarter, students will design and test a firmware image that allows Flyers to initialize on boot
and receive commands from the Java software, complete the Java software, and demonstrate end-to-end
control of a Flyer from a PC. Students working on this project will learn about graphical toolkits
for art visualizations, low-level firmware, embedded Python interpreters, Linux devices, and USB.
- Circuit boards: Every Flyer has a custom PCB that distributes power and connects its processor
to its motors, LEDs, and sensors. In the previous offering of the class, students completed this board,
brought it up, and tested it. This quarter, students will populate the boards, either with the pick-and-place
machines in Lab64, or by working with an external contractor to do so. They will test the boards
and verify they are all working correctly before installation in the Flyers. Students
working on this project will learn about PCB manufacturing, PCB assembly, circuit bring-up,
circuit testing, and power conversion.
- Signaling: The Fractal flyers appear to a PC as USB devices which the FLIGHT control
software can send Python commands to over a serial port. FLIGHT uses a non-standard cabling setup
for USB: it sends the data on a twister pair in an Ethernet cable, rather than a USB cable. There
are several low-level technical details about doing this, which the signaling path needs to
correctly handle such that the PC has robust, reliable connectivity with Flyers. In the previous
offering of the class, students were able to achieve reliable communication at up to 50 feet
using only passive components. In this quarter, students will determine if we can achieve 100
feet with passive components or need to use active USB protocol processors in the signaling
path. They will design, test, and build the signaling boards at both ends of the communication
path (flyer and PC). Some
students in this project need to have experience with signals, communication, and circuits
(e.g., EE102B, EE114, EE133, EE142, EE156, EE179, EE242). Students in this group will learn
about a complete communication stack, from text on a PC, to USB enumeration and endpoints, to USB
framing, to USB modulation, to signal propagation, signal integrity, demodulation, and
protocol processing.
Students
fill out a questionaire in the first day of class to describe their background and
group preferences and we will assign you to groups by the second day of class (Thursday
9/26).
Course enrollment is limited to 25 students. If enrollment reaches this
cap the instructors will use the questionnaire on the first day to select who may take the course.
The goal of selection is to have a diverse group that has a mix of relevant
skills and backgrounds.
The difference between EE185 and EE285/CS241 is the complexity of work.
Students taking EE185 are expected to be an integral part of their project
team and make several engineering contributions. Students taking EE285/CS241
are expected to do more design work and analysis of the tradeoffs involved.
|
|
|