F16: The-Nine

From Embedded Systems Learning Academy
Revision as of 21:32, 6 December 2016 by Proj user8 (talk | contribs) (Propulsion Systems and Speed Tracking (Motor Controller))

Jump to: navigation, search

Contents

Project Title

The-Nine: Self Driving Car

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.

Show a simple table or figures that show your scheduled as planned before you started working on the project. Then in another table column, write down the actual schedule so that readers can see the planned vs. actual goals. The point of the schedule is for readers to assess how to pace themselves if they are doing a similar project.

Project Schedule Overview

Task # Start Date End Date Team Task Description Bluetooth Communications Obstacle Detection Systems Localization and Positioning (GPS) Propulsion Systems and Speed Tracking Master Control Systems Status Actual End Date
1 9/14/2016 9/20/2016 Assigned tasks to one another and strategized approach. Read Previous Reports Completed 9/20/2016
2 9/21/2016 9/27/2016 Set up Version Control System and Basic Project Documentation
Research Project Components
Research of web application frameworks for mobile. Research of sensor systems and sensor types needed. * Researched and decided upon the GPS module and Compass module.
* Ordered GPS module and compass module.
Work with team leader to devise version control strategy. Research different RC cars for the project. Completed 9/27/2016
3 9/28/2016 10/04/2016 Discuss controllers' responsibilities and communication Started development of DBC and finalized hardware choices. Completed 10/04/2016
4 10/05/2016 10/19/2016 Order Project Components
Individual Prototyping and Module Design
Research Bluetooth device HC-06 for the RC car. Interface IMU and ultrasonic sensors to board. * Parse GPS data and format the data to be transmitted
* Test code to get compass reading information
Research what encoders and/or tachometers to use, help the team leader choose an RC car to purchase, and decide what motor driver to use Implement Decision Tree for obstacle detection/autonomous car control. Decide on Message ID system over the CANBUS/Types of Data being Transmitted Completed 10/19/2016
5 10/20/2016 10/27/2016 Status Update: Demoing first round of Prototyping to the group Develop Bluetooth serial receiver library & web application. Develop IMU and ultrasonic sensor libraries. Interface GPS module and compass module to SJOne board. Make the motors spin and the servo control the steering. Receive can signals and control the motor and steering servo. * Implement Decision Tree for obstacle detection/autonomous car control. Decide on Message ID system over the CANBUS/Types of Data being Transmitted
* Program obstacle detection/autonomous car control algorithms
Completed 10/27/2016
6 10/28/2016 11/18/2016 Adding a level of complexity to designs: Interfacing Motor, Sensor, GPS, and Bluetooth Modules with the Master Controller over CAN bus Integrate web application, SJOne board and DBC messages Use implemented DBC to transmit sensor data over CAN. * Calibrating the compass module.Integration of GPS and compass module. Interfacing of GPS and compass module to Android.
* Integration with Master through CAN bus.
* Validate and calibrate the motor controller and steering code. Receive the Tachometer and magnetic polarity strip.
* Merge motor_test/tach with master.
* Reorganize code for readability.
* Finalize and test speed feedback system.
* Program obstacle detection/autonomous car control algorithms
* Test RC car obstacle detection and autonomous control interfaced with Sensor Module over CAN
* Interface GPS module with Master Controller
* Interface Android/Bluetooth module with Master Controller.Test Waypoint System
Completed 11/18/2016
7 11/19/2016 11/25/2016 Integration Testing between Modules, System Validation Fine-tuning of web application Debug sensor library and work on integration Testing and calibrating with other modules. Test with the rest of the group
* Fine tune nominal speed. Add LCD to display debug information.
* Interface Android/Bluetooth module with Master Controller.Test Waypoint System
* Debug any issues with Master controller and other modules
Completed 11/28/2016
8 11/26/2016 12/02/2016 Overall System Optimization Fine-tuning of sensor readings Testing and calibrating with other modules. * Replace motor driver with higher amperage driver.
* Adjust steering offset to reduce error.
* Debug any issues with Master controller and other modules
* Final debug/testing of RC CAR
Completed 12/04/2016
9 12/03/2016 12/09/2016 Finalization, Preparing for Demonstration In Progress

Team Members & Responsibilities

Application & Control Interface

  • Khalil Estell

Bluetooth Communications

  • Khalil Estell

