Difference between revisions of "S22: Silver Arrow"

From Embedded Systems Learning Academy
Jump to: navigation, search
(Team Members & Responsibilities)
(Motor ECU)
Line 241: Line 241:
 
<BR/>
 
<BR/>
 
== Motor ECU ==
 
== Motor ECU ==
<Picture and link to Gitlab>
 
  
 
=== Hardware Design ===
 
=== Hardware Design ===
 +
 +
Motor Controller Node includes the operational control of the DC motor, Servo motor, Electronic speed control (ESC), and the wheel encoder(RPM Sensor). The job of the motor controller is to control the steering of front wheels at appropriate angles and to spin the rear wheels at speeds commanded by the driver node in order to traverse the RC car to the destination location.The DC motor, servo motor, and ESC(Traxxas ESC XL-05) were provided with the Traxxas RC car. The wheel encoder and the trigger magnet were purchased separately from Traxxas's website.
 +
 +
{| class="wikitable" style="margin-center: auto; margin-center: auto; text-align:center;"
 +
|+ Motor Node Pinout
 +
|-
 +
! SJ2 Board Pin !! Description
 +
|-
 +
| 5V || Input power
 +
|-
 +
| 3.3V || CAN transceiver power
 +
|-
 +
| PWM2 P2.1 || DC Motor Speed Control
 +
|-
 +
| PWM5 P2.4 || Servo Motor Angle Control
 +
|-
 +
| CAP0 P2.6 || RPM Sensor\Wheel Encoder
 +
|-
 +
| CAN1 TX || CAN Transceiver Tx
 +
|-
 +
| CAN1 RX || CAN Transceiver Rx
 +
|-
 +
| GND || Grounding
 +
|}
 +
 
 +
==== DC Motor and ESC  ====
 +
 +
The DC motor and ESC were provided with RC car. The DC motor is controlled by the ESC using PWM signals which were provided by the motor controller board for forward, neutral, and reverse movements. The ESC is powered ON using a 7.4 LiPo battery. The ESC converts this 7.4V to 6V and provides input to DC Motor. 
 +
 +
 +
 +
{| class="wikitable" style="text-align: center;"
 +
|-
 +
! scope="col"| ESC wires
 +
! scope="col"| Description
 +
! scope="col"| Wire Color                                                                   
 +
|-
 +
! scope="row"| Vout
 +
| Output Power (6V)
 +
| RED
 +
|-
 +
! scope="row"| GND
 +
| Ground
 +
| BLACK
 +
|-
 +
! scope="row"| PWM
 +
| PWM input from SJ2-Board (P2.1)
 +
| WHITE
 +
|-
 +
|}
 +
 +
The car can be operated at 100Hz in the following 3 modes :
 +
<br/>
 +
Sport Mode (100% Forward, 100% Brakes, 100% Reverse)
 +
<br/>
 +
Racing Mode (100% Forward, 100% Brakes, No Reverse)
 +
<br/>
 +
Training Mode (50% Forward, 100% Brakes, 50% Reverse)
 +
<br><br>
 +
 +
<br>
 +
 +
==== Servo Motor ====
 +
 +
 +
 +
{| class="wikitable" style="text-align: center;"
 +
|-
 +
! scope="col"| Servo Wires
 +
! scope="col"| Description
 +
! scope="col"| Wire Color
 +
|-
 +
! scope="row"| Vin
 +
| Input Voltage (6V)
 +
| RED
 +
|-
 +
! scope="row"| GND
 +
| Ground
 +
| BLACK
 +
|-
 +
! scope="row"| PWM
 +
| PWM input from SJ2-Board (P2.4)
 +
| WHITE
 +
|-
 +
|}
 +
 +
