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 Physical Computing schematics redesigned for tactile use and a style guide for how to design them, available for download at tactileschematics.com.
Blind Electronics Blog
Ken Perry’s Blind Electronics blog is on all things electronics. His post on Arduino setup With Windows Screen Reader is useful for Windows users. He’s got some useful notes on Snap Circuits too.
The Blind Arduino Project
An effort led by 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 are all useful posts.
APH has a good image library of SVG graphics that’s useful in a variety of educational subjects. The Mathematics ones are likely most relevant here. APH has other useful tools as well, like their Braille Blaster Braille conversion editor, and a few good talking calculators as well.
The Smith-Kettlewell Technical File
The Smith-Kettlewell technical file “was a publication by and for blind and visually-impaired electronics professionals and enthusiasts”. Running from 1980-1998, it covers a range of technical topics with practical advice on topics like soldering, using power tools, electronic components, logic tools and testers, and more. It’s useful for anyone interested in electronics, and formatted in a way that’s accessible for assistive reading devices like screen readers and Braille readers. Thanks to Ken Perry for the link.
Here are some notes on using a programming editor, with specifics on Visual Studio Code.
Visual Studio Code
Microsoft Visual Studio Code is a decent text editor that is optimized for screen readers. If you have the Arduino IDE installed on your machine, the Arduino Plugin for VS Code makes a good screen reader-friendly editor (thanks Ken, Josh and John Schimmel for the tip). The Arduino Plugin gives you access to most of the tools in the Arduino IDE: boards manager, library manager, examples, compile and upload, and serial monitor. The VS Live Share Plugin allows you to share code live with other users over a network in real time as well. The Accessibility for VS Code page is a useful intro to features in the editor.
Arduino-cli Command Line IDE
There is now an officially supported command-line interface for the Arduino IDE. Here are some tips on how to set up the arduino-cli environment. With these instructions, you can use the command line IDE with your favorite text editor.
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 /dev/cu.usbmodemXXXX will open an Arduino’s serial port, if no other application has it open already.
control-C will close it. If you’ve got a continually repeating serial output, you may prefer to use the
less command instead of the
less /dev/cu.usbmodemXXXX will also print out the serial output, but it will stop after each screenful. Type the spacebar to page through multiple screens, or use the arrow keys to read up and down. Type
q to exit.
Raspberry Pi Tools
Raspberry VI is a forum and tools for Pi support visually impaired users. They’ve been working on, among other things, a working and stable version of Emacspeak for the Pi.
Here’s a tutorial on Setting up a Raspberry Pi and securing it with command line interface only. This tutorial is aimed at the ITP environment specifically.
Emic2 text-to-speech module
The Emic2 test-to-speech module is an alternative to using the Arduino IDE Serial Monitor for debugging.It’s a piece of hardware that 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
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.
SeeedStudio’s Grove components are useful for building projects without a breadboard. The Blind Arduino Blog has some notes on using Grove. In addition to the Grove Shield and the components, there’s also a MKR Connector Carrier that’s compatible with Grove for the MKR series Arduinos. Here are a few useful Grove part numbers from Digikey:
- Grove Base Shield v2 for Uno v3 footprint
- MKR Connector Carrier (compatible with Grove)
- Introduction to Grove PDF manual
- 3-axis Digital Accelerometer (ADXL345)
- protoshield for making your own custom circuits
- Female Jumpers for connecting to other components
- Ultrasonic ranger
- Rotary Encoder
- PIR motion sensor
- Digital Light Sensor