200 likes | 339 Views
Team 3125 Programming/Electrical Subteams. 28-Oct-09 Breakout session. Cody Harris Technical Director. Introduction. Programming “Programs the robot control interface and autonomous mode” (Team 3125 Handbook) Pre-Season: Algorithm Development, Learn Syntax
E N D
Team 3125Programming/Electrical Subteams 28-Oct-09 Breakout session Cody Harris Technical Director
Introduction • Programming • “Programs the robot control interface and autonomous mode” (Team 3125 Handbook) • Pre-Season: Algorithm Development, Learn Syntax • Build Season: Design and Implement Robot Software • Drive Season: Work Pit Crew, Troubleshoot • Post-Season: Make code accessible for next year’s team • Electrical • “Works with the mechanical team to design and implement the electronics of the robot” (Team 3125 Handbook) • Pre-Season: Learn Control System layout, Soldering Techniques, etc. • Build Season: Construct Control System, Implement Software, Wire Robot • Drive Season: Work Pit Crew, Troubleshoot • Post-Season: Ensure Control System is ready for next year’s team
Programming Pre-Season • Algorithm Development (October – Mid-November) • Think Like a Computer • Understand Object-Oriented Programming • Determine necessary classes and patterns of inheritance • Write Pseudocode to solve a problem • Selection of Language (Mid-November) • Sun Microsystems Java Development Kit (BETA Release) • National Instruments LabView (Graphical Programming) • C/C++ with FRC API (Less specific documentation) • Learn Syntax of Selected Language (Mid-November – December)
Algorithm Development • Algorithm: A method of solving a problem involving a finite series of steps • Binary Decision-Making • Flow-chart layout • Symbology
Think Like a Computer • Mass Casualty Incident START Triage
Putting it all Together – PB&J Lab • How do you make a peanut butter and jelly sandwich?
Level of Detail • Breadth vs. Depth
Subroutines, Interrupts, Parameters, Returns • What about breathing? • Repetitive tasks are defined in subroutines • Subroutines can be called from another method by name, or called when the program is interrupted, such as by a timer or a button press • A subroutine can require a parameter, or piece of data, be provided every time it is called that it will use in the routine; interrupts can pass the interrupter as a parameter • Once the routine is done, the program goes back to where it left off; it can pass a piece of data in return based on its execution, or it can pass void to indicate it is complete
Pseudocode • Pseudocode is an abstraction of source code • Pseudocode is language-specific, but there are strong similarities between C/C++ and Java pseudocode • Pseudocode is not strictly defined, as it is for human interpretation • A method pseudocode would look like this:<return type> <method name>(<p 1>, <p 2>) • { Do something Do something else If something is true Do something OtherwiseDo something Different Return something}
Electrical Pre-Season • Learn Control System (October – Mid-December) • National Instruments “Compact RIO” Microcontroller • FRC Driver Station • Pulse Width Modulation • Proportional-Integral-Derivative Controller hardware • Tools of the Trade (October – Kickoff) • Soldering techniques • Electrical safety • Working with Programmers • Electronics Testing and Evaluation • Oscilliscopes
Digital Side Car http://houston.txfirst.org/files/train/controller09.pdf
Oscilloscope – Purpose and Operation PWM Demo
Summary • Non-Mechanical Technical Fields • Programming (“Brains” of the bot) • Electrical (“Nerves and bloodstream” of the bot”) • Next Workshop • Programming: “Skeleton Programming” for Aim High! Game • Electrical: How to format and work with the cRIO • Assistant Position • Effective Span of Control (1 Supervisor : 3-7 Subordinates) • Interested Juniors: Details at next meeting, or contact me
Future Meetings • Online Chats via Skype • Online IMs via AIM, FacebookIM, etc. • Conference Call Service • In-house meetings will be held on Mondays and Wednesdays • Mondays will be a short business meeting of the entire team to ensure subteams are coordinated • Wednesday meetings, by subteam, will consist of workshops; teams may meet online as an alternative when practical