Difference between revisions of "S24: Team X"
(→CAN Communication) |
(→Driver and LCD Module) |
||
Line 426: | Line 426: | ||
== Driver and LCD Module == | == Driver and LCD Module == | ||
− | + | [[File:driverLCD.png|200px]] | |
Gitlab Driver & LCD Node Link [https://gitlab.com/ashley.n.ho/sjtwo-c/-/tree/master/projects/driver_node?ref_type=heads] | Gitlab Driver & LCD Node Link [https://gitlab.com/ashley.n.ho/sjtwo-c/-/tree/master/projects/driver_node?ref_type=heads] |
Revision as of 19:50, 12 May 2024
Contents
Project Title
Team X
Abstract
Our main goal of this project was to utilize the knowledge acquired from the lectures in CMPE 243. The report summarizes the overall process taken to develop an autonomous driving RC car using FreeRTOS, various periodic tasks, and the CAN bus to combine and run the different code modules.
Introduction
The project was divided into 5 modules:
- Sensor Node
- Motor Node
- Driver Node
- Geo Node
- Mobile Application
Team Members & Responsibilities
<Team Picture>
Gitlab Project Link [1]
Team Members | Task Responsibility |
---|---|
|
|
|
|
|
|
|
|
Schedule
Week# | Start Date | End Date | Task | Status |
---|---|---|---|---|
1 | 02/19/2024 | 02/25/2024 |
|
|
2 | 02/26/2024 | 03/03/2024 |
|
|
3 | 03/04/2024 | 03/11/2024 |
|
|
4 | 03/18/2024 | 03/24/2024 |
|
|
5 | 03/25/2024 | 03/31/2024 |
|
|
6 | 04/01/2024 | 04/07/2024 |
|
|
7 | 04/08/2024 | 04/14/2024 |
|
|
8 | 04/15/2024 | 04/21/2024 |
|
|
9 | 04/22/2024 | 04/28/2024 |
|
|
10 | 04/29/2024 | 05/05/2024 |
|
|
11 | 05/06/2024 | 05/12/2024 |
|
|
12 | 05/06/2024 | 05/12/2024 |
|
|
13 | 05/13/2024 | 05/19/2024 |
|
|
14 | 05/20/2024 | 05/26/2024 |
|
|
Parts List & Cost
Item# | Part Desciption | Vendor | Qty | Cost |
---|---|---|---|---|
1 | RC Car | Traxxas | 1 | $250.00 |
2 | RC Car Battery | Traxxus | 2 | $100 |
3 | CAN Transceivers MCP2551-I/P | Microchip [2] | 8 | Free Samples |
4 | MB1010 LV-MaxSonar | <Insert Company> | 4 | $29.95 |
5 | GPS | <Insert Company> | <Insert Amount> | <Insert Price> |
6 | Compass | <Insert Company> | <Insert Amount> | <Insert Price> |
7 | LCD | <Insert Company> | <Insert Amount> | <Insert Price> |
CAN Communication
Each node is connected to a CAN transceiver that are connected to a bus with a 120 Ohm resistor on each end. We handled each message on the 10Hz, with the sensor and motor messages having the highest priority.
Specifically, we classified each node with these (see table below) message IDs.
Node | Message ID Range | |
---|---|---|
1 | MOTOR | 300 - 310 |
2 | SENSOR | 200 |
3 | GEO | 400 - 450 |
4 | DEBUG | 700 |
Hardware Design
DBC File
Gitlab DBC File Link [3]
Sensor and Bridge Controller ECU
<Picture>
Gitlab Sensor and Bridge Controller Node Link [4]
Hardware Design
Software Design
<List the code modules that are being called periodically.>
Technical Challenges
< List of problems and their detailed resolutions>
Motor ECU
<Picture>
Gitlab Motor Node Link [5]
Hardware Design
Software Design
<List the code modules that are being called periodically.>
Technical Challenges
< List of problems and their detailed resolutions>
The main issue we had with the motor controller occurred during PWM hacking because we did not want the motor running the car too fast. As such, we had to guess and check a good PWM value to run the motor so that the car would move at the slowest speed possible without running into issues where it could not move. However, with continual tests, we managed to identify the ideal range we wanted to run the motor.
Geographical Controller
<Picture>
Gitlab Geo Node Link [6]
Hardware Design
Software Design
<List the code modules that are being called periodically.>
Technical Challenges
< List of problems and their detailed resolutions>
Driver and LCD Module
Gitlab Driver & LCD Node Link [7]
Hardware Design
Software Design
<List the code modules that are being called periodically.>
Technical Challenges
Most of the issues surrounding the driver node occurred after field testing. We found there were some issues regarding how soon the driver made the decision compared to when it received the sensor data. As such, we made adjustments so that, despite the delay, there would be time for the driver to receive the sensor data, identify the correct action to take, and then move the wheels. Overall, our driver node worked as expected once we started field testing due to the multitude of unit tests that were done to ensure proper logic.
Additionally, we ran into issues integrating the LCD screen through I2C. The screen's slave address would not get detected, despite the device having the proper connections and power supply. However, it was found to have just been a hardware issue and worked with a different I2C LCD device.
Mobile Application
<Picture and link to Gitlab>
Gitlab Mobile APp Node Link [8]
Hardware Design
Software Design
<List the code modules that are being called periodically.>
Technical Challenges
< List of problems and their detailed resolutions>
Conclusion
<Organized summary of the project>
<What did you learn?>
Project Video
Project Source Code
Team X Gitlab Link [9]
Advice for Future Students
- Start early! Order things as soon as you have your team, and keep track of finances for reimbursements
Acknowledgement
Thank you Preet for the class and for guiding us through the process of building the RC car.
References
1. LCD Datasheet
2. LCD Display Initialization and Configuration Example Tutorial