Vtronix Incorporated. Simon Fraser University Burnaby, BC V5A 1S6 April 19, 1999

Similar documents
M i N T the refreshing technologies

Re: Proposal for a Voice Activated Remote Control System (ENSC 340 Project)

Written Progress Report. Automated High Beam System

January 24, Dr. Lakshman One School of Engineering Science Simon Fraser University Burnaby, BC, V5A 1S6

Re: ENSC 370 Project Physiological Signal Data Logger Functional Specifications

EECS 140 Laboratory Exercise 7 PLD Programming

Final Project [Tic-Tac-Toe]

Deceleration-X Systems Simon Fraser University Burnaby, BC V5A 1S6

In total 2 project plans are submitted. Deadline for Plan 1 is on at 23:59. The plan must contain the following information:

SWITCH: Microcontroller Touch-switch Design & Test (Part 2)

Enclosure: Functional Specification for Digital Audio Input Amplified Speakers. February 17, 2004

ECE 372 Microcontroller Design

Progress Report for the BikeSmart System

Field Programmable Gate Arrays (FPGAs)

SUBSYSTEMS FOR DATA ACQUISITION #39. Analog-to-Digital Converter (ADC) Function Card

LAB 3 Verilog for Combinational Circuits

Assignment 2b. ASSIGNMENT 2b. due at the start of class, Wednesday Sept 25.

L14: Quiz Information and Final Project Kickoff. L14: Spring 2004 Introductory Digital Systems Laboratory

Alice EduPad Board. User s Guide Version /11/2017

Design and Implementation of an AHB VGA Peripheral

Lab #12: 4-Bit Arithmetic Logic Unit (ALU)

Re: ENSC440 Post-Mortem for a License Plate Recognition Auto-gate System

E M E - Antenna Controller System - OE5JFL. Block diagram

Integrated Circuit for Musical Instrument Tuners

Laboratory 1 - Introduction to Digital Electronics and Lab Equipment (Logic Analyzers, Digital Oscilloscope, and FPGA-based Labkit)

LAB 3 Verilog for Combinatorial Circuits

Design and Implementation of Timer, GPIO, and 7-segment Peripherals

7 SEGMENT LED DISPLAY KIT

UNIT V 8051 Microcontroller based Systems Design

DX-10 tm Digital Interface User s Guide

Digital Circuits I and II Nov. 17, 1999

Rensselaer Polytechnic Institute Computer Hardware Design ECSE Report. Lab Three Xilinx Richards Controller and Logic Analyzer Laboratory

Embedded System Training Module ABLab Solutions

Solutions to Embedded System Design Challenges Part II

COMPUTER ENGINEERING PROGRAM

Re: ENSC 440/305 Post-Mortem. Dear Mr. One,

Reaction Game Kit MitchElectronics 2019

Using minterms, m-notation / decimal notation Sum = Cout = Using maxterms, M-notation Sum = Cout =

Copyright 2011 by Enoch Hwang, Ph.D. and Global Specialties. All rights reserved. Printed in Taiwan.

Microcontrollers and Interfacing week 7 exercises

Digital Blocks Semiconductor IP

L14: Final Project Kickoff. L14: Spring 2007 Introductory Digital Systems Laboratory

Digital Strobe Tuner. w/ On stage Display

Design and implementation (in VHDL) of a VGA Display and Light Sensor to run on the Nexys4DDR board Report and Signoff due Week 6 (October 4)

Memec Spartan-II LC User s Guide

Combinational vs Sequential

September 17, Dr. Andrew Rawicz School of Engineering Science Simon Fraser University Burnaby, British Columbia V5A 1S6

Section 24. Programming and Diagnostics

L14: Final Project Kickoff. L14: Spring 2006 Introductory Digital Systems Laboratory

Lab #5: Design Example: Keypad Scanner and Encoder - Part 1 (120 pts)

Design and Realization of the Guitar Tuner Using MyRIO

On-site reprogrammable beacon keyer

California State University, Bakersfield Computer & Electrical Engineering & Computer Science ECE 3220: Digital Design with VHDL Laboratory 7

Integration of Virtual Instrumentation into a Compressed Electricity and Electronic Curriculum

TV Character Generator

