FRC Programming with Labview

advertisement
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
Download