The PWM frequency for our Traxxas Servo motor also needed to be 100Hz.  An idle (wheel's pointing forward) duty cycle is 15%.  The full duty cycle range is [10%, 20%], where [10%, 15%) is the steer left range, and (15%, 20%] is the steer right.
 +
<br>
 +
 +
==== Wheel Encoder ====
 +
 +
For speed sensing we purchased a Traxxas RPM sensor as it mounted nicely in the gearbox.  The RPM sensor works by mounting a magnet to the spur gear and a hall effect sensor fixed to the gearbox.  To get the revolutions per second we used Timer2 as an input capture. <br>
 +
 +
 +
 +
{| class="wikitable" style="text-align: center;"
 +
|-
 +
! scope="col"| RPM Sensor Wires
 +
! scope="col"| Description
 +
! scope="col"| Wire Color
 +
|-
 +
! scope="row"| Vin
 +
| Input Voltage (6V)
 +
| RED
 +
|-
 +
! scope="row"| GND
 +
| Ground
 +
| BLACK
 +
|-
 +
! scope="row"| Sensor Output
 +
| Input Capture to SJ2-Board (P2.6)
 +
| WHITE
 +
|-
 +
|}
  
 
=== Software Design ===
 
=== Software Design ===
<List the code modules that are being called periodically.>
+
The motor controller code modules consisted of 3 main parts, which are: 1. PWM drivers and motor logic, 2. RPM/speed sensor, 3. PID controller.
 +
 
  
 
=== Technical Challenges ===
 
=== Technical Challenges ===
  
< List of problems and their detailed resolutions>
+
*It required some trial and error to get the state machine for the DC motor to transition between forward and backward, and vice versa. Thankfully, other students' papers were available to help us figure out what we needed to accomplish.
 +
*We somehow destroyed the ESC and wanted to replace it. We spent both time and money on this. Make sure you don't short the ESC by mistake!
  
 
<HR>
 
<HR>
 
<BR/>
 
<BR/>
 +
 
== Geographical Controller ==
 
== Geographical Controller ==
  

Revision as of 05:58, 22 May 2022

Project Title

<Team Name>



Abstract

<2-3 sentence abstract>

Introduction

The project was divided into N modules:

  • Sensor ...
  • Motor..
  • ...
  • Android

Team Members & Responsibilities

Pushkar Deodhar LinkedIn

  • App development
  • Mechanical/Hardware/circuit/PCB designing

Vilas Dhuri LinkedIn\

  • Driver Logic
  • Hardware and PCB designing

Rishabh Gupta LinkedIn

  • Driver Logic
  • Wiki page manage

Vivek Tapkir LinkedIn

  • Sensor controller
  • Communication Bridge Controller
  • Hardware Integration

Saharash Shivahre LinkedIn

  • Geo controller
  • Wiki page manage

Naveena Sura LinkedIn

  • Geo controller
  • Git repo managment

Daya Modekar LinkedIn

  • Motor controller
  • Hardware Integration and design





Schedule

Week# Start Date End Date Task Status
1 03/16/2022 03/22/2022
  • Read previous projects, gather information and discuss among the group members.
  • Distribute modules to each team member.
  • Completed
  • Completed
2
03/23/2022
03/29/2022
  • Purchased RC car and batteries.
  • Research and finalize which ultrasonic sensor the project will use
  • Purchased Bluetooth connector
  • Research math needed to determine the distance between navigation points. Decide on distance algorithm
  • Create a branch for motor controller driver. Create draft template API for motor controller
  • Using previous projects, determine what works needs to be completed for main board. Bring findings to weekly meeting
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
3
03/30/2022
03/04/2022
  • Ordered and received necessary parts for the car
  • Getting acquainted with the basics of the android studio application
  • Researched basic mobile application development
  • Completed basic driver logic code, Motor controller, and sensor node logic
  • Completed
  • Completed
  • Completed
4
04/05/2022
04/11/2022
  • Updated DBC file as per requirement
  • Completed ultrasonic sensor level testing
  • Completed Bluetooth configuration for mobile app connection, and established communication with SJ2 board
  • Developed a basic mobile application showing maps and current location
  • Began coding compass data
  • Ongoing testing of RPM sensors, motor logic, and sensors for different node
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • In Progress
5
04/12/2022
04/18/2022
  • Sensor data tuning and crosstalk avoidance by loading multiple samples into the buffer
  • Bridge controller data sending and receiving over Bluetooth has been established
  • Implement an application with a startup Bluetooth connection page and test bluetooth data transmission
  • Implement Maps page with OnClick marker with coordinates
  • Ensure CAN bus nodes are communicating correctly by verifying PCAN data.
  • Unit Test Direction Distance Calculation Module. Manual calculation of data should match module output
  • Tune driver and obstacle avoidance algorithm based on data from sensor nodes with unit-testing
  • Begin laying out hardware requirements for PCB and discuss hardware integration
  • Start researching on Wheel encoder according to the requirement
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • Completed
  • In Progress
  • In Progress
  • In Progress
6
04/19/2022
04/25/2022
  • Begin to analyze real-world tests from the previous week's implementation and perform fixes for issues faced
  • Final integration and of all modules (sent data from GPS&Compass to->Driver to->Motors & Wheels)
  • Start working on the PCB, order the PCB, and also purchase the required components
  • Integration testing with obstacle avoidance
  • Send Destination coordinates over BT to the Driver node
  • Complete Prototype 1
  • Incomplete
  • Incomplete
  • Incomplete
  • Incomplete
  • Incomplete
  • Incomplete


Parts List & Cost

Item# Part Desciption Vendor Qty Cost
1 RC Car Traxxas 1 $250.00
2 CAN Transceivers MCP2551-I/P Microchip [1] 8 Free Samples


Printed Circuit Board

<Picture and information, including links to your PCB>



CAN Communication

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




Sensor ECU

<Picture and link to Gitlab>

Hardware Design

Software Design

<List the code modules that are being called periodically.>

Technical Challenges

< List of problems and their detailed resolutions>



Motor ECU

Hardware Design

Motor Controller Node includes the operational control of the DC motor, Servo motor, Electronic speed control (ESC), and the wheel encoder(RPM Sensor). The job of the motor controller is to control the steering of front wheels at appropriate angles and to spin the rear wheels at speeds commanded by the driver node in order to traverse the RC car to the destination location.The DC motor, servo motor, and ESC(Traxxas ESC XL-05) were provided with the Traxxas RC car. The wheel encoder and the trigger magnet were purchased separately from Traxxas's website.

Motor Node Pinout
SJ2 Board Pin Description
5V Input power
3.3V CAN transceiver power
PWM2 P2.1 DC Motor Speed Control
PWM5 P2.4 Servo Motor Angle Control
CAP0 P2.6 RPM Sensor\Wheel Encoder
CAN1 TX CAN Transceiver Tx
CAN1 RX CAN Transceiver Rx
GND Grounding

DC Motor and ESC

The DC motor and ESC were provided with RC car. The DC motor is controlled by the ESC using PWM signals which were provided by the motor controller board for forward, neutral, and reverse movements. The ESC is powered ON using a 7.4 LiPo battery. The ESC converts this 7.4V to 6V and provides input to DC Motor.


ESC wires Description Wire Color
Vout Output Power (6V) RED
GND Ground BLACK
PWM PWM input from SJ2-Board (P2.1) WHITE

The car can be operated at 100Hz in the following 3 modes :
Sport Mode (100% Forward, 100% Brakes, 100% Reverse)
Racing Mode (100% Forward, 100% Brakes, No Reverse)
Training Mode (50% Forward, 100% Brakes, 50% Reverse)


Servo Motor

Servo Wires Description Wire Color
Vin Input Voltage (6V) RED
GND Ground BLACK
PWM PWM input from SJ2-Board (P2.4) WHITE

The PWM frequency for our Traxxas Servo motor also needed to be 100Hz. An idle (wheel's pointing forward) duty cycle is 15%. The full duty cycle range is [10%, 20%], where [10%, 15%) is the steer left range, and (15%, 20%] is the steer right.

Wheel Encoder

For speed sensing we purchased a Traxxas RPM sensor as it mounted nicely in the gearbox. The RPM sensor works by mounting a magnet to the spur gear and a hall effect sensor fixed to the gearbox. To get the revolutions per second we used Timer2 as an input capture.


RPM Sensor Wires Description Wire Color
Vin Input Voltage (6V) RED
GND Ground BLACK
Sensor Output Input Capture to SJ2-Board (P2.6) WHITE

Software Design

The motor controller code modules consisted of 3 main parts, which are: 1. PWM drivers and motor logic, 2. RPM/speed sensor, 3. PID controller.


Technical Challenges

  • It required some trial and error to get the state machine for the DC motor to transition between forward and backward, and vice versa. Thankfully, other students' papers were available to help us figure out what we needed to accomplish.
  • We somehow destroyed the ESC and wanted to replace it. We spent both time and money on this. Make sure you don't short the ESC by mistake!


Geographical Controller

<Picture and link to Gitlab>

Hardware Design

Software Design

<List the code modules that are being called periodically.>

Technical Challenges

< List of problems and their detailed resolutions>





Communication Bridge Controller & LCD

<Picture and link to Gitlab>

Hardware Design

Software Design

<List the code modules that are being called periodically.>

Technical Challenges

< List of problems and their detailed resolutions>



Master Module

<Picture and link to Gitlab>

Hardware Design

Software Design

<List the code modules that are being called periodically.>

Technical Challenges

< List of problems and their detailed resolutions>



Mobile Application

<Picture and link to Gitlab>

Hardware Design

Software Design

<List the code modules that are being called periodically.>

Technical Challenges

< List of problems and their detailed resolutions>






Conclusion

<Organized summary of the project>

<What did you learn?>

Project Video

Project Source Code

Advise for Future Students

<Bullet points and discussion>

Acknowledgement

References