Difference between revisions of "F15: Minion"

From Embedded Systems Learning Academy
Jump to: navigation, search
(Testing)
(Accuracy of GPS Module)
Line 827: Line 827:
 
=== Accuracy of GPS Module ===
 
=== Accuracy of GPS Module ===
  
 +
Accuracy of GPS module was tested by recording coordinates received by module and plotting on Google maps[https://www.google.com/maps/d/u/0/embed?mid=zIDeCYKjmwEU.k1EGAZhJH7ko GPS Module Coordinates on Google Maps]. GPS module was very much accurate we did not needed to calibrate it. It is observed that more number of satellite locks with module, greater the accuracy of coordinate readings.
  
 
[[File:CMPE243_F15_Minion_GPS_Module_Coordinates_on_Google_Maps.jpeg|200px|thumb|right]]<br>
 
[[File:CMPE243_F15_Minion_GPS_Module_Coordinates_on_Google_Maps.jpeg|200px|thumb|right]]<br>
[https://www.google.com/maps/d/u/0/embed?mid=zIDeCYKjmwEU.k1EGAZhJH7ko GPS Module Coordinates on Google Maps]
 
  
 
==Technical Challenges==
 
==Technical Challenges==

Revision as of 19:10, 17 November 2015

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

Communication Bridge & Android Controller:-

  • Akshay Kanchar
  • Asmita Deshpande

Geographical Controller:-

Master Controller:-

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.

                                      CmpE243 F15 T2 Car.jpg

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.

                                     CmpE243 F15 T2 PWM DutyCycle.jpg

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.

Accuracy of GPS Module

Accuracy of GPS module was tested by recording coordinates received by module and plotting on Google mapsGPS Module Coordinates on Google Maps. GPS module was very much accurate we did not needed to calibrate it. It is observed that more number of satellite locks with module, greater the accuracy of coordinate readings.

CMPE243 F15 Minion GPS Module Coordinates on Google Maps.jpeg

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.