Difference between revisions of "S19: Run D.B.C"

From Embedded Systems Learning Academy
Jump to: navigation, search
(SCHEDULE)
(SCHEDULE)
Line 331: Line 331:
 
! scope="row"| 3/24/19
 
! scope="row"| 3/24/19
 
|  
 
|  
 +
* <span style="color:#008000">Successfully unit test a JAVA module with J-UNIT (JAVA unit test framework)</span>
 +
* <span style="color:#008000">Choose Android mobile phone/OS to load app onto</span>
 
* <span style="color:#EE82EE">Interface with with speed controller and servo controller</span> <br />  
 
* <span style="color:#EE82EE">Interface with with speed controller and servo controller</span> <br />  
 
* <span style="color:#FF8C00">Finalize high-level system block diagram and control scheme</span> <br />  
 
* <span style="color:#FF8C00">Finalize high-level system block diagram and control scheme</span> <br />  
Line 337: Line 339:
 
* <span style="color:#000000">Ordered PCB</span>
 
* <span style="color:#000000">Ordered PCB</span>
 
|
 
|
 +
*
 +
*
 
*
 
*
 
*
 
*
Line 342: Line 346:
 
*
 
*
 
|
 
|
 +
*
 +
*
 
*
 
*
 
*
 
*
Line 352: Line 358:
 
|  
 
|  
 
* <span style="color:#000000">'''All parts have been ordered'''</span>
 
* <span style="color:#000000">'''All parts have been ordered'''</span>
 +
* <span style="color:#008000">Create button to launch mobile application</span>
 +
* <span style="color:#008000">Integrate Google Maps into mobile application</span>
 
* <span style="color:#d33">LPC 1758 responds to feedback from bump sensor</span>
 
* <span style="color:#d33">LPC 1758 responds to feedback from bump sensor</span>
 
* <span style="color:#d33">LPC 1758 responds to feedback from Ultrasonic sensors (reports distance of objects in their detection radius)</span>
 
* <span style="color:#d33">LPC 1758 responds to feedback from Ultrasonic sensors (reports distance of objects in their detection radius)</span>
Line 359: Line 367:
 
* <span style="color:#EE82EE">Complete DBC CAN message format</span>
 
* <span style="color:#EE82EE">Complete DBC CAN message format</span>
 
|
 
|
 +
*
 +
*
 
*
 
*
 
*
 
*
Line 367: Line 377:
 
*
 
*
 
|
 
|
 +
*
 +
*
 
*
 
*
 
*
 
*
Line 379: Line 391:
 
! scope="row"| 4/7/19
 
! scope="row"| 4/7/19
 
|  
 
|  
 +
* <span style="color:#008000">Successfully get starting and destination coordinates </span>
 
* <span style="color:#d33">Complete sensor module code and push final revision to GitLab</span>
 
* <span style="color:#d33">Complete sensor module code and push final revision to GitLab</span>
 
* <span style="color:#FF8C00"> Master controller can send/receive CAN messages to/from all other controllers on CANbus</span>
 
* <span style="color:#FF8C00"> Master controller can send/receive CAN messages to/from all other controllers on CANbus</span>
Line 384: Line 397:
 
* <span style="color:#EE82EE">Angle wheels left/right/straight based on CAN feedback from master controller</span> <br />  
 
* <span style="color:#EE82EE">Angle wheels left/right/straight based on CAN feedback from master controller</span> <br />  
 
|
 
|
 +
*
 
*
 
*
 
*
 
*
Line 389: Line 403:
 
*
 
*
 
|
 
|
 +
*
 
*
 
*
 
*
 
*
Line 399: Line 414:
 
|  
 
|  
 
* <span style="color:#000000">'''All modules have been fully assembled'''</span>
 
* <span style="color:#000000">'''All modules have been fully assembled'''</span>
 +
* <span style="color:#008000">Successfully integrate checkpoints into mobile app </span>
 
* <span style="color:#FF8C00">Completed implementation of speed control algorithm</span>
 
* <span style="color:#FF8C00">Completed implementation of speed control algorithm</span>
 
* <span style="color:#36c">Transmit heading and bearing angle as CAN messages to master controller </span>
 
* <span style="color:#36c">Transmit heading and bearing angle as CAN messages to master controller </span>
 
* <span style="color:#EE82EE">Implement obstacle avoidance algorithm</span> <br />  
 
* <span style="color:#EE82EE">Implement obstacle avoidance algorithm</span> <br />  
 
|
 
|
 +
*
 
*
 
*
 
*
 
*
Line 408: Line 425:
 
*
 
*
 
|
 
|
 +
*
 
*
 
*
 
*
 
*
Line 418: Line 436:
 
|  
 
|  
 
* <span style="color:#000000"> Complete first vehicle test drive</span>
 
* <span style="color:#000000"> Complete first vehicle test drive</span>
 +
* <span style="color:#008000"> Send starting/destination coordinates to bridge controller </span>
 +
* <span style="color:#008000"> Send starting/destination coordinates as CAN messages from bridge controller to master controller</span>
 
