Featured Playlists
LVMastery; FRC TipJars
This is a series intended primarily for FIRST Robotics Competition (FRC) teams and their mentors.
Tip Jar #09
This Blog entry is the fifth in a series intended primarily for FIRST Robotics Competition (FRC) teams and their mentors.
This entry is intended to explain the Advanced FRC Robot Framework.
In a nutshell, I DO recommend that teams use the Advanced Robot Framework, as I explain in the video, for these main reasons:
More robust, larger code can be more easily developed and maintained
Code is more easily encapsulated, making it easier for multiple programmers to work in parallel
Code screen size doesn't grow without bound, making debugging and programming easier
The use of typedefs help maintain a consistency between the autonomous and teleop code
In this blog entry, I touch on:
A tour of the project structure and Robot Main.vi in the Advanced Framework
An explanation of clusters, and getting data into and out of them
How typedefs are used in the framework, and how to modify them
How shift registers are used to store data in loops
How to add additional state or robot data to the typedefs for advanced robot code
Using the "init" case of the Teleop code to open references to devices
The two different types of autonomous mode: independent and iterative, and recommendations on which to use
Some of the intricacies of sending data between autonomous and tele-operated modes
Tip Jar #13
This Blog entry is the 9th in a series intended primarily for FIRST Robotics Competition (FRC) teams and their mentors.
In this blog entry, I discuss how to use a state machine within LabVIEW to write flexible, modular code. In this example I code and explain the state machine for a mechanical lifting system. much like what many FRC teams may use.
I discuss:
What state machines are
How to draw and interpret a basic state diagram
Creating typedefs for state machine data
Creating enums to store the actual state
Storing all sensor inputs and machine outputs in the state machine data for use in debugging and/or the dashboard program
How to write the state machine code using the case structure, including how to speed up development by duplicating similar cases
Tip Jar #14
This Blog entry is the 10th in a series intended primarily for FIRST Robotics Competition (FRC) teams and their mentors.
In this blog entry, I discuss how to speed up time-critical code by pulling it out of the Tele-Op.vi, while maintaining the ability to share data.
I discuss:
The fact that there is a lot of stuff going on in TeleOp, and the main loop: can take up to 200ms to run, potentially causing robot damage if limit switches are missed
How to move the state machine created in TipJar #13 into its own deterministic, accurate, fast loop
How moving the state machine out of TeleOp causes the debugging dashboard to fail because the state data is no longer available
How to create a global variable to share the state machine data with the main loop for debugging
Race conditions: why you should never write to global variables from more than one VI
How to send info from TeleOp to the parallel loops in an easy, scalable way using a "Command Signal" global
How using a single command signal can help ensure your important code runs perfectly in TeleOp AND autonomous modes
Tip Jar #16
This Blog entry is the 12th in a series intended primarily for FIRST Robotics Competition (FRC) teams and their mentors.
In this blog entry, I discuss how to customize the default dashboard project. The real benefit here is the opportunity to see whatever internal robot data you want on a computer at the driver station during competition.
I discuss:
How to add to the Dashboard Data Typedef in the robot project
How to modify the Build Dashboard Data.vi to enable or disable the default data transfer and how to save those default values
How to modify the Build Dashboard Data.vi to write custom data
How to modify the default Dashboard project to allow you to resize and scroll the Dashboard VI
How to modify the default Dashboard project to use the same dashboard data typedef as the robot project
How to create indicators to display your custom data
How to replace the default logo with a custom team logo
view all
Advertisement





Play all(60)