A Remote Control for the Disabled
(c) 1999 Lionel Theunissen

lionelth@big.net.au

Contest Logo

PROJECT# SSAU0005

CONTENTS

ABSTRACT
OPERATION
CIRCUIT DESCRIPTION
FUTURE ENHANCEMENTS
DISCLAIMER

ABSTRACT
This device is intended for situations where a person has difficulties operating the buttons on a remote control. The unit was conceived for use in a hospital ward. However, it can easily be adapted for other purposes.

Simmstick products are ideal for implementing this kind of design, because, in addition to being an economical way of providing PCB construction, they allow the unit to be customized for individual situations by substituting modules, while retaining core aspects of the design.

Fig 1. shows the prototype unit which consists of two DT101 simmsticks running PIC16F84 microcontrollers on a DT004 motherboard. An LED display and interface circuitry has been implemented on a protoboard, which plugs into the 30 pin header socket on the motherboard.

Prototype top view
Fig 1. Prototype remote control. The function LEDs are mounted on the underside of the protoboard. The infrared LED is on the right.

OPERATION
The remote control can be operated by any kind of momentary switch which can be activated by the user. This can be a breath switch, squeeze bulb, foot switch, etc. The first activation causes a series of LEDs to light in sequence. Each LED represents a particular function. If the switch is activated while an LED is lit then that function is executed. Once the series of LEDs has been scanned through the device is reset. Table 1 shows the functions implemented on the prototype.

Table 1 - Remote Control Functions
LED# FUNCTION TYPE INTERFACE
1 CALL NURSE PULSE (*) OPTOCOUPLER
2 TV CHANNEL UP LATCHING INFRARED
3 TV CHANNEL DOWN LATCHING INFRARED
4 TV VOLUME UP LATCHING INFRARED
5 TV VOLUME DOWN LATCHING INFRARED
6 LIGHT ON/OFF PULSE TRANSISTOR
7 TV ON/OFF PULSE INFRARED

(*)The CALL NURSE function is a special case in that, when activated, the unit is reset and no more LEDs light. This function has been allocated the first position so that it can be operated by two rapid switch activations.

The LATCHING functions will halt scanning and flash the function LED while active. Another operation of the switch will deactivate the function and scanning will continue.

When a PULSE function is activated scanning will continue after another complete scanning interval has elapsed. Multiple activations of the function are possible.

The scanning interval can be set with jumpers, and can be either 1/2, 1, 2, or 4 seconds. In most instances, the 1 or 2 second interval will be most comfortable to use.


CIRCUIT DESCRIPTION
The remote control consists of three main modules. The interface module, the scanning control module, and the infrared code generator module.



INTERFACE MODULE
Prototype bottom view
Fig 2. Underside of prototype remote control. Note the wire link on the DT004 side which joins the 10 Mhz clock between the simmsticks. Hard to see is the dual colour nurse call indicator LED, which is the white rectangular component near the top right.

The interface module contains all the circuitry not contained on the simmsticks and motherboard. It consists of a binary decoder and LED driver, infrared LED, power regulator, and interface circuitry to implement the functions not applicable to the infrared code generator.

Fig 2. shows the underside of the motherboard and interface module where the function LEDs are mounted. See Fig 1. for the top side view. The unit fits inside a standard jiffy box. The LEDs are mounted to sit flush with the bottom of the box. Holes drilled in the box over the LEDs allow back illumination of a lexan, which consists of a graphic printed on glossy paper, held in place with an adhesive clear plastic film to give a professional finish.

In order to save PORT pins on the scanning controller, the LEDs are driven by a 74HC138 binary address decoder, which receives a 3 bit binary address on the simmstick bus to determine which of the 7 LEDs are lit. No LED is lit for binary 000. The NURSE CALL LED is dual colour (See Fig 2.). The GREEN side of the LED is driven by the address decoder, and the RED side is intended to be driven by the nurse call system to indicate that the call has registered. See the circuit diagram of the interface module.

The power regulator is intended to regulate down to a manageable level the 24 Volt rail used in the nurse call system. Alternatively, the unit could be powered from the DT004 itself. The remote control could also be powered by batteries. In this instance, the power circuitry (including the power LED) on the motherboard and interface module should be removed to keep quiescent current to a minimum. In fact, the DT004 could be dispensed with, and the unit constructed with simmsockets mounted on verostrip board. Sleep mode has been implemented on both microcontrollers to extend battery life. It is recommended that three 1.5V penlite batteries in series are used. Two should work in theory, but this has not been tested.

Simmstick bus line D1 controls an optocoupler which interfaces the unit to the nurse call system. It is wired across the nurse call switch to simulate a button press. D6 drives a BD139 transistor which operates an alternating relay to control the bed light. See Fig 3. for a block diagram showing the control signal paths. Table 2 shows the pinout of the connector on the interface module.

Table 2 - Interface module pinout
PIN# FUNCTION
1 CALL ACTIVE INDICATOR
2 USER SWITCH
3 USER SWITCH
4 EXTERNAL INFRARED LED
5 TO CALL NURSE SWITCH+
6 TO CALL NURSE SWITCH-
7 TO LIGHT ON/OFF RELAY
8 ***NOT USED***
9 0V IN
10 24V IN

Block Diagram
Fig 3. Block diagram showing the control signal paths. Click here to view larger.

SCANNING CONTROL MODULE
Scanning module
Fig 4. Scanning Control Module on DT101 simmstick