* <span style="color:#EE82EE">Design a feed back mechanism to adjust speed of DC motor using RPM sensor values for vehicular movement on the slope</span> <br />  
 
* <span style="color:#EE82EE">Design a feed back mechanism to adjust speed of DC motor using RPM sensor values for vehicular movement on the slope</span> <br />  
 
|
 
|
 +
*
 +
*
 
*
 
*
 
*
 
*
 
|
 
|
 +
*
 +
*
 
*
 
*
 
*
 
*

Revision as of 23:40, 19 March 2019

caption

ABSTRACT

The RUN-D.B.C project, involves the design and construction of an autonomously navigating RC car. Development of the R.C car's subsystem modules will be divided amongst and performed by seven team members. Each team member will lead or significantly contribute to the development of at least one subsystem.

INTRODUCTION & OBJECTIVES

RC CAR OBJECTIVES

  • Successfully detect and avoid obstacles
  • Autonomously navigate to a fixed destination, from a fixed starting location; based on feedback from a GPS
  • Integrate communication between the RC car's master controller and an Android device, using Bluetooth
  • Integrate system hardware communication using a PCB


TEAM OBJECTIVES

  • Strive to learn as much as possible, in order to develop a professional product
  • Establish and enforce professional software design standards
  • Establish and enforce professional hardware design standards
  • Achieve 100% code coverage, during unit testing
  • Carefully document and track all bugs encountered and patched, during development
  • Clearly communicate the development of all modules of the RC car


CORE MODULES OF RC CAR

  • Android Mobile Application
  • Bridge Controller
  • Geographic Controller
  • Master Controller
  • Motor Controller
  • Sensor Controller
  • Hardware Integration PCB
  • Wiring Harness


PROJECT MANAGEMENT ADMINISTRATION ROLES

  • Team Lead
  • Finance Manager
  • Git Repository Manager
  • Wiki Report Manager
  • Gantt Chart Manager
  • Bill of Materials Manager
  • Project Presentation Manager


TEAM MEMBERS & RESPONSIBILITIES

Team Members

Administrative Roles

Technical Roles

  • Tristan French
  • Team Lead
  • Git Repository Manager
  • Finance Manager
  • Master Controller (Lead)
  • Hardware Integration PCB
  • Wiring Harness
  • Ryan Zelek
  • Testing and Integration (Lead)
  • Master Controller
  • Motor Controller
  • Samir Mohammed
  • Wiki Report Manager
  • Gantt Chart Manager
  • Bill of Materials Manager
  • Android Mobile Application & Bridge Controller (Lead)
  • Hardware Integration PCB
  • Wiring Harness
  • Vignesh Kumar Venkateshwar
  • Project Presentation Manager
  • Motor Controller (Lead)
  • Android Mobile Application & Bridge Controller
  • Bharath Vyas Balasubramanyam
  • Geographic Controller (Lead)
  • Motor Controller
  • Nuoya Xie
  • Sensor Controller (Lead)
  • Geographic Controller
  • Kelvin Cheong
  • Sensor Controller
  • Geographic Controller


SCHEDULE

TEAM MEETING DATES & DELIVERABLES

Week#

Date Assigned

Deliverables

Status

Date Completed

1 2/16/19
  • Share team contact information
  • Create Git Repository (Tristan)
  • Set up Slack
  • Invite Preet to Slack
  • Establish Code Guidelines and Standards
  • Complete
  • Complete
  • Complete
  • Complete
  • Complete
2 2/24/19
  • (1/2 team) Share research of past projects
  • Establish ownership of Administrative and Technical Project Modules
  • Establish weekly team meeting time
  • Establish Team Slack usage Guidelines and Standards
  • Received CAN Transceivers
  • Create a Gantt chart to track project progress (Samir)
  • Create Git directory structure (Tristan)
  • Create a Bill of Materials (Samir)
  • Select and order an RC car (Bharath)
  • Push a file to Git Repository
  • Conduct research of project modules (based on ownership/sub-team)
  • Invite Preet to Gitlab
  • Complete
  • Complete
  • Complete
  • Complete
  • Complete
  • In Progress
  • Complete
  • Complete
  • Complete
  • Complete
  • Complete
  • Complete
3 3/3/19
  • (2/2 team) Share research of past projects
  • Explore using Splitwise for managing project finances
  • Explore using Taiga.io for project management (Samir/Tristan)
  • Sub-teams share research and findings with each other and the team
  • Start planning what parts need to be ordered and update BoM
  • Email Preet regarding LCD screen for Bridge Controller
  • Interface with the HC05 Bluetooth module
  • Research frameworks for Android App development
  • Research GPS modules
  • Create a high-level system block diagram and control scheme
  • Develop a high-level plan interfacing with speed controller and servo controller
  • Select a PCB design tool (develop a sample board in KiCAD)
  • Test performance/specs of current Ultrasonic sensors and research others
  • Complete
  • Complete
  • Not Started
  • Complete
  • In Progress
  • In Progress
  • In Progress
  • In Progress
  • In Progress
  • In Progress
  • In Progress
  • In Progress
  • In Progress
