Java-Based In-Car Cell Phone Integration
description
Transcript of Java-Based In-Car Cell Phone Integration
![Page 1: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/1.jpg)
Java-Based In-Car Cell Phone Integration
By: Chris KellerGreg NehusMatt Odille
![Page 2: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/2.jpg)
High-Level View
![Page 3: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/3.jpg)
Project Summary
![Page 4: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/4.jpg)
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
![Page 5: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/5.jpg)
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
![Page 6: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/6.jpg)
Specific Aims
![Page 7: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/7.jpg)
Specific Aims
• Four main goals of the project1) To learn how Bluetooth communications
are implemented2) To investigate how Bluetooth is already
being used in automobiles3) Implement and improve the preexisting
uses (via text message dictation and synthesizing)
4) Improve safety of driving while using cell phones
![Page 8: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/8.jpg)
Background and Motivation
![Page 9: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/9.jpg)
Background and Motivation
• All group members are Computer Engineering majors with focus on software
• Relevant Courses:– COE 401, Intermediate Programming
using Java– COE 445, Data Structures– COE 1501, Algorithm Implementation– COE 1186, Software Engineering– COE 1185, Computer Systems Interfacing
![Page 10: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/10.jpg)
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
![Page 11: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/11.jpg)
Preliminary Work/Design Possibilities
![Page 12: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/12.jpg)
Preliminary Work/Design Possibilities
• Combine our code with preexisting technologies– BlueCove Java Bluetooth Libraries– CloudGarden TalkingJava SDK– Broadcom’s Widcomm Bluetooth Software
![Page 13: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/13.jpg)
Design Approach
![Page 14: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/14.jpg)
Design Approach
• Java Setup– Java is a general-purpose, class-based,
object-oriented 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
![Page 15: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/15.jpg)
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.
![Page 16: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/16.jpg)
Design Approach
• Version Control
![Page 17: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/17.jpg)
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.
![Page 18: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/18.jpg)
Design Approach
• Bluetooth Communication– Five parts to the anatomy of a Bluetooth
application1) Stack Initialization2) Device Discovery3) Device Management4) Service Discovery5) Communication
![Page 19: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/19.jpg)
Design Approach
1) Stack Initialization– Must be done prior to any attempts at
Bluetooth communication– Initializes
• Port• Baud Rate• Bluetooth mode
![Page 20: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/20.jpg)
Design Approach
2) Device Discovery– Allows the computer to get a list of
nearby Bluetooth devices (our phone).– Example code:
![Page 21: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/21.jpg)
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:
![Page 22: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/22.jpg)
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
![Page 23: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/23.jpg)
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
![Page 24: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/24.jpg)
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
![Page 25: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/25.jpg)
Design Approach
• Text-to-Speech (TTS)– This will also be accomplished by utilizing
the CloudGarden software
![Page 26: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/26.jpg)
Milestones and Schedule
![Page 27: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/27.jpg)
![Page 28: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/28.jpg)
Management Plan
![Page 29: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/29.jpg)
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
![Page 30: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/30.jpg)
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
![Page 31: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/31.jpg)
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
![Page 32: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/32.jpg)
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
![Page 33: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/33.jpg)
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
![Page 34: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/34.jpg)
Expected Problems and Solutions
![Page 35: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/35.jpg)
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:
![Page 36: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/36.jpg)
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.
![Page 37: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/37.jpg)
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.
![Page 38: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/38.jpg)
Estimated Costs
![Page 39: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/39.jpg)
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
![Page 40: Java-Based In-Car Cell Phone Integration](https://reader036.fdocuments.net/reader036/viewer/2022062409/56814e99550346895dbc4244/html5/thumbnails/40.jpg)
Thank you for your time.
- Chris Keller Greg Nehus Matt Odille