Skip to Content

Embedded Systems Design Course: Putting the 'Fun' in Functional

The official directive for students in CSE’s Embedded System Design course is to “learn fundamental knowledge of microcontrollers, sensors, and actuators” and other hardware and software tools to build an embedded system. The unofficial directive for this past quarter's students? To put the 'fun' in functional. The resulting projects provide a glimpse into the future of embedded systems, which are essentially computing systems built into larger mechanical or electronic devices and are designed for handling specific tasks. Digital watches, traffic lights, and MP3 players are all examples of embedded systems. But so are flying robots, robots that can solve a Rubik’s Cube® and aerial balloons that can take time-lapse shots of the Coachella music festival (these are still college students, after all).

“It is important for students to take the knowledge that they learn in their classes and apply it to real-world problems," says CSE Prof. Ryan Kastner. "This not only allows the students to better understand why they need to learn sometimes seemingly obscure topics, but also gives them a view of how computer science and engineering can make a significant impact on the world. The projects this year demonstrated that the students had an inherent desire to combine the knowledge that they learned in their classes and also spend countless hours to learn new skills from a variety of engineering areas, to ultimately create truly outstanding and unique embedded systems.”

Rubik's Cube-Solving Robot

Trial and tribulation were the modus operandi of Team Ruku, a trio of students -- Daryl Stimm (pictured above), Jonas Kabigting,  and William Mutterspaugh, -- in CSE 145, who decided to improve upon a prototype of a wireless robot designed to autonomously solve a Rubik’s Cube puzzle. “It was slow, it jammed, it had lots of problems,” recalls Stimm. “But we knew if we could get it right it would be fun to develop the robot as a kit that educators could use to get students interested in the STEM (science, technology, engineering and mathematics) fields.” After Stimm presented his idea to the students in the Embedded Systems course, Kabigting and Mutterspaugh signed on to help. The original robot was controlled by a credit card-sized single-board computer known as a Raspberry Pi and had two ‘arms’ and servos to manipulate the cube. The team now outfitted it with an additional pair of arms and replaced the servos with stepper motors and linear rails, which sped up the process of solving the cube and reduced the number of jams. Kabigting also created Python-derived color recognition software and a motor design script that, when combined with a smartphone mounted to the top of the robot, allowed the robot to take photos of the mixed-up cube (even in varied lighting situations) and then calculate how to solve it.

“We made a giant leap in this project with the color capturing,” says Mutterspaugh, who was primarily responsible for designing and wiring the device. “Before, you had to enter each side of the cube manually with Internet-based software to be able to solve it. It required a lot of hand-holding. Now it’s all done locally. You just insert the cube, press start, and the robot does everything.” The team also designed an app that allows a user to take photos of a cube and then follow step-by-step instructions for how to solve it. (To watch a video about the robot project, click here.)

“For us, this was more about building a robot than solving a cube,” says Stimm. “No matter who I show this to, people are kind of wowed by it.” After snapping photos of each of the cubes six sides, the robot takes only 25 seconds on average to solve a cube. Getting to that speed involved a lot of trial and error, says Stimm. “Everything -- even rotating the cube 90 degrees -- was more work than we expected,” he admits. “These cubes, depending on the manufacturer, are different sizes, and the torque is different. If the cube was a little loose inside the arms, it wouldn’t rotate a full 90 degrees, so we had to optimize that in the software. Also, a lot of the parts we’d order wouldn’t work, so we had to go back and reorder things. The motors were a perfect example. We had three designs for what we wanted and we and almost went to a company to have them build a casing, but right before the order for the company was about to go through, we stumbled upon a better solution: We could do it ourselves, at less cost.”

The next step for the Ruku team is to get enough financial backing to market and sell the robot in educational kits, following the business model made popular by Tom’s® shoes -- buy one Ruku kit, and they will donate one to education. Their goal is to design the kits so students as young as 11 can assemble a Ruku in about an hour. “We did a lot of research on this and we know that students in middle school have the highest interest in STEM-based paths,” notes Stimm. “Kids are really engaged by these technologies. By capturing that age group, especially with a cool gender-neutral project like this, we hope to inspire them to be the next scientists and engineers.”

[Note to readers: This is the first in a series of articles about team projects in CSE 145 in the just-ended Spring 2014 quarter.]