4 3/10/19
  • Each team create a schedule for sub-system development and send to Samir
  • Set up Cygwin on Windows (and configure) Mac machines for auto-formatting
  • Finalize and purchase LCD screen for Bridge Controller
  • Learn to develop in Android Studio (watch tutorials and begin developing Android App)
  • Purchase Adafruit Ultimate GPS module
  • Selected KiCad as PCB design tool (develop sample PCB to help learn how to use software)
  • Purchase long-range distance sensors and select bump sensors
5 3/17/19
  • Establish Git Repository Structure
  • Completed high-level system block diagram
  • Completed PCB design requirements
  • Selected PCB manufacturer
6 3/24/19
  • Successfully unit test a JAVA module with J-UNIT (JAVA unit test framework)
  • Choose Android mobile phone/OS to load app onto
  • Interface with with speed controller and servo controller
  • Finalize high-level system block diagram and control scheme
  • Interface with GPS and compass modules
  • Record how servo and DC motors react to RC Transmitter and Receiver feedback
  • Ordered PCB
7 3/31/19
  • All parts have been ordered
  • Create button to launch mobile application
  • Integrate Google Maps into mobile application
  • LPC 1758 responds to feedback from bump sensor
  • LPC 1758 responds to feedback from Ultrasonic sensors (reports distance of objects in their detection radius)
  • Complete DBC CAN message format
  • Use feedback from GPS and compass to calculate bearing angle
  • LPC 1758 responds to feedback from motor speed sensor (reports RPM of wheels, when a PWM signal is applied)
  • Complete DBC CAN message format
8 4/7/19
  • Successfully get starting and destination coordinates
  • Complete sensor module code and push final revision to GitLab
  • Master controller can send/receive CAN messages to/from all other controllers on CANbus
  • Transmit latitude and longitude coordinates as CAN messages to master controller
  • Angle wheels left/right/straight based on CAN feedback from master controller
9 4/14/19
  • All modules have been fully assembled
  • Successfully integrate checkpoints into mobile app
  • Completed implementation of speed control algorithm
  • Transmit heading and bearing angle as CAN messages to master controller
  • Implement obstacle avoidance algorithm
10 4/21/19
  • Complete first vehicle test drive
  • Send starting/destination coordinates to bridge controller
  • Send starting/destination coordinates as CAN messages from bridge controller to master controller
  • Design a feed back mechanism to adjust speed of DC motor using RPM sensor values for vehicular movement on the slope
11 4/28/19
  • Achieve full communication between all subsystems on the CANbus
  • Use GPS feedback to govern (motor behavior) car movement
12 5/5/19
  • RC car has been fully assembled and modules have been integrated
  • Complete integration of PCB and wiring harness
13 5/12/19
  • Resolve any remaining bugs or concerns
14 5/22/19
  • DEMO


BILL OF MATERIALS

MICRO-CONTROLLERS

PART NAME

PART MODEL & SOURCE

QUANTITY

COST PER UNIT (USD)

  • Micro-controller
  • LPC 1758 (Supplied by Preet Kang)
  • 5
  • $80.00


RC CAR

PART NAME

PART MODEL & SOURCE

QUANTITY

COST PER UNIT (USD)

  • RC Car
  • 1
  • $205.99
  • Lithium-Ion Battery
  • 1
  • $74.95
  • Battery Charger
  • 1
  • $47.95


ANDROID MOBILE APPLICATION & BRIDGE CONTROLLER

PART NAME

PART MODEL

QUANTITY

COST PER UNIT (USD)

  • Bluetooth Serial Communication Module
  • 1
  • N/A


GEOGRAPHIC CONTROLLER

PART NAME

PART MODEL

QUANTITY

COST PER UNIT (USD)


MASTER CONTROLLER

PART NAME

PART MODEL

QUANTITY

COST PER UNIT (USD)


MOTOR CONTROLLER

PART NAME

PART MODEL

QUANTITY

COST PER UNIT (USD)


HARDWARE INTEGRATION PCB & WIRING HARNESS

PART NAME

PART MODEL

QUANTITY

COST PER UNIT (USD)


SENSOR CONTROLLER

PART NAME

PART MODEL

QUANTITY

COST PER UNIT (USD)

  • Bumper Sensors
  • 2
  • $18.98
  • Distance Sensors
  • 1
  • $40.17


HARDWARE INTEGRATION PCB

Hardware Design

<Picture and information, including links to your PCB



WIRING HARNESS

Hardware Design

<Picture and information, including links to your PCB



CAN NETWORK

<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

<Gitlab link to your DBC file> <You can optionally use an inline image>



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

Bug Tracking

<Problem Summary> <Problem Resolution>



BRIDGE CONTROLLER & LCD 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>

Bug Tracking

<Problem Summary> <Problem Resolution>



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

Bug Tracking

<Problem Summary> <Problem Resolution>



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

Bug Tracking

<Problem Summary> <Problem Resolution>



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

Bug Tracking

<Problem Summary> <Problem Resolution>



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

Bug Tracking

<Problem Summary> <Problem Resolution>



CONCLUSION

<Organized summary of the project>

<What did you learn?>

Project Video

Project Source Code

Advice for Future Students

<Bullet points and discussion>


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.