Crescent Valley High Team 955: Design Rules
Mechanical Design Rules
- Documentation
- Mechanical designs will be modeled in CAD before being
fabricated.
- The design must be reviewed and checked off by a
mentor prior to fabrication.
- An exception to both rules above
is made for prototypes to test a concept.
However, such prototypes may not be used on the robot.
- Shafts and Keyways
- Keyed shafts will be no smaller than 1/2 inch diameter.
- Key stock will be no smaller than 1/8 inch.
- The only customization allowed for shafts is cutting to length.
- Chains and Sprockets
- Chains will be no smaller than #35.
- Torque and Stress
- Torque and stress will be calculated on all components which
move because of a motor.
Motor stall torque will be used to determine component
torque.
All such calculations must be documented and stored
on the computer in a suitable location.
- Any mechanism that has force or torque on it, must have
an approved mechanical mount.
- Components will not be used beyond their working strength.
- Actuators such as motors will not be used beyond
their top efficiency.
- Zip-ties may only be used for low stress applications.
Don't even think of using them for mounting the drive system!
- Modifications of Components
- Where possible, all components will be easily obtained,
off-the-shelf components.
- Sprockets may not be customized except with
mentor approval.
Thinning sprockets will not be approved.
Drilling holes for mounting a plate or bar will
be approved.
- Do NOT destroy, dismantle, or cannibalize robots from this
or previous years.
We need them!
- All deviations from rules listed above require senior mentor approval.
Electrical Design Rules
- Documentation
- All electrical assemblies will have schematics.
- All arrays of connections will have list or table
style documentation. This may be provided by
the software team.
- Mechanical Robustness
- All wires will be anchored near their connectors.
- All mounting of electrical components other than the radio and
battery will be on an approved non-conductive board material.
- Access and Rapid Repair
- All electrical components will be easily accessible.
Access must be provided without requiring a screwdriver
or allen wrench.
- All motors will be connected via anderson connectors.
- Electrical Robustness
- FIRST electrical rules will be followed.
This includes wire gauges and color codes.
- Large gauge wire to main power source hubs shall have
appropriate terminations, ferrelled crimps as needed.
- The correct size of crimps for couplers and terminals
will be used for the specified wire guage.
- Do NOT destroy, dismantle, or cannibalize robots from this
or previous years.
We need them!
- All deviations from rules listed above require senior mentor approval.
Software Design Rules
- Documentation and Readability
Writing software is communicating. You are
communicating the instructions to the computer.
But you are also communicating your intentions
to other programmers. If either objective is not
met, the software isn't good enough.
- Readability of code matters. Code will follow indentation
standards set by the mentor.
- All functions will have comments at the top
explaining each parameter, plus what the function returns.
- All functions will have documentation.
This may be in the comments or in a separate file
by a similar name in the repository.
The documentation will explain the purpose of
the function.
It will also explain anything subtle in the code.
- Flow Control
- If and else clauses will be enclosed in braces {}
even if there is only one line inside the braces.
- Each case of a switch will end either in "break;" or
a comment saying "// NO BREAK".
- All switch commands will contain a default case.
If default should not be reached, say that in a
PrintToScreen or printf.
- Data and Variables
- Validate all inputs which can cause misbehaviour.
- No variables of type float or double will be used on the
FRC.
- Integer types will use only the types which have been
typedef'ed in varsizes.h.
- Functions
- The list of functions which will be defined in CVRobot.c
is IO_Initialization(), Initialize(), Autonomous(),
OperatorControl(), main(). All other functions must be
defined externally.
- All externally defined functions will have validation
suites.
- We have no clear way to validate code which reads
or writes directly to hardware.
Therefore such interfacing should be external to
the function.
- All deviations from rules listed above require senior mentor approval.
Last modified 27 Mar 2008
http://brown.armoredpenguin.com/~abrown/contact.html
http://brown.armoredpenguin.com/~abrown/first/first2008/Organization/DesignRules.html