Difference between revisions of "S22: Testla"

From Embedded Systems Learning Academy
Jump to: navigation, search
(Sensor ECU)
(Schedule)
Line 68: Line 68:
 
* Read previous projects, gather information and discuss among the group members.
 
* Read previous projects, gather information and discuss among the group members.
 
* Distribute modules to each team member.
 
* Distribute modules to each team member.
 +
* Purchased the RC Car
 +
* Pur
  
 
| Completed
 
| Completed
Line 81: Line 83:
 
<HR>
 
<HR>
 
<BR/>
 
<BR/>
 +
 +
 +
 +
== Schedule ==
 +
 +
{| class="wikitable"
 +
|-
 +
|+ Legend
 +
|-
 +
! Description !! Color
 +
|-
 +
| Administrative || Black
 +
|-
 +
| Sensor || <span style="color:cyan">Cyan</span>
 +
|-
 +
| Bluetooth & App || <span style="color:blue">Blue</span>
 +
|-
 +
| GEO || <span style="color:red">Red</span>
 +
|-
 +
| Motor || <span style="color:magenta">Magenta</span>
 +
|-
 +
| Main || <span style="color:orange">Orange</span>
 +
|}
 +
 +
{| class="wikitable"
 +
|-
 +
! scope="col"| Week#
 +
! scope="col"| Start Date
 +
! scope="col"| End Date
 +
! scope="col"| Task
 +
! scope="col"| Status
 +
|-
 +
! scope="row"| 1
 +
|
 +
  <div style="text-align:center">02/15/2021</div>
 +
|
 +
  <div style="text-align:center">02/21/2021</div>
 +
|
 +
* Read previous projects to understand what is expected and have some meaningful knowledge by first meeting. Assign roles.
 +
|
 +
* <span style="color:green">Completed</span>
 +
|-
 +
! scope="row"| 2
 +
|
 +
  <div style="text-align:center">02/22/2021</div>
 +
|
 +
  <div style="text-align:center">02/28/2021</div>
 +
|
 +
*Acquire parts: Canbus modules, GPS module, Ultrasonic module, Bluetooth module, Car frame, and LCD display
 +
*Conduct meeting: Discuss GitLab layout and expectation of each assigned role
 +
|
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
|-
 +
! scope="row"| 3
 +
|
 +
  <div style="text-align:center">03/01/2021</div>
 +
|
 +
  <div style="text-align:center">03/07/2021</div>
 +
|
 +
*Purchased RC car and batteries.
 +
*<span style="color:cyan">Research and finalize which ultrasonic sensor the project will use.</span>
 +
*<span style="color:blue">Purchased Bluetooth connector</span>
 +
*<span style="color:red">Research math needed to determine distance between navigation points. Decide on distance algorithm</span>
 +
*<span style="color:red">Research multiple navigation point algorithm(Djikstra's) to determine shortest path.</span>
 +
*<span style="color:magenta">Create branch for motor controller driver.  Create draft template API for motor controller.</span>
 +
*<span style="color:orange">Using previous projects, determine what works needs to be completed for main board. Bring findings to weekly meeting</span>
 +
|
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
 +
|-
 +
! scope="row"| 4
 +
|
 +
  <div style="text-align:center">03/08/2021</div>
 +
|
 +
  <div style="text-align:center">03/14/2021</div>
 +
|
 +
*<span style="color:blue">Research connection with Bluetooth from board to application. Decide between bluetooth connection or wifi connection by this day</span>
 +
*<span style="color:red">Work on implementation of multiple navigation point algorithm to determine shortest path </span>
 +
*<span style="color:magenta">Plan motor controller API and create basic software flow of API</span>
 +
|
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
|-
 +
! scope="row"| 5
 +
|
 +
  <div style="text-align:center">03/15/2021</div>
 +
|
 +
  <div style="text-align:center">03/21/2021</div>
 +
|
 +
*<span style="color:black">Begin laying out hardware requirements for PCB on excel document. Include voltage and pinout requirements in excel document</span>
 +
*<span style="color:blue">Finish research on application building with android studio. Install android studio and necessary dependencies</span>
 +
*<span style="color:blue">Implement a simple application with a button and text</span>
 +
*<span style="color:magenta">Start researching on Wheel encoder according to the requirement</span>
 +
*<span style="color:red">Unit Test Direction Distance Calculation Module. Manual calculation of data should match module output</span>
 +
*<span style="color:red">Begin coding and digesting adafruit Compass data. Print Compass data.</span>
 +
|
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
|-
 +
! scope="row"| 6
 +
|
 +
  <div style="text-align:center">03/22/2021</div>
 +
|
 +
  <div style="text-align:center">03/28/2021</div>
 +
|
 +
*<span style="color:cyan">Acquire sensor and interface sensors to SJ2 Board and receive raw data</span>
 +
*<span style="color:blue">Implement basic communication between board and app</span>
 +
*<span style="color:red">Update Wiki with proper software diagrams for GPS and Compass data flow</span>
 +
*<span style="color:orange">Begin Mapping out pins used on all board</span>
 +
*<span style="color:orange">Complete a block diagram and a control scheme</span>
 +
<ol>
 +
<li style="color:orange">Top Level Driver Logic diagram</li>
 +
<li style="color:orange">Periodic Callback Functions Diagram</li>
 +
</ol>
 +
*<span style="color:orange">Create a basic Obstacle avoidance algorithm for Driver</span>
 +
*<span style="color:magenta">Probe RC car to determine expected behavior of signals and install RPM sensor</span>
 +
*<span style="color:magenta">Write motor controller modules and tests</span>
 +
|
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
|-
 +
! scope="row"| 7
 +
|
 +
  <div style="text-align:center">03/29/2021</div>
 +
|
 +
  <div style="text-align:center">04/04/2021</div>
 +
|
 +
*<span style="color:black">Discuss and construct DBC file</span>
 +
*<span style="color:cyan">Create sensor API to parse raw data and convert into inches</span>
 +
*<span style="color:blue">Integrate google map features into app</span>
 +
*<span style="color:magenta">Integration testing of motor controller logic</span>
 +
*<span style="color:orange">Create a Checkpoint Navigation algorithm for Driver</span>
 +
|
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
|-
 +
! scope="row"| 8
 +
|
 +
  <div style="text-align:center">04/05/2021</div>
 +
|
 +
  <div style="text-align:center">04/11/2021</div>
 +
|
 +
*<span style="color:black">Finish implementation of canbus between controllers and begin real world testing</span>
 +
*<span style="color:cyan">3D print sensor mounts, sensor guards, and draft sensor offset timing to deter sensor cross talk</span>
 +
*<span style="color:magenta">Finish integrating wheel encoder and display speed on SJTwo Telemetry</span>
 +
*<span style="color:orange">Establish Communication between the LCD display and Master Board over I2C</span>
 +
|
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
|-
 +
! scope="row"| 9
 +
|
 +
  <div style="text-align:center">04/12/2021</div>
 +
|
 +
  <div style="text-align:center">04/18/2021</div>
 +
|
 +
*<span style="color:black">Integrate Driver, Geo, Bridge sensor, and Motor nodes. Successful communication between all boards.</span>
 +
*<span style="color:blue">Implement Kill button on app for emergency stop</span>
 +
*<span style="color:cyan">Analyze noise in sensor values and design a filter to mitigate the noise</span>
 +
*<span style="color:magenta">Complete "Self Test" for motor test(DC motor moves forward and backwards and servo moves right - left)</span>
 +
*<span style="color:magenta">Start working on PID control algorithm. Design bare skeleton for workflow</span>
 +
*<span style="color:orange">Create an algorithm to account for speed when the car is on an incline</span>
 +
|
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
 +
|-
 +
! scope="row"| 10
 +
|
 +
  <div style="text-align:center">04/19/2021</div>
 +
|
 +
  <div style="text-align:center">05/25/2021</div>
 +
|
 +
*<span style="color:black">Begin to analysis real world tests from previous weeks implementation and perform fixes for issues faced</span>
 +
*<span style="color:black">Ensure Canbus nodes are communicating correctly by verifying PCON data. Verify that timing for data is correct</span>
 +
*<span style="color:black">Added CAN debug messages</span>
 +
*<span style="color:black">Start working on the PCB, order the PCB and also purchase the required components </span>
 +
*<span style="color:cyan">Integration testing with obstacle avoidance.</span>
 +
<ol>
 +
<li style="color:cyan">Analyze possible blind spots and make adjustments to sensor placements. </li>
 +
<li style="color:cyan">Analyze sensor response time and data while rc car is moving and make adjustments if needed.</li>
 +
</ol>
 +
*<span style="color:orange">Display relevant Motor and Checkpoint Information to the LCD.</span>
 +
*<span style="color:magenta">Tuned and tested PID on RC Car (More refinement needed)</span>
 +
|
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
*<span style="color:green">Completed</span>
 +
*<span style="color:green">Completed</span>
 +
*<span style="color:green">Completed</span>
 +
*<span style="color:green">Completed</span>
 +
*<span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
*<span style="color:green">Completed</span>
 +
|-
 +
! scope="row"| 11
 +
|
 +
  <div style="text-align:center">04/26/2021</div>
 +
|
 +
  <div style="text-align:center">05/02/2021</div>
 +
|
 +
*<span style="color:black">Perform more real world tests and isolate bugs. Update issues for bugs find during real world test</span>
 +
*<span style="color:black">Perform final bug fixes, as listed under issues, for all Canbus nodes. </span>
 +
*<span style="color:black">Integrate all the parts on the PCB. </span>
 +
|
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:Green">Completed</span>
 +
|-
 +
! scope="row"| 12
 +
|
 +
  <div style="text-align:center">05/03/2021</div>
 +
|
 +
  <div style="text-align:center">05/09/2021</div>
 +
|
 +
*<span style="color:black">Update Wiki Report to reflect all changes and include final testing video</span>
 +
*<span style="color:black">Perform final code changes and commit to master branch</span>
 +
*<span style="color:black">Received manufactured PCB, installed, and integration tested</span>
 +
*<span style="color:magenta">Refactored motor controller code and wrote much needed unit tests</span>
 +
*<span style="color:magenta">Finished tuning PID and tested RC Car driving on slope</span>
 +
|
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
|-
 +
! scope="row"| 13
 +
|
 +
  <div style="text-align:center">05/10/2021</div>
 +
|
 +
  <div style="text-align:center">05/16/2021</div>
 +
|
 +
*<span style="color:black">Update Wiki schedule and begin draft for individual controller documentation</span>
 +
|
 +
* <span style="color:green">Completed</span>
 +
|-
 +
! scope="row"| 14
 +
|
 +
  <div style="text-align:center">05/17/2021</div>
 +
|
 +
  <div style="text-align:center">05/23/2021</div>
 +
|
 +
*<span style="color:black">Update Wiki individual controller and general documentation</span>
 +
*<span style="color:orange">Last minute bug fixes/refining</span>
 +
*<span style="color:orange">Waypoint algorithm integration and test</span>
 +
*<span style="color:magenta">Last minute bug fixes/refining & code cleanup</span>
 +
|
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
|-
 +
! scope="row"| 15
 +
|
 +
  <div style="text-align:center">05/24/2021</div>
 +
|
 +
  <div style="text-align:center">05/30/2021</div>
 +
|
 +
*<span style="color:black">Demo Project</span>
 +
*<span style="color:black">Finalize Wiki Documentation</span>
 +
|
 +
* <span style="color:green">Completed</span>
 +
* <span style="color:green">Completed</span>
 +
|-
 +
|}
 +
 +
<HR>
 +
<BR/>
 +
 
== Parts List & Cost ==
 
== Parts List & Cost ==
 
{| class="wikitable"
 
{| class="wikitable"

Revision as of 02:29, 18 March 2022

Project Title

<Team Name>



Abstract

<2-3 sentence abstract>

Introduction

The project was divided into N modules:

  • Sensor ...
  • Motor..
  • ...
  • Android

Team Members & Responsibilities

<Team Picture>

Gitlab Project Link - [1]

<Provide ECU names and members responsible> <One member may participate in more than one ECU>

  • Sensor
    • Link to Gitlab user1
    • Link to Gitlab user2
  • Motor
    • Link to Gitlab user1
    • Link to Gitlab user2
  • Geographical
    • Link to Gitlab user1
    • Link to Gitlab user2
  • Communication Bridge Controller & LCD
    • Link to Gitlab user1
    • Link to Gitlab user2
  • Android Application
    • Link to Gitlab user1
    • Link to Gitlab user2
  • Testing Team
    • Link to Gitlab user1
    • Link to Gitlab user2


Schedule

Week# Start Date End Date Task Status
1 09/15/2017 09/16/2017
  • Read previous projects, gather information and discuss among the group members.
  • Distribute modules to each team member.
  • Purchased the RC Car
  • Pur
Completed
2 09/17/2017 10/03/2017



Schedule

Legend
Description Color
Administrative Black
Sensor Cyan
Bluetooth & App Blue
GEO Red
Motor Magenta
Main Orange
Week# Start Date End Date Task Status
1
02/15/2021
02/21/2021
  • Read previous projects to understand what is expected and have some meaningful knowledge by first meeting. Assign roles.
  • Completed
2
02/22/2021
02/28/2021
  • Acquire parts: Canbus modules, GPS module, Ultrasonic module, Bluetooth module, Car frame, and LCD display
  • Conduct meeting: Discuss GitLab layout and expectation of each assigned role
  • Completed
  • Completed
3
03/01/2021
03/07/2021
  • Purchased RC car and batteries.
  • Research and finalize which ultrasonic sensor the project will use.
  • Purchased Bluetooth connector
  • Research math needed to determine distance between navigation points. Decide on distance algorithm
  • Research multiple navigation point algorithm(Djikstra's) to determine shortest path.
  • Create branch for motor controller driver. Create draft template API for motor controller.
  • Using previous projects, determine what works needs to be completed for main board. Bring findings to weekly meeting
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
4
03/08/2021
03/14/2021
  • Research connection with Bluetooth from board to application. Decide between bluetooth connection or wifi connection by this day
  • Work on implementation of multiple navigation point algorithm to determine shortest path
  • Plan motor controller API and create basic software flow of API
  • Completed
  • Completed
  • Completed
5
03/15/2021
03/21/2021
  • Begin laying out hardware requirements for PCB on excel document. Include voltage and pinout requirements in excel document
  • Finish research on application building with android studio. Install android studio and necessary dependencies
  • Implement a simple application with a button and text
  • Start researching on Wheel encoder according to the requirement
  • Unit Test Direction Distance Calculation Module. Manual calculation of data should match module output
  • Begin coding and digesting adafruit Compass data. Print Compass data.
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
6
03/22/2021
03/28/2021
  • Acquire sensor and interface sensors to SJ2 Board and receive raw data
  • Implement basic communication between board and app
  • Update Wiki with proper software diagrams for GPS and Compass data flow
  • Begin Mapping out pins used on all board
  • Complete a block diagram and a control scheme
  1. Top Level Driver Logic diagram
  2. Periodic Callback Functions Diagram
  • Create a basic Obstacle avoidance algorithm for Driver
  • Probe RC car to determine expected behavior of signals and install RPM sensor
  • Write motor controller modules and tests
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
7
03/29/2021
04/04/2021
  • Discuss and construct DBC file
  • Create sensor API to parse raw data and convert into inches
  • Integrate google map features into app
  • Integration testing of motor controller logic
  • Create a Checkpoint Navigation algorithm for Driver
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
8
04/05/2021
04/11/2021
  • Finish implementation of canbus between controllers and begin real world testing
  • 3D print sensor mounts, sensor guards, and draft sensor offset timing to deter sensor cross talk
  • Finish integrating wheel encoder and display speed on SJTwo Telemetry
  • Establish Communication between the LCD display and Master Board over I2C
  • Completed
  • Completed
  • Completed
  • Completed
9
04/12/2021
04/18/2021
  • Integrate Driver, Geo, Bridge sensor, and Motor nodes. Successful communication between all boards.
  • Implement Kill button on app for emergency stop
  • Analyze noise in sensor values and design a filter to mitigate the noise
  • Complete "Self Test" for motor test(DC motor moves forward and backwards and servo moves right - left)
  • Start working on PID control algorithm. Design bare skeleton for workflow
  • Create an algorithm to account for speed when the car is on an incline
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
10
04/19/2021
05/25/2021
  • Begin to analysis real world tests from previous weeks implementation and perform fixes for issues faced
  • Ensure Canbus nodes are communicating correctly by verifying PCON data. Verify that timing for data is correct
  • Added CAN debug messages
  • Start working on the PCB, order the PCB and also purchase the required components
  • Integration testing with obstacle avoidance.
  1. Analyze possible blind spots and make adjustments to sensor placements.
  2. Analyze sensor response time and data while rc car is moving and make adjustments if needed.
  • Display relevant Motor and Checkpoint Information to the LCD.
  • Tuned and tested PID on RC Car (More refinement needed)
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
11
04/26/2021
05/02/2021
  • Perform more real world tests and isolate bugs. Update issues for bugs find during real world test
  • Perform final bug fixes, as listed under issues, for all Canbus nodes.
  • Integrate all the parts on the PCB.
  • Completed
  • Completed
  • Completed
12
05/03/2021
05/09/2021
  • Update Wiki Report to reflect all changes and include final testing video
  • Perform final code changes and commit to master branch
  • Received manufactured PCB, installed, and integration tested
  • Refactored motor controller code and wrote much needed unit tests
  • Finished tuning PID and tested RC Car driving on slope
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
13
05/10/2021
05/16/2021
  • Update Wiki schedule and begin draft for individual controller documentation
  • Completed
14
05/17/2021
05/23/2021
  • Update Wiki individual controller and general documentation
  • Last minute bug fixes/refining
  • Waypoint algorithm integration and test
  • Last minute bug fixes/refining & code cleanup
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
15
05/24/2021
05/30/2021
  • Demo Project
  • Finalize Wiki Documentation
  • Completed
  • Completed


Parts List & Cost

Item# Part Desciption Vendor Qty Cost
1 RC Car Traxxas 1 $250.00
2 CAN Transceivers MCP2551-I/P Microchip [2] 8 Free Samples


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> <You can optionally use an inline image>




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

<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>





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>

Acknowledgement

References