Showing posts with label SKTF. Show all posts
Showing posts with label SKTF. Show all posts

Monday, June 20, 2016

Consider the Continuity Tester

It has been argued that the continuity tester is one of the most essential pieces of equipment for a blind electronics maker. It is a device which provides accessible feedback when current flows in a circuit -- basically an Ohmmeter or resistance meter. A continuity tester with audio or tactile output provides an accessible way of testing and even identifying components, leads, and connections, tracing paths on circuit boards, checking solder joints, and even making other simple measurement tools such as light detectors and thermometers. While the sighted person finds occasional uses for an Ohmmeter, the continuity tester is an indispensable and pervasive tool for the blind maker. I cannot over emphasize the importance of having one.

They come in a variety of flavors, from simple circuits which buzz below a specified resistance threshold to oscillators that vary the pitch of an audible tone depending on the amount of resistance in the circuit. The classic continuity tester described in the following section, as well as many other awesome accessible continuity tester circuits and their uses, are fully documented in the Fall, 1982 issue of the Smith-Kettlewell Technical File. Advanced makers should definitely study these for insight into some old-school accessible test equipment.

The Classic Continuity Tester

The classic Smith-Kettlewell continuity tester is an elegantly simple circuit which makes for an excellent first soldering project (read the Soldering Series in the Smith-Kettlewell Technical File for all the information you need on blind soldering techniques). If you're planning to build electronics, make stuff with Arduino, or otherwise make a habit of messing around with wires and components, I strongly recommend building one. It's reliable, versatile, and extremely nice to have around.

Building the Classic Continuity Tester

The continuity tester's oscillator consists of an audio output transformer and a PNP transistor. An 8 Ohm speaker is connected across the leads of the low-impedance secondary of the transformer. The primary of the transformer has a center tap which connects to the emitter of the transistor. One end of the transformer's primary connects to the Positive terminal of a 9-volt battery. The other primary lead connects through a 0.022 uF capacitor to the base of the transistor. Across the entire primary is another 0.022 uF capacitor. The base of the transistor connects through a 22K resistor to the positive test terminal. The negative test terminal connects to the collector of the transistor and the negative terminal of the battery (ground). That's it!

A Simple Arduino-Based Continuity Tester

While the continuity tester described above is extremely simple and reliable, you may not have these capacitors, transformers, or transistors readily at hand. Possibly you aren't yet confident enough with a soldering iron to build it. Sometimes you may want to slap a continuity tester together using an Arduino and a couple of resistors. The following sketch makes a reasonably handy audible continuity tester, although the classic continuity tester described above is superior in most ways.

Building the Arduino Continuity Tester

Connect a 1 mega Ohm resistor and a 1 kilo Ohm resistor to analog pin 0 of the Arduino board. Connect the other end of the 1 mega Ohm resistor to ground and the other end of the 1 kilo Ohm resistor to +5v. Connect a piezoelectric buzzer to digital pin 9 and ground, (or you can substitute a speaker in series with a 100 Ohm resistor). Connect the positive test lead to analog pin 0 and the negative test lead to ground.

Programming the Arduino Continuity Tester

Copy and paste the following sketch into your development environment, make any desired modifications, and upload it to your Arduino. You can also download the continuity tester sketch here.

/*
Simple Audio Continuity Tester

Wiring Description
Parts: 
Resistors -- 1Meg, 1K, 100 Ohm.
8 Ohm speaker or piezo buzzer
jumper cables and test leads
Arduino...

Connect buzzer to pin 9 and ground.
If using a speaker, connect one side to pin 9. 
The other side of the speaker goes to 100 Ohm res, which goes to ground.

Connect 1K to +5V. The other end connects to a junction which includes the positive test lead, analog pin 0, and  the 1M. 
The other end of the 1M goes to ground. 

The negative test lead also connects to ground.

When there is no connection between the test leads, the speaker is silent. It begins to click when there is some conductivity, and produces a 500 Hz tone when there is no resistance.

Play with resistor values and the mapping of reading to ici to optimize for the range of sensitivity you need.

By Josh Miele
The Blind Arduino Project, June 17, 2016.
http://bit.ly/blarct01
*/

int sensorPin = 0; //the pin connected to +test lead
int speakerPin = 9;  //connected to speaker or buzzer
int thresh = 1000;   //above this sensor val no sound is played
int reading = 0;  //analog input value somewhere between 0 and 1023;
int ici = 0;   //inter-click interval in ms. Shorter for lower resistance values.

void setup() {
 pinMode(speakerPin, OUTPUT);    //speaker (or buzzer) pin 
 pinMode(sensorPin, INPUT);   //connected to +test lead
}   //end of setup

