Difference between revisions of "F15: Minion"
(→Testing & Technical Challenges) |
(→Testing) |
||
Line 827: | Line 827: | ||
Include sub-sections that list out a problem and solution, such as: | Include sub-sections that list out a problem and solution, such as: | ||
− | [[File: | + | [[File:CMPE243_F15_Minion_GPS_Module_Coordinates_on_Google_Maps.jpeg]] |
[https://www.google.com/maps/d/u/0/embed?mid=zIDeCYKjmwEU.k1EGAZhJH7ko GPS Module Coordinates on Google Maps] | [https://www.google.com/maps/d/u/0/embed?mid=zIDeCYKjmwEU.k1EGAZhJH7ko GPS Module Coordinates on Google Maps] | ||
Revision as of 20:13, 13 November 2015
Contents
- 1 Grading Criteria
- 2 Minion
- 3 Abstract
- 4 Objectives & Introduction
- 5 Schedule
- 6 Parts List & Cost
- 7 Design & Implementation
- 8 Testing
- 9 Technical Challenges
- 10 Conclusion
- 11 References
Grading Criteria
- How well is Software & Hardware Design described?
- How well can this report be used to reproduce this project?
- Code Quality
- Overall Report Quality:
- Software Block Diagrams
- Hardware Block Diagrams
- Schematic Quality
- Quality of technical challenges and solutions adopted.
Minion
Abstract
This section should be a couple lines to describe what your project does.
Objectives & Introduction
Show list of your objectives. This section includes the high level details of your project. You can write about the various sensors or peripherals you used to get your project completed.
Team Members & Responsibilities
Sensor Controller:-
Motor & I/0 Controller:-
- Sudheer Doddapaneni
- Keerthanaa Alagudurai
Communication Bridge & Android Controller:-
- Akshay Kanchar
- Asmita Deshpande
Geographical Controller:-
- Amit Pachore
- Sindhuja Gopalakrishnan Elango
Master Controller:-
- Gaurao Chaudhari
- Akshay Dabholkar
- Asmita Deshpande
Tester:-
Treasurer:-
- Keerthanaa Alagudurai
Hardware:-
- Sudheer Doddapaneni
Release:-
- Akshay Kanchar
Schedule
Common Schedule
Sl. No | Start Date | End Date | Task | Status | Actual Completion Date |
---|---|---|---|---|---|
1 | 9/22/2015 | 9/28/2015 | RC Car and important component buying | ||
2 | 9/29/2015 | 10/6/2015 | 1) Algorithm and architecture 2) Setup of car and decision on CAN Id's |
||
3 | 10/7/2015 | 10/13/2015 | 1) Coding and final set-up of car 2) Successful communication of CAN bus. 3) Car in running position. |
||
4 | 10/14/2015 | 10/20/2015 | Sensor Data gathering and movement according to sensors. | ||
5 | 10/21/2015 | 10/27/2015 | 1) LCD Display working and finalizing the data to be displayed on LCD module. 2) GEO data gathering and controlling of car using Android module. |
||
6 | 10/28/2015 | 11/3/2015 | Integration of all the modules into one. | ||
7 | 11/4/2015 | 11/10/2015 | Inclusion of new features in the car. | ||
8 | 11/11/2015 | 11/17/2015 | Testing depending upon the newly added features. | ||
9 | 11/18/2015 | 11/24/2015 | Testing of Car and testing the self driving capability | ||
10 | 11/25/2015 | 12/1/2015 | Testing of Car |
Sensor Controller Schedule
Sl. No | Start Date | End Date | Task | Status | Actual Completion Date |
---|---|---|---|---|---|
1 | 9/20/2015 | 10/5/2015 | Study available sensors and place order | Completed | 10/4/2015 |
2 | 10/6/2015 | 10/13/2015 | Collaborate with the other sub teams to finish the CAN bus communication | Completed | 10/13/2015 |
3 | 10/13/2015 | 10/20/2015 | Develop simple test code for the sensors | Completed | 10/18/2015 |
4 | 10/21/2015 | 10/30/2015 | Interface all sensors and develop code for reading all sensors and implement filter for the same | ||
5 | 10/30/2015 | 11/2/2015 | Positioning of sensors and identifying dead band if any | ||
6 | 11/2/2015 | 11/5/2015 | Work on light and battery sensor (optional) | ||
7 | 11/06/2015 | 12/17/2015 | Final testing and debugging |
Motor & I/0 Controller Schedule
Sl. No | Start Date | End Date | Task | Status | Actual Completion Date |
---|---|---|---|---|---|
1 | 9/21/2015 | 9/25/2015 | Order LCD Display | Completed | 9/25/2015 |
2 | 9/28/2015 | 10/3/2015 | Going through the motor concepts and PWM | Completed | 10/2/2015 |
3 | 10/4/2015 | 10/9/2015 | Intreface the DC and SERVO Motors with SJONE board | Completed | 10/8/2015 |
4 | 10/10/2015 | 10/13/2015 | Establishing basic CAN communication with other modules | Completed | 10/13/2015 |
5 | 10/11/2015 | 10/16/2015 | Getting the car to run with the PWM signals from Motor controller | Completed | 10/15/2015 |
6 | 10/17/2015 | 10/23/2015 | Research on Speed cotrol method and sensor for the same interface LCD display with LPC1758 via UART | ||
7 | 10/23/2015 | 11/4/2015 | Establishing reliable CAN communication for IO & Motor with others | ||
8 | 11/5/2015 | 11/12/2015 | Integrate Speed sensor and get feedback. Start working on start,stop buttons and headlight | ||
9 | 11/13/2015 | 11/20/2015 | Testing substantial self driving capability of the car | ||
10 | 11/21/2015 | 11/30/2015 | Complete integration, Debugging and Fine tuning | ||
11 | 12/1/2015 | 12/5/2015 | Final Validation |
Geographical Controller Schedule
Sl. No | Start Date | End Date | Task | Status | Actual Completion Date |
---|---|---|---|---|---|
1 | 09/27/2015 | 10/07/2015 | Ordering Parts and understanding each module | Completed | 10/11/2015 |
2 | 10/07/2015 | 10/13/2015 | CAN Communication with other boards and understanding each module | Completed | 10/13/2015 |
3 | 10/07/2015 | 10/30/2015 | Algorithm for distance and heading calculation and coding | Completed | 10/30/2015 |
4 | 10/14/2015 | 10/20/2015 | Interfacing of compass(I2C) and GPS (UART) with SJONE board | Completed | 10/20/2015 |
5 | 10/20/2015 | 10/30/2015 | Compass,GPS Calibration and Coding | ||
5 | 10/25/2015 | 11/15/2015 | Individual unit testing | ||
6 | 10/30/2015 | 11/30/2015 | Interfacing with Android, Master and IO controllers | ||
7 | 10/30/2015 | 11/30/2015 | Integration Testing,On Car Calibration |
Master Controller Schedule
Sl. No | Start Date | End Date | Task | Status | Actual Completion Date |
---|---|---|---|---|---|
1 | 09/30/2015 | 10/6/2015 | a) Design of Algorithm and Architecture for Master Module. b) Setup of CAN communication between two controllers. |
||
2 | 10/7/2015 | 10/13/2015 | a) Development of CAN message system for Android, Sensor and GPS, I/O reception. b) Decide about periodic function frequencies that’ll be handling different modules. |
||
3 | 10/14/2015 | 10/20/2015 | a) Development of driving,stopping and obstruction avoidance algorithm for motor. b) Implementation of LED Display to display number of messages on CAN bus. c) Implementation of turning algorithm as per the data received from the Geo Controller. |
||
4 | 10/21/2015 | 10/27/2015 | a) Designing of Kill switch with the help of Motor, I/O and Android. b) Design the system to restore the last known configuration. c) Implementation to reset modules if the CAN bus reaches BUS off state. |
||
5 | 10/28/2015 | 11/3/2015 | a) Design of Head Light functionality with the help of Sensor module. b) Implementation of log files saving to SD card. |
||
6 | 11/4/2015 | 11/10/2015 | a) Integration of all the modules with Master module and check it after combining everything. b) Probable implementation of additional features. |
||
7 | 11/11/2015 | 11/17/2015 | a) Refine the work done earlier.Change areas that need a change. b) Test the Master module while all the modules are integrated together and list down modifications and additions to be done. |
||
8 | 11/18/2015 | 11/24/2015 | Testing of system and specially making sure that last week’s shortcomings are taken care of. | ||
9 | 11/25/2015 | 12/1/2015 | a) Final testing of individual modules. b) Testing the self-driving capability of the car. |
||
10 | 12/2/2015 | 12/8/2015 | Final working on the shortcomings in the previous week. | ||
11 | 12/9/2015 | 12/15/2015 | Final Testing of Car. |
Communication Bridge & Android Controller Schedule
Sl. No | Start Date | End Date | Task | Status | Actual Completion Date |
---|---|---|---|---|---|
1 | 9/29/2015 | 10/06/2015 | Ordering bluetooth module and setting up android dev enviornment | Completed | 10/06/2015 |
2 | 10/06/2015 | 10/13/2015 | Implementing basic UI with Start and Stop buttons and testing bluetooth module | Completed | 10/12/2015 |
3 | 10/13/2015 | 10/27/2015 | Integrating android app with bluetooth module and SJ One board | Ongoing | |
4 | 10/27/2015 | 11/03/2015 | Establishing communication with other modules using CAN and testing Prototype | ||
5 | 11/03/2015 | 11/17/2015 | Enhancing UI features with Google Maps and display of sensor data from different modules | ||
6 | 11/17/2015 | 12/01/2015 | Setting up Communication with GPS and Master and prototype testing | ||
7 | 12/01/2015 | 12/08/2015 | Final app testing |
Parts List & Cost
Give a simple list of the cost of your project broken down by components. Do not write long stories here.
Design & Implementation
CAN Communication Table[Empty spaces will be filled as the project progresses]
Sr. No | Message ID | Message function | Message Data | From | To |
---|---|---|---|---|---|
High | |||||
1 | 0x220 | Motor Control (Direction Control- Straight, Left or Right Level of Direction-Level 0, Level1, Level 2 Motion Control- Stop, Forward or Reverse Speed Control - Stop, Level1, Level2 or Level3) |
Byte[0] -> Direction Control Byte[1] -> Level of Direction Byte[2] -> Motion Control Byte[3] -> Speed Control |
Master | Motor |
2 | 0x010 | Kill Message (User request to stop the car under emergency) |
Control Frame. No data bytes. | Android | Master |
3 | 0x020 | Kill Message (Master request to stop all controllers and reboot under emergency) |
Control Frame. No data bytes. | Master | All |
4 | 0x030 | Stop (User request to stop the car) |
Control Frame. No data bytes. | Android | Master |
5 | 0x040 | Stop (Master stops the motor) |
Control Frame. No data bytes. | Master | Motor |
6 | 0x210 | Sensor Data (Distance in cms) |
Byte[0] -> Forward Distance Byte[1] -> Left Distance Byte[2] -> Right Distance Byte[3] -> Back Distance |
Sensor | Master/Motor-IO |
7 | 0x230 | Total Distance to Travel | Byte[0-1] | Android | Geo |
8 | 0x240 | Send Checkpoints | Byte[0-3] -> Latitude Byte[4-7] -> Longitude |
Android | Geo |
9 | 0x250 | Distance (Distance in foot) |
Byte[0-1] -> Final Distance remaining Byte[2-3] -> Checkpoint distance |
Geo | Master |
10 | 0x260 | Turn Angle and Direction | Byte[0] -> Turn Angle Byte[1] -> Direction (1-Left,2-Right) |
Geo | Master |
11 | 0x270 | Run and Pause Command | Control Frame. No data bytes | Android | Master |
12 | 0x280 | Heartbeat Message | Control Frame. No data bytes | Motor | Master |
13 | 0x281 | Heartbeat Message | Control Frame. No data bytes | Geo | Master |
14 | 0x282 | Heartbeat Message | Control Frame. No data bytes | Android | Master |
15 | 0x283 | Heartbeat Message | Control Frame. No data bytes | Sensor | Master |
Medium | |||||
16 | 0x410 | Destination reached. (Stops the car when destination is reached) |
Control Frame. No data bytes | Master | All |
17 | 0x420 | Battery Status | Byte[0-1] | Sensor | Master/IO |
Low | |||||
18 | 0x610 | Boot Request | Control Frame. No data bytes | Master | All |
19 | 0x620 | Boot Reply (Date and time will be sent to Master) |
Byte[0-4] | Motor-IO | Master |
20 | 0x621 | Boot Reply (Date and time will be sent to Master) |
Byte[0-4] | Sensor | Master |
21 | 0x622 | Boot Reply (Date and time will be sent to Master) |
Byte[0-4] | Geo | Master |
22 | 0x630 | Boot Status (Enable the map and run button in Android) |
Control Frame. No data bytes | Master | Motor-IO/Android |
23 | 0x640 | System Start | Control Frame. No data bytes | Android | All |
24 | 0x650 | Source Co-ordinates | Byte[0-3] -> Source Latitude Byte[4-7] -> Source Longitude |
Geo | Android |
Car Framework and Components
The RC car, Traxxas Stampede, in its raw form consists of a Titan 12T 550 Brushed DC motor, a Servo motor, an XL-5 ESC (Electronic Speed Control) unit, battery and a pre-programmed wireless receiver and controller. The Battery used in the RC car is an 8.4 V, 3000 NiMH from Traxxas. The wireless receiver gets commands from the remote control and drives the motors accordingly, but the DC motor can be controlled only through ESC.
The ESC (Electronic Speed Control) unit is an electronic module, which receives PWM signals from the controller and varies speed and direction of the DC motor and also acts as dynamic brakes. ESCs are often used in RC models. The ESC has the capability to provide dynamic braking depending on the mode in which it is being operated.
Motor and I/O Controller
Hardware Design
Motor Module
The motor module comprises of a servo motor for the direction control and a DC motor for speed control. The servo motor helps the car in turning left and right where as the DC motor on the other hand helps the car move forward and backward. The motor used in the project is a brushed motor. Conventionally, brushless motors are faster and more efficient than brushed motors. But, the reason for selecting a brushed motor over a brushless motor is that we employ a dedicated battery for the motor such that we do not have any issues with power and efficiency. Moreover, we need not operate the car at high speeds.
The initial task in the motor module is to find the operating ranges of the motor so that we get to know the output signal range and frequency from the SJONE board which would be replacing the pre-programmed controller. The simplest way to find the operating ranges of the motor is to tap and analyze PWM signal that is being supplied to the motor over an oscilloscope. The results as shown in the below pictures indicate that the operating duty cycle of both the motors lie between 10% to 20% and the frequencies at which the motors operate is 100Hz.
Software Design
Master Controller
Hardware Design
Software Design
Sensor Controller
Hardware Design
Software Design
Geographical Controller
Hardware Design
Software Design
Android Communication Bridge Controller
Hardware Design
Software Design
Android Application
Software Design
Testing
Describe the challenges of your project. What advise would you give yourself or someone else if your project can be started from scratch again? Make a smooth transition to testing section and described what it took to test your project.
Include sub-sections that list out a problem and solution, such as:
GPS Module Coordinates on Google Maps
Technical Challenges
My Issue #1
Discuss the issue and resolution.
Configuring GPS Module
We faced difficulty in configuring GPS module to sending only $GGA messages, 10Hz Position update rate and updating baud rate to 38400. Initially we were trying to configure GPS module via writing program for SJ One board and we were unable to do it. Later on we completed configuring by connecting GPS module directly to serial port and using GPS Viewer software. Through it we can directly configure GPS module without worrying about binary messages and checksum calculation.
Conclusion
Conclude your project here. You can recap your testing and problems. You should address the "so what" part here to indicate what you ultimately learnt from this project. How has this project increased your knowledge?
Project Video
Upload a video of your project and post the link here.
Project Source Code
References
Acknowledgement
Any acknowledgement that you may wish to provide can be included here.
References Used
Appendix
You can list the references you used.