Learning FRC programming without a robot

Hi! I’ve been a lurker on Chief Delphi for a while and only very recently created an account. I’m sure there are (a million!) resources out there on how to program a robot, but I don’t have access to a robot right now. How would you all suggest learning the basics of programming? For Java, specifically.

I have a very very small knowledge base I’m starting from (i.e. I know RobotDrive drives a robot, if statements and for and while loops). So should I just start reading the wpilib documentation?

I want to get to the point where I’m comfortable with programming with a button on a joystick, which will trigger a motor or pneumatic to do something. And sensors. Sensors and reading their outputs or something. :confused: :confused: :confused: And then I want to look at more complex, cool stuff like vision or motion profiling and figure it out (and implement it)! that (probably naive and stupid) dream, but gotta start somewhere!

So, uh, any help or guidance would be very much appreciated! :smiley:

How I learned was here.

If you just do the top 4 trails covering the basics (Getting Started through Collections), and make an effort to run the programs from the lessons, mess around with it, and learn how it works, you’ll get a good foundation pretty quickly. That’s how I got started.

1 Like

I’ve started going through Getting Started, and it’s really interesting to look at the explanations on Java runs code on different platforms. Thank you for the pointer!

System.out.println(“Hello World!”); :smiley:

I’ve started going through Getting Started, and it’s really interesting to look at the explanations on Java runs code on different platforms. Thank you for the pointer!

System.out.println(“Hello World!”); :cool: :cool: :cool: :cool:

For our team, we have something call robot-in-a-box which is a configure-to-the-max electronics board in an aluminum case. We also have a pneumatics-in-a-box too. Together, these become our programming training platform. We can connect a battery, some motors, some pneumatic cylinders and even camera and portable target. Students will learn how to turn motors, actuate pneumatics and even do a little vision processing. This summer, we also want to build a training robot in FTC form factor and put our FRC electronics-in-a-box on it. Training with a 120-pound robot is a little intimidating for beginner programmers but an FTC form factor robot would be manageable.

Once you get a grasp on Java and WPILib fundamentals, it might be interesting to go through other teams’ code and try to understand what it does and how the different components work together.

That’s a great tip. I went through 254’s code this offseason and modeled our code off their layout (with a few modifications of course :rolleyes: ) and it was a very good learning process. One of the most important skills you can learn as a programmer in my opinion is proper organization and encapsulation for OOP.

That’s a great idea! I’m going to get our team to do something like this soon for our off-season programming training.

I don’t think my skill is up to that level yet, but I’ll keep that in mind. :stuck_out_tongue:

I have a pretty basic and stupid question actually… What is the point of interfaces for objects? They’re just a list of methods?? Are they used just to make sure that certain methods are used in an object? And if they’re a way to abstract methods for multiple objects, then can’t we just use classes or superclasses?

Thank you for your responses! I’m (evidently) still in my toddler programming phase, but I’m excited to learn more!