wiki:ControlSystems/SoftwareTeam/Training/GettingStarted

Welcome to Software!

If you're not using a team laptop, you'll need to get yours setup; follow the instructions here

Write your first Java Program(s)

Java is one of the most popular programming languages and is taught in most high schools because it is used for the AP Computer Science exam. Java is part of a family of very similar languages: C, C++, C#, Java and when you learn to program in one you can easily pick up the others. Like the large majority of FRC teams, 2537 uses Java to program their robots. For more on why we use Java, see here. Go through the lessons below in sequence to learn just enough Java to start programming robots:

  1. Hello World
  2. Variables
  3. Debugger
  4. Conditionals
  5. Loops
  6. Arrays
  7. Functions/Methods
  8. State Machines
  9. Object Oriented Programming (OOP)
  10. O.O. State Machines

Write your first Robot program(s)

Once you have learned some basic Java, you're ready to start writing your first robot programs. All of the Java skills you learned are directly applicable to robot programming; if you haven't finished the first Java Programs above, you should do so now. Writing Java programs to control a robot is similar to the Java programming you've already learned; there are three key differences:

  • The program you write must be transferred to the robot's computer (the roboRIO) where it will run
  • FIRST and WPI provide a framework that your robot program must run within; the framework manages many aspects of the robot for you.
  • WPI also provides a rich library of pre-written classes called WPIlib that makes robot programming faster and easier.

To run your robot code, you'll need a few things.

The examples below will teach you to program and use each part of an FRC robot; you should do them in order as they build on each other:

  1. Xbox Controller
  2. Ultrasonic Rangefinder
  3. Servo Motor
  4. DC Motor Control
  5. Encoders
  6. Autonomous
  7. Closed Loop Control
  8. Finite Automata
  9. PID Control
  10. Cameras/Video
    1. Streaming Video
    2. Adding Overlays
    3. Switching Cameras
    4. Targeting
  11. Shuffleboard

Build more functional robotics programs

Once you have learned how to use the various robotics sensors, motors, and controllers, your ready to apply that knowledge to building more useful robotics programs. If you haven't finished the first Robot Programs above, you should do so now; otherwise, go to:

LearnFunctionalRobotics

Git

Now that you've learned the basics of programming, it's time to learn some tools for essential software communication. Git is a popular program for software version control It allows you to save versions of your work and return to them later, see differences between versions, and even share work with other team members. Git is used widely in industry; expect to use it or something like it daily if you become a software engineer. Learn to use Git here.

Next Steps

Now that you've had an introduction to the tools your team uses and to basic Java and robot programming, continue your training, diving deeper into Java at the Java Gym.

Last modified 15 months ago Last modified on Feb 14, 2020, 12:44:04 AM