Morse Code Group
David FongJames KyAnthony WasanoJay Yu
http://morsecodegroup.blogspot.com
Makia Malo Reminder
World Renowned Storyteller/Writer Hansen’s disease (formally known
as Leprosy) Blind No feelings from his hands (cannot
read Braille) Sent to Kalaupapa at the age of 12 Enrolled at UH at 37, graduated
with bachelor’s degree in Hawaiian Studies and certificate in teaching
His Current Input System
All That To Type “IT D…..”
Overview
We are making a USB input device that uses Morse code
Cheap Small Simple Easy to repair and duplicate
Block Diagram
Arm Controller
Includes Philips LPC2103 Microcontroller with 32kb Internal Flash Program Memory
Operating Speed up to 58.9824MHz
Programming in C (Keil uVision)
Straight Key
Morse Code Module
Morse Code Data Structure Morse Entry Morse Code Reading Morse Code Table
Morse Code Data Structuretypedef enum DitDah {DIT, DAH, EMPTY} DitDah;
#define MAXSIZE 7
typedef struct MorseCode{
DitDah elements[MAXSIZE];int size;
} Morse;
•Morse Code Structure has it’s own enumerated type which can be DIT, DAH, or EMPTY
•Size keeps track of the number of elements in the Current Morse Structure
•Other functions support this structure and modify it
Morse Structure FunctionMorse clear_morse(Morse key);
Morse add_morse_dit(Morse key);
Morse add_morse_dah(Morse key);
Morse fill_rest_empty(Morse key);
• clear_morse initializes the structure array so all EMPTY, this is normally called when a new Morse sequence is started
• add_morse_dit adds a DIT to the array and increments size
• add_morse_dah adds a DAH to the array and increments size
• fill_rest_empty is called on when input of current Morse sequence is stopped and fills the rest of the array to empty
Morse Code Readingint compare_morse(Morse key);
void init_key_output_table(USBOutput KeyTable[MAXKEY]);
USBOutput find_usb_output(int keynumber,USBOutput KeyTable[MAXKEY]);
•Init_key_output_table initializes the USB output table array
•Not sure what output are so far, the table is Integers for now
•compare_morse iterates through the Morse Code Table array and returns a number that corresponds to it
•find_usb_output returns the output needed from Table
Morse Code Tableconst static DitDah MorseTable[MAXKEY][MAXSIZE] =
{{DIT,DAH,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY}, /* A */{DAH,DIT,DIT,DIT,EMPTY,EMPTY,EMPTY}, /* B */{DAH,DIT,DAH,DIT,EMPTY,EMPTY,EMPTY}, /* C */{DAH,DIT,DIT,EMPTY,EMPTY,EMPTY,EMPTY}, /* D */{DIT,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY}, /* E */{DIT,DIT,DAH,DIT,EMPTY,EMPTY,EMPTY}, /* F */{DAH,DAH,DIT,EMPTY,EMPTY,EMPTY,EMPTY}, /* G */{DIT,DIT,DIT,DIT,EMPTY,EMPTY,EMPTY}, /* H */{DIT,DIT,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY}, /* I */{DIT,DAH,DAH,DAH,EMPTY,EMPTY,EMPTY}, /* J */{DAH,DIT,DAH,EMPTY,EMPTY,EMPTY,EMPTY}, /* K */{DIT,DAH,DIT,DIT,EMPTY,EMPTY,EMPTY}, /* L */{DAH,DAH,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY}, /* M */{DAH,DIT,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY}, /* N */
Potential Problems
Adaptation algorithm Robustness/reliability (testing) Physical implementation
Gantt Chart09
-01-
06
09-1
5-06
09-2
9-06
10-1
3-06
10-2
7-06
11-1
0-06
11-2
4-06
12-0
8-06
Meeting with Makia
Ordering parts
Programming 3 buttons
Programming 2 buttons
Programming 1 buttons
Overall programming controller
Programming USB controller
Making the final product
Completed Remaining
Thank you, any questions?