Design and Implementation of Standalone

2 downloads 0 Views 705KB Size Report
This will provide the complete freedom for ... The universal reader for the blind is a device that helps .... implementation is indicated in the form of the flow chart.
International Journal of Emerging Technology and Advanced Engineering Website: www.ijetae.com (ISSN 2250-2459, ISO 9001:2008 Certified Journal, Volume 5, Issue 4, April 2015)

Design and Implementation of Standalone Language Independent Universal Electronic Reader for Blind T. Sai Gautham1, S. Varun Kumar2, M A Anwar3, N. Abid Ali Khan4 1,2,3

BE – Final year, ECE Under Graduate, Vasavi College of Engineering (Autonomous), Hyderabad – 500 031, India. Assistant Professor – Dept. of ECE, Vasavi College of Engineering (Autonomous), Hyderabad – 500 031, India.

4

The universal reader for the blind is a device that helps blind people to read the conventional books just like the normal person does. The idea here is to eliminate the need for training the blind with techniques in practice such as Braille, text to speech convertors or audio books[5][6]. Instead they can be taught all the languages right from their childhood like a normal kid. Moreover, the existing solutions mentioned earlier require a lot of software coding which involves complex process for conversion of the text to various other forms with a limitation on the number of languages it supports. The devices in the market are not portable as they have the desktop computer or a laptop in the final design of the product to carry out the data processing and also to access the internet. But with the know-how we have implemented, the visually impaired can able to read any printed text they wish and get the actual feel of reading a book, be of any language. This is a standalone device that is cost effective and can be portable to user. Unlike the text to speech convertor where the entire book must be converted into audio format, the device designed decreases this complexity and helps the blind read the raw text available in the book.

Abstract— Visually impaired people are always deprived of reading the conventional printed text. Available solutions so far suggest the conventional text to be converted into Braille or audio. However this is a very tedious & costly process. Moreover, these solutions are available to limited languages, and not all the conventional books can straightaway be converted into these special forms at the time of release. The proposed design, “Universal Reader for Blind” is addressing this concern. The OPT101 optical sensor array is used to sense the black text on white paper. TI‟s C2000 Delfino TMS320F28335 microcontroller will accept the sensed data through the 16 analog channels for further processing. The embedded firmware using CCS IDE is implemented which will retrieve the logic of pattern regeneration using preprogrammed static database mapping with adjustable ambient threshold. The character is regenerated using a solenoid array in combination with ULN2803 producing mechanical motion on corresponding black dot being sensed. This language independent, standalone, portable, low-cost device helps the visually impaired to read printed text directly by feeling the text while moving their hand. This will provide the complete freedom for blind people to read like a normal person does without any special training such as Braille or audio. Keywords— Device Driver; Embedded Computing; Microcontroller Unit; Optical Sensing; Pattern Recognition & Regeneration; Solenoid;

A. Design Objectives: 1. To Sense & Feel any printed black text on white paper with a particular size of text. 2. Adaptable to any environment lighting conditions. 3. Character sensing and mapping the raw-data with the pre-configured embedded database. 4. Hardware glue logic and driver circuitry for character regeneration on the finger or on the palm of a person.

I. INTRODUCTION According to World Health Organization (WHO) 285 million people are estimated to be visually impaired worldwide: 39 million are blind and 246 million have low vision[1]. About 90% of the world's visually impaired live in developing countries. 82% of people living with blindness are aged 50 and above. Globally, uncorrected refractive errors are the main cause of visual impairment; Cataracts remain the leading cause of blindness in middle and low income countries. The Royal National Institute of Blind People (RNIB) survey shows that out of the thousand most bestselling ebooks in the U.K., 84% were available in blind accessible formats, however only 0.23% of the most bestselling books (print) are accessible. Nearly three quarters, i.e., 74% of blind and partially sighted people cannot read the information provided by their hospital.

II. DESIGN APPROACH The project interface design consists of a primary sensor unit that takes input from ambient light falling on the pattern of a character. The primary sensor unit design uses TI’s OPT101, a monolithic photodiode with on-chip trans-impedance amplifier light to voltage convertor IC which is interfaced to the TI’s Delfino TMS320F28335 MCU.

121

International Journal of Emerging Technology and Advanced Engineering Website: www.ijetae.com (ISSN 2250-2459, ISO 9001:2008 Certified Journal, Volume 5, Issue 4, April 2015) The sensor inputs the signals to this MCU’s 16channel ADC inputs for further processing as indicated in the functional block diagram Fig – 1.

Fig-2: OPT101 Sensor Array interfaced to F28335

