Difference between revisions of "S20: Bucephalus"

From Embedded Systems Learning Academy
Jump to: navigation, search
(Introduction)
Line 7: Line 7:
 
The project was divided into N modules:
 
The project was divided into N modules:
  
* <font color= "red"> Bridge and Sensor Board
+
* <font color= "red"> Bridge and Sensor Board</font color>
* <font color= "4CA821">Motor Board
+
* <font color= "4CA821">Motor Board</font color>
* <font color= "33BAFF">Geological Board
+
* <font color= "33BAFF">Geological Board</font color>
* <font color= "FUCHSIA">Driver and LCD Board
+
* <font color= "FUCHSIA">Driver and LCD Board</font color>
* <font color= "CDCC1C">PCB Designing
+
* <font color= "CDCC1C">PCB Designing</font color>
 
* <font color= "orange">Android</font color>
 
* <font color= "orange">Android</font color>
  

Revision as of 23:25, 28 March 2020

Abstract

<2-3 sentence abstract>

Introduction

The project was divided into N modules:

  • Bridge and Sensor Board
  • Motor Board
  • Geological Board
  • Driver and LCD Board
  • PCB Designing
  • Android

Team Members & Responsibilities

<Team Picture>

Bucephalous GitLab - [1]


Schedule

Week# Start Date End Date Task Status
1 02/16/2020 02/22/2020
  • Setup a team Google Docs folder
  • Brainstorm RC car design options
  • Research past semester RC car projects for ideas and parts needed
  • Put together a rough draft parts list
  • Setup a team GitLab repository
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
2 02/23/2020 02/29/2020
  • Decide on and order chassis
  • Discuss possible GPS modules
  • Discuss schedule for meeting dates and work days (Tuesdays are for code review and syncing, Saturdays are work days)
  • Discuss bluetooth communication approach (1 phone on car, 1 phone in controller's hands)
  • Discuss vehicle's driving checkpoints (checkpoints calculated after point B is specified)
  • Discuss wiring on RC car (1 battery to power motors and 1 power bank for everything else)
  • Discuss GitLab workflow (mirror our repo with Preet's, 3 approvals to merge to "working master" branch, resolve conflicts on "working master" branch, then can merge to master branch)
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
3 03/01/2020 03/07/2020
  • Decide on sensors (4 ultrasonic sensors: 3 in front, 1 in back)
  • Decide on a GPS module (Adafruit ADA746)
  • Research GPS antennas
  • Decide on CAN transceivers (SN65HVD230 IC's)
  • Request 15 CAN transceiver samples from ti.com
  • Discuss tasks of all 4 board nodes (geographical, driver, motors, bridge controller/sensors)
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
4 03/08/2020 03/14/2020
  • Assemble car chassis and plan general layout
  • Delegate tasks for each 2 person teams
  • Create branches for all nodes and add motor and sensor messages to DBC file
  • Discuss and research possible GPS antennas
  • Design block diagrams for motor node, bridge controller/sensor node, and full car
  • Solve GitLab branches vs folders issue (1 branch per node, or 1 folder per node)
  • Order 4 + 1 extra ultrasonic sensors (MaxBotix MB1003-000 HRLV-MaxSonar-EZ0)
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
5 03/15/2020 03/21/2020
  • Decide what to include on PCB board
  • Begin researching filtering algorithms for ultrasonic sensors
  • Read previous student's reports to decide on a compass module (CMPS14)
  • Start learning Android app development
  • Order GPS antenna
  • Driver node is able to respond correctly based on sensor obstacle detection scenarios (correct LED's light up)
  • Ultrasonic sensor values are converted to centimeters and transmit to driver node
  • Research ultrasonic sensor mounts
  • Transmit CAN messages from sensor to driver node, and from driver to motor node
  • Decide movement and steering directions based on all possible sensor obstacle detection scenarios
  • Begin research on PID implementation to control speed of RC car
  • Add GPS node messages (longitude, latitude, heading) and bridge sensor node messages (destination latitude and longitude) to DBC file
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
6 03/22/2020 03/28/2020
  • Finalize PCB layout and order PCB
  • Start implementing a basic Android app without Google maps API
  • Geological node is able to transmit a heading message to the driver node
  • Bridge sensor node is able to transmit a destination latitude and longitude coordinates message to geological node
  • Order ultrasonic sensor mounts
  • Order a new compass module (CMPS14)
  • Add PWM functionality to motor board code and test on DC and servo motors
  • Continue research on PID controller design and begin basic implementation
  • Finalize parts list and place orders for remaining unordered items
  • Design a block diagram for optimal ultrasonic sensor placement
  • Integrate driver board diagnostic testing with LEDs and ultrasonic sensors (car goes left, left LEDs light up, etc.)
  • Completed
  • Completed
  • Completed
7 03/29/2020 04/04/2020
  • Finish a basic implementation of filtering ultrasonic sensor's ADC data
  • Geological node is able to compute the destination heading (0-360 degrees) and send to driver node
  • Test existing motor board code on RC car's motors
  • Bluetooth Module is able to receive data from Android app
  • Complete rough draft of schedule and upload to Wiki page
  • Learn how to integrate Google maps API into Android app
  • Geological node is able to parse the GPS NMEA string to extract latitude and longitude coordinates
  • Complete rough draft of DBC file messages and signals
  • Geological node is able to receive a current heading (0-360 degrees) from the compass module
  • Geological node is able to receive an NMEA string from the GPS
8 04/05/2020 04/11/2020
  • Finish ultrasonic filtering algorithm for ultrasonic sensor's ADC data
  • Google maps API is full integrated into Android App
  • Bluetooth module is able to receive desitnation latitude and longitude coordinates from Android app
  • Integrate PCB onto RC car chassis
  • Design ultrasonic sensor shields to minimize sensor interferance with each other
  • Discuss checkpoint algorithm
  • Design car state machine
  • Complete motor board code controlling RC car's DC motor and servo motor
  • Finish wheel encoder implementation and integration
9 04/12/2020 04/18/2020
  • Test obstacle avoidance algorithm (indoor)
  • Test checkpoint algorithm (indoor)
  • Establish and test CAN communication between all boards
  • Finalize Displaying sensor and compass data on Android app
  • Finish GPS module integration with geographical controller
  • Finalize car block diagram
  • Finalize car state machine
  • Finish basic implementation of PID control and test on RC car
  • Complete basic implementation and unit testing of checkpoint algorithm
10 04/19/2020 04/25/2020
  • Finalize PID control implementation and test on car (indoor)
  • Test obstacle avoidance algorithm on car (indoor)
  • Test checkpoint algorithm on car (indoor)
  • LCD display is able to display car's speed, destination coordinates, and current heading data
  • Complete unit testing code for all modules
11 04/26/2020 05/02/2020
  • Finalize destination coordinate transmission from Android app
  • Finalize obstacle avoidance algorithm
  • Finalize checkpoint algorithm
  • Test drive from start to destination (indoor)
  • LCD display is fully integrated onto car chassis
12 05/03/2020 05/09/2020
  • Test drive from start to destination (outdoor)
  • Finalize DBC file
  • Upload rough draft version of report to Wiki page
  • Test PID control implementation (outdoor)
  • Test obstacle avoidance algorithm on car (outdoor)
  • Test checkpoint algorithm on car (outdoor)
13 05/10/2020 05/16/2020
  • Upload final version of report to Wiki page
  • Push final code to GitLab
  • Test drive from start to destination (outdoor)
  • Finalize PID control implementaion based on feedback from last week's test drives
  • Finalize obstacle avoidance algorithm based on feedback from last week's test drives
  • Finalize checkpoint algorithm based on feedback from last week's test drives
  • Test PID control implementation (outoor)
  • Test obstacle avoidance algorithm on car (outdoor)
  • Test checkpoint algorithm on car (outdoor)
14 05/17/2020 05/23/2020
  • Demo
  • Push final code to GitLab
  • Submit individual contributions feedback for all team members
  • Make final updates to Wiki report


Parts List & Cost

Item# Part Desciption Vendor Qty Cost
1 RC Car Chassis Traxxas 1 $250.00
2 Lithium-Ion Battery 1
3 Battery Charger 1
4 Tap Plastics Acrylic Sheet 1
5 Ultrasonic Sensors Amazon [2] 4
6 GPS Module 1
7 GPS Antenna 1
8 Compass Module 1
9 UART LCD Display 1
10 Bluetooth Module 1
11 CAN Transceivers SN65HVD230DR 15 Free Samples
12 Sjtwo Board Preet 4 $50.00
13 12" Pipe 1
14 Android Mobile Phone 1
15 Sensor Mounts 4


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