Accessibility Tools for Physical Computing

This page lists tools, techniques, and resources that may be helpful to students with differing abilities who want to build the projects described on this site. It is a constant work-in-progress, so if you have suggestions for additions, please let us know.

The Blind Arduino Project

An effort led by Dr. Joshua Miele “to better understand barriers faced by blind people wanting to participate in the vibrant global culture of DIY hardware prototyping.” Josh’s blog has a wealth of information, including: a detailed description of the Arduino Uno , an introduction to the Grove shield and notes on compiling and uploading from NotePad++ on Windows.

Emic2 text-to-speech module

This electronic module can speak text that you send to it via an asynchronous serial interface. It’s an alternative to using the Arduino IDE Serial Monitor for debugging. You can plug it into your Arduino’s serial transmit (TX) or softwareSerial transmit pin, and it will speak whatever you send out the serial pin via Serial.print(), Serial.println(), or Serial.write(). You can get it from Parallax, SparkFun or Adafruit. The Emic2 manual is available online. Here is a barebones code example for the Emic2. (Thanks to John Schimmel of DIYAbility for the tip)

General Tools TS04 Bluetooth Connected Multimeter 

A multimeter that connects to an Android/iOS app that works through a screen reader. It is possible to write your own HTML interface for the TS04 meter as well, using the web-bluetooth JavaScript framework. Here are some details on the TS04 protocol. You can connect to the connect to the TS04 meter from this link if you have one. This only works on the Chrome browser, as of this writing.

Command-line alternative to reading serial input

On MacOS and Linux, the command line allows you to read input from a serial port just as you would from a file, using the cat command. cat /dev/cu.usbmodemXXXX will open an Arduino’s serial port, if no other application has it open already. control-C will close it.

Piezo Buzzers and Speakers

Because sometimes an LED just won’t do. These buzzers vibrate in the audible range when you apply 3-5V across their pins. You can drop them into the Blink sketch with no change in code and you’ll hear the results. A useful replacement for LEDs when you need auditory instead of visual feedback. Large Piezo Alarm – 3kHz from SparkFun or 2KHz buzzer from Adafruit or 3900kHZ Buzzer from Digikey or 4kHz Buzzer from Solarbotics

Similarly, if you want a replacement for a dimming LED, use a speaker and the tone() function. An 8-ohm speaker will work pretty well with a 220-ohm resistor in series with it, so you can swap an LED for a speaker and swap analogWrite(pinNumber, x); for tone(pinNumber, x*10); in most cases and get an audible result, because analogWrite() takes a number from 0 to 255 as the second parameter, and a tone() from 200 – 2550Hz is reasonably audible.


Originally written on August 8, 2018 by Tom Igoe
Last modified on August 15, 2018 by Tom Igoe