Abstract
<2-3 sentence abstract>
Introduction
The project was divided into 6 modules:
- Bridge and Sensor Board
- Motor Board
- Geological Board
- Driver and LCD Board
- PCB Designing
- Android
Team Members & Responsibilities
<Team Picture>
Bucephalous GitLab - [1]
- Bridge and Sensor Controller
- Nicholas Kaiser
- Joel Samson
- Communication Bridge Controller & LCD
- Mohit Ingale
- Abhinandan Burli
- Testing Team / Code Reviewers
- Hardware Integration (PCB Designing)
- Mohit Ingale
- Abhinandan Burli
- Wiki Page
- Nicholas Kaiser
- Shreya Patankar
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
|
- Draw block diagrams with pin information for each board and begin PCB design based on these diagrams
- Start implementing a basic Android app without Google maps API and create a separate GitLab repo for app
- 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
- Decide on ultrasonic sensor mounts and order extra if needed
- Order a new compass module (CMPS14)
- Finish designing team logo and upload to Wiki page
- Continue research on PID controller design and begin basic implementation
- Finalize parts list and place orders for remaining unordered items
- Decide on tap plastic acrylic sheet dimensions and PCB dimensions
- Integrate driver board diagnostic testing with LEDs and ultrasonic sensors (car goes left, left LEDs light up, etc.)
|
- Completed
- Completed
- Completed
- Completed
- Completed
- Completed
- Completed
- Completed
- 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
- Add PWM functionality to motor board code and test on DC and servo motors
- Complete a basic implementation of encoder code on motor board
- Bluetooth Module driver is finished, can connect to Android phone, and can receive "Hello World" data from phone
- 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
- Design a block diagram for optimal ultrasonic sensor placement
- Purchase tap plastic acrylic sheet
|
-
-
-
- Completed
- Completed
- Completed
- Completed
-
- Completed
-
-
- Completed
-
|
8
|
04/05/2020
|
04/11/2020
|
- Finish ultrasonic filtering algorithm for ultrasonic sensor's ADC data
- Google maps API is fully integrated into Android App
- Bluetooth Module is able to receive data from Android app
- 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
- Test existing motor board code on RC car's motors
- Finalize PCB schematic and order PCB
|
|
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
- Bluetooth module is able to receive desitnation latitude and longitude coordinates from Android app
|
|
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
- Integrate PCB onto RC 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
DBC File
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 ===