320 likes | 949 Views
FRC Programming with LabVIEW. Jeff Beltramo NHTI-Concord’s Community College FRC Team 1922. Overview. Introduction to LabVIEW FRC Edition of LabVIEW FRC Framework Tricks of the Trade Resources. What is LabVIEW. Graphical Programming Language Data Flow Programming Go with the Flow!
E N D
FRC Programming with LabVIEW Jeff Beltramo NHTI-Concord’s Community College FRC Team 1922
Overview • Introduction to LabVIEW • FRC Edition of LabVIEW • FRC Framework • Tricks of the Trade • Resources
What is LabVIEW • Graphical Programming Language • Data Flow Programming • Go with the Flow! • High Level
LabVIEW programs are called vi’s • 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
LabVIEW Nodes • While Loop • For Loop • Boolean logic • Arrays • Math functions • Timing • File I/O • PID Control • Signal Processing • FRC WPILib
LabVIEW Data Types • Floating Point • Integers • Boolean • String • Arrays
LabVIEW Tasks • Loops can operate in parallel • Each loop performing a different task at different rates • Data flow programming still applies!
Data Flow Programming Quiz • Which node executes first? • Add • Subtract • Random Number • Divide • Sine
Debugging Techniques • 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
Context Help Window • Help menu>>Show Context Help • Hover cursor over object to see help • Click thru for Detailed Help
FRC Edition of LabVIEW • CompactRIO with custom FPGA image • FIRST specific vi palettes • Custom Getting Started Window • Wizards to create robot and dashboard code • FRC specific examples
2012 CompactRIO • 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.
FRC Programming Palettes • 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?
FRC Specific Tutorials Tutorials Examples
FRC Framework • Project Explorer • Like a table of contents of the project • Group like files • Build specifications • Deploy VI’s
FRC Framework • 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.
FRC Framework • 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 Tips and Tricks • 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
LabVIEW Shortcuts and Tools • 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
Resources • www.ni.com/first • www.frcmastery.com/ • www.chiefdelphi.com • Technical>Programming>NI LabVIEW • forums.usfirst.org • team358.org • thinktank.wpi.edu/Portal
Wrap it Up! Questions? jbeltramo@ccsnh.edu