Through the matching algorithm in MCU, the character that needs to be regenerated is identified and the MCU will then drive the solenoid[2][3] to lift the pins that resemble the text that is being sensed by the sensor array as indicated in Fig – 3. Under minimum lighting conditions, the adaptable threshold values will be auto adjusted through the software for the calibrated sensors so as to signal and to drive the specific GPIOs at the solenoid section.

Fig-1: Block diagram Fig-1: Functional Block Diagram

Using Code Composer Studio (CCS) IDE, application software has been designed for framing the pattern regeneration logic, by mapping the input raw-data with the available database. For this to accomplish, a matching algorithm in polled mode is designed and implemented for several text patterns and the subjective testing is carried-out for these several characters. III. H ARDWARE IMPLEMENTATION OPT101 Optical sensor is used to capture the light reflected from the text that has to be read. It converts the light reflected in the form of electrical signal. This has been covered on the edges with a opaque foam which acts as light insulator so as to make it work in any lighting conditions and also to provide sufficient clearance from the text. The OPT101 works with a supply of 3.3V which has been provided using the voltage pins on the docking station. The output of OPT101 is an analogue voltage signal which is proportional to the intensity of the light falling on the pattern being read. The 4x4 sensor array is interfaced with the MCU as indicated in Fig – 2.

Fig-3: Delfino F28335 MCU Driving Outputs

122

International Journal of Emerging Technology and Advanced Engineering Website: www.ijetae.com (ISSN 2250-2459, ISO 9001:2008 Certified Journal, Volume 5, Issue 4, April 2015) The F28335 MCU has 16 channels, 12 bit ADC and all the 16 channels are connected to the array of the OPT101 sensor section. This constitutes the input circuitry of the design. The MCU when powered up carries out the process of setting the threshold for the optical sensors based on the ambient lighting conditions. The MCU works with a supply of 5V which has been provided using the USB supply. However, this supply can be replaced by portable batteries in order to demonstrate as a PC independent standalone design. Solenoid pin array is used at the output section. The ULN2803 current driver IC is used to drive the solenoid pins by providing sufficient current to each pin. The text being read is regenerated on this solenoid array by the raising of the pins in the regions where the text is sensed as shown in Fig – 3. The LED array is used for the testing purpose and also to visualize the text being read by the sensor during initial prototyping and further validation of different characters, which is further discussed under test approach and results.

For the GPIO to act as output we have configured the register group GPxDIR by setting the bit position to 1 which configures the line as an output. As indicated in source listing – 1, GPxDIR defines the direction of the I/O. A data write to an output line can also be performed with registers GPxDAT. Register Group GPxPUD is used to enable the internal pull-up resistors. The EALLOW protection mechanism prevents spurious CPU writes to several registers. Executing EALLOW permits the CPU to write freely to protected registers and executing EDIS protects them once more.[8] The ADC module has 16 channels, configurable as two independent 8-channel modules. The two independent 8-channel modules can be cascaded to form a 16-channel module. Although there are multiple input channels and two sequencers, there is only one converter in the ADC module. The two 8-channel modules can auto sequence a series of conversions; each module has the choice of selecting any one of the respective eight channels available through an analog MUX. In the cascaded mode, the auto sequencer functions as a single 16-channel sequencer. On each sequencer, once the conversion is completed, the selected channel value is stored in its respective ADCRESULT register. This implementation is indicated in the form of the flow chart as shown in Fig – 4.

IV. SOFTWARE IMPLEMENTATION The MCU drives the output units through the GPIO pins and the pseudo code for the configuration of the GPIO is given below. The GPIO pins are divided into three groups namely A, B and C. Each pin has multiple functions. The I/O pins are divided into groups and each group has two multiplexer that selects functionality of the I/O pins and to configure them as only I/O we have initialized all bits with 0. EALLOW; GpioCtrlRegs.GPACTRL.all GpioCtrlRegs.GPAQSEL1.all GpioCtrlRegs.GPAQSEL2.all GpioCtrlRegs.GPADIR.all GpioCtrlRegs.GPAPUD.all GpioCtrlRegs.GPAMUX1.all GpioCtrlRegs.GPAMUX2.all GpioCtrlRegs.GPBCTRL.all GpioCtrlRegs.GPBQSEL1.all GpioCtrlRegs.GPBQSEL2.all GpioCtrlRegs.GPBDIR.all GpioCtrlRegs.GPBPUD.all GpioCtrlRegs.GPBMUX1.all GpioCtrlRegs.GPBMUX2.all GpioCtrlRegs.GPCDIR.all GpioCtrlRegs.GPCPUD.all GpioCtrlRegs.GPCMUX1.all GpioCtrlRegs.GPCMUX2.all EDIS;

