Java Based In Car Cell Phone Integration

Download Report

Transcript Java Based In Car Cell Phone Integration

Java-Based In-Car Cell
Phone Integration
By:
Chris Keller
Greg Nehus
Matt Odille
High-Level View
Project Summary
Project Summary
• There continues to be many accidents
attributed to cell phone use while driving
• Text messaging is perhaps the most
dangerous
• Our project improves safety of communication
while driving
– Streams phone conversations
– Accepts commands via voice
– Dictates text messages
• We will implement the software and a GUI
Project Summary
• Primary Research:
–
–
–
–
Bluetooth in Java
Bluetooth Protocol
AT Commands
Java Speech API
• Why we chose this:
– To learn how Bluetooth is implemented
– To deepen our Java knowledge
– To build something tangible that works
Specific Aims
Specific Aims
•
Four main goals of the project
1) To learn how Bluetooth communications are
implemented
2) To investigate how Bluetooth is already being
used in automobiles
3) Implement and improve the preexisting uses
(via text message dictation and synthesizing)
4) Improve safety of driving while using cell
phones
Background and Motivation
Background and Motivation
• All group members are Computer Engineering
majors with focus on software
• Relevant Courses:
–
–
–
–
–
COE
COE
COE
COE
COE
401, Intermediate Programming using Java
445, Data Structures
1501, Algorithm Implementation
1186, Software Engineering
1185, Computer Systems Interfacing
Background & Motivation
• We’re motivated to do more than small Java
applications
• Co-op experience
– Greg - ANSYS
– Matt - Vocollect
– Chris – ANSYS
• We’re interested in cell phone, Bluetooth, and
automobile technology
Preliminary Work/
Design Possibilities
Preliminary Work/Design
Possibilities
• Combine our code with preexisting
technologies
– BlueCove Java Bluetooth Libraries
– CloudGarden TalkingJava SDK
– Broadcom’s Widcomm Bluetooth Software
Design Approach
Design Approach
• Java Setup
– Java is a general-purpose, class-based, objectoriented language
– Must install the following on all development
computers:
• Java Runtime Environment
• Java Development Kit
– This gives us the software to develop and run
Java applications
Design Approach
• Integrated Development Environment (IDE)
– Using the same IDE will make combining
individual code easier
– We will be using NetBeans 6.5
•
•
•
•
Editor
Version Control integration
Syntax highlighting
Etc.
Design Approach
• Version Control
Design Approach
• Bluetooth Communication
– Prerequisite: BlueCove Java Bluetooth Library
• Java does not come packaged with any libraries
that allow interfacing with the computer’s
Bluetooth stack. The BlueCove library will give
us that capability.
Design Approach
•
Bluetooth Communication
– Five parts to the anatomy of a Bluetooth
application
1)
2)
3)
4)
5)
Stack Initialization
Device Discovery
Device Management
Service Discovery
Communication
Design Approach
1) Stack Initialization
– Must be done prior to any attempts at
Bluetooth communication
– Initializes
•
•
•
Port
Baud Rate
Bluetooth mode
Design Approach
2) Device Discovery
– Allows the computer to get a list of nearby
Bluetooth devices (our phone).
– Example code:
Design Approach
3) Device Management
– Allows the computer to access properties of
the phone
– This piece of code obtains the MAC Address a
BT device
– Example code:
Design Approach
4) Service Discovery
– Determine what services and protocols are
available on the phone
5) Communication
– At this point, a Bluetooth connection is
established and communication can begin.
– To control the cell phone, we will use AT
Commands
Design Approach
• Example dialogue of communication via AT
commands
– Phone:
• +CMTI: <mem>,<index>
• “I have a new text message”
– PC:
• AT+CMGR=<index>
• “Give me it!”
– Phone would then return the text message in a
PDU encoded form. We must decode this in
our application
Design Approach
• Speech-to-Text (STT)
– Improved safety with hands-free control over
cell phone
– Interprets voice commands
– Whole companies exist based on writing STT
algorithms (Vocollect)
– We will utilize the Java-based CloudGarden
software development kit
Design Approach
• Text-to-Speech (TTS)
– This will also be accomplished by utilizing the
CloudGarden software
Milestones and
Schedule
Management Plan
Management Plan
• Week 1
– Chris: Finish preliminary research and project
proposal
– Matt: Finish preliminary research and project
proposal
– Greg: Finish preliminary research and project
proposal
• Week 2
– Chris: Progress report on non-technical issues
– Matt: Create use case diagrams
– Greg: Begin rudimentary communication
between computer and phone
Management Plan
• Week 3
– Chris: Testing of established communication
between computer and phone
– Matt: Install and learn basics of CloudGarden
voice software
– Greg: Finish communication between computer
and phone
Management Plan
• Week 4
– Chris: Utilize CloudGarden to begin
implementing voice commands, progress report
technical issues
– Matt: Begin GUI design and coding, progress
report technical issues
– Greg: Utilize CloudGarden to begin
implementing voice commands, progress report
technical issues
Management Plan
• Week 5
– Chris: Finish implementation of voice
commands
– Matt: Finish GUI
– Greg: Begin incorporation of Broadcom
• Week 6
– Chris: Begin final report
– Matt: Test design at this stage
– Greg: Finish Broadcom incorporation
Management Plan
• Week 7
– Chris: Finish final report
– Matt: Any remaining technical tasks
– Greg: Begin final presentation
• Week 8
– Chris: Final Presentation
– Matt: Final Presentation
– Greg: Final Presentation
Expected Problems
and Solutions
Expected Problems & Solutions
• Voice Recognition Accuracy
– Problem: Speech dictations are not always
100% accurate.
– Solution: Use Levenshtein Distance Algorithm
for string similarity calculations.
– Example code:
Expected Problems & Solutions
• Software Compatibility Issues with
CloudGarden
– Problem: The CloudGarden TalkingJava SDK
installation requires a specific outdated version
of the Java Runtime Environment (JRE).
– Solution: Uninstall any existing versions of
Java and temporarily install JRE 1.4.2.
Expected Problems & Solutions
• Incorporating Broadcom software
– Problem: Streaming phone calls or stereo
audio over Bluetooth is an extremely difficult
task. Solutions exist, by companies such as
Broadcom, but even their development kit fails
to state how this is accomplished.
– Solution: We will utilize Broadcom’s existing
application to accomplish the task of passing
audio from a phone call to the computer’s
speakers.
Estimated Costs
Estimated Costs
• Software:
– TalkingJava SDK License (academic) = $14 per
license
• Hardware:
–
–
–
–
Microphone - $10
Bluetooth adapter - $12
Computer for developing and testing – N/A
Bluetooth-enabled cell phone – N/A
• Total Estimated Cost = $64
Thank you for your time.
- Chris Keller
Greg Nehus
Matt Odille