Jeff Beltramo NHTI-Concord’s Community College FRC Team 1922 Introduction to LabVIEW FRC Edition of LabVIEW FRC Framework Tricks of the Trade Resources Graphical Programming Language Data Flow Programming ◦ Go with the Flow! High Level Each vi is made up of two windows Front Panel ◦ User Interface ◦ Indicator(output) ◦ Controls (Input) Block Diagram ◦ “code” ◦ Data travels in wires from controls thru functions to indicators ◦ Order of execution controlled by data flow While Loop For Loop Boolean logic Arrays Math functions Timing File I/O PID Control Signal Processing FRC WPILib Floating Point Integers Boolean String Arrays Loops can operate in parallel Each loop performing a different task at different rates Data flow programming still applies! Which node executes first? a. Add b. Subtract c. Random Number d. Divide e. Sine Finding Errors ◦ Broken arrow indicates coding mistakes Execution Highlighting ◦ Data flow is animated and wire values are shown Probe ◦ Shows data value as it flows thru a wire Help menu>>Show Context Help ◦ Hover cursor over object to see help Click thru for Detailed Help CompactRIO with custom FPGA image FIRST specific vi palettes Custom Getting Started Window Wizards to create robot and dashboard code FRC specific examples Available to veteran teams in the Fall of 2011, a bare chassis will cost ~$300, while the chassis with three modules (Analog, Digital, and Solenoid) will cost ~$550. WPI Robotics Library ◦ Sub-palettes for robot drive, sensors, actuators, I/O, Driver Station, Camera… Vision – tools for managing and manipulating images MS Kinect SDK? Project Explorer o o o o Like a table of contents of the project Group like files Build specifications Deploy VI’s Begin VI – Called once at beginning, to open I/O, initialize sensors and any globals, load settings from a file, etc. Autonomous Independent VI – Autonomous code placed here. Called once at startup and terminates on its own. TeleOp – Responds to Joystick input and other critical functions. Called every 20 ms. Periodic Task VI – Non-critical functions placed here. Can have multiple loops. Called at startup and runs continuously. Finish VI - Closes all I/O references and save collected data. Called once at end of program. Robot Global Data VI – Repository of defined global variables. LabVIEW is Polymorphic Race conditions Shift when copying or moving Ctrl drag mouse to make space Edit»Create SubVI Right-click terminal»Create Edit»Make Current Values Default Ctrl-R: Run the VI Ctrl-E: Swap between front panel and block diagram Ctrl-H: Turn on context help Ctrl-B: Remove broken wires Ctrl-u: Clean up wires Ctrl-Z: Undo View»Navigation Window or Ctrl-Shift-N Tools»CompactRIO Imaging Tool… Tools»Setup Axis Camera Tools»Options www.ni.com/first www.frcmastery.com/ www.chiefdelphi.com ◦ Technical>Programming>NI LabVIEW forums.usfirst.org team358.org thinktank.wpi.edu/Portal Questions? jbeltramo@ccsnh.edu