= 0x00000000; = 0x00000000; = 0x00000000; = 0xfffffbff; = 0x00000000; = 0x00000000; = 0x00000000; = 0x00000000; = 0x00000000; = 0x00000000; = 0xffffffff; = 0x00000000; = 0x00000000; = 0x00000000; = 0x7fffffff; = 0x00000000; = 0x00000000; = 0x00000000;

Listing 1: Pseudo-code for GPIO configuration Fig – 4: Software Implementation Flowchart

123

International Journal of Emerging Technology and Advanced Engineering Website: www.ijetae.com (ISSN 2250-2459, ISO 9001:2008 Certified Journal, Volume 5, Issue 4, April 2015) Auto sequencing allows the system to convert the same channel multiple times, allowing the user to perform oversampling algorithms. The ADC is used here in the continuous sampling mode and all the 16 ADC channels have been used by the OPT101 sensor. The Acquisition window size controls the width of SOC pulse, which, in turn, determines for what time duration the sampling switch is closed. The width of SOC pulse is 16 times the ADCLK period and this has been configured using the ACQ_PS bit field of the control register 1. In the Cascaded mode, SEQ1 and SEQ2 operate as a single 16-state sequencer (SEQ) and this has been configured using the SEQ_CASC bit of the control register 1. The ADC is configured to run continuously using the CONT_RUN bit in control register 1.

The high speed peripheral derives its clock using the system clock and the ADC_MODCLK defined in the code and is given as: HSPCLK = SYSCLKOUT/ (2*ADC_MODCLK) = 150/ (2*3) = 25.0 MHz where 150 MHz is the MCU clock. V. RESULTS In order to sense one complete character, a 4x4 equidistance matrix form array of sensors using 16 OPT101 has been designed and implemented on a PCB as shown in Fig – 5.

#define ADC_MODCLK 0x3 AdcRegs.ADCTRL1.bit.ACQ_PS = 0xf; AdcRegs.ADCTRL3.bit.ADCCLKPS =0x1; AdcRegs.ADCTRL1.bit.SEQ_CASC =1; AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0; AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x1; AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 0x2; AdcRegs.ADCCHSELSEQ1.bit.CONV03 = 0x3; AdcRegs.ADCCHSELSEQ2.bit.CONV04 = 0x4; AdcRegs.ADCCHSELSEQ2.bit.CONV05 = 0x5; AdcRegs.ADCCHSELSEQ2.bit.CONV06 = 0x6; AdcRegs.ADCCHSELSEQ2.bit.CONV07 = 0x7; AdcRegs.ADCCHSELSEQ3.bit.CONV08 = 0x8; AdcRegs.ADCCHSELSEQ3.bit.CONV09 = 0x9; AdcRegs.ADCCHSELSEQ3.bit.CONV10 = 0x0a; AdcRegs.ADCCHSELSEQ3.bit.CONV11 = 0x0b; AdcRegs.ADCCHSELSEQ4.bit.CONV12 =0x0c; AdcRegs.ADCCHSELSEQ4.bit.CONV13 =0x0d; AdcRegs.ADCCHSELSEQ4.bit.CONV14 = 0x0e; AdcRegs.ADCCHSELSEQ4.bit.CONV15 = 0x0f; AdcRegs.ADCTRL1.bit.CONT_RUN =1; AdcRegs.ADCMAXCONV.all = 0x0F; AdcRegs.ADCTRL2.all = 0x2000;

Fig-5: OPT101 Sensor Array

For the output a 3x3 array of the solenoid and a 4x4 LED array have been used to view the pattern being read. The solenoid array is interfaced to the F28335 MCU through the ULN2803, a high-voltage, high-current Darlington transistor array and LED array will be interfaced to the GPIO of the F28335 MCU. The MCU after performing the signal conditioning on the input signal will generate the corresponding pattern onto the LED and solenoid. The practically implemented PCB at the output section is as indicated in Fig – 6.

Listing 2: Pseudo-code for ADC configuration

The Start-of-conversion (SOC) trigger for the cascaded sequencer is triggered by the software and this is done by writing 0x2000 in the control register 2. As indicated in source listing – 2, the ADC is made to run with the clock of 12.5 MHz and the clock has been configured using the ADCCLKPS bits of the control register 3. The MAX_CONVn bit field defines the maximum number of conversions executed in an auto conversion session and this has been configured with 0x0F since 16 conversions must take place as all the channels are being used. The input channels of the ADC is selected by the MCU using the input channel select sequencing control registers and since all the channels are used all the bits of four ADCCHSELSEQ register is sequentially numbered.[9]

Fig-6: ULN2803 Current Driver

For the prototype, the size of the text being sensed or read is considered to be of constant size. As shown in Fig – 7, the solenoid based pin array which consists of 9 solenoids which are closely arranged to form a 3x3 pin array. Each solenoid is similar to relay whose moving arm is coupled to one of these pins.