void loop() {
 reading = analogRead(sensorPin);  //measure voltage across 1Meg Ohm
 if (reading < thresh) {
  //if reading is less than threshold then speaker clicks
  //play a 500 Hz click 5 mS long
  tone(speakerPin, 500, 5);   
  //scale reading val to delay value in mS
  ici = map(reading, thresh, 0, 200, 0);  
  delay(ici);   //wait before playing next click
 }   //end of if
}   //end of loop

Wednesday, May 25, 2016

What is the Blind Arduino Blog?

There is nothing new about blind makers -- we have a long history of creativity and innovation in order to get access to the information we need to do the things we want to do. We also have a long history of sharing how-to information among ourselves in order to support our community in achieving our goals and potential. The Blind Arduino Blog follows in this proud tradition.

Bob Gunderson's Braille Technical Press was a great, mid-century example of blind people supporting other blind people in building the tools they need. It largely focused on amateur radio tools and techniques, but it was an early pioneer in the blind DIY electronics genre. Bob worked as an electronics teacher at the New York Institute for the Blind and published the Braille Technical press in the 1950s as a way of documenting the accessible tools he and his students developed so that other blind hams could build and use them.

More recently in the 1980s and 90s, Bill Gerrey at The Smith-Kettlewell Eye Research Institute (where I happen to work) published the Smith-Kettlewell Technical File -- a publication inspired by Gunderson's earlier magazine. In addition to publishing instructions for building all kinds of useful accessible test equipment and refining the technique of circuit description, the Technical File published a series of excellent tutorial articles on techniques for blind solderers, also available at the previous link to the Technical File.

With the advent of open-source, relatively standardized, microprocessor-based project kits like Arduino, the kinds of devices that can be built by the casual maker at home have become quite sophisticated. In fact, Arduino is an ideal platform for creating a variety of accessibility devices which blind makers and users might find useful. For example Arduino would be perfect for building tools like audio and tactile meters and gauges which could be driven by any manner of sensors and detectors. From accessible scales to timers, range finders, multimeters and beyond, Arduino could make it relatively easy to design and share accessible tools which can be endlessly modified, adapted, and improved to meet a wide range of applications and needs.

A little googling reveals that there are designs for a number of Arduino-based accessibility devices scattered across the net. However, none that we have found are intended to be built by blind people, Nor is the documentation necessarily accessible. Furthermore, the fact that they are from all over the place means that they are inconsistently documented and occasionally hard to find.

The Blind Arduino Blog is another step along the road paved by Gunderson and Gerrey. Its intent is to provide a public clearing house for blind makers who want to build accessible devices with Arduino. The project has two main objectives:

  1. To provide clear instructions and accessible resources for blind people who want to develop for Arduino, and
  2. To Assemble a library of accessible project descriptions for devices that might be of particular use for blind people.


Before we can begin assembling our library of accessible Arduino devices for blind makers, there are a number of hurdles to be overcome. We can build on Bill Gerrey and Bob Gunderson's hardware-assembly description techniques to document how to build the Arduino hardware, but the coding component needs some R&D. First we need to identify and document the accessible tools and resources for learning, writing, and uploading code to the Arduino itself.

There are many different Arduino boards and accessories, and many different software tools available for coding, uploading, and debugging. Thus, the first posts to this blog will document our investigations into which boards, tutorials, and other tools are most accessible, as well as any work-arounds or tricks for getting the most out of them as a blind user. Once we have a nice foundation of accessible tools for Arduino development on which to build, we can move on to our long-range plan of collecting and developing accessible instructions for building a wide variety of accessibility devices based on Arduino. My own personal interest is in duplicating a number of devices from the S-K Technical File recast in Arduino. As our group learns and grows, I have confidence that the depth and diversity of projects will expand well beyond what I currently imagine.

Some Comments on Platforms, Screen Readers, and Browsers

Arduino software development can be done on Linux, Mac, Windows, and other platforms. This blog will focus on identifying tools that are Windows based. For folks who are comfortable in Linux, I suspect that is the easiest and most accessible path for Arduino development. However, most people are a little intimidated by Linux. While Apple has done great work with VoiceOver, the vast majority of blind users are still on Windows. For these reasons, we are committed to charting an accessible Arduino-development path through Windows. This doesn't mean that we won't include some posts on tools for other platforms, it just means that the emphasis here will be on tools for Windows.

In addition, in making our judgements about accessibility of tools and informational resources, we will assume the default screen reader/browser combination of NVDA and Firefox. Certainly there are other screen readers and browsers and preferences will vary, but web site performance will as well. Since we can't test all combinations, we will generally stick to NVDA and Firefox when we test Arduino resource sites for accessibility.