How might we increase play opportunities for kids with limited dexterity?

Sip-And-Puff RC Car

Overview: Few toy designs consider usability for individuals with limited manual dexterity. Leveraging straw-controlled "sip-and-puff" technologies can help change this.

Role: Lead designer (individual project)

Skills: Python Programming, Microcontrollers, Circuit Design, 3D Printing, Prototyping, User Interaction

Background

In a second-year design course, we were tasked with developing any device using an Arduino or Raspberry Pi microcontroller to improve our software and hardware interfacing skills. I wanted to use this opportunity to create a design with potential positive impact, so I reached out to a therapist and friend at a nearby spinal cord and brain injury rehabilitation hospital. After bouncing around a few ideas with her, I decided to address the issue of the lack of accessible toy options. Inspired by a similar project from Bob Paradiso, I jumped into the process of creating a straw-controlled toy car for individuals who have a difficult time interfacing with traditional RC controllers.

Sketches & Ideation

My process began with generating ideas for features to include as well as ranking the priority of each one. I based many of my ideas on my own experience with sip-and-puff assistive devices during the initial recovery stages after my own spinal cord injury. I also researched various components such as the pressure levels needed to be read by the pressure sensor and the options for 3D printing a housing for the system.

Initial Prototyping

My process began with generating ideas for features to include as well as ranking the priority of each one. I based many of my ideas on my own experience with sip-and-puff assistive devices during the initial recovery stages after my own spinal cord injury. I also researched various components such as the pressure levels needed to be read by the pressure sensor and the options for 3D printing a housing for the system.

I began by figuring out how to use the pressure sensor I ordered in conjunction with a Raspberry Pi Zero to trigger different outputs based on whether the user is "sipping" from the straw tube or "puffing" into it. 

I then created a simple program that lights up a green LED when the pressure sensor detects a sip and a red LED when it detects a puff as an initial proof of concept. This was done by first saving the base atmospheric pressure read by the sensor. Then, the green LED's associated GPIO pin was set to trigger when the pressure reading drops below this base pressure while the red LED's pin was set to trigger when the pressure rises above the base pressure.


 The video below demonstrates this initial concept in action!

Further Development

After figuring out the basics of the pressure sensor operation, it was time to start integrating this with the RC remote for the toy car I was using. 

The car operated with two simple buttons: one to drive forward and another to simultaneously reverse and turn for redirection. It was my job to figure out how to interface directly between the controller's control board and my Raspberry Pi to operate the buttons with the pressure sensor readings instead of their original press operations.

Initial deconstruction of the controller to reveal its inner control board.

Taking multimeter readings of the circuit contacts to determine compatibility with the Raspberry Pi GPIO pins. I wanted to run the controller on my Pi's power pins, so these readings helped me determine this is safe.

After several attempts to operate the controller circuit contacts with the Raspberry Pi pins, I found myself very stuck. So, I sent a cold email asking for help from Bob Paradiso who inspired this project via a blog post of his I found online.

 To my surprise, he quickly responded to my questions and helped me figure out that I needed to connect the contacts as depicted in the below diagram.


The controller works by simply pulling the contact circled in red in the image above to ground to move the car forwards. Pulling the contact circled in blue to ground moves the car backwards.

To emulate this with my Raspberry Pi and pressure sensor, I connected each of these circled contacts to a different GPIO pin. I then wrote a program that outputs the corresponding pin to LOW when the user either sips from or puffs into the straw/pressure sensor. 

I also added an LED that lights up when the system boots up to notify when the controller is ready for use after being powered on with a rechargeable battery pack.



Initial operation of car using wires connecting the RC controller to the Raspberry Pi GPIO pins

The final wired connection including the bootup signal LED


The 3D printed enclosure for all electronics. I designed a snap-fit system for easy access but also included screw holes for more security.


The final wired connection sits within the housing connected to a rechargeable battery pack. Packing foam on the edges secures everything in place.


Final Design

After various iterations, the final prototype finally came together. The car responds immediately to the user's sip or puff inputs in the attached straw.

Improvements need to be made to condense the housing into a smaller form factor and to optimize it for compatibility with users in wheelchairs.  Next steps in the process would be testing it with actual users with limited manual dexterity to further inform user interface and operational changes to be made.

Final prototype in action!

Final design poster

SipNPuff RC Code1.pdf

Final project code

What I learned