Fig 4. shows the scanning control module which consists of a PIC16F84 microcontroller running at 10Mhz mounted on a DT101 simmstick. The circuitry associated with the ADC, RTC, EEPROM, and RS232 is not required. If the unit is configured to use the 5 Volt regulator on the DT004 then the 78L05 is not required either. The R1 and R2 reset pullup resistors should be fitted, and it is recommended that a brownout reset IC be used to ensure reliable operation. However, if the unit is running on batteries, the brownout IC could be left off. The simmstick should be fitted with either a 10Mhz ceramic resonator, or a crystal and 22pF capacitors.

The scanning controller acts on input from the user controlled switch and sets the LED and control lines accordingly. Table 3 shows that PORT assignments for the controller. The control outputs and switch input are all active low.

Table 3 - PORT assignments
PORT# BUS ID FUNCTION
PORTA,0 CL LED BIT 0
PORTA,1 DA LED BIT 1
PORTA,2 SI LED BIT 2
PORTA,3 SO JUMPER J1
PORTA,4 IO JUMPER J2
PORTB,0 D0 USER SWITCH IN
PORTB,1 D1 CALL NURSE OUT
PORTB,2 D2 TV CHANNEL UP OUT
PORTB,3 D3 TV CHANNEL DOWN OUT
PORTB,4 D4 TV VOLUME UP OUT
PORTB,5 D5 TV VOLUME DOWN OUT
PORTB,6 D6 LIGHT ON/OFF OUT
PORTB,7 D7 TV ON/OFF OUT

The scanning control program was written in PIC assembly code using MPLAB V4.00. A DT001 hooked up to an old 386 laptop running - believe it or not - Windows 95 was used as the programming platform, using Nigel Goodwin's PicProg for Windows. Here is the hex file.

INFRARED CODE GENERATOR MODULE
Infrared module
Fig 5. Infrared Code Generator on DT101 simmstick

The infrared module shown in Fig 5. monitors the control lines on the simmstick bus and outputs infrared codes to control a television set. As can be seen from the photo, simmsticks don't get any more bare-bones than this. The only things required are the PIC itself, and perhaps a decoupling capacitor, due to the fact that the module gets its clock, reset, and, if implemented, power from the scanning control module.

In order to share the clock signal, a wire link was added to the underside of the DT004 motherboard from the CO pin on the scanning control module's simm socket to the CI pin of the infrared code generator module's socket. See Fig 2.

The infrared generator could also be used as a basic stand alone television remote control. In this instance the reset pullup resistors R1 and R2, as well as a 10Mhz ceramic resonator, or a crystal and 22pF capacitors, should be fitted. The inputs are active low with internal pullups, so all that is necessary are switches to ground on the control line inputs. See Table 3 for the bus control lines which correspond to TV functions. The RA0 pin (PORT A,0) on the PIC is used to drive an infrared LED. To prevent bus conflict the simmstick is modified to provide this output on D8 of the simmstick bus. Fig 6. details the modifications.

Simmstick modifications
Fig 6. Modifications to the infrared generator simmstick.
1) A wire joins RA0 (PIC pin 17) and D8 on the simmstick bus.
2) The track which connects this pin to CL on the bus is cut.

The infrared LED is mounted on the interface module and protudes through a hole in the jiffy box. If the remote control is to be used in an enviroment where there are several sets of the same type, the built-in LED can be omitted and replaced with a LED mounted directly on the television, via a cable, to prevent interference. There is a provision on the interface module connector for an external LED. The series resistor is increased for the external LED from 220 ohms to 3300 ohms to prevent saturation of the IR receiver on the television. See the circuit diagram of the interface module.

The infrared code generator currently supports four brands of televisions; NEC, Sharp, Orion, and Samsung. The codes were captured and analyzed using the POWERIR utility available from the CIR site . Other useful information on IR codes was obtained from this IR information site. The infrared generator program was written in PIC assembly code. Here is the hex file.

The program code could be written more efficiently. In fact, it currently uses almost every word of program memory in the PIC. The source code has been left in its current form for two reasons.

1) It works!
2) The discrete form is easy to follow and modify for other protocols.

The protocol generated by the module is configured by programming the first byte of EEPROM data memory (Address 2100H). Originally, the protocol was set with jumpers. However, to preserve bus lines this new method was decided to be more efficient. This enables the module to be reconfigured without reprogramming the program memory. Table 4 shows the values which correspond to the various protocols.

Table 4 - Protocol configuration values
VALUE PROTOCOL
0 NEC
1 SHARP
2 ORION
3 SAMSUNG

FUTURE ENHANCEMENTS
Because of the modular nature of simmstick, the unit can be easily customized for individual needs. For example, the LED display could be replaced with a simmstick which reads the LED binary code and generates audio cues for the visually impaired.

A printed circuit board that plugs into the simmstick bus header socket, and which implements all of the circuitry described in the interface module, is currently being developed. To make the PCB more general purpose, an optocoupler and transistor/relay driver interface will be provided on all seven control lines (D1-D7). Any or all of these can be optionally fitted. One particular application for this would be to wire into the buttons of a universal remote control, which would allow control of virtually any infrared remote control television or VCR. However, the PCB could be used for applications completely removed from this project.

The author welcomes feedback, especially from potential users of this device. Please email your comments.

DISCLAIMER
This document is copyright. However, the author grants permission for private individuals to use this information on the understanding that it is provided as is, and, while the prototype does work as described, the author makes no claims to, and will take no responsibility for, its applicability or fitness for a particular purpose. Commercial use of the source or program codes is not permitted without the express written consent of the author.