What better way to get engineering students involved remotely than a game that can be played on the internet? That’s what professor Eduardo Garcia was thinking when he came up with this plan for his ESE516 IoT class as a quick pivot during the pandemic. Students normally work in teams to form products, but with everyone scattered across the world without tools, the syllabus had to change. We invited him to share his secrets about this challenging game lab, but first here’s a bit about the build. Parts include a SAM W25 Xplained Pro, Adafruit’s NeoTrellis board with elastomer buttons, an SD Card board and a few sensors. There’s more here than just a game, but first, check out the video.
What does this build do? Clearly it’s a game, but it looks like it does a lot more.
The idea of this build is to play a Simon Says game over the internet. There are two players (Player A and B) that communicate to an IBM server running Node Red via MQTT packets. Player A always starts with a random move from the server. Player A must press the sequence that it receives plus a new move, and send it to player B. Player B will receive this play, add a new move, and send it back to Player A. The Node Red server will keep track of the scores and will show the moves of each opponent. The build also aims to allow the student to explore a more “traditional” internet of things flow, where sensors send data to the cloud for processing. The build has a distance sensor and a 3-axis accelerometer. The data from these sensors is uploaded to the cloud for visualization over a web browser.
What skills are you teaching students?
ESE516 aims to teach the students two things: The embedded skills needed to design and implement an embedded system, and how to leverage connectivity to the internet to augment a product. In the class students learn about the Internet of Things and also learn the practical skills needed to make an Internet of Things product. We learn how to design a circuit, and how to implement it in Altium for fabrication on a PCBA. We also learn about embedded firmware design and implementation. Related to the firmware aspect of this class, this year’s new addition was the introduction of FreeRTOS. The class aimed to teach students how to successfully incorporate a real time operating system into their design, which allows us to design more complex and feature rich systems. It also helps us introduce other aspects such as good software design and practices.
Were there any challenges to get this project to work for you or the students?
To tackle the addition of FreeRTOS to this semester, we began conversations with Percepio. Percepio offers their great software, Tracealyzer, which allows the user to diagnose the inner workings of a system running an RTOS. The concept of RTOS was relatively new to some students, and being introduced to this complex software and having to write code for it in a short amount of time can be a tall order! But thankfully, Percepio was very gracious to offer our class academic licenses for the semester so our students could better understand what was going on inside their system. Multiple students expressed how Tracealyzer, with its visual representation of what is going on inside the FreeRTOS system, helped them understand their system better and helped them find bugs. It was also a great mechanism to teach concepts to students about designs running on an RTOS.
What were the student reactions when first testing the game?
I believe students were excited to see it working and seeing that their physical interaction with the keyboard is being reflected over the internet to their browser or phones! I received multiple questions from students asking how to make the system faster, look better, etc. These questions were more about improving the system rather than finishing a project (they were already finished with the project, but wanted to improve on it).
Do you think you will repeat this lab? How successful was it?
Taking into account that the lab was made in such a short notice I think it was successful! A lot of the success hangs with the students—they did an awesome job being engaged in the class and being flexible with the new reality and challenges COVID-19 brought. I believe it could be repeated with improvements from lessons learned from this project.
Clearly the lab was successful and it’s been exciting to look at the teams’ videos to compare interfaces. Just as Eduardo said, students spent extra time finessing what they were given, and the video chosen for this post shows a display similar to an arcade experience. Giving a shout-out to students Kyler Mintah and Fangfei Xue for their excellent work, and to Eduardo for his inspiring lab. Gaming, sensors and visualization software create an exciting IoT educational experience, which we are always happy to support.