View Single Post
  #2   Spotlight this post!  
Unread 20-12-2008, 14:46
Jon236's Avatar
Jon236 Jon236 is offline
Registered User
AKA: Jon Mittelman
FRC #2648 (Infinite Loop)
Team Role: Mentor
 
Join Date: Jan 2004
Rookie Year: 2000
Location: Windsor, Maine
Posts: 741
Jon236 has a reputation beyond reputeJon236 has a reputation beyond reputeJon236 has a reputation beyond reputeJon236 has a reputation beyond reputeJon236 has a reputation beyond reputeJon236 has a reputation beyond reputeJon236 has a reputation beyond reputeJon236 has a reputation beyond reputeJon236 has a reputation beyond reputeJon236 has a reputation beyond reputeJon236 has a reputation beyond repute
Re: 2009 Control System LabVIEW Tips and Pitfalls

Things I learned the hard way!

Starting out....create your own default template
  • Create new Advanced Project
  • Create new Dashboard Project in a ‘Dashboard’ sub-folder
  • Combine all into single project by dragging the Dashboard folders to ‘My Computer’ in the Advanced Project. Now all your project files are in 1 place!
  • Don’t change RobotMain.vi – you can break it!
  • Don’t code inside the subvi’s making up the TeamCode….simply create subvi’s referring to your Teleop code, your Autonomous Code, etc. Do this by ‘Save As’ ‘Open Additional Copy’ and create your name, e.g. ‘TeamxxxTeleop.vi’. Put them in the appropriate spots in the TeamCode Vi’s. Be sure and wire the appropriate connections and clusters to your new vi.
  • As you make up the subvi’s, edit the entries in Vi Properties by right-clicking the icon in the upper right. Document it’s purpose and edit history. Also, make a unique icon the first time you save it.
Cleaning up ‘Begin.vi’.

It should be the goal of every vi to be able to visualize the entire vi from a window without scrolling.To that end, you can begin by cleaning up Begin.vi.
  • Open the ‘TypeDefs’ folder and open RobotData.ctl
  • Open a new vi (‘File’à’New Vi’)
  • On the Front Panel, right-click..select ‘Select a Control’ and double-click RobotData.ctl and place it on the Front Panel
  • Go to the Block Diagram (Ctrl-E)
  • Right-click the wiring stub and ‘CreateàIndicator’…go back to the Front Panel
  • Double-click the icon in the upper right and make your own icon
  • If you have a standard Team icon background, paste that in then make sure it says ‘Robot Data ‘
  • Then right-click the icon…’Show Connector’
  • Click the upper right small box and then the indicator image of the control. Make sure the wiring ‘sticks’.
  • Edit the icon so it says RobotData.
  • Save the vi as ‘RobotData.vi’
  • Repeat the process for the PeriodicTaskData Type Def
  • Now open Begin.vi and place the 2 vi’s you just created near the ‘bundle cluster’ vi’s. You get rid of the large constants that are there and as you add DeviceDefinitions to the TypeDefs, they will be updated without making an unsightly block diagram.
Adding Device Definitions to the TypeDefs.

1. Open the file RobotData.ctl. Make the cluster bigger to accommodate the new type defs you will be placing inside.
2. On the block diagram of Begin, right-click and select the WPI Robotics Library. Pin it down. The go through and select ‘Open’ vi’s for each of the devices and sensors you will be using.
3. As you open each ‘Open.vi’, right-click the edge of the DevRef for that device. Select ‘Open Type Def’. Now, click on the border of the cluster until the entire TypeDef is included. Ctrl-C or drag the selected type def into the RobotData type def until it is inside the cluster (remember I said to make the cluster bigger?). Make sure it is not overlapping another type def.
4. Make a unique name for each DeviceDef you have multiples of. Do this by editing that type def’s label. This is essential for you to identify which motor or sensor you will be wiring to.
5. You can group similar items, or related groups of items, by creating blank clusters on the RobotData type def before placing the new type defs inside of it. This is useful when you are unbundling by name. For example, put 4 references to your Joysticks together, even if you don’t think you will use them all.
6. After you have done this, go to ‘File’ and ‘Apply Changes’ before saving. You can add more motors, sensors and other devices at any time.
7. Now you can go into Begin.vi, put your cursor on the lower edge of the bundle-by-name vi and enlarge it…you will see the new type defs you have just added! If you don’t, simply right-click and ‘Select Item’…find the type def and choose ‘All elements’. Now, place an ‘Open Gyro.vi.’ (if you added a Gyro type def), and wire it’s cluster to the bundle vi. Be sure to select a channel to sample.
8. Repeat for all your other devices. Try to line up and arrange your vi’s so they make sense and don’t leave a mess of spaghetti!
__________________
Jon Mittelman

Senior Judge Advisor New England & Israel 2014-2015
Infinite Loop Mentor 2011-2015
TechnoTicks Mentor 2000-2011
Championship Chairman's Award 2009 Team236 TechnoTicks
Judge 2010-2015 Championships
Senior Judge Advisor New England District Championship 2014-2015
Judge Advisor Tel Aviv Regional 2007-2015
Judge Advisor Pine Tree Regional 2013
Maine Regional Planning Committee
New England District Planning Committee
Lead Inspector Microsoft Tel Aviv Regional 2006-2008
Judge & Lead Inspector GM/Technion Tel Aviv Regional 2006
Judge UTC Hartford Regional 2006
Reply With Quote