Teaching Snapshot: ECE 3400 Intelligent Physical Systems
ECE 3400 has changed hands several times over the years, each instructor putting their own mark on the class. Now called Intelligent Physical Systems, ECE 3400 students learn to tie the fundamental principles of ECE across virtual and physical boundaries to create autonomous robots able to perceive, reason about and act upon their environment. In teams of five or six, students design and fabricate a robot able to navigate and map out a maze and find treasures in the shortest possible time, while wirelessly transmitting the progress of the robot to a base station that displays their progress on a screen.
Course topics include microcontrollers, field programmable gate arrays (FPGAs), wireless communication, sensors, signal processing, actuators, power, algorithms and mechanics. Throughout the class, students learn the value and trade-offs between theory, simulation and physical implementations, and gain familiarity with rapid prototyping techniques, system debugging, team work, leadership skills, time management and how to disseminate work to an online audience.
Between course development and teaching, as well as a busy research lab, Assistant Professor Kirstin Petersen was able to find time throughout the semester to update ECE Connections on her new approach. Here are her updates:
We have 98 students right now and they’re still showing up to class, which is nice because lectures are not mandatory. The class is very much about teamwork, so we’ve been stressing that point. We made very deliberate teams according to the Belbin test with the help of Kathy Dimiduk from the Center for Teaching Excellence. An algorithm was written to create teams that included someone with each personality type, as well as gender and minority status, so we have a whole range of diversity on each team. The teams are also made aware of their strengths and weaknesses so that they can address them openly throughout the semester.
This week they’re starting their first lab, setting up with Arduino, putting together robots. I gave a hands-on lecture last week where we took the simplest possible Arduino program and took it apart all the way down to low-level setup of timers and memory allocation. I showed them all the things that go on behind the curtain. They may never touch this again, but they’re ECE students, and they should know the foundations so they can build on them.
Next week my TAs are reviewing sensors and analog circuitry. It’s going to be interactive—we’re actually going to bring in an oscilloscope, try out the sensors, show the signals, and discuss interface with the Arduino, signal-to-noise ratio, amplification, filters and similar. We’re encouraging everyone to get their hands dirty. We want them to just dive in and do it.
We now have 17 robots running (out of 17 teams), all of them are doing line following and some can detect a cross section, so they are starting to get smarter. This week the students are starting to implement analog circuits, amplifiers and digital filters, which will allow the robots to distinguish between treasures at different frequencies.
A single lab assignment is not enough for six students to engage at once. Instead, we have divided the assignments into two similar, but different tasks that will bring the teams closer to their final robot. Right now, one sub team is working on detecting treasures and the other sub team is on audio—the robot has to detect an audible start signal of a specific frequency to start the maze. Students are starting to realize that memory on board a tiny embedded processor is not the same as it is on their computer; these and other constraints from the embedded system are teaching them to write more efficient software.
We’re trying to show students different areas of the department as well. We invited different teachers to come and give a lecture related to future relevant 3- and 4000 level courses. For example, ECE Senior Lecturer Joe Skovira just gave a pitch on ECE 5725 Design with Embedded Operating Systems. Tomorrow, one of my TAs will give a lecture that is more applied to answer questions like, “If I program my robot in this way, it takes up all of the memory. How do I manage memory and write a clean software architecture?”
The teams all have clever robots now that can drive around and navigate the maze grid. They have their analog circuitry done, so they can sense walls, they can see treasures from far away, they can hear the start signal. Senior Lecturer Bruce Land gave the first lecture on field-programmable gate arrays (FPGA) last week and everyone loves him. The following day one of my TAs gave a lecture on how to make the FPGA work with the screen, so that is what all the students are worried about now.
The teams have started their visual maze mapping on the screen and digitizing a signal that plays a victory tune when the robot has completed the maze. We’re working on mechanical prototyping and we reviewed different manufacturing techniques including manual fabrication, as well as additive and subtractive manufacturing. We also included some very basic topics, like intuition for what type of screws and glues to use dependent on material and stresses; which, if no one teaches you, you don’t stand a chance to learn. After that lecture, there was more interest in using the prototyping lab where they have open access to 3-D printers and laser cutters. Tomorrow, another TA will give a lecture on how to use a laser cutter, how to design parts in AutoCAD and how to use the 3-D printer.
Some of them have just gone crazy with their websites and they’ve picked their own team names. Team Resistance made their site Star Wars-themed, with the mouse turning into BB8 and then changing into a light saber when you hover over a link. Team Firework included a game on their site and created overview videos for their lab assignments. Team 1, the One-ders!, have made a hilariously funny website describing their mental state before, during and after every lab. At the start of the semester I gave a lecture about online communication and targeting your audience, but I never thought they’d put in this much effort. It is clear that they realize that they can use these websites later as a reference on their resume.
Algorithms is the next big topic, and I also promised the students to do two lectures in which we debug their systems live, which is fun and terrifying. I’m trying to figure out how to show formal debugging of these intelligent systems when there are so many parameters across electronics, software and mechanics that can fail. We need to come up with some examples that are sort of cryptic and yet show the procedure.
I had a TA do a talk on printed circuit board (PCB) design, and she did a fantastic job. It’s optional, but nine of the 17 teams are going to try to make circuit boards and we’re going to send them out for fabrication. It is not necessary to have on a functional robot, but it will make the wiring a lot cleaner. The FPGA part of the challenge is also going really well, actually. Everyone has debugged their way through the last lab and they’re working on the third of four milestones now, where their robot has to search through the maze. They’re starting to pull things together.
We’ve started making catalogs of common mistakes and common debugging issues, which was something the students suggested. They’ve really grasped this concept of making something bigger than themselves, making something that future years can take and move on. It’s great to see.
Now we’re doing ethics lectures. We did a full lecture on the Volkswagon scandal and the short- and long-term pros and cons of demanding open-source software. They have learned to identify all the stake holders and apply utility, justice and virtue tests. They also have homework in which they will have to pick their own problem rooted in an actual article or event. The submission can be anything—an essay, a song or dance, a short video, but it has to include all the relevant content.
Milestone three is due this week, and that involves having the robot traverse a maze in simulation and in real life. About half the teams actually completed the milestone. However, we told them up front that it wasn’t just about making the goal, but about realizing what needs to be done over the next few weeks leading up to the final competition.
One of the teams showed me their base station yesterday; they managed to use my photo as the robot on the screen. It must have taken so long for them to do that but, hopefully that indicates that they are having fun.
It’s the last week of classes, and I actually feel really good. Very few people are now showing up to class, but the lab is packed continuously and the TAs keep it open 10 hours a day. Almost all the teams have their own PCBs, they’re printing mechanical components, they’re laser cutting, they’re making team logos, they’re really getting into it. There are some very unorthodox robots. Some teams that went for the really ambitious robots are now realizing they may have pushed their limits a little bit, but that’s a good experience to have.
Some of the teams are ready for the competition, but most of them still have a lot of work to do. Each team will get to run through the maze twice and the six best teams will run in a final round. The scoring is based on time through the maze and accuracy: if they knock over a wall, if they respond to the start signal tone, if they find all of the treasures. There are prizes for the winners of the competition and there are awards for best website, best robot design, best teamwork and best ethics homework. The winners will get t-shirts and trophies; we also have website badges for teams to show that they won.
Competition day was a ton of fun. Fifteen of the 17 teams completed at least one maze during the competition. There were also a few curve balls. One of our strongest teams had a robot that was very sensitive to the start tone; it was sitting on their table powered up and then proceeded to drive off the table when another team tested their speakers. It caused some last minute panic, but they made it to the final round anyway.
We’re engineers, so we constantly look at things we can improve. At the competition, everyone had all of the working subcomponents, but we had let the teams manage the integration on their own, and so when the components had to work all at once, a lot of them didn’t. It’s clear now that we have to push that integration more next year. We told them again and again, but we need to rethink things, either give no deadlines at all so they’re on their own and have to take responsibility, or give all the deadlines up front.
Looking at the bigger picture, I think we need ECEs with a broad tool set. We need students who can sit down with an interdisciplinary team in the face of an overwhelming challenge and break it up into achievable subgoals, even if some of those subgoals are completely outside their area of comfort like mechanics and design of algorithms. I think robotics is a great means to teach them that and I think this class did that too. It forced them to try to design with the kind of holistic mindset that often leads to practical society-changing innovations. By teaching them these skills, I also think somehow you create more well-rounded and holistic people.
What's been going on at Cornell ECE? Find out! Read more about What's been going on at Cornell ECE?