S19: Lightfury
Contents
Project Title
LightFury
Abstract
LightFury is an autonomous electric car project that aims to bring different embedded system paradigms together and consolidate them with industry level sophistication and robustness. This project will feature an RC car which will employ different sensors and motors to navigate the track without human assistance. Every sensor/motor combined with a dedicated functionality is managed and processed by a controller. Such different controllers will communicate with the master node using the CAN bus protocol. The autonomous car navigation is a result of all electronic module functioning harmoniously to reach the destination location.
Introduction
The project is divided into 7 modules:
- Master Controller
- Motor Controller
- Sensor Controller
- GPS Controller
- Android application and Bluetooth Connectivity
- Hardware (PCB designing)
- Testing
Team Members & Responsibilities
<Team Picture>
Project Link: Gitlab Link
- Sensors
- Ultrasonic
- Compass
- PCB Design
- Testing, Integration & Repository Maintenance
Schedule
Week# | Start Date | Task | Status | Completion Date |
---|---|---|---|---|
1 | 02/12/2019 |
|
Completed | 02/12/2019 |
2 | 02/19/2019 |
|
Completed | 02/19/2019 |
3 | 02/26/2019 |
|
Completed | 02/26/2019 |
4 | 03/05/2019 |
|
Completed | 03/09/2019 |
5 | 03/12/2019 |
|
Completed | 03/19/2019 |
5 | 03/19/2019 |
|
Completed | 03/26/2019 |
6 | 03/26/2019 |
|
Completed | 04/02/2019 |
7 | 04/02/2019 |
|
Completed | 04/09/2019 |
8 | 04/09/2019 |
|
Completed | 04/16/2019 |
9 | 04/16/2019 |
|
Completed | 04/23/2019 |
10 | 04/23/2019 |
|
Completed | 04/30/2019 |
10 | 04/23/2019 |
|
Completed | 04/30/2019 |
11 | 04/30/2019 |
|
Completed | 05/07/2019 |
12 | 05/07/2019 |
|
Planned | 05/14/2019 |
12 | 05/14/2019 |
|
Planned | 05/22/2019 |
12 | 05/22/2019 |
|
Planned | 05/22/2019 |
Parts List & Cost
Item# | Part Desciption | Vendor | Qty | Cost |
---|---|---|---|---|
1 | RC Car | Traxxas | 1 | From Prof. KaiKai Liu |
2 | CAN Transceivers MCP2551-I/P | Microchip | 15 | Free Samples |
3 | Semtec GPS | Microchip | 1 | Free Samples |
4 | Tilt Compensated Magnetic Compass | Amazon | 1 | $29 |
5 | LIPO Batteries + Charger | 1 | with car package | |
6 | 7" LCD | 1 | ||
7 | RPM 6520 Traxxas | Amazon | 1 | $11.67 |
8 | UltraSonic Sensor | Maxbotix | 4 | $150 |
9 | PCB | PCBWay | 1 | $40.00 (estimated) |
Printed Circuit Board
<Picture and information, including links to your PCB>
Planned a single PCB to place and route CAN transceivers and eliminate dangling wires.
CAN Communication
With the help of CAN transceivers, each sensor module sends data in DBC format to the controller. The data from ultrasonic sensor helps in obstacle detection. The GPS and Compass Module helps with navigation. The LCD gives live information of component status and values. Finally there is motors and control unit for navigating the car as per the controller commands.
Hardware Design
<Show your CAN bus hardware design>
DBC File
Sensor ECU
<Picture and link to Gitlab>
Hardware Design
Software Design
<List the code modules that are being called periodically.>
Technical Challenges
<Bullet or Headings of a module>
Unreliable sonor sensors
<Problem Summary> <Problem Resolution>
Motor ECU
Hardware Design
The traxxas chassis came with ECU and servo controller. It has DC motor with servo control for turning. Working on 3.4 V/ 3000mAH power specifications it has axle to rotate all the four wheels. The feedback for PWM controlled speed attained is fed back through magnetic encoder. The front wheels have servo connection for turning. The chassis is placed on suspension unit for shock absorbing. An acrylic sheet is mounted over certain height on which the PCB and controller is placed. The motor controller sends signals for PWM and servo motor angles for driving the car.
Software Design
The motor gets signal from motor controller. The motor controller sends PWM signals for speed control of DC motor. Also it implements PID for uniform performance on ramp. For direction control, the servo has 2 levels of turning: soft and moderate. Depending on Driver Controller signal, the Motor Controller sends control signals to the motor. In case of communication loss from Master Controller, the Motor Controller displays CAN MIA condition on LED.
Technical Challenges
Finding PID constants Problem Summary: For uniform speed over ramp, we implemented PID. However, calculating the constants for PID proved to be challenging as there were lots of oscillations of set speed. Problem Resolution: Set discrete speed levels to prevent oscillations. Determined PID constants through trials and errors.
Determining RPM accurately Problem Summary: No support available for motor encoder reed sensor. Problem Resolution: After checking values on DSO, we noticed irregular output. We resolved it by using pull up resistor of 1k ohms.
Motor stop functioning before demo Problem Summary: The motor stopped functioning even with correct power and signal input. Problem Resolution: Had previously dismantled the chassis for encoder study. Re assembled the chassis to function correctly at demo.
Geographical Controller
<Picture and link to Gitlab>
Hardware Design
Software Design
<List the code modules that are being called periodically.>
Technical Challenges
<Bullet or Headings of a module>
Unreliable GPS lock
<Problem Summary> <Problem Resolution>
Communication Bridge Controller & LCD
<Picture and link to Gitlab>
Hardware Design
Software Design
<List the code modules that are being called periodically.>
Technical Challenges
<Bullet or Headings of a module>
Insane Bug
<Problem Summary> <Problem Resolution>
Master Module
<Picture and link to Gitlab>
Hardware Design
Software Design
<List the code modules that are being called periodically.>
Technical Challenges
<Bullet or Headings of a module>
Improper Unit Testing
<Problem Summary> <Problem Resolution>
Mobile Application
<Picture and link to Gitlab>
Hardware Design
Software Design
<List the code modules that are being called periodically.>
Technical Challenges
<Bullet or Headings of a module>
Wifi Link Reliability
<Problem Summary> <Problem Resolution>
Conclusion
<Organized summary of the project>
<What did you learn?>
Project Video
Project Source Code
Advise for Future Students
<Bullet points and discussion>