Obstacle Detection Systems

  • Charles MacDonald
  • John Strube

Localization and Positioning (GPS)

  • Sara Sepasian

Propulsion Systems and Speed Tracking

  • Derek Tran
  • Matthew Boyd

Master Control Systems

  • Steven Hwu
  • Adam Iglesias

Parts List & Cost

Give a simple list of the cost of your project broken down by components. Do not write long stories here.

Item # Part Description Vendor QTY Cost
1 RC Car 1
2 SJSUOne Board Preet Kang 5 $400.00
3 HC-06 Bluetooth Module Amazon 1 $8.99
4 Magnetic Tachometer Digikey 1 $8.53
5 Radial Magnet cube magnets Digikey 10 $8.80

Bluetooth Communications (Communication Bridge)

Team Members: Khalil Estell

Schedule

Task # Start Date End Date Task Description Status Actual End Date
1 9/14/2016 9/20/2016 Assigned tasks to one another and strategize approach. Completed 9/20/2016
2 9/21/2016 9/27/2016 Research of web application frameworks for mobile. Completed 9/27/16
3 9/28/2016 10/04/2016 Started development of DBC and finalized hardware choices. Completed 10/04/2016
4 10/05/2016 10/19/2016 Research Bluetooth device HC-06 for the RC car. Completed 10/19/2016
5 10/20/2016 10/27/2016 Develop Bluetooth serial receiver library & web application. In Progress
6 10/20/2016 11/18/2016 Integrate web application, SJOne board and DBC messages In Progress
7 11/19/2016 12/02/2016 Fine-tuning of web application Not started
8 12/03/2016 12/09/2016 Final integration Not started

Design & Implementation

The design section can go over your hardware and software design. Organize this section using sub-sections that go over your design and implementation.

Hardware Design

Discuss your hardware design here. Show detailed schematics, and the interface here.

Hardware Interface

In this section, you can describe how your hardware communicates, such as which BUSes used. You can discuss your driver implementation here, such that the Software Design section is isolated to talk about high level workings rather than inner working of your project.

Software Design

Show your software design. For example, if you are designing an MP3 Player, show the tasks that you are using, and what they are doing at a high level. Do not show the details of the code. For example, do not show exact code, but you may show psuedocode and fragments of code. Keep in mind that you are showing DESIGN of your software, not the inner workings of it.

Implementation

This section includes implementation, but again, not the details, just the high level. For example, you can list the steps it takes to communicate over a sensor, or the steps needed to write a page of memory onto SPI Flash. You can include sub-sections for each of your component implementation.

Testing & Technical Challenges

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:

My Issue #1

Discuss the issue and resolution.

Obstacle Detection Systems (Sensor Controller)

Team Members: John Strube, Charles MacDonald


Schedule


Task # Start Date End Date Task Description Status Actual End Date
1 9/14/2016 9/20/2016 Assigned tasks to one another and strategized approach. Complete 9/20/2016
2 9/21/2016 9/27/2016 Research of sensor systems and sensor types needed. Complete 9/27/2016
3 9/28/2016 10/04/2016 Started development of DBC and finalized hardware choices. Complete 10/04/2016
4 10/05/2016 10/19/2016 Interface IMU and ultrasonic sensors to board. Complete 10/19/2016
5 10/20/2016 10/27/2016 Develop IMU and ultrasonic sensor libraries. In progress
6 10/20/2016 11/18/2016 Use implemented DBC to transmit sensor data over CAN. In progress
7 11/19/2016 11/25/2016 Debug sensor library and work on integration Not started
8 11/26/2016 12/02/2016 Fine-tuning of sensor readings Not started
9 12/03/2016 12/09/2016 Final integration Not started

Design & Implementation

The obstacle detection system covers two areas: detecting obstacles and determining vehicle orientation.

Obstacle detection is performed using ultrasonic sensors placed around the perimeter of the vehicle, concentrated at the front (three sensors) and less so in the back (one sensor) as the vehicle is primarily driven in the forward direction.

Vehicle orientation is accomplished using an inertial measurement unit, which is used to determine the speed and bearing of the vehicle.

Hardware Design

Ultrasonic sensors

Ultrasonic sensors are controlled using GPIO. The sensor consists of a trigger-input signal which causes it to emit sound at a specific frequency, and a echo-output signal which is pulsed when a reflection of the same frequency is received. The echo response is detected by the edge-sensitive GPIO interrupt, and the trigger is produced by a software-generated pulse.

