first fare 2013 basic-labview
TRANSCRIPT
Basic LabVIEWKristina Landen
FRC 2093 Bowtie [email protected]
Who has heard of or used LabVIEW before today?
Who has ever programmed in another language before?
Has anyone ever programmed for FRC before?
OverviewO What is LabVIEW?O Get familiarO Code 4 wheel tank drive by PWMO Add actuator, controlled by buttonsO Global Variable benefits and usage
What is LabVIEW?O Visual – no endless lines of codeO Easy to followO .vi – Virtual Instrument
Getting Familiar with LabVIEW
At this point, I will leave the presentation, and go into LabVIEW and explain things in there.
The following slides are what I covered.
Getting StartedO Open LabVIEWO On the “Getting Started” window,
select “FRC cRIO Robot Project.” This will be what you use for all of your code involving the robot.
O Name your project something memorable.
Project ExplorerO Direct links to all of the .vi’s in your
program
This is where your team number will go so the code knows what it is talking to.
Under “Team Code” is where you will find the majority of the .vi files you will need to program the robot.
Begin.viO This is where all of the things you
will be coding are initiated.
Finish.viO This is where you terminate all of the
things you setup in Begin.vi.O This is important because if not
done, things on the robot don’t shut down properly and can cause code issues later on.
Teleop.viO This is where you can write code to
make the robot complete tasks, but is not always the best place to do so.
Teleop.vi ContinuedO You can put display messages to the
Driver Station here which will display when Tele-operated mode is enabled. This message is the name of the project that I am working on.
Periodic Tasks.viO This is where I do the majority of my
programmingO Sensor data gathered here can be
utilized in Autonomous mode as well as in Tele-operated
O You can control how often sensors are checked for data
If you plan to use pneumatics, delete this Disable Structure and fill in the refnum name and set it up in Begin.vi and Finish.vi.
This is where you will be putting code for driving and sensors.
Where Do I Get .vi’s?O Right click – WPI Robotics Library
O WPI Robotics Library has all of the FIRST related .vi’s needed for competition. You will have to use .vi’s from the “Programming” category to complete your code.
WPI Robotics Library
ExamplesO Where to find themO How to adapt them to fit your code
In Each Example There Is…
O Initialization of ports and channelsO Closing of ports and channelsO The stuff that makes everything
happenO Bonus blinking lights, pretty graphs,
and other switches and dials
What We Have To Do…O Recognize which part is whichO Figure out which part to put in our
codeO Decide which parts to omitO Replace inputs and outputs with
Joysticks and Motor blocks
Global VariablesO Robot Global Data.viO Store all sensor values, joystick
values, etc.O Can be used ANYWHERE in the codeO Can save a lot of time
O Instead of writing the code for buttons on a joystick each time you want to use one, use global variables written to in Periodic Tasks.vi
Let’s Program!!
By the end you will be able to…
O Program a 4 wheel tank or arcade drive by PWM
O Program another actuator motor using buttons
O Pass the name of your program to the DriverStation
Programming Drive Motors: Begin
Before
After
Highlight the code for one joystick and copy it by holding control and dragging. Change the USB constant by clicking it, and selecting USB 2.
To replace one block with another, select the block, right click, replace. To replace a “Open 2 Motor” with an “Open 4 Motor”, continue and go “Robot Drive Palette, Open 4 Motor”. Add constants to the open ports below the pre-existing ones by right clicking the hub, create, constant.
Don’t forget to change the name too!
Programming Drive Motors: Finish
Copy the Joystick close from below and change the name.
Programming Drive Motors
This is the basic program setup for a 2 Motor Drive chassis. However, it is setup to run two motors with one joystick.
Programming Drive Motors
Expand the “Unbundle” block.
Copy the code for Joystick 1 up, rename it, then wire into the “Unbundle” block.
(This is what the big red arrow on the last slide was pointing to)
Programming Drive Motors Tip: To expand a
while loop, hold control, click, and drag where you want more space.
Insert an “Unbundle” block from “Programming>Cluster, Class, and Variant>Unbundle” and wire the input to the pink pipe that runs through the while loop.
Programming Drive Motors
“Unbundle by Name” from Programming-Cluster, Class, and Variant wired to “axis”
“WPI Robotics Library-Robot Drive- Joysticks and get the “Get” block.
Programming Drive Motors
Get a “Tank Drive” block from WPI Robotics Library- Robot Drive- Tank Drive. Wire the outputs from the Y axis of the two Joysticks into the Right and Left motor ports.
Wire the pink pipe from the “Unbundle” to the Tank Drive in order to transfer the information from Begin to here.