Our programmer left...

The team358 website is a great source for isolated pieces of code to do specific jobs. It has helped me many times.

Three years ago, our C programmer left the team and we started from scratch learning LabView. I relied heavily on http://www.frcmastery.com/. They have many tutorials on not just learning LabView, but they are specific to FRC. I just checked and they have not updated tutorials to this years game, but for learning labview in general, the 2010 and 2011 tutorials are still appropriate as the framework has not changed much.

You can also find general Labview tutorials at NI’s website. Some that I have used in the past are


and don’t be afraid to ask lots of questions!

And there’s no possible way he would give it back? Even for a few minutes while someone copies it?

Are you sure he programmed anything?

I see your team is going to Alamo in week 1, so you don’t have a lot of time. Start by watching the FRCMastery tutorials. After that, I’d recommend you find a nearby team to come over and help (or who you could go visit for help). If that doesn’t work out, you can send me a Private Message (check the forum FAQ if you don’t know how) and I’ll set aside some time this weekend to work with you remotely.

As soon as you get to your regional next Thursday (after the inspector has come by and signed off on you getting the robot unbagged, and most of the teams have made it to their pits), go to the Pit Admin desk and ask the Pit Announcer to say “Team 3417 needs Labview help”. That should get you experienced people to help troubleshoot whatever you come up with between now and then, since you won’t be able to test it with the robot in the bag.

Don’t panic. Getting you rolling shouldn’t be all that bad. Vision may be a bit of a stretch, but getting you to some degree of functional is very possible.

I plan to be in San Antonio on Thursday, and I know a bit about LabVIEW.

Watch the videos and look at the sample code and examples. Ask questions on the LV forum, and I’ll be your tutor – if you need me.

In DC a few years ago, the Puerto Rico team had to build a replacement bot due to customs issues. Their programmer was a few thousand miles away as well. The team captain and I talked about what they wanted, then he programmed the robot as I pointed out where things are in the palettes. Twenty minutes later we had code that was waiting for the electrical to be finished. His English improved, my Spanish improved, and it was a very memorable experience.

Greg McKaskle

Thanks for all the help so far guys! I’ve been using the basic tutorials on the Labview program so far and I pretty much copied and pasted the joystick refrence on Team358.org’s site twice so that I could have two different joysticks. (left and right) I put the parts from the three different VI’s in a picture so you could tell me if I set the up correctly:

Looks good to me.

Why are you programming the robot now? Are you the team captain and are taking charge of the role? Do you have someone else currently learning with you and helping? Do you have the time with homework, etc., to do this? I ask because we don’t want to make the situation worse by letting you to get burned out.

How much of your robot’s capabilities are you planning to program? Do you just want to get a rolling robot and some basic functions? What mechanisms does your robot have? I think we would all suggest to try not to program every advanced thing on your robot, which will be too hard with your time and experience. Only do what you really believe you can manage.

Looks like you’ve got a great start. Yes, team358’s website looks great, it’s the best one I’ve ever seen, they’ve compiled the links to the best resources. :slight_smile:

Be aware that programming is another big area of the robot and can get tricky. Be prepared and willing to research and have some dedication to the task.

Well, I added two motors to be controlled by the left and right spindle thingys on the joysticks. Did i do it right?

It looks like you’re making good progress.

If what you want is for the speeds of each of the two motors to be controlled by the throttle on a different joystick, then this looks correct. If you’d like them to go the same speed, you could wire them both to a single joystick throttle instead, which might be easier for the driver(s) to deal with.

If that’s what you want it to do, yeah, it looks correct.

Do you think you would want your cannon to be activated by a button instead? Like On/Off? That might be better, but I’m not sure.

You should also get some basic code to control your drive motors. That’s also very important.

Yeah, the idea is that the two different sliders will control the speed of the two different motors to allow for variation of speed and control. I just programmed it so that the trigger on the right joystick. (number one) would fire a solonoid and upon release, cause the solonoid to come back. Did i do that correctly?

Connecting a boolean to a Solenoid Set can work, but one typically wires either a constant Forward, Reverse, or Off.

Our intention is to fire a piston and it to retact in one button press. Is this configured correctly?

The Solenoid Set function’s value input expects an enumerated value of Off, On, Forward, or Reverse. Those are mapped to integers 0-3, respectively. If you provide a boolean input, a single solenoid is supposed treat a false as Off and a true as On. I don’t know if it would work right for a double solenoid. It’s likely that you’ll see the solenoid engaged as both forward and reverse at the same time, leading to an indeterminate state when the button is released.

The typical way to control a double solenoid from a button is to use a case block controlled by the button boolean value. In the true case, set the solenoid Forward, and in the false case set it Reverse. You can also use a Select (found in the Comparison subpalette) to choose between a Forward and a Reverse constant to feed to the Solenoid Set value.

I get what your saying but is what I’ve done serve my purpose of pulling the trigger and releasing it causing the piston to fire and retract back?

No, what you wrote will not work, because it’s a double solenoid.
It would only work with a single solenoid.

Crap, that’s the only way I thought I could do it. How can I fix this?

First, disconnect the boolean from the solenoid set. Then hover over the port it was connected to. You will see that it is blue indicating either an integer or enum value is expected. Right click on this, and select create -> constant. This will make you an enum with the right values in it. Copy this so that you have two of them.

Now, use a Select from the comparisons palette (row three, icon 3 - looks like a big triangle with a ?, T, and F). Feed your button into the S port of that, wire one of the enums into each of the T and F ports, and set the value of the dropdowns to Forward and Reverse (in the appropriate places). Wire the output to the Solenoid Set.

Because a picture is worth a thousand words…