Final Presentation
Download
Report
Transcript Final Presentation
Liz Lyons
Mike Scherban
Oscar Orihuela
What Is Knightro Kart?
An interactive, Android
controlled vehicle race system
consisting of two independent
cars and controllers.
Vehicles are controlled by
Android powered mobile
devices or tablets
Consists of two
independent vehicles, a
track utilizing infrared, and
two independent remote
controls
System Block Diagram
Walkthrough
System Specifications
Bluetooth Communication Range
<30 m
Vehicle Speed
20 MPH max
Battery Life
>1 hr
Number of Users
2
Remote Control
Mobile device is used in landscape mode. It utilizes
hardware level sensor data, and interprets it to tell the
MSP430 how to direct the vehicle.
Why Android?
Essentially free – No new hardware costs,
free SDK, familiar languages
Open source platform, easy to learn
Programming
Language
Devices
Readily
Available?
Familiarity
Cost to
Develop
Android
Java/XML
Yes
High
Free
iOS
Objective-C
No
Medium
$99/year
Windows
Phone
.NET
framework/
Visual
C++/XNA
No
Low
Free
Target APIs 10 (Android 2.3.3 Gingerbread and higher),
approximately 94.2% of Android market
Ice Cream
Sandwich
Jelly Bean
Eclair
Honeycomb
Gingerbread
Froyo
Target APIs 10 (Android 2.3.3 Gingerbread and higher),
approximately 94.2% of Android market
Ice Cream
Sandwich
Jelly Bean
Eclair
Honeycomb
Gingerbread
Froyo
Wireless Communication Choices
Bluetooth
(Class 2)
Wi-Fi Direct
Wi-Fi
(traditional)
Protocol
LMP, L2CAP, SDP
IEEE 802.11 a/g/n
IEEE 802.11
Communication
Distance
Radio dependent,
≈ 10 meters min
200 meters MAX
200 meters MAX
Speed
3 Mbps MAX
250 Mbps MAX
250 Mbps MAX
API Requirement
5 or higher
14 or higher
1 or higher
Power
2.5 mW
Varies
Varies, may be 40x
Bluetooth
ISM Band
2.4 to 2.485 GHz
2.4 GHz or 5 GHz
2.4 GHz or 5 GHz
Difficulty
Low
High
High
Remote Control Requirements
Android device must:
Have Bluetooth capability
Contain accelerometer sensors
Have touch screen
Run Android 2.3.3 Gingerbread or newer OS
User Interface
Home screen displays current lap,
accelerometer values, and connected
devices (if any)
Menu allows user to control the state of
the remote control application
• Connect A Device – connect to a
vehicle
• Start – send signal to BT module
signifying ready to race
• Reset Remote Control – reset
application variables, sever
connections
• Exit – close the application and
disconnect any active Bluetooth
connections
User Interface
When user selects “Connect a Device”
from the menu they are presented with
a list of paired devices.
• User can also search for unpaired,
discoverable devices in the area
If connection is successful, the name of
the connected device will be displayed
on the main remote control screen.
User Interface
Home screen displays current lap,
accelerometer values, and connected
devices (if any)
Menu allows user to control the state of
the remote control application
• Connect A Device – connect to a
vehicle
• Start – send signal to BT module
signifying ready to race
• Reset Remote Control – reset
application variables, sever
connections
• Exit – close the application and
disconnect any active Bluetooth
connections
Handling Accelerometers
Accelerometers are seen by
the devices relative to an
imagined coordinate system.
We use the Y (left/right)
and Z (forward/back) axis
values to control the cars
Bit Assignment
7
6
5
4
3
2
1
0
LEFT
RIGHT
SPEED 4
SPEED3
SPEED2
SPEED1
STOP
REVERSE
Special Signals
WAKEUP:
0xFF
RESET:
0xBB
Bit Assignment
7
6
5
4
3
2
1
0
LEFT
RIGHT
SPEED 4
SPEED3
SPEED2
SPEED1
STOP
REVERSE
Action (Conditions)
Speed 1
(2 < ZAccel < 3.5)
Speed 2
(3.5 < ZAccel < 4.5)
Speed 3
(4.5 < ZAccel < 5.5)
Speed 4
(5.5 < ZAccel)
Reverse
(ZAccel < -2)
Stopped
(-2 < ZAccel < 2)
Left
(YAccel < -2)
Right
(YAccel > 2)
Straight
(-2 < YAccel < 2)
0x84
0x44
0x04
0x88
0x48
0x08
0x90
0x50
0x10
0xA0
0x60
0x20
0x81
0x41
0x01
0x82
0x42
0x02
Bluetooth Module
Roving Networks RN-41
Minimal configuration
Baud rate
Auto slave, SPP
Built in antenna
Automatically pushes & pulls data via UART RX/TX pins
Runs own Bluetooth stack
Low power
3.3V
100m range
Microcontroller
MSP430G2553
Atmega168 w/ Arduino
3.3V
5V
16KB flash
16KB flash
C, Assembly
C, Assembly
16MHz
16MHz
UART & PWM support
UART & PWM support
2.75”
2.75”
Microcontroller
MSP430G2553
3.3V
16KB flash
C, Assembly
16MHz
UART & PWM support
• Same voltage as Bluetooth module
• No voltage level shifting
• More feature rich IDE
• Viewable registers
• Real time setting/variable
adjustment
• Disassembly
• SW breakpoints
• G2553 variant
• HW UART support
Microcontroller
MSP430G2553 (28 pin TSSOP)
Surface mount package
Function
# of Pins
UART
2
Start Line Signal
1
LEDs
5
Motors
4
Start Alert Signal
2
Programming and Debugging
Code Composer Studio free license
JTAG used to take advantage of IDE debugging
features
Connect through TI USB FET device to 14 pin header
Motor Signals
LEFT/RIGHT uses digital signals
FWD/REV take advantage of hardware PWM support
PWM used to add variable speed
Slow
Fast!
Microcontroller Comm.
MSP430Module: UART, 9600 baud rate,
interrupts*
TrackVehicle: Port interrupt*, debounced
VehicleVehicle: Watch for port low to high change
*Interrupts: To catch events when they happen,
opposed to hanging code and waiting to catch them
Interrupt code is ran regardless of which code is
currently being executed
Low Power Mode
Bluetooth module separate from MSP430
Allows BT pairing while MSP430 is asleep
MSP430 goes to sleep at power on and when not in
race mode
Turns off clocks and CPU
Command from phone will wake the car for use
Only executes code in an interrupt
MSP430 Software Flowchart
Printed Circuit Board
Most components will be on a custom printed circuit
board designed in Eagle
Printed Circuit Board
Motors
BT Module
and status
LEDs
LEDs
Track
signal
JTAG
Power
MSP430
Ready signals
Infrared Features
Each race vehicle contains IR phototransistors
Biased by IR light
START line consists of an array of IR LEDs
Triggers phototransistors on vehicle, enables lap counter
Infrared also used for vehicle to vehicle
communication
Race Vehicle
9.6V battery pack
required
Potential to travel
20 mph
2 D.C. motors
1st Motor controlling
FWD and REV motion
2nd Motor controlling turning left and right
17 inches long
7 inches wide
8 inches tall
Motor Options
Race car requires 2 motors
1st Motor controls – FWD & REV motion – D.C. motor
2nd Motor controls – Turning - D.C. or Servo
D.C. Motor
Servo Motor
Less Expensive
More Expensive
Requires Less Voltage
to function
Requires Higher
Voltage to function
Slower Reaction Time
Faster Reaction Time
H-Bridge
MSP430 does not have sufficient voltage to run motors
H-bridge directs secondary power supply to motors
High/low signals received by H-bridge cause motors to
spin in a certain direction
Ex: Clockwise / Counter-Clockwise / Stand Still
H-Bridge - Typical
Typical H-Bridge configuration
Motor represented by inner
circle
Switches represent transistors
Motor is at a stand still
H-Bridge - Clockwise
The H-bridge
is causing the D.C. motor to spin
clockwise
H-Bridge – Counter Clockwise
The H-bridge
is causing the D.C. motor to spin
counter clockwise
SN754410 vs. L298N
SN754410
L298N
Max Motors
2 DC motors
2 DC motor
Max Continuous
Current
1 Amp
2 Amp
VCC1 Supply
Voltage Range
3.3V - 5.5V
4.5V – 7V
Max VCC2 Supply
Voltage
36V
46V
SN754410
Cost efficient : $2.16 per chip
Detailed documentation
Manufacturer: Texas Instruments
2Chips per car needed due to current restrictions
Each motor takes up to 1 Amp
SN754410 Pin Out
Car Interior Schematic
Cooling
SN754410 includes built in thermal shutdown
Generates enough heat to trigger shutdown
Aluminum heat sinks added to prevent shutdown
Fans to assist in cooling
Power Supply
Input
Voltage
Voltage
Regulator
SN754410
9V
5V
Race Car
9.6V
Does Not
Require
MSP430
9V
3.3V
Testing
Had LEDs light up at certain events.
Connection successful
Byte received
Once we knew communication was successful, we tested
with LEDs, SW breakpoints, and the register viewer to
confirm correct bytes.
LEDs were used to confirm the correct motor output from
PCB, using the tilt of the phone
Tested that the H-bridge received the correct logic and
output the correct signals using a multimeter and motors
Finally tested that the car moved in accordance with the
orientation of the phone
LED Notifications
MSP430 asleep.
Awaiting wake up
Ready to race,
waiting for other car
Racing!
Issues Encountered
UUID assignment varies based on device receiving
connection, had to look for the UUID corresponding
to hardware (not android devices)
Surface mount devices smaller than anticipated
Overheating of the H-Bridge, heat sinks required
Syncing vehicles to start at the same time
Roadblocks
App occasionally takes more than one attempt to make
a connection
Track LED spacing may be too large to trigger
phototransistor 100% of the time
Cars slow down after continuous usage
Heat issue: heatsinks and fans multiplied the usage time
Needs a few seconds to cool down and run at normal
speed
Unavoidable infrared light occasionally triggers
phototransistors
What We Would Do Differently
For a more successful project we could have combined
headers on the PCB to make the wiring easier and less
cluttered
Use modulated infrared to prevent accidental triggers
and allow outside usage
Use an H-bridge that supports more current and heat
To Date Costs
Expenses
Passive Comonents
$
20.00
RC Vehicles
$
PCBs
Remote Control
$
$
45.00
-
MSP430s
$
6.00
Photo Transistors
$
2.00
IR Lights
$
5.00
H-Bridge Chip
$
8.00
Bluetooth Modules
$
50.00
JTAG Programmer
$
100.00
Batteries
$
10.00
Wood For Track
$
8.00
Fans
$
28.00
Aluminum Heatsinks
$
6.00
Wiring and Cabling
$
20.00
Total:
$
102.00
410.00
Questions?