University Program Design Laboratory Package

SignalTap Plus System Analyzer

ENGG2410: Digital Design Lab 5: Modular Designs and Hierarchy Using VHDL

Digital Systems Based on Principles and Applications of Electrical Engineering/Rizzoni (McGraw Hill

CSE140L: Components and Design Techniques for Digital Systems Lab. CPU design and PLDs. Tajana Simunic Rosing. Source: Vahid, Katz

SignalTap Analysis in the Quartus II Software Version 2.0

Electrical and Telecommunications Engineering Technology_TCET3122/TC520. NEW YORK CITY COLLEGE OF TECHNOLOGY The City University of New York

ECE 270 Lab Verification / Evaluation Form. Experiment 9

FPGA Laboratory Assignment 4. Due Date: 06/11/2012

DMC550 Technical Reference

Rodin Maroufi. December 17, Dr. Andrew Rawicz School of Engineering Science Simon Fraser University Burnaby, British Columbia V5A 1S6

EEM Digital Systems II

Risk Risk Title Severity (1-10) Probability (0-100%) I FPGA Area II Timing III Input Distortion IV Synchronization 9 60

Laboratory 11. Required Components: Objectives. Introduction. Digital Displays and Logic (modified from lab text by Alciatore)

Combo Board.

You will be first asked to demonstrate regular operation with default values. You will be asked to reprogram your time values and continue operation

University Program Design Laboratory Package

Point System (for instructor and TA use only)

Prototyping an ASIC with FPGAs. By Rafey Mahmud, FAE at Synplicity.

Logic Devices for Interfacing, The 8085 MPU Lecture 4

Lab 2: Hardware/Software Co-design with the Wimp51

NewScope-7A Operating Manual

DE2-115/FGPA README. 1. Running the DE2-115 for basic operation. 2. The code/project files. Project Files

Lecture 10: Programmable Logic

A 400MHz Direct Digital Synthesizer with the AD9912

ECG Demonstration Board

Configuring FLASHlogic Devices

UNIT IV CMOS TESTING. EC2354_Unit IV 1

PHYSICS 5620 LAB 9 Basic Digital Circuits and Flip-Flops

How To Build Megavolt s Small Buffered JTAG v1.2

Adding Analog and Mixed Signal Concerns to a Digital VLSI Course

Field Programmable Gate Array (FPGA) Based Trigger System for the Klystron Department. Darius Gray

L13: Final Project Kickoff. L13: Spring 2005 Introductory Digital Systems Laboratory

ScanExpress JET. Combining JTAG Test with JTAG Emulation to Reduce Prototype Development Time. Ryan Jones Corelis, Inc. An EWA Technologies Company

Pinewood Derby Finish Line Detection System

Laboratory 8. Digital Circuits - Counter and LED Display

Senior Design Project: Blind Transmitter

WaveMaker III Gartech Enterprises Inc. 12/17/2012

8 PIN PIC PROGRAMMABLE BOARD (DEVELOPMENT BOARD & PROJECT BOARD)

CSE140L: Components and Design Techniques for Digital Systems Lab. FSMs. Tajana Simunic Rosing. Source: Vahid, Katz

Entry Level Tool II. Reference Manual. System Level Solutions, Inc. (USA) Murphy Avenue San Martin, CA (408) Version : 1.0.

Introduction to LasrPlay and DVDplay Synchronizers

PART 1: HARDWARE. Author: Vandermeerschen M. Version

Logic. Andrew Mark Allen March 4, 2012

Design and Implementation of SOC VGA Controller Using Spartan-3E FPGA

Transcription:

Vtronix Incorporated Simon Fraser University Burnaby, BC V5A 1S6 vtronix-inc@sfu.ca April 19, 1999 Dr. Andrew Rawicz School of Engineering Science Simon Fraser University Burnaby, BC V5A 1S6 Re: ENSC 370 project Voice Activated Control System Dear Dr. Rawicz, The attached document, Voice Activated Control System, outlines the process and experiences of designing and implementing our project. Our project was to design a voice control system capable of controlling different devices. We have demonstrated the system by using it to control a submersible in a fresh water tank, and a telephone. This document describes the state of the device, deviations from our functional and design specifications and future plans. Vtronix Incorporated consists of four enthusiastic third-year engineering students: Scott Emery, Amy Lu, Sean Nicolson and David Peterman. If you have any questions or concerns about our project, please contact David Peterman by phone at 526-4724 or by e-mail at dpeterma@sfu.ca. Sincerely, Scott Emery Amy Lu Sean Nicolson David Peterman Vtronix Incorporated Enclosure: Voice Activated Control System

Vtronix Incorporated Voice Activated Control System Submitted by Contact Submitted to Vtronix Incorporated Scott Emery, Amy Lu, Sean Nicolson, David Peterman David Peterman School of Engineering Science Simon Fraser University dpeterma@sfu.ca Andrew Rawicz School of Engineering Science Simon Fraser University Date April 19, 1999 Steve Whitmore School of Engineering Science Simon Fraser University

Table of Contents 1. Introduction...1 2. Prototype Description...1 3. Deviations...2 4. Future Plans...2 5. Budgetary and Time Constraints...3 5.1 Budget...3 5.2 Time Constraints...4 6. Interpersonal and Technical Experiences...4 7. User's Manual...6 7.1 Startup...6 7.2 Command Structure...6 7.3 Command Words...6 7.3.1 Telephone Commands...7 7.3.2 Submersible Commands...7 7.4 Non-voice Controls and Displays...8 7.5 Additional Notes...8 i

List of Figures Figure 2.1: System Block diagram...1 Figure 7.1: System Command Structure...6 List of Tables Table 5.1.1: Project Costs...3 Table 7.1: Listing of Display numbers corresponding to Command Words...7 ii

1. Introduction Over a period of 14 weeks Vtronix's VOICE System evolved from an idea to a fully functioning unit. The process of this evolution drew together the four members of our group: Scott Emery, Amy Lu, Sean Nicolson, and David Peterman. Everyone worked tirelessly in realizing this idea within the specified constraints. This report describes the unit in its final state and reviews the process and knowledge the group experienced, as well as lessons learned. 2. Prototype Description 1 2 3 4 5 6 7 10 12 8 9 11 13 1. Microphone 6. 16 pin header 10. BCD to 7 segment converter 2. Amplifier 7. 16 pin header 11. BCD to 7 segment converter 3. Voice recognition chip 8. SRAM 12. 7 segment display 4. MC68HCll 9. 8 bit latch 13. 7 segment display 5. MAX7128 Figure 2.1: System Block diagram The prototype VOICE system functions according to specification. We have achieved full control of both the submersible and the telephone. The submersible has four different motor speeds, and is capable of vertical and horizontal motion. However, we have not yet implemented combinations of vertical and horizontal motion. For example, the submersible cannot move downward and forward simultaneously. The telephone controller is capable of dialing phone numbers of any length, and can even operate the telephone s built in answering machine and automatic dial functions. The VOICE system can be adapted to control other devices. The onboard MC68HC11 and MAX7128 are completely in-circuit programmable. The MC68HC11 can be reprogrammed used the RS232 port provided. Likewise, the MAX7128 can be 1

reprogrammed using the ALTERA byteblaster cable. Also two 16 pin headers, each with 14 general I/O pins have been provided for direct device connection. Adapting the VOICE system to control other devices requires no hardware modifications, only the MC68HC11 firmware and the VHDL firmware need to be modified. The VOICE system has a vocabulary of 40 words. These words are retained in a nonvolatile SRAM with a battery life of 10 years, and may be reprogrammed for more intuitive control of other devices. No hardware modifications are required to train new words. 3. Deviations The finished VOICE system deviated in some ways from the original specifications for the system. We had planned to include a manual control to override the VOICE system or to be used in combination with it, but due to time constraints we did not implement it. There is a manual controller for the submersible, but to use it, the cables that run to the submersible must first be removed from the VOICE system and plugged into the manual controller. We had also planned for the system to have a large ON/OFF button, but instead we have a small flip switch. It was also desired for the submersible to move in combinations of directions at the same time. However, for reasons of simplicity, the current system only allows movement in one direction at a time. We also did not supply any software with the system to download code to the 68HC11 microcontroller and the MAX 7128 EPLD. We would also like to improve the feedback to the user from the VOICE system. With the current system, the user must look at the 7-segment display to see if the system correctly recognized the word that was spoken. This is a nuisance when the user is also watching the submersible that they are controlling. It would help to have some sort of audio feedback to tell the user when a word has been recognized. It would also be more intuitive to display the word that is recognized instead of the number corresponding to that word. With the current system, the user must know what number each word corresponds to in order to determine if the system recognized the spoken word correctly. 4. Future Plans We still need to put some finishing touches on our project, such as completing the enclosures for the VOICE system and the motor controller board, and improving some of the wiring on the protoboards. Since the system will eventually be used in the Underwater Research Lab, they have requested that we eliminate the parts of the system that operate the telephone and expand the system to allow more precise control of the submersible. We will modify the system to allow the submersible to move in multiple directions at once, such as down and forward at the same time. We may also add more speed settings than the four that are currently available. We could also modify the 2

left/right direction control to allow the submersible to turn at varying speeds while it is moving forward or backward. We could implement more applications for the VOICE system, such as home appliances like a television, VCR, stove, and microwave. We could develop a centralized system from which you could control many appliances in your home. The system could be wireless to avoid running wires throughout the home. Such a system would be very useful to disabled people who do not have use of their hands. If we develop such a system, we would consult with users of the system during development and testing to get their feedback. If we were to make a second version of the system, we would include the following changes from the original. We would use an FPGA with an EEPROM to replace the 68HC11 and the MAX 7128. This change would simplify the system and allow more capabilities for the system. We could use the FPGA and additional non-volatile SRAM to expand the capabilities of the voice recognition chip to have a vocabulary of more than 40 words. We would use printed circuit boards instead of protoboards to improve the reliability of the system and to make assembly easier. 5. Budgetary and Time Constraints 5.1 Budget Table 5.1.1 shows the estimated project costs from our Project Proposal, and the actual costs as of April 15, 1999. Table 5.1.1: Project Costs Item Estimated Cost ($) Actual Cost Submersible 100 100 Voice Recognition Chip & 150 100 supporting components Printed Circuit Board 50 used protoboards Protoboards - 20 Other electronic and mechanical components 200 see below for detailed breakdown System casing - 20 Device Interface components - 50 Processor/Controller Unit - Free components (HC11 & EPLD) Chip Sockets - 30 Tools - 130 Total 500 450 We met our budget, although not exactly in the same way we expected. For future versions the free components will need to be accounted for (HC11 ~ $25, EPLD ~ $50) 3

and the system will use printed circuit boards, rather than protoboards, for ease of manufacturing. 5.2 Time Constraints Please refer to our Project Proposal for the original Gantt Chart. Although we did not adhere to the time line exactly, we used it as a good guide of our progress. One thing we learned was to start the software aspect earlier. We had limited internal documentation, which made concurrent engineering and design difficult, this aspect was compensated by our small group size and availability of group members who were responsible for the specific details. Getting voice recognition to work took longer than expected. If the time used for exams were factored out, we were only five days behind schedule. The weekly group meetings helped a lot in the planning and design stage. But during the implementation stage we met more often and less formally, especially for debugging and testing. 6. Interpersonal and Technical Experiences Our group dynamics were open and friendly; we had no disputes that we could not resolve amicably. Sean emerged as the tacit group leader. The technical challenges that the group overcame were: design of a motorcontroller to handle currents over 1 Amp integrating HC11 and VHDL code optimizing HC11 and VHDL code to fit in the available space designing our own Pulse Width Modulation (PWM) code interfacing the voice control system to the telephone fitting and connecting a large number of chips on our protoboard implementing an accurate 250ms time delay using HC11 assembler programming 4

Personal Comments: Amy: I learned a lot about low level assembler code: how to write, test and debug, as well as downloading. This project provided a lot of hardware experience: soldering, component selection, protoboard design, and debugging. I was introduced to power control, signal acquisition, and Pulse Width Modulation. I did learn to ask for help from the knowledgeable people in engineering. From a personal perspective I learned to always check your assumptions, speak up, and not to take any comments personally. The project provided an invaluable opportunity for getting to know fellow engineers a lot better. I know I will be a much better team member due to my experiences from this project. Scott: I learned a great deal in making this project including how to write, test and debug hc11 code and how to download it to a MC68HC11E2, soldering techniques, protoboard design, VHDL, and a bit of telephony in so far as the voltage levels involved in causing a dial tone. I also learned the importance of good documentation when trying to interface your code to someone else s. David: I learned a lot about the stages of project development: how to formulate an idea, highlevel planning through low level hardware and software design, component selection and sourcing, prototype assembly and debugging. I gained a lot of experience with soldering components and connecting wires on a protoboard. I also learned about electronics design and debugging techniques. I also discovered that you cannot always trust documentation that comes with a component, and how to seek out information that I need to solve a problem. I also learned that on a project like this, things would not always work as I expect, and that hardware and software often seem to have minds of their own. Sean: I attained a higher level of insight into my strengths and weaknesses. In particular, that I tend to make many mistakes while soldering protoboards. The VHDL code I wrote contained only two bugs. The motor controller, VOICE, and telephone control hardware designs contained only five design errors. I feel that our dicussions of possible design solutions were key to ensuring reliable board level designs. Most importantly, ENSC 370 has improved my ability to make circular objects fit into square holes. 5

7. User's Manual This is a short primer on how to use the VOICE System Prototype (circa April 15, 1999). 7.1 Startup 1. Plug in the power supply for the VOICE System. 2. Plug in additional interface boxes and power supplies. 3. Turn on the VOICE System. 4. Reset the VOICE System, by flipping the reset switch up and down again. 7.2 Command Structure To command one of the devices controlled by the VOICE system you must first enable the device. After the device has been enabled you can now command the device. The commands operate on a hierarchical structure, as displayed in figure 7.1. For the telephone you would first enable the telephone (device), tell it to pick-up or stop (function) and then which numbers to dial (specifics). For the submersible you would first enable the sub (device), set the direction in which it should move (function) and which speed to move at (specifics). Device Function Specifics Figure 7.1: System Command Structure 7.3 Command Words The commands use by the VOICE system and their corresponding 7-segment display references are listed in Table 7.1 below. 6

Table 7.1: Listing of Display numbers corresponding to Command Words 7.3.1 Telephone Commands 7-Segment Display Command Word 1 or 21 One 2 or 22 Two 3 or 23 Three 4 or 24 Four 5 or 25 Five 6 or 26 Six 7 or 27 Seven 8 or 28 Eight 9 or 29 Nine 10 or 30 Left 11 or 31 Right 12 or 32 Zero 13 or 33 Pick-Up 14 or 34 Stop 15 or 35 Ahead 16 or 36 Backward 17 or 37 Submersible 18 or 38 Telephone 19 or 39 Down 20 or 40 Up The commands for the telephone and their function are: Telephone enables the telephone command tree Pick-Up the equivalent of picking the receiver of the telephone up off the hook Stop hangs up the telephone 0-9 saying any of these numbers to the VOICE system when the telephone is enabled will cause the telephone to dial the number said 7.3.2 Submersible Commands The commands for the submersible and their function are: Submersible enables the submersible command tree Ahead causes the submersible to move forward Backward causes the submersible to move backward Left turns the submersible to the left Right turns the submersible to the right Up causes the submersible to rise 7

Down causes the submersible to dive 1-5 saying one of these numbers sets the speed of the submersible to the corresponding rate. Speed 1 is the fastest and speed 5 is the slowest. 7.4 Non-voice Controls and Displays The VOICE system has the following non-voice controls and displays: An on/off switch this is the main power switch for the VOICE system A reset switch used during start-up to tell the VOICE system the user is ready to give commands A microphone enable/disable switch enables and disables the microphone so that the user can speak without worrying that the VOICE system will pick up on the user s conversation and execute an undesired command A dual 7-segment display for verifying that the VOICE system has recognized the correct word A power indicator LED lights up when the VOICE system is powered A key pad used for retraining the VOICE system s voice recognition chip 7.5 Additional Notes For those who wish to develop applications for the VOICE system please contact Vtronix Inc. for information on driver coding and voice recognition training. Also, feel free to contact Vtronix for technical support and vtronix-inc@sfu.ca. 8