2019:Controls: Difference between revisions

From 1511Wookiee
Jump to navigationJump to search
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">
&nbsp;
&nbsp;
<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output">
<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div 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 =


*Apollo mission control look. See&nbsp;https://imgur.com/gallery/HIAW6. Concepts sketched out in the Controls notebook.  
*Apollo mission control look. See&nbsp;[https://imgur.com/gallery/HIAW6 https://imgur.com/gallery/HIAW6]. Concepts sketched out in the Controls notebook.  
**A rotary phone dial needs to be included.  
**A rotary phone dial needs to be included.  
**Could include a dial counter for match time remainng, similar to&nbsp;https://www.indiamart.com/proddetail/electrical-counter-3385933755.html  
**Could include a dial counter for match time remainng, similar to&nbsp;[https://www.indiamart.com/proddetail/electrical-counter-3385933755.html https://www.indiamart.com/proddetail/electrical-counter-3385933755.html]
**Need the silver handles on each side of the laptop display.  
**Need the silver handles on each side of the laptop display.  
**Status lights and broken switches in "matrix".  
**Status lights and broken switches in "matrix".  
Line 13: Line 12:
*May need to include some additonal stuff for camera display during the sandstorm.  
*May need to include some additonal stuff for camera display during the sandstorm.  
*Needs to support the laptop, XBox controller for the primary driver, and joystick for the secondary driver.  
*Needs to support the laptop, XBox controller for the primary driver, and joystick for the secondary driver.  
</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">
= <span style="line-height: 20.79px;">To do</span> =
= <span style="line-height: 20.79px;">To do</span> =
<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output">
<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div 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 26: Line 20:
*CAD for outer case  
*CAD for outer case  
*Continue to develop the concept of the controls.  
*Continue to develop the concept of the controls.  
**How will the laptop sit in the controls and open. Is it at an angle?
**How will the laptop sit in the controls and open.   
**How will we create the "angled" bottom part of the mission control panel.
**How will the clamshell close with a joystick.   
</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 class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div 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 ===


*create model&nbsp;of the controls laptop. Need to have a model of the laptop partially open.  
*create model&nbsp;of the controls laptop. Need to have a model of the laptop partially open.  
*Find a development kit that can be used for the buttons/switches/dials/etc. for the secondar controls. Needs to have analog inputs, USB and have a sample project available that demonstrates creating a HID.
<span style="color:#e74c3c;">Found this</span>: [https://www.robotshop.com/en/joystick-controller-board-raspberry-pi.html?gclid=CjwKCAiA99vhBRBnEiwAwpk-uCI3sfZSOkTNbZO4Q1DwXGxW-SGP3g4JU57wFHC53QszLoJcVA6IJhoCos8QAvD_BwE Joystick Controller Board]</div> </div> </div> </div> </div> </div>
*Slider option (instead of joystick, if we do buttons for preset heights and slider to fine adjustment/manual mode): [https://robotdyn.com/analog-slide-position-potentiometer-10kohm.html Analog Slide Position]


*Example push buttons (need to make sure we pick ones that stay pushed; are not momentary):
**[https://www.newegg.com/Product/Product.aspx?Item=0T8-00J1-001E0 Push Button]
**[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] 
</div> </div>
=== 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>  
*Not doing with clamshell design  
*Not doing with clamshell design  
*Determine if a clamshell case will be able to fit the laptop, joystick and be able to open wide enough and still fit in the 14" depth.
*Picked: buttons, joystick, thumbscrews, handle
**Get/create models for the controls laptop and joystick. Need to have a model of the laptop partially open.
</div> </div> </div> </div> </div> </div>  
**Draw up a simple clamshell model of the box that fits the laptop and joystick.
**Determine if that model can be opened such that the laptop screen is visible and it still fits in the 14" depth.  <br/>
</div> </div> </div></div></div></div>
 
= Useful Links =
= Useful Links =


*[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]  
</div>
*[https://www.robotshop.com/en/joystick-controller-board-raspberry-pi.html?gclid=CjwKCAiA99vhBRBnEiwAwpk-uCI3sfZSOkTNbZO4Q1DwXGxW-SGP3g4JU57wFHC53QszLoJcVA6IJhoCos8QAvD_BwE Joystick Controller Board]
 
*[https://robotdyn.com/analog-slide-position-potentiometer-10kohm.html Analog Slide Position]
*Example push buttons (need to make sure we pick ones that stay pushed; are not momentary):
**[https://www.newegg.com/Product/Product.aspx?Item=0T8-00J1-001E0 Push Button]
**[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] 
</div>  
= PSoC&nbsp;Install (for lights) =
= PSoC&nbsp;Install (for lights) =


Line 94: Line 79:
*set Baud to 115200; Data Bits 8; Stop Bits 1; Parity None  
*set Baud to 115200; Data Bits 8; Stop Bits 1; Parity None  
*download program: Actions -> Program  
*download program: Actions -> Program  
</div> <div class="mw-parser-output">
</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">
= Meeting Minutes =
= Meeting Minutes =


Line 130: Line 108:
*Decided on concept (apollo era mission controls station)&nbsp;  
*Decided on concept (apollo era mission controls station)&nbsp;  
*Found and added parts to shopping list  
*Found and added parts to shopping list  
*Started full scale layout


<span style="font-size: large;">1/13</span>
<span style="font-size: large;">1/13</span>
Line 139: Line 118:
*Got datasheets for buttons, handle, joystick  
*Got datasheets for buttons, handle, joystick  
*Met with potential Aux drive team members to finalize buttons/joystick needs  
*Met with potential Aux drive team members to finalize buttons/joystick needs  
*Added more items to shopping list <br/>
*Added more items to shopping list  
*Continued work on full scale layout


<span style="font-size: large;">1/15</span>
<span style="font-size: large;">1/15</span>
Line 288: Line 268:


Attendees:&nbsp;
Attendees:&nbsp;
 
Work Completed:&nbsp;</div> </div> </div> </div> </div> </div> </div>  
Work Completed:&nbsp; </div> </div> </div> </div> </div> </div>
</div>
 
= Controls Rules =
= Controls Rules =


Line 317: Line 294:


R100.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.
R100.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.
<div class="mw-parser-output">
<div class="mw-parser-output">
= Archives =
= Archives =
Line 331: Line 307:
*[[2010:Electrical_Controls]]  
*[[2010:Electrical_Controls]]  
*[[2009:Electrical_Controls]]  
*[[2009:Electrical_Controls]]  
</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>

Revision as of 14:25, 13 January 2019

 

Overall Concept

  • Apollo mission control look. See https://imgur.com/gallery/HIAW6. Concepts sketched out in the Controls notebook.
  • May need to include some additonal stuff for camera display during the sandstorm.
  • Needs to support the laptop, XBox controller for the primary driver, and joystick for the secondary driver.

To do

Not Started

  • Get/create models for joystick.
  • CAD for outer case
  • Continue to develop the concept of the controls.
    • How will the laptop sit in the controls and open.

In Process

  • create model of the controls laptop. Need to have a model of the laptop partially open.

Completed

  • Not doing with clamshell design
  • Picked: buttons, joystick, thumbscrews, handle

Useful Links

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 controls2018 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/FRC2018/controls2018/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\FRC2018\controls2018\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/8

Attendees: Eric, Mark

Work Completed: Setup Wiki, preliminary research into the control design.

1/9

Attendees: Eric, Devon, Adrian, Jadon

Work Completed: Initial concept picked, cleaned up the shop controls stuff and put it in the storage cabinet. Setup Slack channel for controls.

1/10

Attendees: Adrian, Devon, Jadon, Cameron

Work Completed: made a joystick CAD model, found laptop model from last year and got dimensions of the slightly bigger newer laptops that we could potentially use, used math to find that the joystick can fit in a clamshell case if it starts pushed all the way forward (not in the nuetral position), worked on the design

1/12

Attendees: Eric, Jadon, Adrian, Tanner, Devon

Work Completed:

  • Decided on concept (apollo era mission controls station) 
  • Found and added parts to shopping list
  • Started full scale layout

1/13

Attendees: Byers, Tanner, Eric

Work Completed: 

  • Got datasheets for buttons, handle, joystick
  • Met with potential Aux drive team members to finalize buttons/joystick needs
  • Added more items to shopping list
  • Continued work on full scale layout

1/15

Attendees: 

Work Completed: 

1/16

Attendees: 

Work Completed: 

1/17

Attendees: 

Work Completed: 

1/19

Attendees: 

Work Completed: 

1/20

Attendees: 

Work Completed: 

1/22

Attendees: 

Work Completed: 

1/23

Attendees: 

Work Completed: 

1/24

Attendees: 

Work Completed: 

1/26

Attendees: 

Work Completed: 

1/27

Attendees: 

Work Completed: 

1/29

Attendees: 

Work Completed: 

1/30

Attendees: 

Work Completed: 

1/31

Attendees: 

Work Completed: 

2/2

Attendees: 

Work Completed: 

2/3

Attendees: 

Work Completed: 

2/5

Attendees: 

Work Completed: 

2/6

Attendees: 

Work Completed: 

2/7

Attendees: 

Work Completed: 

2/9

Attendees: 

Work Completed: 

2/10

Attendees: 

Work Completed: 

2/12

Attendees: 

Work Completed: 

2/13

Attendees: 

Work Completed: 

2/14

Attendees: 

Work Completed: 

2/16

Attendees: 

Work Completed: 

2/17

Attendees: 

Work Completed: 

Controls Rules

8.10 OPERATOR CONSOLE

R95. The DRIVER Station software provided on the National Instruments website 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 19.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.

R96. 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.

R97. 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, 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.

R98. 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 G19)

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 G15. See the PLAYER STATION section 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.

R99. 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.

R100.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.