Difference between revisions of "F14: Team3-Self Driving Car"
From Embedded Systems Learning Academy
Proj user22 (talk | contribs) (→Geographical Team Schedule) |
Proj user22 (talk | contribs) (→Controller Communication Table) |
||
(115 intermediate revisions by 2 users not shown) | |||
Line 54: | Line 54: | ||
| | | | ||
| Order Other parts(Sensor/LCD/Motor Controller...) | | Order Other parts(Sensor/LCD/Motor Controller...) | ||
− | | | + | | Completed |
| | | | ||
|- | |- | ||
! scope="row"| 3 | ! scope="row"| 3 | ||
− | | | + | | 9/30/2014 |
− | | 11/ | + | | 11/25/2014 |
− | | | + | | Master Controller Team task |
| Ongoing | | Ongoing | ||
| | | | ||
|- | |- | ||
! scope="row"| 4 | ! scope="row"| 4 | ||
− | | | + | | 10/06/2014 |
− | | | + | | 11/15/2014 |
− | | | + | | Sensor Team task |
− | | | + | |Completed |
| | | | ||
|- | |- | ||
Line 74: | Line 74: | ||
| | | | ||
| | | | ||
− | | | + | | Motor Controller Team task |
| Ongoing | | Ongoing | ||
| | | | ||
Line 81: | Line 81: | ||
| | | | ||
| | | | ||
− | | | + | | Geographical Controller Team task |
| Ongoing | | Ongoing | ||
| | | | ||
Line 88: | Line 88: | ||
| | | | ||
| | | | ||
− | | | + | | I/O Team task |
| Ongoing | | Ongoing | ||
| | | | ||
Line 95: | Line 95: | ||
| | | | ||
| | | | ||
− | | | + | | Communication Bridge + Android Team task |
| Ongoing | | Ongoing | ||
| | | | ||
Line 120: | Line 120: | ||
| | | | ||
|} | |} | ||
+ | |||
+ | |||
+ | |||
+ | '''Master Controller Team Schedule''' | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! scope="col"| Week No. | ||
+ | ! scope="col"| Start Date | ||
+ | ! scope="col"| Planned End Date | ||
+ | ! scope="col"| Task | ||
+ | ! scope="col"| Status | ||
+ | ! scope="col"| Actual End Date | ||
+ | |- | ||
+ | ! scope="row"| 1 | ||
+ | | 9/30/2014 | ||
+ | | 10/7/2014 | ||
+ | | | ||
+ | * Implement Basic CAN Hardware to communicate between 2 Controllers | ||
+ | | | ||
+ | * Completed | ||
+ | : We are able to send a message from Tx over CAN and perform a specific operation at the Rx. | ||
+ | | 10/7/2014 | ||
+ | |- | ||
+ | ! scope="row"| 2 | ||
+ | | 10/7/2014 | ||
+ | | 10/14/2014 | ||
+ | | | ||
+ | * Design CAN Acceptance Filter among different Controllers | ||
+ | * Define and Implement CAN Frame structure for proper communication | ||
+ | establishment | ||
+ | | | ||
+ | * Completed | ||
+ | : Only messages with in range of acceptance filter are received, Decided on CAN frame structure using 11-bit frame. | ||
+ | | 10/11/2014 | ||
+ | |- | ||
+ | ! scope="row"| 3 | ||
+ | | 10/14/2014 | ||
+ | | 10/21/2014 | ||
+ | | | ||
+ | * Develop Inter-Controller Communication over CAN | ||
+ | * Test point-to-point and Broadcast message transmission | ||
+ | * Implement a Counter to count and display number of messages | ||
+ | | | ||
+ | * Completed | ||
+ | : CAN Communication among multiple boards achieved, Point-to-Point & Broadcast modes are working, Able to display the count on 7-Seg Display on SJOne board. | ||
+ | | 10/19/2014 | ||
+ | |- | ||
+ | ! scope="row"| 4 | ||
+ | | 10/21/2014 | ||
+ | | 10/28/2014 | ||
+ | | | ||
+ | * Layout blueprint for Controller and Module positioning | ||
+ | * Assemble the RC Car with all the controllers and Modules | ||
+ | * Define the Message List by working with other teams | ||
+ | * Start working on CAN Periodic message structure | ||
+ | | | ||
+ | * Completed | ||
+ | : RC car design and module assembly is completed. Need some fine tuning for connections. Message list is generated and periodic message implementation started. | ||
+ | | 10/28/2014 | ||
+ | |- | ||
+ | ! scope="row"| 5 | ||
+ | | 10/28/2014 | ||
+ | | 11/04/2014 | ||
+ | | | ||
+ | * Complete CAN Periodic message structure to transmit Broadcast | ||
+ | messages over CAN and establish controlled communication among | ||
+ | different controllers | ||
+ | * Implement Start condition detection and Fetch boot status from | ||
+ | all controllers and display the status of each controller | ||
+ | | | ||
+ | * Completed | ||
+ | : Periodic Message Setup done. Able to receive boot status. Need to work on display of status. | ||
+ | | 11/03/2014 | ||
+ | |- | ||
+ | ! scope="row"| 6 | ||
+ | | 11/04/2014 | ||
+ | | 11/11/2014 | ||
+ | | | ||
+ | * Design 'Kill Switch' in co-ordination with Motor Controller team | ||
+ | and Bridge Controller team | ||
+ | * Develop a 'CAN Bus Crash' detection and reset CAN Bus methodology | ||
+ | * Design Automatic Head Light turn ON/OFF functionality by | ||
+ | working with Sensors Controller team | ||
+ | | | ||
+ | * Completed | ||
+ | : Kill Switch implemented through Bridge controller. Head Lights implemented. LCD display of Status achieved. | ||
+ | | 11/11/2014 | ||
+ | |- | ||
+ | ! scope="row"| 7 | ||
+ | | 11/11/2014 | ||
+ | | 11/18/2014 | ||
+ | | | ||
+ | * Implement File Log saving to SD Card at periodic intervals | ||
+ | * Work on Restoring to last known Status if the system crashes while running | ||
+ | * Develop Detection technique if controllers are reaching 'Error State' | ||
+ | | | ||
+ | * Completed | ||
+ | : File Log implemented. Error State is partially implemented. Obstacle detection achieved. Needed refinement in Direction control logic. Need to implement reverse logic. | ||
+ | | 11/18/2014 | ||
+ | |- | ||
+ | ! scope="row"| 8 | ||
+ | | 11/18/2014 | ||
+ | | 11/25/2014 | ||
+ | | | ||
+ | * Project Integration and testing Basic Self_Drive Capability of the Car | ||
+ | * Check the Functionality and behavior of all controllers in all the known | ||
+ | contexts | ||
+ | * Perform modifications (if any) to eliminate any bugs to make the car work | ||
+ | seamlessly | ||
+ | * Final Integration of car and testing there after | ||
+ | |||
+ | | | ||
+ | * Completed | ||
+ | : Integration Started. Faced difficulty in synchronization. | ||
+ | | 11/26/2014 | ||
+ | |- | ||
+ | ! scope="row"| 9 | ||
+ | | 11/25/2014 | ||
+ | | 12/02/2014 | ||
+ | | | ||
+ | * Final Integration and testing Self_Drive Capability of the Car | ||
+ | | | ||
+ | * Ongoing | ||
+ | | --/--/---- | ||
+ | |} | ||
+ | |||
'''Sensor Team Schedule''' | '''Sensor Team Schedule''' | ||
Line 135: | Line 262: | ||
| 10/18/2014 | | 10/18/2014 | ||
| Order Ultra Sonic Sensors | | Order Ultra Sonic Sensors | ||
− | | Got | + | | Completed [Got two sensors (front and back), 2 more (front right & left) to order ->Completed.] |
− | | | + | | 10/19/2014 |
|- | |- | ||
! scope="row"| 2 | ! scope="row"| 2 | ||
Line 149: | Line 276: | ||
| 10/16/2104 | | 10/16/2104 | ||
| Sensor code development | | Sensor code development | ||
− | | | + | | Completed (Implementing filter (HW/SW) to get more accurate data ->(Done). Add logic to get the rest of the three sensor(front right/left and back data)->(Done) (Note: Delayed due to the implementation of CAN structure and calibration of IR sensor) |
− | | | + | | 10/21/2014 |
|- | |- | ||
! scope="row"| 4 | ! scope="row"| 4 | ||
− | | 10/ | + | | 10/22/2014 |
− | | 10/ | + | | 10/25/2014 |
| Sensor software testing | | Sensor software testing | ||
| Ongoing | | Ongoing | ||
Line 160: | Line 287: | ||
|- | |- | ||
! scope="row"| 5 | ! scope="row"| 5 | ||
− | | 10/ | + | | 10/25/2014 |
− | | 10/ | + | | 10/28/2014 |
| Sensor real time testing | | Sensor real time testing | ||
− | | | + | | Ongoing |
| | | | ||
|- | |- | ||
! scope="row"| 6 | ! scope="row"| 6 | ||
| 10/13/2014 | | 10/13/2014 | ||
− | | 10/ | + | | 10/15/2014 |
| Light sensor code Development | | Light sensor code Development | ||
− | | | + | | Completed |
− | | | + | | 10/14/2014 |
|- | |- | ||
! scope="row"| 7 | ! scope="row"| 7 | ||
| 10/13/2014 | | 10/13/2014 | ||
− | | 10/ | + | | 10/15/2014 |
| Accelerometer sensor code Development to detect tilt | | Accelerometer sensor code Development to detect tilt | ||
− | | | + | | Completed |
− | | | + | | 10/14/2014 |
|- | |- | ||
! scope="row"| 8 | ! scope="row"| 8 | ||
− | | 10/ | + | | 10/15/2014 |
− | | 10/ | + | | 10/15/2014 |
| Light Sensor and Accelerometer Testing | | Light Sensor and Accelerometer Testing | ||
− | | | + | | Completed |
− | | | + | | 10/15/2014 |
|- | |- | ||
! scope="row"| 9 | ! scope="row"| 9 | ||
− | | 10/ | + | | 10/29/2014 |
| 10/31/2014 | | 10/31/2014 | ||
| Battery status controller circuit Design | | Battery status controller circuit Design | ||
− | | | + | | Ongoing |
| | | | ||
|- | |- | ||
Line 203: | Line 330: | ||
! scope="row"| 11 | ! scope="row"| 11 | ||
| 11/03/2014 | | 11/03/2014 | ||
+ | | 11/04/2014 | ||
+ | | Common Communication SW code implementation and testing | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | ! scope="row"| 11 | ||
+ | | 11/04/2014 | ||
| 11/09/2014 | | 11/09/2014 | ||
| Complete Hardware testing-1 | | Complete Hardware testing-1 | ||
Line 216: | Line 350: | ||
|} | |} | ||
− | ''' | + | |
+ | '''Motor Controller Team Schedule''' | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | ! scope="col"| | + | ! scope="col"| Week No. |
! scope="col"| Start Date | ! scope="col"| Start Date | ||
− | ! scope="col"| End Date | + | ! scope="col"| Planned End Date |
! scope="col"| Task | ! scope="col"| Task | ||
! scope="col"| Status | ! scope="col"| Status | ||
− | ! scope="col"| Actual | + | ! scope="col"| Actual End Date |
|- | |- | ||
! scope="row"| 1 | ! scope="row"| 1 | ||
− | | | + | | 9/30/2014 |
− | | 10/ | + | | 10/7/2014 |
− | | | + | | |
− | | | + | * Study SJOne board's motor controller concepts and PWM |
+ | | | ||
+ | * Completed | ||
+ | : Very simple code. Just two lines. Set the frequency. Set the duty cycle. | ||
| 10/7/2014 | | 10/7/2014 | ||
|- | |- | ||
! scope="row"| 2 | ! scope="row"| 2 | ||
| 10/7/2014 | | 10/7/2014 | ||
− | | 10/ | + | | 10/14/2014 |
− | | | + | | |
− | | | + | * Open up RC Car's motor and servo connections |
− | | | + | * Study the Electronic Speed Control's functions |
+ | | | ||
+ | * Completed | ||
+ | : Motor and Servo operate on the same frequency | ||
+ | : ESC needs calibration each time it is switched on. Need to find a solution for this. | ||
+ | | 10/11/2014 | ||
|- | |- | ||
! scope="row"| 3 | ! scope="row"| 3 | ||
− | | 10/ | + | | 10/14/2014 |
− | | 10/ | + | | 10/21/2014 |
− | | | + | | |
+ | * Define the duty cycles for proper motor and servo signals | ||
| | | | ||
− | | | + | * Completed |
+ | : Using trial and run, figured out the duty cycle for constant speed and turns | ||
+ | | 10/19/2014 | ||
|- | |- | ||
! scope="row"| 4 | ! scope="row"| 4 | ||
− | | 10/ | + | | 10/21/2014 |
− | | 10/ | + | | 10/28/2014 |
− | |||
− | |||
| | | | ||
+ | * Add CAN frame structure to the motor functions | ||
+ | * Test for communication between motors and sensors for prototype demo | ||
+ | * Define the Message List by working with other teams | ||
+ | | | ||
+ | * Ongoing | ||
+ | | --/--/---- | ||
|- | |- | ||
! scope="row"| 5 | ! scope="row"| 5 | ||
− | | 10/ | + | | 10/28/2014 |
− | | 11/ | + | | 11/04/2014 |
− | | | + | | |
+ | * Start working on CAN Periodic message structure | ||
+ | * Start looking for speed sensors | ||
| | | | ||
− | | | + | * Scheduled |
+ | | --/--/---- | ||
|- | |- | ||
! scope="row"| 6 | ! scope="row"| 6 | ||
− | | 11/ | + | | 11/04/2014 |
+ | | 11/11/2014 | ||
+ | | | ||
+ | * Attach speed sensors to the motor | ||
+ | * Test CAN communication between motor controller and other controllers | ||
+ | | | ||
+ | * Scheduled | ||
+ | | --/--/---- | ||
+ | |- | ||
+ | ! scope="row"| 7 | ||
+ | | 11/11/2014 | ||
| 11/18/2014 | | 11/18/2014 | ||
− | |||
| | | | ||
− | | | + | * Work on speed sensors. Figure out the way to send sensor data to master controller. |
+ | * Test for proper and accurate CAN communication | ||
+ | | | ||
+ | * Scheduled | ||
+ | | --/--/---- | ||
|- | |- | ||
− | ! scope="row"| | + | ! scope="row"| 8 |
| 11/18/2014 | | 11/18/2014 | ||
| 11/25/2014 | | 11/25/2014 | ||
− | |||
| | | | ||
− | | | + | * Project Integration and testing basic self drive capability of the car |
+ | * Check the functionality and behavior of the motor controller in all the known | ||
+ | contexts | ||
+ | * Perform modifications (if any) to eliminate any bugs to make the motor work | ||
+ | seamlessly | ||
+ | * Final Integration of car and testing there after | ||
+ | |||
+ | | | ||
+ | * Scheduled | ||
+ | | --/--/---- | ||
+ | |||
|} | |} | ||
− | + | ||
+ | '''Geographical Team Schedule''' | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 289: | Line 465: | ||
|- | |- | ||
! scope="row"| 1 | ! scope="row"| 1 | ||
+ | | 10/4/2014 | ||
+ | | 10/13/2014 | ||
+ | | Research and Order GPS module | ||
+ | | Received GPS module | ||
| 10/7/2014 | | 10/7/2014 | ||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
! scope="row"| 2 | ! scope="row"| 2 | ||
− | | 10/ | + | | 10/7/2014 |
− | | 10/ | + | | 10/18/2014 |
− | | | + | | Interface GPS module with LPC1758 |
− | | | + | | Finished |
− | | | + | | 10/17/14 |
|- | |- | ||
! scope="row"| 3 | ! scope="row"| 3 | ||
− | | 10/ | + | | 10/14/2014 |
− | | | + | | 10/18/2014 |
− | | | + | | Receive Compass module from Preet |
− | | | + | | Received |
− | | | + | | 10/9/2014 |
|- | |- | ||
! scope="row"| 4 | ! scope="row"| 4 | ||
− | | 10/ | + | | 10/18/2014 |
− | | | + | | 11/4/2014 |
− | | | + | | Parse GPS data and setup constructs to send appropriate data |
− | | | + | | Ongoing |
− | | | + | | | |
|- | |- | ||
! scope="row"| 5 | ! scope="row"| 5 | ||
− | | | + | | 10/14/2014 |
− | | | + | | 10/18/2014 |
− | | | + | | Interface the Compass Module |
− | | | + | | Finished |
− | | | + | | 10/16/2014 |
|- | |- | ||
! scope="row"| 6 | ! scope="row"| 6 | ||
+ | | 10/25/2014 | ||
+ | | 11/4/2014 | ||
+ | | Calibration of Compass | ||
+ | | Code completed. Need to test using the car | ||
+ | | --/--/---- | ||
+ | |- | ||
+ | ! scope="row"| 7 | ||
+ | | 11/4/2014 | ||
| 11/11/2014 | | 11/11/2014 | ||
− | | | + | | Integrate GPS and Compass data |
− | | | + | | Ongoing |
| | | | ||
+ | |- | ||
+ | ! scope="row"| 8 | ||
+ | | 10/25/2014 | ||
+ | | 11/09/2014 | ||
+ | | Testing and mapping of GPS co-ordinates | ||
+ | | Ongoing | ||
| | | | ||
|- | |- | ||
− | ! scope="row"| | + | ! scope="row"| 9 |
| 11/18/2014 | | 11/18/2014 | ||
| 11/25/2014 | | 11/25/2014 | ||
− | | | + | | Final integration and testing |
+ | | | ||
| | | | ||
− | |||
|} | |} | ||
− | + | '''IO Team Schedule''' | |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | ! scope="col"| | + | ! scope="col"| Sl.No |
! scope="col"| Start Date | ! scope="col"| Start Date | ||
− | ! scope="col"| | + | ! scope="col"| End Date |
! scope="col"| Task | ! scope="col"| Task | ||
! scope="col"| Status | ! scope="col"| Status | ||
− | ! scope="col"| Actual | + | ! scope="col"| Actual Completion Date |
|- | |- | ||
! scope="row"| 1 | ! scope="row"| 1 | ||
− | |||
− | |||
− | |||
− | |||
| 10/7/2014 | | 10/7/2014 | ||
+ | | 10/13/2014 | ||
+ | | Research and Order LCD Display | ||
+ | | Ordered LCD Display | ||
+ | | 10/13/2014 | ||
|- | |- | ||
! scope="row"| 2 | ! scope="row"| 2 | ||
− | |||
| 10/14/2014 | | 10/14/2014 | ||
− | | | + | | 10/21/2014 |
− | | | + | | Interfacing LCD Display with LPC1758 |
− | | | + | | Completed |
+ | | 10/21/2014 | ||
|- | |- | ||
! scope="row"| 3 | ! scope="row"| 3 | ||
− | |||
| 10/21/2014 | | 10/21/2014 | ||
− | | | + | | 10/28/2014 |
− | | | + | | Implementing CAN structure with LCD tasks. |
− | | | + | | Completed |
+ | | 11/30/2014 | ||
|- | |- | ||
! scope="row"| 4 | ! scope="row"| 4 | ||
− | |||
| 10/28/2014 | | 10/28/2014 | ||
− | | | + | | 11/04/2014 |
− | | | + | | Subscribe data from motor, sensor and GPS controller,display it on LCD. |
− | | | + | | Ongoing |
+ | | | ||
|- | |- | ||
! scope="row"| 5 | ! scope="row"| 5 | ||
− | | | + | | 11/04/2014 |
− | | 11/ | + | | 11/11/2014 |
− | | | + | | Setup hardware and write code for START, STOP and Headlight buttons. |
− | |||
| TBD | | TBD | ||
+ | | | ||
|- | |- | ||
! scope="row"| 6 | ! scope="row"| 6 | ||
− | |||
| 11/11/2014 | | 11/11/2014 | ||
+ | | 11/18/2014 | ||
+ | | Testing and mounting hardware on car. | ||
| TBD | | TBD | ||
− | | | + | | |
− | |||
|- | |- | ||
! scope="row"| 7 | ! scope="row"| 7 | ||
− | |||
| 11/18/2014 | | 11/18/2014 | ||
+ | | 11/25/2014 | ||
+ | | Final Testing | ||
| TBD | | TBD | ||
− | | | + | | |
− | |||
|} | |} | ||
− | + | '''Communication Bridge & Android Team Schedule''' | |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | ! scope="col"| | + | ! scope="col"| Sl.No |
! scope="col"| Start Date | ! scope="col"| Start Date | ||
! scope="col"| Planned End Date | ! scope="col"| Planned End Date | ||
Line 413: | Line 603: | ||
! scope="row"| 1 | ! scope="row"| 1 | ||
| 9/30/2014 | | 9/30/2014 | ||
− | | | + | | 9/30/2014 |
− | | | + | | Obtain Bluetooth Module (already had one) |
| Done | | Done | ||
− | | | + | | 9/30/2014 |
|- | |- | ||
! scope="row"| 2 | ! scope="row"| 2 | ||
+ | | 9/30/2014 | ||
+ | | 10/14/2014 | ||
+ | | Develop Basic Android App with Bluetooth Sensor Communication | ||
+ | | Done | ||
| 10/7/2014 | | 10/7/2014 | ||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
! scope="row"| 3 | ! scope="row"| 3 | ||
+ | | 10/11/2014 | ||
| 10/14/2014 | | 10/14/2014 | ||
− | | | + | | Interface Bluetooth Module with SJSU Dev Board |
− | + | | Done | |
− | | | + | | 10/11/2014 |
− | | | ||
|- | |- | ||
! scope="row"| 4 | ! scope="row"| 4 | ||
− | | 10/ | + | | 10/12/2014 |
− | | 10/ | + | | 10/19/2014 |
− | | | + | | Be able to send bi-directional arbitrary messages between Android App and Dev Board via Bluetooth |
− | | | + | | Done |
− | | | + | | 10/14/2014 |
|- | |- | ||
! scope="row"| 5 | ! scope="row"| 5 | ||
− | | 10/ | + | | 10/14/2014 |
− | | 11/ | + | | 11/21/2014 |
− | | | + | | Subscribe to all CAN messages and dump all of them via Bluetooth to Android App or web interface |
− | | | + | | Done |
− | | | + | | 11/24/2014 |
|- | |- | ||
! scope="row"| 6 | ! scope="row"| 6 | ||
− | | | + | | 10/14/2014 |
− | | 11/ | + | | 11/21/2014 |
− | | | + | | Ajax & Websocket server remote structure |
− | | | + | | Done |
− | | | + | | 11/01/2014 |
|- | |- | ||
! scope="row"| 7 | ! scope="row"| 7 | ||
− | | 11/11/2014 | + | | 10/14/2014 |
− | | 11/ | + | | 11/21/2014 |
− | | | + | | Be able to input GPS coordinates through either (or both) Android App and web interface and send through Bluetooth then CAN bus |
− | | | + | | Done |
+ | | 11/24/2014 | ||
+ | |- | ||
+ | ! scope="row"| 8 | ||
+ | | 10/21/2014 | ||
+ | | 11/24/2014 | ||
+ | | Android App and webpage GUI enhancements (Google Maps, Google Drive) | ||
+ | | Done | ||
+ | | 11/24/2014 | ||
+ | |- | ||
+ | ! scope="row"| 9 | ||
+ | | 10/21/2014 | ||
+ | | 11/30/2014 | ||
+ | | Data visualization (status, compass, speed, location,....) | ||
+ | | On going | ||
| TBD | | TBD | ||
|} | |} | ||
Line 476: | Line 680: | ||
| Traxxas 37076 Rustler VXL | | Traxxas 37076 Rustler VXL | ||
| 1 | | 1 | ||
− | | $ | + | | $380.57 |
|- | |- | ||
! scope="row"| 2 | ! scope="row"| 2 | ||
− | | | + | | CAN Transceiver |
− | | | + | | Anchor & HSC |
− | | | + | | |
+ | | 15 | ||
+ | | $75.00 | ||
+ | |- | ||
+ | ! scope="row"| 3 | ||
+ | | Assembly Components | ||
+ | | Amazon & Anchor | ||
+ | | PCBs, Mechnical & Electical Components | ||
+ | | NA | ||
+ | | $90.13 | ||
+ | |- | ||
+ | ! scope="row"| 4 | ||
+ | | Power Supply | ||
+ | | Pololu | ||
+ | | 6V Battery, 5V Regulator | ||
| 1 | | 1 | ||
− | | | + | | $34.85 |
|- | |- | ||
− | ! scope="row"| | + | ! scope="row"| 5 |
| LCD Display | | LCD Display | ||
| New Haven | | New Haven | ||
Line 491: | Line 709: | ||
| 1 | | 1 | ||
| $$$.$$ | | $$$.$$ | ||
+ | |- | ||
+ | ! scope="row"| 6 | ||
+ | | Sonar sensor | ||
+ | | Maxbotix | ||
+ | | LV-MaxSonar-EZ1 MB1010 | ||
+ | | 2 | ||
+ | | $66.55 | ||
+ | |- | ||
+ | ! scope="row"| 7 | ||
+ | | Sonar sensor | ||
+ | | Given by Preet | ||
+ | | LV-MaxSonar-EZ1 MB1010 | ||
+ | | 1 | ||
+ | | Free | ||
+ | |- | ||
+ | ! scope="row"| 8 | ||
+ | | IR sensor | ||
+ | | Given by Preet | ||
+ | | Sharp-GP2Y0A21YK | ||
+ | | 1 | ||
+ | | Free | ||
+ | |- | ||
+ | ! scope="row"| 9 | ||
+ | | Compass Module | ||
+ | | Given by Preet | ||
+ | | HoneyWell: HMC 6352 | ||
+ | | 1 | ||
+ | | Free | ||
|- | |- | ||
! scope="row"| | ! scope="row"| | ||
Line 502: | Line 748: | ||
== Design & Implementation == | == Design & Implementation == | ||
+ | === Controller Communication Table === | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |+ Controllers | ||
+ | |- | ||
+ | | Controller ID | ||
+ | | Controller Type | ||
+ | |- | ||
+ | | 0x01 | ||
+ | | Master Controller | ||
+ | |- | ||
+ | | 0x02 | ||
+ | | Motor Controller | ||
+ | |- | ||
+ | | 0x03 | ||
+ | | Sensor Controller | ||
+ | |- | ||
+ | | 0x04 | ||
+ | | Geographical Controller | ||
+ | |- | ||
+ | | 0x05 | ||
+ | | IO Controller | ||
+ | |- | ||
+ | | 0x06 | ||
+ | | Bridge Controller | ||
+ | |} | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |+ Common Communication Table | ||
+ | |- | ||
+ | | Message Number | ||
+ | | Purpose / Data layout | ||
+ | |- | ||
+ | | 0x101 | ||
+ | | Get version and boot info | ||
+ | |- | ||
+ | | 0x102 | ||
+ | | Get general info | ||
+ | |- | ||
+ | | 0x103 | ||
+ | | Synchronize (set) time: | ||
+ | byte [0-3] : System time | ||
+ | |- | ||
+ | | 0x201 | ||
+ | | | ||
+ | byte [0-3] : Version Info | ||
+ | byte [4-7] : boot timestamp | ||
+ | |- | ||
+ | | 0x202 | ||
+ | | | ||
+ | byte [0-3] : Current time | ||
+ | byte [4] : CPU usage % | ||
+ | |} | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |+ Subscription Rate Info | ||
+ | |- | ||
+ | | Byte 0 | ||
+ | | Effect | ||
+ | |- | ||
+ | | 0 | ||
+ | | Off | ||
+ | |- | ||
+ | | 1 | ||
+ | | 1Hz | ||
+ | |- | ||
+ | | 5 | ||
+ | | 5Hz | ||
+ | |- | ||
+ | | 10 | ||
+ | | 10Hz | ||
+ | |- | ||
+ | | 20 | ||
+ | | 20Hz | ||
+ | |- | ||
+ | | 50 | ||
+ | | 50Hz | ||
+ | |- | ||
+ | | Any other value | ||
+ | | Invalid date rate | ||
+ | |} | ||
+ | |||
+ | |||
+ | {| class="wikitable" | ||
+ | |+ Master Controller Communication Table | ||
+ | |- | ||
+ | | Message Number | ||
+ | | Purpose | ||
+ | | Data Byte Pattern | ||
+ | |- | ||
+ | | 0x101 | ||
+ | | Request each Controller Boot Status | ||
+ | | | ||
+ | Byte[0]: Request command for Boot Info. | ||
+ | | | ||
+ | |- | ||
+ | | 0x102 | ||
+ | | Request each Controller version info. | ||
+ | | | ||
+ | Byte[0]: Request command for Version Info. | ||
+ | | | ||
+ | |- | ||
+ | | 0x103 | ||
+ | | Request GPS Controller for Satellite Time | ||
+ | | | ||
+ | Byte[0]: Request command for Time | ||
+ | | | ||
+ | |- | ||
+ | | 0x104 | ||
+ | | Set Time on each Controller received from Satellite | ||
+ | | | ||
+ | Byte[0-3]: Time in HH:MM:SS | ||
+ | | | ||
+ | |- | ||
+ | | 0x201 | ||
+ | | Receives Boot status from each Controller | ||
+ | | | ||
+ | Byte[0]: Boot Status Info. | ||
+ | | | ||
+ | |- | ||
+ | | 0x202 | ||
+ | | Receives Version info. from each Controller | ||
+ | | | ||
+ | Byte[0-3]: Controller Version Info. | ||
+ | | | ||
+ | |- | ||
+ | | 0x203 | ||
+ | | Receives the Time from GPS Controller | ||
+ | | | ||
+ | Byte[0-3]: Time in HH:MM:SS | ||
+ | | | ||
+ | |- | ||
+ | | 0x301 | ||
+ | | Request destination co-ordinates from Communication_Bridge | ||
+ | | | ||
+ | Byte[0-7]: Displays "Waiting for Destination Location Input" | ||
+ | | | ||
+ | |- | ||
+ | | 0x302 | ||
+ | | Set the destination GPS co-ordinates to GPS_Controller | ||
+ | | | ||
+ | Byte[0-3]: Latitude Co-ordinate | ||
+ | Byte[4-7]: Longitude Co-ordinate | ||
+ | | | ||
+ | |- | ||
+ | | 0x500 | ||
+ | | Display Boot Status on LCD | ||
+ | | | ||
+ | Byte[0]: Boot Status Response | ||
+ | | | ||
+ | |- | ||
+ | | 0x501 | ||
+ | | Display Version Info. on LCD | ||
+ | | | ||
+ | Byte[0]: Version Info. | ||
+ | | | ||
+ | |- | ||
+ | | 0x502 | ||
+ | | Display Controller Time on LCD | ||
+ | | | ||
+ | Byte[0-2]: Time in HH:MM:SS | ||
+ | | | ||
+ | |- | ||
+ | | 0x503 | ||
+ | | Direction n Speed Control | ||
+ | | | ||
+ | Byte[0]: START/STOP/RIGHT/LEFT command | ||
+ | | | ||
+ | |- | ||
+ | | 0x504 | ||
+ | | Display Motor speed on LCD | ||
+ | | | ||
+ | Byte[0]: Speed Value | ||
+ | | | ||
+ | |- | ||
+ | | 0x505 | ||
+ | | Display Dist. to Destination and Heading Direction on LCD | ||
+ | | | ||
+ | Byte[0]: Distance to Destination | ||
+ | Byte[1]: Heading Direction | ||
+ | | | ||
+ | |- | ||
+ | |0x506 | ||
+ | |Display Sensor Values on LCD | ||
+ | | | ||
+ | Byte [0]: Front sensor value in inches | ||
+ | Byte [1]: Front Left sensor value in inches | ||
+ | Byte [2]: Front Right sensor value in inches | ||
+ | Byte [3]: Back sensor value in inches | ||
+ | | | ||
+ | |- | ||
+ | |0x507 | ||
+ | |Display Battery Status & Light Sensor Value on LCD | ||
+ | | | ||
+ | Byte[0]: Battery Status Value | ||
+ | Byte[1]: Light Sensor Value | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |+ Motor Controller Communication Table | ||
+ | |- | ||
+ | | Message Number | ||
+ | | Purpose | ||
+ | | Data layout | ||
+ | |- | ||
+ | | 0x508 | ||
+ | | Speed Sensor Data | ||
+ | | | ||
+ | byte [0] : Speed sensor value in rpm | ||
+ | |- | ||
+ | | 0x509 | ||
+ | | Vehicle Direction/Movement Data | ||
+ | | | ||
+ | byte [0] : Movement Control | ||
+ | 0x1 : Forward | ||
+ | 0x2 : Reverse | ||
+ | 0x3 : Stop | ||
+ | byte [1] : Steering Control | ||
+ | 0x1 : Left | ||
+ | 0x2 : Right | ||
+ | 0x3 : Straight | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |+ Sensor Controller Communication Table | ||
+ | |- | ||
+ | | Message Number | ||
+ | | Purpose | ||
+ | | Data layout | ||
+ | |- | ||
+ | | 0x510 | ||
+ | | Front/Back Range Sensor Data | ||
+ | | | ||
+ | byte [0] : Front sensor value in inches | ||
+ | byte [1] : Front Left sensor value in inches | ||
+ | byte [2] : Front Right sensor value in inches | ||
+ | byte [3] : Back sensor value in inches | ||
+ | |- | ||
+ | | 0x511 | ||
+ | | Light, Accelerometer and Battery Sensor Data | ||
+ | | | ||
+ | byte [0] : Light sensor value | ||
+ | byte [1] : X axis Value | ||
+ | byte [2] : Y axis Value | ||
+ | byte [3] : Z axis Value | ||
+ | byte [4] : Battery status value | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |+ GPS Controller Communication Table | ||
+ | |- | ||
+ | | Message Number | ||
+ | | Purpose | ||
+ | | Data layout | ||
+ | |- | ||
+ | | 0x518 | ||
+ | | Set GPS Location | ||
+ | | | ||
+ | byte [0 - 3] : Latitude - Float | ||
+ | byte [3 - 7] : Longitude - Float | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |+ IO Communication Table | ||
+ | |- | ||
+ | | Message Number | ||
+ | | Purpose | ||
+ | | Data layout | ||
+ | |- | ||
+ | | 0x520 | ||
+ | | Subscribe to Sensor data | ||
+ | | bytes [0-5] : Sensor Value in Inches | ||
+ | |- | ||
+ | | 0x521 | ||
+ | | Subscribe to Motor data | ||
+ | | bytes [0-2] : Vehicle Direction | ||
+ | |- | ||
+ | | 0x522 | ||
+ | | Subscribe to Compass Data | ||
+ | | bytes [0] : Compass Data in degrees | ||
+ | |- | ||
+ | | 0x523 | ||
+ | | Subscribe to Battery Status | ||
+ | | bytes [0] : Battery Status Value | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |+ Communication Bridge Communication Table | ||
+ | |- | ||
+ | | Message Number | ||
+ | | Purpose | ||
+ | | Data layout | ||
+ | |- | ||
+ | | 0x528 | ||
+ | | Set Car Speed (Kill Switch) - temporary allow for other non-zero value for demo | ||
+ | | byte[0] - speed value | ||
+ | |- | ||
+ | | 0x529 | ||
+ | | Destination GPS location | ||
+ | | | ||
+ | bytes [0-3] : latitude (float) | ||
+ | bytes [4-7] : longitude (float) | ||
+ | |- | ||
+ | | 0x52A | ||
+ | | Turn to degree | ||
+ | | | ||
+ | bytes [0-3] : degree(float) | ||
+ | |- | ||
+ | | 0x52B | ||
+ | | Way points longitude | ||
+ | | | ||
+ | bytes [0-1] :total waypoints count | ||
+ | bytes [2-3] :waypoint index | ||
+ | bytes [4-7] : longitude(float) | ||
+ | |- | ||
+ | | 0x52C | ||
+ | | Way points latitude | ||
+ | | | ||
+ | bytes [0-1] :total waypoints count | ||
+ | bytes [2-3] :waypoint index | ||
+ | bytes [4-7] : latitude(float) | ||
+ | |- | ||
+ | | 0x52D | ||
+ | | remote status (ie. Android connection status) | ||
+ | | | ||
+ | bytes [0]=> | ||
+ | 0:disconnected(passive send) | ||
+ | 1:on disconnect(active) | ||
+ | 2:connected(passive) | ||
+ | 3:on connect(active) | ||
+ | 0xFF:error(active/passive) | ||
+ | |- | ||
+ | |} | ||
=== Hardware Design === | === Hardware Design === | ||
Line 524: | Line 1,109: | ||
=== References Used === | === References Used === | ||
+ | http://www.socialledge.com/sjsu/index.php?title=Self-driving_Car | ||
+ | |||
+ | http://www.nxp.com/documents/user_manual/UM10360.pdf | ||
+ | |||
+ | http://www.socialledge.com/sjsu/images/d/de/2012SJOneBoardSchematic.pdf | ||
+ | |||
http://www.maxbotix.com/documents/MB1010_Datasheet.pdf | http://www.maxbotix.com/documents/MB1010_Datasheet.pdf | ||
+ | |||
+ | http://www.sharpsma.com/webfm_send/1208 | ||
+ | |||
+ | https://www.sparkfun.com/datasheets/Components/HMC6352.pdf | ||
=== Appendix === | === Appendix === |
Latest revision as of 12:35, 2 December 2014
Contents
Grading Criteria
- How well is Software & Hardware Design described?
- How well can this report be used to reproduce this project?
- Code Quality
- Overall Report Quality:
- Software Block Diagrams
- Hardware Block Diagrams
- Schematic Quality
- Quality of technical challenges and solutions adopted.
Self Driving Car
Abstract
Objectives & Introduction
Team Members & Responsibilities
- Sensor Controller
- Team 1: Deepak Yadav & Vinod Pangul
- Motor Controller
- Team 2: Naghma Anwar & Shiva Moballegh
- I/O Unit
- Team 3: Shreeram Gopalakrishnan & Sreeharsha Paturu Gangadhara
- Communication Bridge & Android
- Team 4: Johnny Yam, Kevin Beadle & Chia Pin Tseng
- Geographical Controller
- Team 5: Bhushan Gopala Reddy, Ryan Marlin & Rishikesh Nagare
- Master Controller
- Team 6: Shashank Tupkar, Bhargava Leepeng Chandra & Preeti Benake
Schedule
Team Schedule
Sl.No | Start Date | End Date | Task | Status | Actual Completion Date |
---|---|---|---|---|---|
1 | Order RC Car | Completed on time | |||
2 | Order Other parts(Sensor/LCD/Motor Controller...) | Completed | |||
3 | 9/30/2014 | 11/25/2014 | Master Controller Team task | Ongoing | |
4 | 10/06/2014 | 11/15/2014 | Sensor Team task | Completed | |
5 | Motor Controller Team task | Ongoing | |||
6 | Geographical Controller Team task | Ongoing | |||
7 | I/O Team task | Ongoing | |||
8 | Communication Bridge + Android Team task | Ongoing | |||
9 | Complete project integration | ??? | |||
10 | Testing-1 | ??? | |||
11 | Testing-2 | ??? |
Master Controller Team Schedule
Week No. | Start Date | Planned End Date | Task | Status | Actual End Date |
---|---|---|---|---|---|
1 | 9/30/2014 | 10/7/2014 |
* Implement Basic CAN Hardware to communicate between 2 Controllers |
|
10/7/2014 |
2 | 10/7/2014 | 10/14/2014 |
* Design CAN Acceptance Filter among different Controllers * Define and Implement CAN Frame structure for proper communication establishment |
|
10/11/2014 |
3 | 10/14/2014 | 10/21/2014 |
* Develop Inter-Controller Communication over CAN * Test point-to-point and Broadcast message transmission * Implement a Counter to count and display number of messages |
|
10/19/2014 |
4 | 10/21/2014 | 10/28/2014 |
* Layout blueprint for Controller and Module positioning * Assemble the RC Car with all the controllers and Modules * Define the Message List by working with other teams * Start working on CAN Periodic message structure |
|
10/28/2014 |
5 | 10/28/2014 | 11/04/2014 |
* Complete CAN Periodic message structure to transmit Broadcast messages over CAN and establish controlled communication among different controllers * Implement Start condition detection and Fetch boot status from all controllers and display the status of each controller |
|
11/03/2014 |
6 | 11/04/2014 | 11/11/2014 |
* Design 'Kill Switch' in co-ordination with Motor Controller team and Bridge Controller team * Develop a 'CAN Bus Crash' detection and reset CAN Bus methodology * Design Automatic Head Light turn ON/OFF functionality by working with Sensors Controller team |
|
11/11/2014 |
7 | 11/11/2014 | 11/18/2014 |
* Implement File Log saving to SD Card at periodic intervals * Work on Restoring to last known Status if the system crashes while running * Develop Detection technique if controllers are reaching 'Error State' |
|
11/18/2014 |
8 | 11/18/2014 | 11/25/2014 |
* Project Integration and testing Basic Self_Drive Capability of the Car * Check the Functionality and behavior of all controllers in all the known contexts * Perform modifications (if any) to eliminate any bugs to make the car work seamlessly * Final Integration of car and testing there after |
|
11/26/2014 |
9 | 11/25/2014 | 12/02/2014 |
* Final Integration and testing Self_Drive Capability of the Car |
|
--/--/---- |
Sensor Team Schedule
Sl.No | Start Date | End Date | Task | Status | Actual Completion Date |
---|---|---|---|---|---|
1 | 10/6/2014 | 10/18/2014 | Order Ultra Sonic Sensors | Completed [Got two sensors (front and back), 2 more (front right & left) to order ->Completed.] | 10/19/2014 |
2 | 10/9/2014 | 10/9/2014 | Sensor Data Sheet review with the team | Completed | 10/9/2014 |
3 | 10/9/2014 | 10/16/2104 | Sensor code development | Completed (Implementing filter (HW/SW) to get more accurate data ->(Done). Add logic to get the rest of the three sensor(front right/left and back data)->(Done) (Note: Delayed due to the implementation of CAN structure and calibration of IR sensor) | 10/21/2014 |
4 | 10/22/2014 | 10/25/2014 | Sensor software testing | Ongoing | |
5 | 10/25/2014 | 10/28/2014 | Sensor real time testing | Ongoing | |
6 | 10/13/2014 | 10/15/2014 | Light sensor code Development | Completed | 10/14/2014 |
7 | 10/13/2014 | 10/15/2014 | Accelerometer sensor code Development to detect tilt | Completed | 10/14/2014 |
8 | 10/15/2014 | 10/15/2014 | Light Sensor and Accelerometer Testing | Completed | 10/15/2014 |
9 | 10/29/2014 | 10/31/2014 | Battery status controller circuit Design | Ongoing | |
10 | 11/01/2014 | 11/02/2014 | Battery status-circuit Testing | ||
11 | 11/03/2014 | 11/04/2014 | Common Communication SW code implementation and testing | ||
11 | 11/04/2014 | 11/09/2014 | Complete Hardware testing-1 | ||
12 | 11/10/2014 | 11/15/2014 | Complete Hardware testing-2 |
Motor Controller Team Schedule
Week No. | Start Date | Planned End Date | Task | Status | Actual End Date |
---|---|---|---|---|---|
1 | 9/30/2014 | 10/7/2014 |
* Study SJOne board's motor controller concepts and PWM |
|
10/7/2014 |
2 | 10/7/2014 | 10/14/2014 |
* Open up RC Car's motor and servo connections * Study the Electronic Speed Control's functions |
|
10/11/2014 |
3 | 10/14/2014 | 10/21/2014 |
* Define the duty cycles for proper motor and servo signals |
|
10/19/2014 |
4 | 10/21/2014 | 10/28/2014 |
* Add CAN frame structure to the motor functions * Test for communication between motors and sensors for prototype demo * Define the Message List by working with other teams |
|
--/--/---- |
5 | 10/28/2014 | 11/04/2014 |
* Start working on CAN Periodic message structure * Start looking for speed sensors |
|
--/--/---- |
6 | 11/04/2014 | 11/11/2014 |
* Attach speed sensors to the motor * Test CAN communication between motor controller and other controllers |
|
--/--/---- |
7 | 11/11/2014 | 11/18/2014 |
* Work on speed sensors. Figure out the way to send sensor data to master controller. * Test for proper and accurate CAN communication |
|
--/--/---- |
8 | 11/18/2014 | 11/25/2014 |
* Project Integration and testing basic self drive capability of the car * Check the functionality and behavior of the motor controller in all the known contexts * Perform modifications (if any) to eliminate any bugs to make the motor work seamlessly * Final Integration of car and testing there after |
|
--/--/---- |
Geographical Team Schedule
Sl.No | Start Date | End Date | Task | Status | Actual Completion Date |
---|---|---|---|---|---|
1 | 10/4/2014 | 10/13/2014 | Research and Order GPS module | Received GPS module | 10/7/2014 |
2 | 10/7/2014 | 10/18/2014 | Interface GPS module with LPC1758 | Finished | 10/17/14 |
3 | 10/14/2014 | 10/18/2014 | Receive Compass module from Preet | Received | 10/9/2014 |
4 | 10/18/2014 | 11/4/2014 | Parse GPS data and setup constructs to send appropriate data | Ongoing | |
5 | 10/14/2014 | 10/18/2014 | Interface the Compass Module | Finished | 10/16/2014 |
6 | 10/25/2014 | 11/4/2014 | Calibration of Compass | Code completed. Need to test using the car | --/--/---- |
7 | 11/4/2014 | 11/11/2014 | Integrate GPS and Compass data | Ongoing | |
8 | 10/25/2014 | 11/09/2014 | Testing and mapping of GPS co-ordinates | Ongoing | |
9 | 11/18/2014 | 11/25/2014 | Final integration and testing |
IO Team Schedule
Sl.No | Start Date | End Date | Task | Status | Actual Completion Date |
---|---|---|---|---|---|
1 | 10/7/2014 | 10/13/2014 | Research and Order LCD Display | Ordered LCD Display | 10/13/2014 |
2 | 10/14/2014 | 10/21/2014 | Interfacing LCD Display with LPC1758 | Completed | 10/21/2014 |
3 | 10/21/2014 | 10/28/2014 | Implementing CAN structure with LCD tasks. | Completed | 11/30/2014 |
4 | 10/28/2014 | 11/04/2014 | Subscribe data from motor, sensor and GPS controller,display it on LCD. | Ongoing | |
5 | 11/04/2014 | 11/11/2014 | Setup hardware and write code for START, STOP and Headlight buttons. | TBD | |
6 | 11/11/2014 | 11/18/2014 | Testing and mounting hardware on car. | TBD | |
7 | 11/18/2014 | 11/25/2014 | Final Testing | TBD |
Communication Bridge & Android Team Schedule
Sl.No | Start Date | Planned End Date | Task | Status | Actual End Date |
---|---|---|---|---|---|
1 | 9/30/2014 | 9/30/2014 | Obtain Bluetooth Module (already had one) | Done | 9/30/2014 |
2 | 9/30/2014 | 10/14/2014 | Develop Basic Android App with Bluetooth Sensor Communication | Done | 10/7/2014 |
3 | 10/11/2014 | 10/14/2014 | Interface Bluetooth Module with SJSU Dev Board | Done | 10/11/2014 |
4 | 10/12/2014 | 10/19/2014 | Be able to send bi-directional arbitrary messages between Android App and Dev Board via Bluetooth | Done | 10/14/2014 |
5 | 10/14/2014 | 11/21/2014 | Subscribe to all CAN messages and dump all of them via Bluetooth to Android App or web interface | Done | 11/24/2014 |
6 | 10/14/2014 | 11/21/2014 | Ajax & Websocket server remote structure | Done | 11/01/2014 |
7 | 10/14/2014 | 11/21/2014 | Be able to input GPS coordinates through either (or both) Android App and web interface and send through Bluetooth then CAN bus | Done | 11/24/2014 |
8 | 10/21/2014 | 11/24/2014 | Android App and webpage GUI enhancements (Google Maps, Google Drive) | Done | 11/24/2014 |
9 | 10/21/2014 | 11/30/2014 | Data visualization (status, compass, speed, location,....) | On going | TBD |
Parts List & Cost
Item# | Part Desciption | Vendor | Part Number | Qty | Cost |
---|---|---|---|---|---|
1 | RC Car | Amazon.com | Traxxas 37076 Rustler VXL | 1 | $380.57 |
2 | CAN Transceiver | Anchor & HSC | 15 | $75.00 | |
3 | Assembly Components | Amazon & Anchor | PCBs, Mechnical & Electical Components | NA | $90.13 |
4 | Power Supply | Pololu | 6V Battery, 5V Regulator | 1 | $34.85 |
5 | LCD Display | New Haven | NHD-0216B3Z-FL-GBW-V3-ND | 1 | $$$.$$ |
6 | Sonar sensor | Maxbotix | LV-MaxSonar-EZ1 MB1010 | 2 | $66.55 |
7 | Sonar sensor | Given by Preet | LV-MaxSonar-EZ1 MB1010 | 1 | Free |
8 | IR sensor | Given by Preet | Sharp-GP2Y0A21YK | 1 | Free |
9 | Compass Module | Given by Preet | HoneyWell: HMC 6352 | 1 | Free |
Total Cost | $$$.$$ |
Design & Implementation
Controller Communication Table
Controller ID | Controller Type |
0x01 | Master Controller |
0x02 | Motor Controller |
0x03 | Sensor Controller |
0x04 | Geographical Controller |
0x05 | IO Controller |
0x06 | Bridge Controller |
Message Number | Purpose / Data layout |
0x101 | Get version and boot info |
0x102 | Get general info |
0x103 | Synchronize (set) time:
byte [0-3] : System time |
0x201 |
byte [0-3] : Version Info byte [4-7] : boot timestamp |
0x202 |
byte [0-3] : Current time byte [4] : CPU usage % |
Byte 0 | Effect |
0 | Off |
1 | 1Hz |
5 | 5Hz |
10 | 10Hz |
20 | 20Hz |
50 | 50Hz |
Any other value | Invalid date rate |
Message Number | Purpose | Data Byte Pattern | |
0x101 | Request each Controller Boot Status |
Byte[0]: Request command for Boot Info. |
|
0x102 | Request each Controller version info. |
Byte[0]: Request command for Version Info. |
|
0x103 | Request GPS Controller for Satellite Time |
Byte[0]: Request command for Time |
|
0x104 | Set Time on each Controller received from Satellite |
Byte[0-3]: Time in HH:MM:SS |
|
0x201 | Receives Boot status from each Controller |
Byte[0]: Boot Status Info. |
|
0x202 | Receives Version info. from each Controller |
Byte[0-3]: Controller Version Info. |
|
0x203 | Receives the Time from GPS Controller |
Byte[0-3]: Time in HH:MM:SS |
|
0x301 | Request destination co-ordinates from Communication_Bridge |
Byte[0-7]: Displays "Waiting for Destination Location Input" |
|
0x302 | Set the destination GPS co-ordinates to GPS_Controller |
Byte[0-3]: Latitude Co-ordinate Byte[4-7]: Longitude Co-ordinate |
|
0x500 | Display Boot Status on LCD |
Byte[0]: Boot Status Response |
|
0x501 | Display Version Info. on LCD |
Byte[0]: Version Info. |
|
0x502 | Display Controller Time on LCD |
Byte[0-2]: Time in HH:MM:SS |
|
0x503 | Direction n Speed Control |
Byte[0]: START/STOP/RIGHT/LEFT command |
|
0x504 | Display Motor speed on LCD |
Byte[0]: Speed Value |
|
0x505 | Display Dist. to Destination and Heading Direction on LCD |
Byte[0]: Distance to Destination Byte[1]: Heading Direction |
|
0x506 | Display Sensor Values on LCD |
Byte [0]: Front sensor value in inches Byte [1]: Front Left sensor value in inches Byte [2]: Front Right sensor value in inches Byte [3]: Back sensor value in inches |
|
0x507 | Display Battery Status & Light Sensor Value on LCD |
Byte[0]: Battery Status Value Byte[1]: Light Sensor Value |
Message Number | Purpose | Data layout |
0x508 | Speed Sensor Data |
byte [0] : Speed sensor value in rpm |
0x509 | Vehicle Direction/Movement Data |
byte [0] : Movement Control 0x1 : Forward 0x2 : Reverse 0x3 : Stop byte [1] : Steering Control 0x1 : Left 0x2 : Right 0x3 : Straight |
Message Number | Purpose | Data layout |
0x510 | Front/Back Range Sensor Data |
byte [0] : Front sensor value in inches byte [1] : Front Left sensor value in inches byte [2] : Front Right sensor value in inches byte [3] : Back sensor value in inches |
0x511 | Light, Accelerometer and Battery Sensor Data |
byte [0] : Light sensor value byte [1] : X axis Value byte [2] : Y axis Value byte [3] : Z axis Value byte [4] : Battery status value |
Message Number | Purpose | Data layout |
0x518 | Set GPS Location |
byte [0 - 3] : Latitude - Float byte [3 - 7] : Longitude - Float |
Message Number | Purpose | Data layout |
0x520 | Subscribe to Sensor data | bytes [0-5] : Sensor Value in Inches |
0x521 | Subscribe to Motor data | bytes [0-2] : Vehicle Direction |
0x522 | Subscribe to Compass Data | bytes [0] : Compass Data in degrees |
0x523 | Subscribe to Battery Status | bytes [0] : Battery Status Value |
Message Number | Purpose | Data layout |
0x528 | Set Car Speed (Kill Switch) - temporary allow for other non-zero value for demo | byte[0] - speed value |
0x529 | Destination GPS location |
bytes [0-3] : latitude (float) bytes [4-7] : longitude (float) |
0x52A | Turn to degree |
bytes [0-3] : degree(float) |
0x52B | Way points longitude |
bytes [0-1] :total waypoints count bytes [2-3] :waypoint index bytes [4-7] : longitude(float) |
0x52C | Way points latitude |
bytes [0-1] :total waypoints count bytes [2-3] :waypoint index bytes [4-7] : latitude(float) |
0x52D | remote status (ie. Android connection status) |
bytes [0]=> 0:disconnected(passive send) 1:on disconnect(active) 2:connected(passive) 3:on connect(active) 0xFF:error(active/passive) |
Hardware Design
Hardware Interface
Software Design
Implementation
Testing & Technical Challenges
Conclusion
Project Video
Project Source Code
References
Acknowledgement
References Used
http://www.socialledge.com/sjsu/index.php?title=Self-driving_Car
http://www.nxp.com/documents/user_manual/UM10360.pdf
http://www.socialledge.com/sjsu/images/d/de/2012SJOneBoardSchematic.pdf
http://www.maxbotix.com/documents/MB1010_Datasheet.pdf
http://www.sharpsma.com/webfm_send/1208
https://www.sparkfun.com/datasheets/Components/HMC6352.pdf