124

International Journal of Emerging Technology and Advanced Engineering Website: www.ijetae.com (ISSN 2250-2459, ISO 9001:2008 Certified Journal, Volume 5, Issue 4, April 2015) Limitations: The limitation of the prototype is that it cannot detect the characters with slanting edges as the sensors are placed with large gap with the sensor array having a dimension of 4.1cmx4.1cm and the sensed character of size 3cmx3cm, but this can be overcome if the sensors are packaged close to each other or if TI could able to supply array of sensors mounted in SMD based PCB. VI. CONCLUSION “Universal Reader for Blind” is able to successfully perform the character recognition and regeneration. The implementation demonstrates that it is possible to build a text reader for the blind using off the shelf components. We estimate the cost of the proposed device to be nearly $20 after optimization. It is quite less when compared to the existing devices whose cost varies from $50 to $200. It is able to drive the solenoid based output sections which is used to feel the text. It is cheap and power saving. As this is the prototype of the actual design we had to keep a restriction on the size of text being read, but if the OPT101 DIP sensors are replaced with the SMD package and also if the solenoid based tablet [4] type device is provided to the blind then this would serve the purpose being a portable and very handy device for the blind people.

Fig-7: Solenoid Pin Array

We validated the effectiveness and advantages of our proposed methodology by doing software testing. Each module of the program was verified with various test cases.

VII. FUTURE SCOPE Developing an embedded database with multiple language characters starting with English initially in collaboration with us as academic partners and TI as an industry partner, realizing this know-how into an innovative product and service for visually impaired. The initial design can be taken-up to educate the students of kindergarten in schools and the consequent socioeconomic model with Govt. Support may be identified with huge market potential. The infants who are born blind can be taught the conventional letters by using this device and thus avoid the need for Braille. Also the people who lose their vision due to accidents may also read the text without the need to learn Braille. Extensive user testing is required for the device to comment about its usability and reliability in the consumer environment. With required changes, Universal Reader for Blind can be mass produced for usage in India. Since we are using components like complete MCU’s for simple operations, we claim that the device can be made feasible for consumer market. The design can further be enhanced by adding the following features.

Fig-8: Reading letter „L‟

The device was programmed in such a way that it uses the available memory of TI Delfino F28335 MCU efficiently. The prototype was well designed as indicated in fig -8, to implement all the software modules and tested with many test-cases. All the basic functionalities mentioned in the proposed solution were successfully implemented in the prototype as shown in Fig – 8. Advantages: Taking into consideration the existing devices and the device proposed in this paper, the differentiating and newly added features are described below. A novel functionality in the proposed device is the language independency of the text being read. The device is completely battery operated as opposed to other existing devices, which makes it even more usable for all.

125

International Journal of Emerging Technology and Advanced Engineering Website: www.ijetae.com (ISSN 2250-2459, ISO 9001:2008 Certified Journal, Volume 5, Issue 4, April 2015) We plan to use a complex algorithm can be incorporated in which the threshold for the OPT101 will be dynamically determined by the ambient light condition.[7] The database for the language specific character can be created so that the accuracy and reliability of the device is improved. As this device has a considerably good market, it can be realised as a consumer product by making it portable and easy to handle.

Professor. Satyam, Department of ECE, for his continuous encouragement, asking each time to stick to fundamentals and basics and his valuable suggestions for improving the project prototype. REFERENCES [1] [2] [3] [4]

Acknowledgments We would like to offer our special thanks to Texas Instruments India for providing us the necessary components to make this project. The Principal of Vasavi College of Engineering and The Head, Department of Electronics and Communication Engineering, VCE were instrumental in making this prototype realizable. We specially acknowledge contribution of Mr. N Abid Ali Khan, Department of ECE our mentor for helping and guiding us with the programming of the Delfino microcontroller. His experience in embedded systems was valuable in guiding us to build reliable electronics interfaces.

[5] [6] [7] [8] [9]

126

www.fluid.media.mit.edu/sites/default/files/FingerReaderFAQ%2 0%284%29.pdf http://www.farnell.com/datasheets/18251.pdf http://www.lintech.org/comp-per/13PRT.pdf http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=47 60140&queryText%3Dvirtual+reader+for+blind www.newindianexpress.com/cities/thiruvananthapuram/article148 6390.ece?service=print www.ravi.iiit.ac.in/~speech/index.html www.courses.engr.illinois.edu/ece445/getfile.asp?id=5233 http://www.ti.com/lit/an/spraa85d/spraa85d.pdf http://www.ti.com.cn/cn/lit/ug/spru812a/spru812a.pdf