2020:Controls: Difference between revisions
Programming (talk | contribs) No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"> | <div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"> | ||
= Overall Concept = | = Overall Concept = | ||
</div> </div> </div> </div> </div> </div> </div> </div> <div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"> | </div> </div> </div> </div> </div> </div> </div> </div> <div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"> | ||
Line 7: | Line 7: | ||
== Not Started == | == Not Started == | ||
<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output" | |||
*Need to get pots that fit in the XBox controllers. | |||
*CAD of left and right front panel pieces. | |||
<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"> | |||
== In Process == | == In Process == | ||
* | *CAD of base. | ||
*CAD of laptop stand. | |||
*Come up with concept for bling. Need to make sure that we incorporate the broken switches. | |||
<div class="mw-parser-output"> | <div class="mw-parser-output"> | ||
== Completed == | == Completed == | ||
</div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> | </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="mw-parser-output"> | ||
<div class="mw-parser-output"> | |||
= Controls Assignments = | = Controls Assignments = | ||
Line 26: | Line 30: | ||
**spin wheel: 3 times, to specified color | **spin wheel: 3 times, to specified color | ||
**climb: extend, retract, latch | **climb: extend, retract, latch | ||
<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> | <div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> | ||
= Useful Links = | = Useful Links = | ||
</div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> | |||
*[https://drive.google.com/drive/folders/1mrJ29Bna99VvxccyHFYumKEX9qNbtnoB Subteam Student/Mentor Photos] | *[https://drive.google.com/drive/folders/1mrJ29Bna99VvxccyHFYumKEX9qNbtnoB Subteam Student/Mentor Photos] | ||
*[http://pickmygadget.eu/products/zero-delay-arcade-usb-encoder-pc-to-joystick-control-panel-for-mame-2pin-sanwa-type-push-buttons/ Zero Delay USB Joystick Encoder] | *[http://pickmygadget.eu/products/zero-delay-arcade-usb-encoder-pc-to-joystick-control-panel-for-mame-2pin-sanwa-type-push-buttons/ Zero Delay USB Joystick Encoder] | ||
Line 38: | Line 41: | ||
**[https://www.amazon.com/Easyget-Rectangular-Illuminated-Beatmania-Cabinet/dp/B00XL1EWVS/ref=sr_1_174?s=industrial&ie=UTF8&qid=1547162203&sr=1-174&keywords=lighted+push+button+switch Easyget] | **[https://www.amazon.com/Easyget-Rectangular-Illuminated-Beatmania-Cabinet/dp/B00XL1EWVS/ref=sr_1_174?s=industrial&ie=UTF8&qid=1547162203&sr=1-174&keywords=lighted+push+button+switch Easyget] | ||
**[https://www.amazon.com/Juyao-ELECTRONIC-44mm44mm-Illuminated-Microswitch/dp/B07C16K8V4/ref=sr_1_91?s=industrial&ie=UTF8&qid=1547162091&sr=1-91&keywords=lighted+push+button+switch Juyao] | **[https://www.amazon.com/Juyao-ELECTRONIC-44mm44mm-Illuminated-Microswitch/dp/B07C16K8V4/ref=sr_1_91?s=industrial&ie=UTF8&qid=1547162091&sr=1-91&keywords=lighted+push+button+switch Juyao] | ||
<div class="mw-parser-output"> | |||
= PSoC Install (for lights) = | = PSoC Install (for lights) = | ||
Line 99: | Line 102: | ||
<span style="font-size:large">1/11</span> | <span style="font-size:large">1/11</span> | ||
Attendees: | Attendees: Eric, Mark, Adrian, Jadon, Tanner, Dan, Cameron, | ||
Work Completed: | Work Completed: Went over concepts and got everyone up to speed. Decided on final concept for controls. Started CAD. Figured out that we can put knobs on the Xbox controller. Dissassembled 2018 controls and cleaned up the controls shelf. | ||
<span style="font-size:large">1/12</span> | <span style="font-size:large">1/12</span> | ||
Line 258: | Line 261: | ||
Work Completed: </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> | Work Completed: </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> | ||
= Controls Rules = | = Controls Rules = | ||
</div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> | |||
9.10 OPERATOR CONSOLE | </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> 9.10 OPERATOR CONSOLE | ||
R88. The DRIVER Station software provided by National Instruments (install instructions found here) is the only application permitted to specify and communicate the operating mode (i.e. Autonomous/Teleoperated) and operating state (Enable/Disable) to the ROBOT. The DRIVER Station software must be revision 20.0 or newer. | R88. The DRIVER Station software provided by National Instruments (install instructions found here) is the only application permitted to specify and communicate the operating mode (i.e. Autonomous/Teleoperated) and operating state (Enable/Disable) to the ROBOT. The DRIVER Station software must be revision 20.0 or newer. | ||
Line 304: | Line 307: | ||
*[[2010:Electrical_Controls]] | *[[2010:Electrical_Controls]] | ||
*[[2009:Electrical_Controls]] | *[[2009:Electrical_Controls]] | ||
</div> | |||
</div> | </div> |
Revision as of 18:26, 11 January 2020
Overall Concept
To do
- Design Due 1/18
Not Started
- Need to get pots that fit in the XBox controllers.
- CAD of left and right front panel pieces.
In Process
- CAD of base.
- CAD of laptop stand.
- Come up with concept for bling. Need to make sure that we incorporate the broken switches.
Completed
Controls Assignments
- Starting list of Aux controls (need to know robot design though)
- shooter power (knob https://www.mouser.com/datasheet/2/54/ptv09-777818.pdf)
- intake from driver station
- intake from floor
- shoot high, if something other than power controls it
- shoot low, if part of design
- turret position, if part of design
- spin wheel: 3 times, to specified color
- climb: extend, retract, latch
Useful Links
- Subteam Student/Mentor Photos
- Zero Delay USB Joystick Encoder
- Joystick Controller Board
- Analog Slide Position
- Example push buttons (need to make sure we pick ones that stay pushed; are not momentary):
PSoC Install (for lights)
PSoC Creator IDE
Download latest "PSoC Creator" from Cypress (http://www.cypress.com/products/psoc-creator-integrated-design-environment-ide) and install it (use Typical install; at end run Updater and maek sure you have the latest stuff)
For user name and password, you can use: mailme@mailinator.com mailme123
Toolkits and Board Driver Install
Get controls2019 from SVN
Run: vcredist_x86.exe
Run: USBSerialSDKSetup.exe (do Typical install; at end run Updater and maek sure you have the latest stuff)
Run: CY8CKIT04942xxSetupOnlyPackage_revSA.exe (do Typical install; at end run Updater and make sure you have the latest stuff)
While you press and hold the SW1 Prog button on the cypress board, plug in the USB cable to the PC (it will take a while for it to install 5 drivers).
Build/Program
Open PSoC Creator (Start -> Programs -> Cypress -> PSoC Creator -> PSoC Creator)
Open project: File -> Open -> Project/Workspace; then browse to Desktop/FRC2019/trunk/controls2019/SCB_Bootloader/SCB_Bootloader.cywrk)
Build project: Build -> Build All Projects
While you press and hold the SW1 Prog button on the cypress board, plug in the USB cable to the PC
Download Boot Loader:
- open programmer: Tools -> Bootloader Host
- set 'File' to C:\Users\Robotics\Desktop\FRC2019\trunk\controls2019\SCB_Bootloader\Bootloadable Blinking LED.cydsn\CortexM0\ARM_GCC_541\Debug\Bootloadable Blinking LED.cyacd
- select the com port for the cypress board
- set Baud to 115200; Data Bits 8; Stop Bits 1; Parity None
- download program: Actions -> Program
Meeting Minutes
1/7
Attendees: Adrian, Jadon, Tanner, Mike, Tristan, Cameron
Work Completed: Brainstormed ideas, came up with favorite design idea and other liked ideas. Complete list of ideas can be viewed at https://docs.google.com/document/d/164eOT3BLDjwwCmvAE6dEmtPM_Dm1WIZeNxB6HL6WMk4/edit?usp=sharing
1/8
Attendees: Adrian, Jadon, Tanner, Dan, Cameron, Tristan
Work Completed: Came up with two improved designs of "Spider-Box" (Plan A and B) that take everyone's suggestions into consideration, started scaled drawing of Plan B (our favorite)
1/9
Attendees: Eric, Mark, MIke, Adrian
Work Completed: Added further detail for the concepts that have been in process and came up with a method to make it. See the Slack channel for a picture.
1/11
Attendees: Eric, Mark, Adrian, Jadon, Tanner, Dan, Cameron,
Work Completed: Went over concepts and got everyone up to speed. Decided on final concept for controls. Started CAD. Figured out that we can put knobs on the Xbox controller. Dissassembled 2018 controls and cleaned up the controls shelf.
1/12
Attendees:
Work Completed:
1/14
Attendees:
Work Completed:
1/15
Attendees:
Work Completed:
1/16
Attendees:
Work Completed:
1/18
Attendees:
Work Completed:
1/19
Attendees:
Work Completed:
1/21
Attendees:
Work Completed:
1/22
Attendees:
Work Completed:
1/23
Attendees:
Work Completed:
1/25
Attendees:
Work Completed:
1/26
Attendees:
Work Completed:
1/28
Attendees:
Work Completed:
1/29
Attendees:
Work Completed:
1/30
Attendees:
Work Completed:
2/1
Attendees:
Work Completed:
2/2
Attendees:
Work Completed:
2/4
Attendees:
Work Completed:
2/5
Attendees:
Work Completed:
2/6
Attendees:
Work Completed:
2/8
Attendees:
Work Completed:
2/9
Attendees:
Work Completed:
2/11
Attendees:
Work Completed:
2/12
Attendees:
Work Completed:
2/13
Attendees:
Work Completed:
2/15
Attendees:
Work Completed:
2/16
Attendees:
Work Completed:Controls Rules
9.10 OPERATOR CONSOLE
R88. The DRIVER Station software provided by National Instruments (install instructions found here) is the only application permitted to specify and communicate the operating mode (i.e. Autonomous/Teleoperated) and operating state (Enable/Disable) to the ROBOT. The DRIVER Station software must be revision 20.0 or newer.
Teams are permitted to use a portable computing device of their choice (laptop computer, tablet, etc.) to host the DRIVER Station software while participating in competition MATCHES.
R89. The OPERATOR CONSOLE, the set of COMPONENTS and MECHANISMS used by the DRIVERS and/or HUMAN PLAYER to relay commands to the ROBOT, must include a graphic display to present the DRIVER Station diagnostic information. It must be positioned within the OPERATOR CONSOLE so that the screen display can be clearly seen during Inspection and in a MATCH.
R90. Devices hosting the DRIVER Station software must only interface with the Field Management System (FMS) via the Ethernet cable provided at the PLAYER STATION (e.g. not through a switch). Teams may connect the FMS Ethernet cable to their DRIVER Station device directly via an Ethernet pigtail, or with a single-port Ethernet converter (e.g. docking station, USB-Ethernet converter, 9 ROBOT Construction Rules V0 96 of 129 FIRST ® Robotics Competition Thunderbolt-Ethernet converter, etc.). The Ethernet port on the OPERATOR CONSOLE must be easily and quickly accessible.
Teams are strongly encouraged to use pigtails on the Ethernet port used to connect to the FMS. Such pigtails will reduce wear and tear on the device’s port and, with proper strain relief employed, will protect the port from accidental damage.
R91. The OPERATOR CONSOLE must not
A. be longer than 60 in. (~152 cm)
B. be deeper than 14 in. (~35 cm) (excluding any items that are held or worn by the DRIVERS during the MATCH)
C. extend more than 6 ft. 6 in. (~198 cm) above the floor
D. attach to the FIELD (except as permitted by G26)
There is a 54 in. (~137 cm) long by 2 in. (nominal) wide strip of hook-and-loop tape (“loop” side) along the center of the PLAYER STATION support shelf that should be used to secure the OPERATOR CONSOLE to the shelf, per G26. See PLAYER STATION for details.
Please note that while there is no hard weight limit, OPERATOR CONSOLES that weigh more than 30 lbs. (~13 kg.) will invite extra scrutiny as they are likely to present unsafe circumstances.
R92. Other than the system provided by the FIELD, no other form of wireless communications shall be used to communicate to, from, or within the OPERATOR CONSOLE.
Examples of prohibited wireless systems include, but are not limited to, active wireless network cards and Bluetooth devices. For the case of the FIRST Robotics Competition, a motion sensing input device (e.g. Microsoft Kinect) is not considered wireless communication and is allowed.
R93. OPERATOR CONSOLES shall not be made using hazardous materials, be unsafe, cause an unsafe condition, or interfere with other DRIVE TEAMS or the operation of other ROBOTS.