Critical Design Review Team RIDE Brennan Dayberry Adam Marrapode James McGlynn Ben Sufit Chris Taylor 1 Presentation 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 2 Visual Walkthrough 3 Problems 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 4 Problems 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 5 Problems 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 6 Problems 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. 7 Mechanical 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 8 Universal 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 9 Ball 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 10 Torque 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 11 Cockpit 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° 12 Cockpit 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° 13 Information 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 14 PC 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 15 PC 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 16 PC 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 17 serial port PC 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 18 FPGA 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 19 Flow of Code in Neos II Input from plug in Decode motor movement Is movement possible? Input from feedback No Yes Calculate possible movement Execute movement Execute movement 20 Inputs, 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 21 (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) 22 Magnitude 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 23 Sample Code Nested Switch or Lookup Table switch(cmdmove){ case 1: //pitch front swich(mag){ case 1: // magnitude of one if ((fdbk - mag) <= 0)//check pos 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 …………………… 24 FPGA 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 25 FPGA 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 26 Altera Nios II Softcore Design Flow 3 2 SOPC Builder Nios II IDE (C/C++) (“System-on-aProgrammable-Chip”) 1 Quartus II (VHDL/Verilog) 4 5 FPGA 27 Position Feedback RS232 Logic PC UART Cyclone FPGA Motor Driver 28 Control Board Overview 29 Breakout 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 30 Some Schematics 31 Some Schematics 32 Slo-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 33 MD808 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 34 Feedback • 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. 35 Motor 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 36 Revised Schedule 37 Deliverables Milestone 1 • Mechanical assembly partially complete • PC Plug-in nearly finished • FPGA Game Code and Motor Control functional • PCB Layout revision 1 ordered Milestone 2 • System integration partially complete • Mechanical construction and assembly finished • Modules functioning independently • PCB revision 2 ordered Expo • System integration complete • Cockpit moving with respect to simulation • All technical documentation complete 38 Division of Labor Brennan Chris James Adam Ben Mechanical Design X X X Mechanical Assembly X X X X X Motor Control X X X X X Motor Feedback X X X X X Programming PC Driver 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 X PCB Layout X X X Power Budget X X X X X X 39 Budget 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 40 Budget 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 41 Questions? 42