Difference between revisions of "F14: Self Driving Undergrad Team"
Proj user8 (talk | contribs) (→Communication Bridge Pin Connections) |
Proj user8 (talk | contribs) (→I/O Pin Connections) |
||
Line 1,189: | Line 1,189: | ||
|- | |- | ||
! scope="row"| 15 | ! scope="row"| 15 | ||
− | | CAN | + | | CAN Transceiver |
| CAN 3.3V | | CAN 3.3V | ||
| 3.3V Power Supply | | 3.3V Power Supply | ||
Line 1,197: | Line 1,197: | ||
|- | |- | ||
! scope="row"| 16 | ! scope="row"| 16 | ||
− | | CAN | + | | CAN Transceiver |
| CAN Ground | | CAN Ground | ||
| 3.3V Power Supply | | 3.3V Power Supply |
Revision as of 02:13, 5 December 2014
Contents
- 1 Grading Criteria
- 2 In Memory of Chi Lam
- 3 Self-Driving Autonomous Car
- 4 Abstract
- 5 Objectives & Introduction
- 6 Schedule
- 7 Parts List & Cost
- 8 Design & Implementation
- 8.1 Hardware Design
- 8.2 Sensor Controller Team Hardware Design
- 8.3 Motor Controller Team Hardware Design
- 8.4 I/O Team Hardware Design
- 8.5 Communication Bridge + Android Hardware Design
- 8.6 Geographical Controller Team Hardware Design
- 8.7 Master Controller Team Hardware Design
- 8.8 Hardware Interface
- 8.9 Software Design
- 8.10 Software Interface
- 8.10.1 Sensor Controller Team Software Interface
- 8.10.2 Motor Controller Team Software Interface
- 8.10.3 I/O Team Software Interface
- 8.10.4 Communication Bridge + Android Software Interface
- 8.10.5 Geographical Controller Team Software Interface
- 8.10.6 Master Controller Team Software Interface
- 8.10.7 CAN Communication Table
- 9 Testing
- 10 Technical Challenges
- 11 Conclusion
- 12 References
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.
In Memory of Chi Lam
June 7th, 1991 - October 27th, 2014
This project is dedicated to Chi Lam, a beloved friend, dedicated Computer Engineering student, and member of this team.
You will be missed, friend.
Self-Driving Autonomous Car
Abstract
The objective of the project is to create a self-driving autonomous car in a 15 person team. The car utilizes several components and sensors in order to get from Point A to Point B. Implementation of the car involves multiple SJONE processor boards using FreeRTOS to communicate with each other via CAN bus.
Objectives & Introduction
Show list of your objectives. This section includes the high level details of your project. You can write about the various sensors or peripherals you used to get your project completed.
Team Members & Responsibilities
Master Controller Team | ||
---|---|---|
Charles Pham | Joshua Ambion | Michael Schneider |
- Overall vehicle logic - Overall software vehicle Integration - CAN TX/RX messages architecture |
- Vehicle hardware - Assistant to other teams - Module specific logic |
- Module specific logic - CAN RX processing |
Motor Controller Team | |
---|---|
Nikko Esplana | Chi Lam |
- Motor/steering control via PWM signals - interface/test/attach wheel encoder |
- Rest in peace Chi! |
Sensor Controller Team | |
---|---|
Sanjay Maharaj | Wei-chieh "Andy" Lo |
- | - |
Geographical Controller Team | ||
---|---|---|
Carlos Fernandez-Martinez | Zach Baumgartner | Albert Chen |
- Compass calibration/integration | - GPS testing/integration | - CAN communication |
Bridge Controller Team | ||
---|---|---|
Robert Julius | Tim Martin | Joseph Bourne |
- Android Application | - Bluetooth Message Interface | - Board to CAN Communication |
IO Controller Team | |
---|---|
Devin Villarosa | George Sebastian |
- Receive Task - GUI Interface - Headlights Task - uLCD Library |
- Event Handle Task - GUI Interface - Headlights Task - uLCD Library |
Schedule
Show a simple table or figures that show your scheduled as planned before you started working on the project. Then in another table column, write down the actual schedule so that readers can see the planned vs. actual goals. The point of the schedule is for readers to assess how to pace themselves if they are doing a similar project.
Final Product Schedule
Week# | Date | Task | Actual |
---|---|---|---|
1 | 10/12 | CAN Network Benchtest | Complete |
2 | 10/15 | Basic CAN Communication | Complete |
3 | 10/31 | Secure devices to R/C car | Complete |
4 | 11/7 | Basic Vehicle Self-Driving Test | In progress |
5 | 11/14 | P2P testing and improved obstacle avoidance | In progress |
6 | 11/31 | Buffer time for previous tasks and increased vehicle speed | In progress |
Sensor Controller Schedule
Week# | Date | Task | Actual |
---|---|---|---|
1 | 10/13 | Sensor Input Distance Calibration | Incomplete: Sonar is mostly calibrated, IR still needs work. Need sensor value "filtering" logic. |
2 | 10/17 | Off car CAN network test (full team) | Completed. Able to send raw sensor value to master. |
3 | 10/20 | Interface Sensors with CAN | Completed. Updates to the formatting of data being sent is ongoing. |
4 | 10/27 | Mount Sensors and test coverage | Completed. Still need to mount with actual brackets. |
5 | 10/31 | Mount Sensors with 3d printed brackets | Completed. IR brackets to be printed based on offset. |
6 | 11/1 | Implement diagnostic LED patterns | In progress. |
7 | 11/3 | Send obstacle avoidance decisions to master | Completed. Raw values sent to master for processing. |
8 | 11/4 | Add RJ11 cabling to all sensors | Completed. Still need to make neat and tidy. |
9 | 11/10 | Implement speed sensitivity | In progress |
10 | 11/13 | Test sensors during outdoor runs | In progress |
11 | 11/17 | Check wiring and label parts | In progress |
12 | 11/24 | Continue testing and tuning as necessary | In progress |
Motor Controller Schedule
Week# | Date | Task | Actual |
---|---|---|---|
1 | 10/12 | Open up servo and motor modules,
find a speed sensor |
Complete |
2 | 10/19 | Interface/test PWM bus to steering servo and DC motor | Complete |
3 | 10/26 | Allow self-driving capability with master/bridge/sensor teams | Incomplete, only partial self-driving achieved |
4 | 11/2 | Improve fine motor movements with master/sensor teams | In progress |
5 | 11/9 | Once wheel encoder comes in, learn/test/implement onto car | In progress |
6 | 11/16 | Integrate wheel encoder with rest of car | In progress |
7 | 11/23 | Test for proper operation | In progress |
8 | 11/30 | Continue testing until proper operation | In progress |
I/O Schedule
Week# | Date | Task | Actual |
---|---|---|---|
1 | 10/4 | Create LCD Screen Library (create ability to set value, get value, and write string to LCD screen) | 10/4 (String function completed on ~10/18) |
2 | 10/4 | Create LCD Screen GUI (generate forms for debugging and general usage) | 10/4 |
3 | 10/11 | LCD Library Test (Do unit tests on individual functions for LCD library)
Ability to get value from gauge on screen. Ability to set value to gauge on screen. Ability to send a string value to screen. |
10/11 (Finished string function on ~10/18) |
4 | 10/11 | Interface LCD with CAN
Create task for LCD event loop. Create task for Receiving on CAN. |
Complete (Completed on 10/26/2014) |
5 | 10/18 | Test LCD with CAN
Process CAN Messages from system |
Complete (Completed on 10/25/2014) |
6 | 10/25 | Implement onto Final Product | Incomplete (ready for implementation) |
7 | 11/2 | Headlights for car (hardware and software) + Aesthetics for GUI + Clean up code |
Communication Bridge and Android Schedule
Week# | Date | Task | Actual |
---|---|---|---|
1 | 10/13 | CAN Network Test | Complete |
2 | 10/20 | Interface Bluetooth Module with CAN | Complete |
3 | 10/27 | Mount PCB on car | In progress |
4 | 11/3 | Create basic Android application | Completed on 10/18 |
5 | 11/10 | Add map onto the Android application | In Progress |
6 | 11/17 | Send/receive CAN Messages via Android Application | Sending completed on 10/18, receiving in progress |
7 | 11/24 | Debug and Optimize Android Application | In progress |
8 | 12/1 | Continue Debugging and Optimizing as Necessary | In progress |
Geographical Controller Schedule
Week# | Date | Task | Actual |
---|---|---|---|
1 | 10/8 | Interface with GPS/Compass | Completed no issues encountered |
2 | 10/15 | Finish core API | In progress |
3 | 10/22 | GPS get fix and receive raw data | In progress |
4 | 10/22 | Compass determine heading | In progress |
5 | 10/29 | Self calibration completed | In progress |
6 | 10/29 | GPS parse raw data to extract needed data | In progress |
7 | 10/29 | Compass use heading from GPS to improve accuracy | In progress |
8 | 11/5 | Improve GPS satellite procurement (antennae?) | In progress |
9 | 11/12 | Improve boot up time of GPS module via warm start | In progress |
10 | 11/12 | Fine tune compass calibration technique for accuracy | In progress |
10 | 12/3 | Buffer time for completion of previous tasks | In progress |
Master Controller Schedule
Line Item # | Expected End Date | Task | Status |
---|---|---|---|
1 | 10/15/14 | Decide on raw CAN struct architecture | Early completion |
2 | 10/18/14 | Develop and layout general common CAN messages | On-time completion |
3 | 10/20/14 | Design vehicle initialization procedure | Early completion |
4 | 10/23/14 | Develop and layout Inter-Controller Communication - Each Module's CAN messages | Early completion |
5 | 10/25/14 | Design vehicle initial running freed drive mode procedure - Controlled via Phone, no object detection and avoidance, no GPS, no Heading | Early completion |
6 | 10/28/14 | Complete design on vehicle running free drive mode procedure | On-time completion |
7 | 10/30/14 | Design vehicle initial running indoor drive mode procedure - Timed autonomous drive , object detection and avoidance, (possibly heading), and no GPS | In progress |
8 | 11/01/14 | All CAN message definitions complete | Early Completion |
9 | 11/02/14 | Design vehicle initial running gps drive mode procedure - Full autonomous drive , object detection and avoidance, heading and GPS | In progress |
10 | 11/05/14 | All CAN message receive processing complete | On-time completion |
11 | 11/14/14 | All basic vehicle functionality state machines implemented and verified | On-time completion |
12 | 11/15/14 | Complete design on vehicle running indoor drive mode procedure | In progress |
13 | 11/20/14 | Complete design on vehicle running gps drive mode procedure | In progress |
14 | 11/30/14 | Any additional advanced functionality implemented and verified | In progress |
Parts List & Cost
Line Item# | Part Desciption | Vendor | Part Number | Qty | Cost ($) |
---|---|---|---|---|---|
1 | CAN Board | Waveshare International Limited | SN65HVD230 | 15 | 92.00 |
2 | Traxxas Slash Pro 2WD Short-Course R/C Truck | Traxxas | 58034 Slash | 1 | 337.00 |
3 | Adafruit Ultimate GPS Breakout | Adafruit | MTK3339 | 1 | 39.95 + (4.685 Shipping) |
4 | Triple-axis Accelerometer+Magnetometer (Compass) Board | Adafruit | LSM303 | 1 | 14.95 + (4.685 Shipping) |
5 | 3.5" Intelligent module w/ Touch | 4D Systems | uLCD 35DT | 1 | 89.00 |
6 | 2GB microSD Card | ||||
7 | uUSB-PA5 Programming Adaptor | ||||
8 | 150mm 5 way Female-Female jumper cable | ||||
9 | 5 way Male-Male adaptor | ||||
10 | Sharp Infrared Range Finder | 4D Systems | GP2Y0A21 | 2 | 9.95 + 3.32 Shipping |
12 | SainSmart Sonar Ranging Detector | Amazon | HC-SR04 | 3 | 5.59 |
13 | RC LED Headlights | Amazon Prime | 2 | 5.99 | |
14 | XBee Bluetooth | ||||
15 | |||||
Additional Shipping | $$$.$$ | ||||
Total Cost | $$$.$$ |
Design & Implementation
The design section can go over your hardware and software design. Organize this section using sub-sections that go over your design and implementation.
Hardware Design
Discuss System Level Hardware Design *INCLUDE BLOCK DIAGRAM and PIN CONNECTIONS
Overall Hardware Design Components
58034 Traxxas Slash RC Truck:
|
|
SN65HVD230 CAN Board Transceiver:
|
Sensor Controller Team Hardware Design
Discuss your hardware design of Sensor Controller *INCLUDE BLOCK DIAGRAM and PIN CONNECTIONS
NOT COMPLETE Sensor Pin Connections
Line Item# | Node A Source | Node A Pin | Node B Source | Node B Pin | Description |
---|---|---|---|---|---|
1 | 3.3V Power Supply | 3.3V | SJOne Board | 3V3 | SJOne Power |
2 | 3.3V Power Supply | GND | SJOne Board | GND | SJOne Ground |
3 | CAN Transceiver | Tx | SJOne Board | P0.1 (Tx) | SJOne - CAN Tx |
4 | CAN Transceiver | Rx | SJOne Board | P0.0 (Rx) | SJOne - CAN Rx |
5 | CAN Transceiver | 3.3V | 3.3V Power Supply | 3.3V | SJOne - CAN Power |
6 | CAN Transceiver | Ground | 3.3V Power Supply | GND | SJOne - CAN Ground |
7 | HC-SR04 Ultrasonic Sensor (Front Left) | Vcc | 5V Power Supply | +5V | Front Left Sensor Power |
8 | HC-SR04 Ultrasonic Sensor (Front Left) | GND | 5V Power Supply | GND | Front Left Sensor GND |
9 | HC-SR04 Ultrasonic Sensor (Front Left) | Echo | SJOne Board | P2.0 | Front Left Sensor Echo |
10 | HC-SR04 Ultrasonic Sensor (Front Left) | Trig | SJOne Board | P2.1 | Front Left Sensor Trig |
11 | HC-SR04 Ultrasonic Sensor (Front Right) | Vcc | 5V Power Supply | +5V | Front Right Sensor Power |
12 | HC-SR04 Ultrasonic Sensor (Front Right) | GND | 5V Power Supply | GND | Front Right Sensor GND |
13 | HC-SR04 Ultrasonic Sensor (Front Right) | Echo | SJOne Board | P2.2 | Front Right Sensor Echo |
14 | HC-SR04 Ultrasonic Sensor (Front Right) | Trig | SJOne Board | P2.3 | Front Right Sensor Trig |
15 | LV-MaxSonar-EZ-0 Ultrasonic Range Sensor (Front Middle) | Vcc | 5V Power Supply | +5V | Front Middle Sensor Power |
16 | LV-MaxSonar-EZ-0 Ultrasonic Range Sensor (Front Middle) | GND | 5V Power Supply | GND | Front Middle Sensor GND |
17 | LV-MaxSonar-EZ-0 Ultrasonic Range Sensor (Front Middle) | Echo | SJOne Board | P2.4 | Front Middle Sensor Echo |
18 | LV-MaxSonar-EZ-0 Ultrasonic Range Sensor (Front Middle) | Trig | SJOne Board | P2.5 | Front Middle Sensor Trig |
19 | HC-SR04 Ultrasonic Sensor (Rear Left) | Vcc | 5V Power Supply | +5V | Rear Left Sensor Power |
20 | HC-SR04 Ultrasonic Sensor (Rear Left) | GND | 5V Power Supply | GND | Rear Left Sensor GND |
21 | HC-SR04 Ultrasonic Sensor (Rear Left) | Echo | SJOne Board | P2.6 | Rear Left Sensor Echo |
22 | HC-SR04 Ultrasonic Sensor (Rear Left) | Trig | SJOne Board | P2.7 | Rear Left Sensor Trig |
23 | HC-SR04 Ultrasonic Sensor (Rear Right) | Vcc | 5V Power Supply | +5V | Rear Right Sensor Power |
24 | HC-SR04 Ultrasonic Sensor (Rear Right) | GND | 5V Power Supply | GND | Rear Right Sensor GND |
25 | HC-SR04 Ultrasonic Sensor (Rear Right) | Echo | SJOne Board | P2.8 | Rear Right Sensor Echo |
26 | HC-SR04 Ultrasonic Sensor (Rear Right) | Trig | SJOne Board | P2.9 | Rear Right Sensor Trig |
Sensor Controller Hardware Design Components
HC-SR04 Ultrasonic Distance Sensor:
|
|
LV-MaxSonar-EZ-0 Ultrasonic Range Sensor:
|
Motor Controller Team Hardware Design
Discuss your hardware design of Motor Controller *INCLUDE BLOCK DIAGRAM and PIN CONNECTIONS
Motor Controller Hardware Design Components
58034 Traxxas Slash RC Truck:
|
Motor Pin Connections
Line Item# | Node A Source | Node A Pin | Node B Source | Node B Pin | Description |
---|---|---|---|---|---|
1 | 3.3V Power Supply | 3.3V | SJOne Board | 3V3 | SJOne Power |
2 | 3.3V Power Supply | GND | SJOne Board | GND | SJOne Ground |
3 | CAN Transceiver | CAN Tx | SJOne Board | P0.1 (Tx) | SJOne - CAN Tx |
4 | CAN Transceiver | CAN Rx | SJOne Board | P0.0 (Rx) | SJOne - CAN Rx |
5 | CAN Transcever | CAN 3.3V | 3.3V Power Supply | 3.3V | SJOne - CAN Power |
6 | CAN Transcever | CAN Ground | 3.3V Power Supply | GND | SJOne - CAN Ground |
5 | Steering Servo | PWM Port | SJOne Board | P2.0 PWM | Steering |
6 | Motor | PWM Port | SJOne Board | P2.1 PWM | Motor |
7 | ESC | Ground | SJOne Board | GND | SJONE - ESC Ground |
I/O Team Hardware Design
Discuss your hardware design of I/O *INCLUDE BLOCK DIAGRAM and PIN CONNECTIONS
Overall I/O Design Components
Adafruit MTK3339 GPS:
|
I/O Pin Connections
Line Item# | Node A Source | Node A Pin | Node B Source | Node B Pin | Description |
---|---|---|---|---|---|
1 | LCD | 1 (LCD +5V) | 5V Power Supply | 5V | uLCD 35DT LCD Power |
2 | LCD | 7 (LCD GND) | 5V Power Supply | GND | uLCD 35DT LCD Ground |
3 | LCD | 5 (LCD RX) | SJOne Board | RX3 | uLCD 35DT LCD Receive Pin |
4 | LCD | 3 (LCD TX) | SJOne Board | TX3 | uLCD 35DT LCD Transmit Pin |
5 | 3.3V Power Supply | +3.3V | SJOne Board | 3V3 | SJOne Power |
6 | 3.3V Power Supply | GND | SJOne Board | GND | SJOne Ground |
7 | UART2 RX | P2.9 | SJOne RX | ||
8 | UART2 TX | P2.8 | SJOne TX | ||
9 | +5V | GPIO P2.0 | White LED1 | ||
10 | +5V | GPIO P2.1 | White LED2 | ||
11 | +5V | GPIO P2.2 | Red LED1 | ||
12 | +5V | GPIO P2.3 | Red LED2 | ||
13 | CAN Transceiver | CAN Tx | SJOne Board | P0.1 (Tx) | SJOne - CAN Tx |
14 | CAN Transceiver | CAN Rx | SJOne Board | P0.0 (Rx) | SJOne - CAN Rx |
15 | CAN Transceiver | CAN 3.3V | 3.3V Power Supply | 3.3V | SJOne - CAN Power |
16 | CAN Transceiver | CAN Ground | 3.3V Power Supply | GND | SJOne - CAN Ground |
Communication Bridge + Android Hardware Design
Discuss your hardware design of Communication Bridge and Android *INCLUDE BLOCK DIAGRAM and PIN CONNECTIONS
Communication Bridge Pin Connections
Line Item# | Node A Source | Node A Pin | Node B Source | Node B Pin | Description |
---|---|---|---|---|---|
1 | 3.3V Power Supply | 3.3V | SJOne Board | 3V3 | SJOne Power |
2 | 3.3V Power Supply | GND | SJOne Board | GND | SJOne Ground |
3 | CAN Transceiver | CAN Tx | SJOne Board | P0.1 (Tx) | SJOne - CAN Tx |
4 | CAN Transceiver | CAN Rx | SJOne Board | P0.0 (Rx) | SJOne - CAN Rx |
5 | CAN Transceiver | CAN 3.3V | 3.3V Power Supply | 3.3V | SJOne - CAN Power |
6 | CAN Transceiver | CAN Ground | 3.3V Power Supply | GND | SJOne - CAN Ground |
7 | Bluetooth Bee | VCC | 5V Power Supply | +5V | Bluetooth Bee Power |
8 | Bluetooth Bee | GND | 5V Power Supply | GND | Bluetooth Bee GND |
9 | Bluetooth Bee | RX | SJOne Board | RX | Bluetooth Bee RX |
10 | Bluetooth Bee | TX | SJOne Board | TX | Bluetooth Bee TX |
Geographical Controller Team Hardware Design
Discuss your hardware design of Geographical Controller *INCLUDE BLOCK DIAGRAM and PIN CONNECTIONS
NOT COMPLETE Geographical Pin Connections
Line Item# | Node A Source | Node A Pin | Node B Source | Node B Pin | Description |
---|---|---|---|---|---|
1 | 3.3V Power Supply | 3.3V | SJOne Board | 3V3 | SJOne Power |
2 | 3.3V Power Supply | GND | SJOne Board | GND | SJOne Ground |
3 | CAN Transceiver | Tx | SJOne Board | P0.1 (Tx) | SJOne - CAN Tx |
4 | CAN Transceiver | Rx | SJOne Board | P0.0 (Rx) | SJOne - CAN Rx |
5 | CAN Transceiver | 3.3V | 3.3V Power Supply | 3.3V | SJOne - CAN Power |
6 | CAN Transceiver | Ground | 3.3V Power Supply | GND | SJOne - CAN Ground |
7 | MTK3339 GPS | VCC | 5V Power Supply | +5V | MTK3339 GPS Power |
8 | MTK3339 GPS | GND | 5V Power Supply | GND | MTK3339 GPS GND |
9 | MTK3339 GPS | RX | SJOne Board | RXD2 | MTK3339 GPS RX |
10 | MTK3339 GPS | TX | SJOne Board | TXD2 | MTK3339 GPS TX |
7 | LSM303 Compass + Accelerometer | VIN | 5V Power Supply | +5V | Compass + Accelerometer Power |
8 | LSM303 Compass + Accelerometer | GND | 5V Power Supply | GND | Compass + Accelerometer GND |
9 | LSM303 Compass + Accelerometer | RX | SJOne Board | RXD2 | Compass + Accelerometer SCL |
10 | LSM303 Compass + Accelerometer | TX | SJOne Board | TXD2 | Compass + Accelerometer SDA |
Geographical Controller Hardware Design Components
Adafruit MTK3339 GPS:
|
|||||
Adafruit LSM303 Compass:
|
Line Item# | Node A Source | Node A Pin | Node B Source | Node B Pin | Description |
---|---|---|---|---|---|
1 | 3.3V Power Supply | 3.3V | SJOne Board | 3V3 | SJOne Power |
2 | 3.3V Power Supply | GND | SJOne Board | GND | SJOne Ground |
3 | CAN Transceiver | CAN Tx | SJOne Board | P0.1 (Tx) | SJOne - CAN Tx |
4 | CAN Transceiver | CAN Rx | SJOne Board | P0.0 (Rx) | SJOne - CAN Rx |
5 | CAN Transceiver | CAN 3.3V | 3.3V Power Supply | 3.3V | SJOne - CAN Power |
6 | CAN Transceiver | CAN Ground | 3.3V Power Supply | GND | SJOne - CAN Ground |
Hardware Interface
In this section, you can describe how your hardware communicates, such as which BUSes used. You can discuss your driver implementation here, such that the Software Design section is isolated to talk about high level workings rather than inner working of your project.
SYSTEM LEVEL HARDWARE INTERFACE INTERFACE GOES HERE
Sensor Controller Team Hardware Interface
Describe how your hardware communicates. WHAT BUSes were used *SHOW HOW FRAMES ARE SENT
Motor Controller Team Hardware Interface
Discuss your hardware design of Motor Controller *SHOW HOW FRAMES ARE SENT
I/O Team Hardware Interface
Discuss your hardware design of I/O *SHOW HOW FRAMES ARE SENT
Communication Bridge + Android Hardware Interface
Discuss your hardware design of Communication Bridge and Android *SHOW HOW FRAMES ARE SENT
123
Geographical Controller Team Hardware Interface
Discuss your hardware design of Geographical Controller *SHOW HOW FRAMES ARE SENT
Master Controller Team Hardware Interface
Discuss your hardware design of Master Controller *SHOW HOW FRAMES ARE SENT
Software Design
Show your software design. For example, if you are designing an MP3 Player, show the tasks that you are using, and what they are doing at a high level. Do not show the details of the code. For example, do not show exact code, but you may show psuedocode and fragments of code. Keep in mind that you are showing DESIGN of your software, not the inner workings of it.
SYSTEM LEVEL SOFTWARE DESIGN GOES HERE
Sensor Controller Team Software Design
Describe how your hardware communicates. WHAT BUSes were used *SHOW SOFTWARE FLOWCHART DIAGRAM
Motor Controller Team Software Design
Discuss your hardware design of Motor Controller *SHOW SOFTWARE FLOWCHART DIAGRAM
I/O Team Software Design
The I/O Software is based off of two tasks: The Event Handler Task and the RX Task.
Event Handler Task (High Priority):
This Task receives any immediate messages sent from the uLCD, processes the message, and sends the message to the CAN BUS.
This task enables the system to: Turn On/Off the Vehicle and Change Vehicle Modes.
RX Task (Low Priority):
This task receives all messages from the CAN BUS, and outputs message data onto the uLCD
High Level IO Software Logic
Event Handler Task Logic
RX Task Logic
Communication Bridge + Android Software Design
Discuss your hardware design of Communication Bridge and Android *SHOW SOFTWARE FLOWCHART DIAGRAM
Geographical Controller Team Software Design
Discuss your hardware design of Geographical Controller *SHOW SOFTWARE FLOWCHART DIAGRAM
Master Controller Team Software Design
Discuss your hardware design of Master Controller *SHOW SOFTWARE FLOWCHART DIAGRAM
Software Interface
This section includes implementation, but again, not the details, just the high level. For example, you can list the steps it takes to communicate over a sensor, or the steps needed to write a page of memory onto SPI Flash. You can include sub-sections for each of your component implementation.
SYSTEM LEVEL SOFTWARE IMPLEMENTATION GOES HERE
Sensor Controller Team Software Interface
Describe steps to communicate hardware
Motor Controller Team Software Interface
Describe steps to communicate hardware
I/O Team Software Interface
Describe steps to communicate hardware
Communication Bridge + Android Software Interface
Describe steps to communicate hardware
Geographical Controller Team Software Interface
Describe steps to communicate hardware
Master Controller Team Software Interface
Describe steps to communicate hardware
CAN Communication Table
Master CAN Communication Table
TX Message ID | TX Message Transmit Rate | TX Message Description | RX Response Message ID | RX Listening Module |
---|---|---|---|---|
0x100 | 1hz Periodic | Request Heartbeat (Module state and Timestamp) | 0x200, 0x300, 0x400, 0x500, 0x600 (Respectively) | Motor, Sensor, Geo, Bridge, IO (Respectively) |
0x101 | 1hz Periodic | Send Vehicle State | N/A | Motor, Sensor, Geo, Bridge, IO |
0x124 | Spontaneous | Set Torque and Steering | N/A | Motor |
0x140 | Spontaneous | Send Destination GPS | N/A | Geo |
0x14A | Spontaneous | Request Calibrate Compass | N/A | Geo |
0x14B | Spontaneous | Request Compass Heading | N/A | Geo |
0x14C | Spontaneous | Request Current GPS | N/A | Geo |
0x14D | Spontaneous | Request Current Time | N/A | Geo |
Motor CAN Communication Table
TX Message ID | TX Message Transmit Rate | TX Message Description | RX Response Message ID | RX Listening Module |
---|---|---|---|---|
N/A | N/A | N/A | N/A | N/A |
Sensor CAN Communication Table
TX Message ID | TX Message Transmit Rate | TX Message Description | RX Response Message ID | RX Listening Module |
---|---|---|---|---|
0x330 | 10hz Periodic | Transmit all sensor's distances | N/A | Master, IO |
Geo CAN Communication Table
TX Message ID | TX Message Transmit Rate | TX Message Description | RX Response Message ID | RX Listening Module |
---|---|---|---|---|
0x441 | 10hz Periodic | Transmit Current GPS Coordinates | N/A | Master, IO |
0x445 | 10hz Periodic | Transmit Current Heading and Bearing | N/A | Master, IO |
0x449 | 10hz Periodic | Transmit Current GPS Heading | N/A | Master, IO |
Bridge CAN Communication Table
TX Message ID | TX Message Transmit Rate | TX Message Description | RX Response Message ID | RX Listening Module |
---|---|---|---|---|
0x050 | Spontaneous | Request Drive Mode change to Free Drive | N/A | Master |
0x051 | Spontaneous | Request Drive Mode change to GPS Drive | N/A | Master |
0x052 | Spontaneous | Request Drive Mode change to Indoor Drive | N/A | Master |
0x053 | Spontaneous | Transmit Destination GPS Coordinates | N/A | Master |
0x055 | Spontaneous | Request Vehicle Start Driving Command | N/A | Master |
0x056 | Spontaneous | Request Vehicle Turn Off | N/A | Master |
0x057 | Spontaneous | Request Vehicle Turn On | N/A | Master |
0x058 | Spontaneous | Send Free Drive Turn Left | N/A | Master |
0x059 | Spontaneous | Send Free Drive Straight | N/A | Master |
0x05A | Spontaneous | Send Free Drive Turn Right | N/A | Master |
0x05B | Spontaneous | Send Free Drive Stop | N/A | Master |
0x05C | Spontaneous | Send Free Drive Reverse Left | N/A | Master |
0x05D | Spontaneous | Send Free Drive Reverse Straight | N/A | Master |
0x05E | Spontaneous | Send Free Drive Reverse Right | N/A | Master |
IO CAN Communication Table
TX Message ID | TX Message Transmit Rate | TX Message Description | RX Response Message ID | RX Listening Module |
---|---|---|---|---|
0x060 | Spontaneous | Request Drive Mode change to Free Drive | N/A | Master |
0x061 | Spontaneous | Request Drive Mode change to GPS Drive | N/A | Master |
0x062 | Spontaneous | Request Drive Mode change to Indoor Drive | N/A | Master |
0x063 | Spontaneous | Request Vehicle Turn On | N/A | Master |
0x064 | Spontaneous | Request Vehicle Turn Off | N/A | Master |
0x065 | Spontaneous | Transmit Destination GPS Coordinates | N/A | Master |
0x066 | Spontaneous | Request Vehicle Start Driving Command | N/A | Master |
Testing
Sensor Controller Testing
Sensor Controller Testing #1
Describe how you tested the Sensors
Motor Controller Testing
Motor Controller Testing #1
Describe how you tested the motors
I/O Testing
I/O Testing #1
Describe how you tested the I/O Device
Communication Bridge + Android Testing
Communication Bridge + Android Testing #1
Describe how you tested the Communication Bridge + Android
Geographical Controller
Geographical Controller
Describe how you tested the Geographical Controller
Master Controller
Master Controller Testing #1
Describe how you tested the Master Controller
Technical Challenges
Sensor Controller Team Issues
MY ISSUE #1 TITLE
PROBLEM:
RESOLUTION:
FUTURE RECOMMENDATIONS:
MY ISSUE #2 TITLE
PROBLEM:
RESOLUTION:
FUTURE RECOMMENDATIONS:
Motor Controller Team Issues
Motor Controller Issue #1
PROBLEM:
RESOLUTION:
FUTURE RECOMMENDATIONS:
Motor Controller Issue #2
PROBLEM:
RESOLUTION:
FUTURE RECOMMENDATIONS:
I/O Team Issues
I/O Team Issue #1
PROBLEM:
Tasks blocking each other, thus slowing down performance
RESOLUTION:
Restructured task architecture
FUTURE RECOMMENDATIONS:
Draw out architecture first, then code
I/O Team Issue #2
PROBLEM:
RESOLUTION:
FUTURE RECOMMENDATIONS:
Communication Bridge + Android Team Issues
Communication Bridge + Android Issue #1
PROBLEM:
RESOLUTION:
FUTURE RECOMMENDATIONS:
Communication Bridge + Android #2
PROBLEM:
RESOLUTION:
FUTURE RECOMMENDATIONS:
Geographical Controller Issues
Geographical Controller #1
PROBLEM:
RESOLUTION:
FUTURE RECOMMENDATIONS:
Geographical Controller #2
PROBLEM:
RESOLUTION:
FUTURE RECOMMENDATIONS:
Master Controller Team Issues
Master Controller Issue #1
PROBLEM:
RESOLUTION:
FUTURE RECOMMENDATIONS:
Master Controller#2
PROBLEM:
RESOLUTION:
FUTURE RECOMMENDATIONS:
Conclusion
Conclude your project here. You can recap your testing and problems. You should address the "so what" part here to indicate what you ultimately learnt from this project. How has this project increased your knowledge?
Project Video
Upload a video of your project and post the link here.
Project Source Code
References
Acknowledgement
Any acknowledgement that you may wish to provide can be included here.
References Used
List any references used in project.