Abstract
<2-3 sentence abstract>
Introduction
Objectives of the RC Car:-
1) Detection and avoidance of the obstacles coming in the path of the RC car by following Obstacle detection avoidance.
2) Getting the GPS coordinates from the Android Application and traveling to that point using Waypoint Algorithm
3) System hardware communication using PCB Design.
4) Communication between the Driver Board and Android Mobile Application using wireless bluetooth commmunication.
The project is divided into six main modules:
CORE MODULES OF RC CAR
|
- Android Mobile Application
- Bridge and Sensor Board
- Geographic Controller
- Driver and LCD Board
- Motor Board
- Hardware Integration PCB
|
Team Members & Responsibilities
<Team Picture>
Bucephalous GitLab - [1]
- Bridge and Sensor Controller
- Communication Bridge Controller & LCD
- Android Mobile Application
- Testing Team / Code Reviewers
- Hardware Integration (PCB Designing)
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
- Completed
- 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
Bridge and Sensor 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>
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 ===