Title: Critical Design Review
1Critical Design Review
Team RIDE
- Brennan Dayberry
- Adam Marrapode
- James McGlynn
- Ben Sufit
- Chris Taylor
2Presentation Overview
- Project Visual Walkthrough
- Problems and Design Revisions
- Revised Mechanical Functions
- Flow of Information
- PC Plug-in
- FPGA Game Code and Motor Control
- FPGA NiosII and Controller Board
- Motors, Drivers, and Power
- Schedule
- Division of Labor
- Budget Considerations
3Visual Walkthrough
4Problems and Design Revisions
- Mechanical Engineering
- We completely underestimated the amount of
mechanical engineering knowledge required to
implement our project - Mechanical engineers have consulted with us on
various topics relevant to our project, and
helped guide us in the right direction - Due to the machining, metalwork, and welding
involved, a few of us have gained access to the
ITLL machine shop, and have a mechanical engineer
with welding experience lined up to help us with
any welding needed - We have attempted to make our mechanical design
as simple as possible while maintaining the
overall goal of our project
5Problems and Design Revisions
- Linear Actuators
- Grant Immohara from Mythbusters provided
information on actuator suppliers - Very hard to find exact actuators to meet design
specifications for load forces and actuator
speeds - Way too expensive, cannot accommodate within our
budget - Much harder to implement into design than
originally perceived - Overall Linear actuators were a bad idea and we
wasted too much valuable time trying to find the
perfect one
6Problems and Design Revisions
- Motors
- After researching variable AC, DC and stepper
motors, we decided to use stepper motors and
salvaged two from the previous capstone project,
the BP gas line robot - Well within our budget as they were free, and
higher models are within budget (300-400) - Stepper motors much easier to implement into
design, both mechanically and electrically - Feedback easier via step control and shaft
encoders - Use crank arm and levers to achieve 2 degrees of
freedom - Stepper motor system already has AC-DC converter
power supply
7Problems and Design Revisions
- Overview
- Tremendous amount of mechanical input was needed
from outside sources - Calculations of Torques and Force loads proved
that linear actuators are not efficient, but
proved that stepper motors could carry out design
specs by using a crank and lever system - Metal support frame for cockpit was deemed to
heavy, so we went with plywood instead and will
improve rigidity with perimeter molding of
angle-iron - Motion base will have 2-degrees of freedom with 2
stepper motors, both on the front edge.
8Mechanical Functions
- When motors move in unison together, cockpit
pitches up and down - When motors move opposite directions, cockpit
rolls side to side - Approximately 7-12 range of motion in both
degrees of freedom
9Universal Joint
- Salvaged from an old truck drive shaft
- Placed at center of mass to support majority of
weight - Restricts motion to two degrees of freedom
- Adjustable height
10Ball Joint
- Allows levers to move freely at pivot point on
cockpit - Prevents lever arms from bending when the cockpit
moves - Easily available from local suppliers
11Torque Requirements
- Need 15 pounds-force along front edge per motor
(empirically measured) - Crank arm is 2 inches long
- We need 30 inch-pounds, or 3.4 Newton-meters at
motor shaft
12Cockpit Pitching
- Both motor crank arms move together, so cockpit
pitches up - The delta distance between the cockpit old
position and new is about 2.5 inches - Allows pitch swing of about 5 inch delta, or 6
13Cockpit Rolling
- Motor crank arms move in opposite direction, so
cockpit rolls to the left - Delta distance between old and new position is 2
inches - Provides roll swing of about 4 inch delta, or 12
14Information Flow
- PC Plug-in filters game data into movements then
sends to FPGA Game Code Module - Game Code Module considers current positions,
evaluates new desired positions based on
feedback, then sends data to FPGA Motor Code
Module - Motor Code Module converts simple movement
commands into pulses and directions for each
motor - Motor Drivers take PWM signals and drive motors
correspondingly
15PC Plug-In Overview
- Dynamically-Linked Library
- Routines run in real-time when race is started
- Telemetry data held in game data structures (C
classes)? - Telemetry updates at 91 FPS
- Telemetry converted to motion profiles
- Structures - Filter - Serial Port
16PC Plug-In Raw Data
- Data polled on frame update and sent to filter
functions - Data sent in three types
- Acceleration forces created by car movement
- Impact forces created by impact with
environmental hazards (walls, other cars)? - Pitch/Roll forces created by movement of car in
relation to normal (includes bumps, jumps)? - Data in Cartesian coordinates
17PC Plug-In Filters
- Filter for each type of data
- Data sampled and converted at 5 Hertz
- rate variables held as constants to allow for
easy optimization with hardware - Each filter converts data to simple motion
profile - Simple motion profiles sent to superposition
function - Superposition function sends final profile to
serial port
18PC Plug-In System Functions
- initialize
- Initializes communication with controller board
- log
- logs any pertinent data (meant for development,
debugging)? - send_profile
- sends direction and magnitude of motor arm motion
19FPGA Game Decode
- Inputs from PC
- Feedback via variables and optical encoders
- Output to Motor Control
- cmdmov values (command move)
- Magnitude and Feedback
- Sample Code
- Early feedback
- Output
20(No Transcript)
21Inputs, Feedback and Outputs
- The input to the FPGA will be a set of two
integers corresponding to the desired movement
and magnitude. - The feedback is the current position of the
motor, provided by shaft encoders and known
variables. - The output gives the command to the motor based
on the input and feedback
22(command move) cmdmov values
- 1 front (brake)
- 2 back (acceleration)
- 3 front right
- 4 front left
- 5 back right
- 6 back left
- 7 CRASH or rumble strip (depending on magnitude)
23Magnitude and Feedback
- Magnitude is a value of one to ten determined by
the PC plug-in. - Feedback is a number between zero and two hundred
(200 steps per revolution) that contains the
current position information. - The code calculates which movements to make and
determines if the movement is possible based on
the feedback
24Sample Code Nested Switchor Lookup Table
- switch(cmdmove)
- case 1 //pitch front
- swich(mag)
- case 1 // magnitude of one if ((fdbk -
mag) - then mag fdbk
- movemoter1(cmdmov, mag)
- movemoter2(cmdmov, mag)
- break//moves motor as far as pos
- case 2 // magnitude of two
- if ((fdbk
mag) 200)//check -
25FPGA Game Output
- The FPGA Game Code module sends basic movement
information to the FPGA Motor Control module to
be converted into real movement - The Game Code module handles all feedback
decisions, so that the Motor Control module only
has to translate basic movements into motor
rotation
26FPGA Motor Control
- Translates fundamental movements into number of
steps and direction of rotation of both motor
shafts. - Only provided with the changes in movement from
the last position, to make translation fast and
simple. - Relates desired cockpit behavior into necessary
motor behavior through basic physics - Controls logic driving the PWM and direction
circuits on FPGA
27Altera Nios II Softcore Design Flow
3
2
SOPC Builder (System-on-a-Programmable-Chip)
Nios II IDE (C/C)
Quartus II (VHDL/Verilog)
4
1
5
FPGA
28 PC
RS232
Position Feedback
Logic
UART
Cyclone FPGA
Motor Driver
29Control Board Overview
30Breakout Board from www.devboards.de
- Connects FPGA to PCB with headers
- Simplifies FPGA mating to PCB
- Provides JTAG and Serial Programming Interfaces
- Allows for easy replacement of FPGA
31Some Schematics
32Some Schematics
33Slo-Syn Stepper Motor
- 5.44 N-m Minimum Holding Torque
- 2 phase
- 1.8 per step (200 steps)
- Controlled via MD808 motor driver
- We will be operating at 60-100 rpm, at 5 N-m
continuous torque
34MD808 Motor Driver
- Opto-isolated control
- 80VDC, 4A power
- Control via pulse signal one rising edge is one
motor step - Direction control high-low signals CCW or CW
rotation direction
35Feedback
- Because we made the design choice to go with
stepper motors instead of liner actuators we can
get some early feedback by keeping track of the
approximate position of the motors. - We anticipate that this will not be sufficient
for the finished product and plan on using
optical shaft encoders to provide the exact
position of the motor.
36Motor Power Circuit
- Converts 120VAC to 80VDC
- Transformer converts 120Vrms to 60Vrms
- Full wave rectifier supplies 80Vpeak full wave
- Filter capacitor turns full wave into 80VDC output
37Revised Schedule
38Deliverables
39Division of Labor
Ben
Adam
James
Chris
Brennan
X
X
X
X
Mechanical Design
X
X
X
X
X
Mechanical Assembly
X
X
X
X
X
Motor Control
X
X
X
X
X
Motor Feedback
X
X
X
Programming PC Driver
X
X
X
X
FPGA Game Code
X
X
X
X
FPGA Logic
X
X
X
X
FPGA NiosII Softcore
X
X
X
X
Communications
X
X
X
X
Analog Circuits
X
X
X
PCB Layout
X
X
X
Power
X
X
Budget
40Budget Overview
- New Investors
- Joseph Brennan, owner of Southern Lending LLC
Investment Firm - Invested 1000.00 towards project through CU
Foundation - www.southernlendingllc.com
- DENT Sport Garage
- National Pro Rally team and automotive upgrade
shop - Will support safety of project
- 7-point safety belt harness system neck collar
- Better and newer seat for larger individuals
- www.dentsport.com
41Budget Overview
- Overview of Materials and Parts
- NEOS II FPGA
- Devboard (free!)
- Breakout FPGA (180)
- Two DC Stepper motors and drivers
- (free!)
- If unable to repair defective driver, new one
will cost 365 - AC-DC Converter Power Supply
- (free!)
- Miscellaneous scrap materials purchased thus far
- U-bolts, plywood, driveshaft for center pivot
- 150.00
- Total Spent 330.00
- Well within budget requirements for now
42Questions?