FRC Programming with Labview
Download
Report
Transcript FRC Programming with Labview
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?
[email protected]