Inertial measurement unit (IMU)

The IMU is a system that contains an accelerometer, magnetometer, and gyroscope. The IMU interfaces to the SJOne board using I2C.

Hardware Interface

In this section, you can describe how your hardware communicates, such as which BUSes used. You can discuss your driver implementation here, such that the Software Design section is isolated to talk about high level workings rather than inner working of your project.

Software Design

Show your software design. For example, if you are designing an MP3 Player, show the tasks that you are using, and what they are doing at a high level. Do not show the details of the code. For example, do not show exact code, but you may show psuedocode and fragments of code. Keep in mind that you are showing DESIGN of your software, not the inner workings of it.

Implementation

This section includes implementation, but again, not the details, just the high level. For example, you can list the steps it takes to communicate over a sensor, or the steps needed to write a page of memory onto SPI Flash. You can include sub-sections for each of your component implementation.

Testing & Technical Challenges

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:

Ultrasonic sensors

RS-232 testing

The MaxBotix LV-MaxSonar-EZ1 (P/N# MB1010) has several interfaces used to indicate the distance to an obstacle that it has sensed. One of the simplest is a RS-232 output which is enabled by grounding the BW pin or leaving it unconnected (floating). The output is logic-level compatible with RS-232 (where a logic '1' is 0V and a logic '0' is Vcc) but not voltage-level compatible. MaxBotix designed the RS-232 output like this to allow direct connection to a RS-232 compliant serial port, but it means the logic levels are inverted with respect to the LPC1758 which has no on-chip provisions for inverting the logic level. Therefore an inverter (such as the 74LVC1G04) is required between the TX output of the MB1010 and the LPC1758's UART RX input for proper operation.

My Issue #1

Discuss the issue and resolution.

Localization and Positioning (GPS)

Team Members: Sara Sepasian

Schedule

Task # Start Date End Date Task Description Status Actual End Date
1 9/16/2016 9/22/2016 Researched and decided upon the GPS module and Compass module. Completed 9/22/2016
2 9/23/2016 9/30/2016 Ordered GPS module and compass module. Completed 9/30/16
3 10/01/2016 10/14/2016 Parse GPS data and format the data to be transmitted
Test code to get compass reading information
In Progress
3 10/15/2016 10/25/2016 Interface GPS module and compass module to SJOne board. In Progress
4 10/26/2016 10/30/2016 Calibrating the compass module.Integration of GPS and compass module. Interfacing of GPS and compass module to Android. Not started
5 11/01/2016 11/13/2016 Integration with Master through CAN bus. Not started
6 11/15/2016 12/10/2016 Testing and calibrating with other modules. Not started

Design & Implementation

The design section can go over your hardware and software design. Organize this section using sub-sections that go over your design and implementation.

Hardware Design

Discuss your hardware design here. Show detailed schematics, and the interface here.

Hardware Interface

In this section, you can describe how your hardware communicates, such as which BUSes used. You can discuss your driver implementation here, such that the Software Design section is isolated to talk about high level workings rather than inner working of your project.

Software Design

Show your software design. For example, if you are designing an MP3 Player, show the tasks that you are using, and what they are doing at a high level. Do not show the details of the code. For example, do not show exact code, but you may show psuedocode and fragments of code. Keep in mind that you are showing DESIGN of your software, not the inner workings of it.

Implementation

This section includes implementation, but again, not the details, just the high level. For example, you can list the steps it takes to communicate over a sensor, or the steps needed to write a page of memory onto SPI Flash. You can include sub-sections for each of your component implementation.

Testing & Technical Challenges

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:

My Issue #1

Discuss the issue and resolution.

Propulsion Systems and Speed Tracking (Motor Controller)

Team Members: Matthew Boyd, Derek Tran

Schedule

Task # Start Date End Date Task Description Status Actual End Date
1 9/14/2016 9/20/2016 Assigned tasks to one another and strategized approach. Completed 9/20/2016
1 9/21/2016 9/27/2016 Work with team leader to devise version control strategy. Completed 9/27/2016
2 9/28/2016 10/04/2016 Started development of DBC and finalized hardware choices. Completed 10/04/2016
3 10/05/2016 10/19/2016 Research what encoders and/or tachometers to use, help the team leader choose an RC car to purchase, and decide what motor driver to use Completed 10/22/2016
4 10/23/2016 10/27/2016 Make the motors spin and the servo control the steering. Receive can signals and control the motor and steering servo. Completed 10/25/2016
5 10/26/2016 11/04/2016 Validate and calibrate the motor controller and steering code. Receive the Tachometer and magnetic polarity strip. Completed 11/05/16
5 11/06/2016 11/11/2016 * Merge motor_test/tach with master.
* Reorganize code for readability.
* Finalize and test speed feedback system.
Completed 11/11/2016
5 11/12/2016 11/18/2016 validate the wheel speed control system and calibrate. Completed 11/18/2016
6 11/19/2016 11/25/2016 Test with the rest of the group
* Fine tune nominal speed. Add LCD to display debug information.
Completed 11/28/2016
7 11/29/2016 12/02/2016 * Replace motor driver with higher amperage driver.
* Adjust steering offset to reduce error.
Completed 12/04/2016
8 12/06/2016 12/09/2016 Test with the rest of the group, and fix any minor issues that come up.
* Finalize code and merge into master.
In progress

Design & Implementation

The design section can go over your hardware and software design. Organize this section using sub-sections that go over your design and implementation.

Hardware Design

Discuss your hardware design here. Show detailed schematics, and the interface here.

Hardware Interface

In this section, you can describe how your hardware communicates, such as which BUSes used. You can discuss your driver implementation here, such that the Software Design section is isolated to talk about high level workings rather than inner working of your project.

Software Design

Show your software design. For example, if you are designing an MP3 Player, show the tasks that you are using, and what they are doing at a high level. Do not show the details of the code. For example, do not show exact code, but you may show psuedocode and fragments of code. Keep in mind that you are showing DESIGN of your software, not the inner workings of it.

Implementation

This section includes implementation, but again, not the details, just the high level. For example, you can list the steps it takes to communicate over a sensor, or the steps needed to write a page of memory onto SPI Flash. You can include sub-sections for each of your component implementation.

Testing & Technical Challenges

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:

My Issue #1

Discuss the issue and resolution.

Master Control Systems

Team Members: Steven Hwu, Adam Iglesias

Schedule

Task # Start Date End Date Task Description Status Actual End Date
1 9/14/2016 9/20/2016 Assigned tasks to one another and strategized approach. Complete 9/20/2016
2 9/21/2016 9/27/2016 Research different RC cars for the project. Complete 10/15/2016
3 10/16/2016 10/23/2016 Implement Decision Tree for obstacle detection/autonomous car control. Decide on Message ID system over the CANBUS/Types of Data being Transmitted Complete 10/23/2016
3 10/24/2016 10/29/2016 Program obstacle detection/autonomous car control algorithms In Progress
4 10/30/2016 11/06/2016 Test RC car obstacle detection and autonomous control interfaced with Sensor Module over CAN Not started
5 11/07/2016 11/13/2016 Interface GPS module with Master Controller Not started
6 11/14/2016 11/20/2016 Interface Android/Bluetooth module with Master Controller.Test Waypoint System Not started
7 11/21/2016 11/27/2016 Debug any issues with Master controller and other modules Not started
8 11/28/2016 12/12/2016 Final debug/testing of RC CAR Not started


Design & Implementation

The design section can go over your hardware and software design. Organize this section using sub-sections that go over your design and implementation.

Hardware Design

Discuss your hardware design here. Show detailed schematics, and the interface here.

Hardware Interface

In this section, you can describe how your hardware communicates, such as which BUSes used. You can discuss your driver implementation here, such that the Software Design section is isolated to talk about high level workings rather than inner working of your project.

Software Design

Show your software design. For example, if you are designing an MP3 Player, show the tasks that you are using, and what they are doing at a high level. Do not show the details of the code. For example, do not show exact code, but you may show psuedocode and fragments of code. Keep in mind that you are showing DESIGN of your software, not the inner workings of it.

Implementation

This section includes implementation, but again, not the details, just the high level. For example, you can list the steps it takes to communicate over a sensor, or the steps needed to write a page of memory onto SPI Flash. You can include sub-sections for each of your component implementation.

Testing & Technical Challenges

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:

My Issue #1

Discuss the issue and resolution.

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

GitLab

References

Acknowledgement

Any acknowledgement that you may wish to provide can be included here.

References Used

List any references used in project.

Appendix

You can list the references you used.