S22: Testla
Contents
Testla
<Group Pic>
Abstract
The Testla project is the culmination of our efforts to create an autonomously operated RC Car by pooling together our experience in software design, hardware design, power systems, and mobile application development. Project development started in February of 2022 and ended in May. (NOTE: One more sentence probably)
Introduction
The project was divided into 5 modules:
- Bridge and Sensor Information
- Motor Operation
- Geological Information
- Driver and LCD Manager
- Android Application
Team Members & Responsibilities
<Provide ECU names and members responsible> <One member may participate in more than one ECU>
- Sensor
- Bang Nguyen --couldn't find your gitlab
- Bang Nguyen --couldn't find your gitlab
- Motor
- Michael Hatzikokolakis https://gitlab.com/mikehatzi8
- Sinan Bayati https://gitlab.com/sinan.bayati
- Geographical
- Scott LoCascio https://gitlab.com/scottlocascio
- Devin Alexander https://gitlab.com/devin_alexander_sjsu
- Communication Bridge Controller & LCD
- Devin Alexander https://gitlab.com/devin_alexander_sjsu
- Link to Gitlab user2
- Android Application
- Thinh Lu https://gitlab.com/lphucthinh40
- Michael Hatzikokolakis https://gitlab.com/mikehatzi8
- Testing Team
- Link to Gitlab user1
- Link to Gitlab user2
(not sure exactly which role Bang is doing...)
Schedule
Week# | Start Date | End Date | Task | Status |
---|---|---|---|---|
1 | 02/15/2022 | 02/21/2022 |
|
Completed |
2 | 02/22/2022 | 02/28/2022 |
|
Completed |
3 | 03/01/2022 | 03/07/2022 |
|
Completed |
4 | 03/08/2022 | 03/14/2022 |
|
Completed |
5 | 03/15/2022 | 03/21/2022 |
|
Completed |
6 | 03/22/2022 | 03/28/2022 |
|
Incomplete |
7 | 03/29/2022 | 04/04/2022 |
|
Incomplete |
8 | 04/05/2022 | 04/11/2022 |
|
Incomplete |
9 | 04/12/2022 | 04/18/2022 |
|
Incomplete |
10 | 04/19/2022 | 04/25/2022 |
|
Incomplete |
11 | 04/26/2022 | 05/02/2022 |
|
Incomplete |
12 | 05/03/2022 | 05/09/2022 |
|
Incomplete |
13 | 05/10/2022 | 05/16/2022 |
|
Incomplete |
14 | 05/17/2022 | 05/25/2022 |
|
Incomplete |
Parts List & Cost
Item# | Part Desciption | Vendor | Qty | Cost |
---|---|---|---|---|
1 | Unassembled RC Car | Traxxas [1] | 1 | $279.99 |
2 | CAN Transceivers | Amazon [2] | 1 | $8.99 |
2 | CAN Transceivers | Amazon [3] | 1 | $8.99 |
2 | CAN Transceivers | Amazon [4] | 1 | $8.99 |
2 | CAN Transceivers | Amazon [5] | 1 | $8.99 |
2 | CAN Transceivers | Amazon [6] | 1 | $8.99 |
Printed Circuit Board
<Picture and information, including links to your PCB>
CAN Communication
<Talk about your message IDs or communication strategy, such as periodic transmission, MIA management etc.>
Hardware Design
<Show your CAN bus hardware design>
DBC File
<Gitlab link to your DBC file> DBC Link
VERSION "" NS_ : BA_ BA_DEF_ BA_DEF_DEF_ BA_DEF_DEF_REL_ BA_DEF_REL_ BA_DEF_SGTYPE_ BA_REL_ BA_SGTYPE_ BO_TX_BU_ BU_BO_REL_ BU_EV_REL_ BU_SG_REL_ CAT_ CAT_DEF_ CM_ ENVVAR_DATA_ EV_DATA_ FILTER NS_DESC_ SGTYPE_ SGTYPE_VAL_ SG_MUL_VAL_ SIGTYPE_VALTYPE_ SIG_GROUP_ SIG_TYPE_REF_ SIG_VALTYPE_ VAL_ VAL_TABLE_ BS_: BU_: DBG DRIVER MOTOR SENSOR BO_ 100 DRIVER_HEARTBEAT: 3 DRIVER SG_ DRIVER_HEARTBEAT_cmd : 0|8@1+ (1,0) [0|0] "" DBG BO_ 110 DRIVER_STEERING: 3 DRIVER SG_ DRIVER_STEERING_yaw : 0|12@1+ (0.001,-2) [-2|2] "radians" MOTOR SG_ DRIVER_STEERING_velocity : 12|12@1+ (0.01,0) [0|40] "kph" MOTOR BO_ 120 MOTOR_HEARTBEAT: 2 MOTOR SG_ MOTOR_HEARTBEAT_cmd : 0|8@1+ (1,0) [0|0] "" DBG SG_ MOTOR_HEARTBEAT_encoder : 8|8@1+ (1,0) [0|0] "" DBG BO_ 130 MOTOR_ACK: 1 MOTOR SG_ MOTOR_ACK_cmd : 0|8@1+ (1,0) [0|0] "" DRIVER BO_ 200 SENSOR_SONARS: 8 SENSOR SG_ SENSOR_SONARS_left : 0|10@1+ (1,0) [0|800] "inch" DRIVER SG_ SENSOR_SONARS_right : 10|10@1+ (1,0) [0|0] "inch" DRIVER SG_ SENSOR_SONARS_middle : 20|10@1+ (1,0) [0|0] "inch" DRIVER SG_ SENSOR_SONARS_back : 30|10@1+ (1,0) [0|0] "inch" DRIVER SG_ SENSOR_SONARS_frame_id : 42|16@1+ (1,0) [0|0] "" DRIVER BO_ 200 GPS_DESTINATION_LOCATION: 8 SENSOR SG_ GPS_DEST_LATITUDE : 0|28@1+ (0.000001,-90.000000) [-90|90] "Degrees" GEO SG_ GPS_DEST_LONGITUDE : 28|28@1+ (0.000001,-180.000000) [-180|180] "Degrees" GEO BO_ 220 GEO_STATUS: 8 GEO SG_ GEO_STATUS_COMPASS_HEADING : 0|12@1+ (1,0) [0|359] "Degrees" DRIVER SG_ GEO_STATUS_COMPASS_BEARING : 12|12@1+ (1,0) [0|359] "Degrees" DRIVER SG_ GEO_STATUS_DISTANCE_TO_DESTINATION : 24|16@1+ (0.1,0) [0|0] "Meters" DRIVER CM_ BU_ DRIVER "The driver controller driving the car"; CM_ BU_ MOTOR "The motor controller of the car"; CM_ BU_ SENSOR "The sensor controller of the car"; CM_ BO_ 100 "Sync message used to synchronize the controllers"; CM_ SG_ 100 DRIVER_HEARTBEAT_cmd "Heartbeat command from the driver"; BA_DEF_ "BusType" STRING ; BA_DEF_ BO_ "GenMsgCycleTime" INT 0 0; BA_DEF_ SG_ "FieldType" STRING ; BA_DEF_DEF_ "BusType" "CAN"; BA_DEF_DEF_ "FieldType" ""; BA_DEF_DEF_ "GenMsgCycleTime" 0; BA_ "GenMsgCycleTime" BO_ 100 1000; BA_ "GenMsgCycleTime" BO_ 200 50; BA_ "FieldType" SG_ 100 DRIVER_HEARTBEAT_cmd "DRIVER_HEARTBEAT_cmd"; VAL_ 100 DRIVER_HEARTBEAT_cmd 2 "DRIVER_HEARTBEAT_cmd_REBOOT" 1 "DRIVER_HEARTBEAT_cmd_SYNC" 0 "DRIVER_HEARTBEAT_cmd_NOOP" ;
Sensor ECU
<Picture and link to Gitlab>
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 and link to Gitlab>
Hardware Design
Software Design
<List the code modules that are being called periodically.>
Technical Challenges
< List of problems and their detailed resolutions>
Geographical Controller
The Geological controller is responsible for determining the position of the vehicle as well as the distance and bearing to desired destination.
Hardware Design
An Adafruit Ultimate GPS breakout module using the MTK3339 chipset is interfaced over UART to the Geological controller to provide latitude and longitude updates.
TODO: interface and explain compass
Software Design
On startup the GPS module is initialized to provide updates at 10Hz with a 115200 baud rate. Additionally, the Bridge and Sensor controller sends a desired latitude and longitude to the Geo controller over the CAN bus.
The desired and current position are used to calculate a distance and bearing using the haversine formula shown below.
Moveable Type Scripts: Calculate distance, bearing and more between Latitude/Longitude points
Technical Challenges
< List of problems and their detailed resolutions>
Communication Bridge Controller & LCD
<Picture and link to Gitlab>
Hardware Design
Software Design
<List the code modules that are being called periodically.>
Technical Challenges
< List of problems and their detailed resolutions>
Master Module
<Picture and link to Gitlab>
Hardware Design
Software Design
<List the code modules that are being called periodically.>
Technical Challenges
< List of problems and their detailed resolutions>
Mobile Application
<Picture and link to Gitlab>
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
Advise for Future Students
<Bullet points and discussion>