Liz Lyons Mike Scherban Oscar Orihuela Knightro Kart 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 Low
Target APIs 10 (Android 2.3.3 Gingerbread and higher), approximately 94.2% of Android market Ice Cream Sandwich Jelly Bean Eclair Honeycomb Froyo Gingerbread
Target APIs 10 (Android 2.3.3 Gingerbread and higher), approximately 94.2% of Android market Ice Cream Sandwich Jelly Bean Eclair Honeycomb Froyo Gingerbread
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 Speed 3 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 Difficulty Low 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 Special Signals WAKEUP: 0xFF RESET: 0xBB 7 6 5 4 3 2 1 LEFT RIGHT SPEED 4 SPEED3 SPEED2 SPEED1 STOP REVERSE Special Signals WAKEUP: 0xFF RESET: 0xBB
Bit Assignment 0x84 0x44 0x04 0x88 0x48 0x08 0x90 0x50 0x10 0xA0 0x60 7 6 5 4 3 2 1 LEFT RIGHT SPEED 4 SPEED3 SPEED2 SPEED1 STOP REVERSE Action (Conditions) Left (YAccel < -2) Right (YAccel > 2) Straight (-2 < YAccel < 2) Speed 1 (2 < ZAccel < 3.5) 0x84 0x44 0x04 Speed 2 (3.5 < ZAccel < 4.5) 0x88 0x48 0x08 Speed 3 (4.5 < ZAccel < 5.5) 0x90 0x50 0x10 Speed 4 (5.5 < ZAccel) 0xA0 0x60 0x20 Reverse (ZAccel < -2) 0x81 0x41 0x01 Stopped (-2 < ZAccel < 2) 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 C, Assembly 16MHz UART & PWM support Bluetooth module runs at 3.3V as well 2.75” 2.75”
Microcontroller Same voltage as Bluetooth module 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 Bluetooth module runs at 3.3V as well
Microcontroller MSP430G2553 (28 pin TSSOP) Surface mount package Function # of Pins UART 2 Start Line Signal 1 LEDs 5 Motors 4 Start Alert Signal
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 Explain how sleep works!
MSP430 Software Flowchart
Printed Circuit Board Most components will be on a custom printed circuit board designed in Eagle
Printed Circuit Board Motors LEDs Track signal JTAG Power MSP430 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 Change LMD18200 for L298n!
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 Add picture of heat sinks & vector board HERE!!!!!
Power Supply Input Voltage Voltage Regulator SN754410 9V 5V Race Car Does Not Require MSP430 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
Expenses Total: $ 410.00 Include Total To Date Costs Passive Comonents $ 20.00 RC Vehicles $ 102.00 PCBs $ 45.00 Remote Control $ - 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 Fans $ 28.00 Aluminum Heatsinks Wiring and Cabling Total: $ 410.00 Include Total
Questions?