Programming

Runnymede Robotics uses Java to program the robot. During the pre-season, the team focuses on basic Java skills. For skills development, we use problems from the Canadian Computing Competition, Advent of Code, Coding Bat, Don Mills Online Judge (dmoj) and other exercises.

Toronto Coding Collective

Runnymede Robotics is publishing a coding framework for FRC teams under the Toronto Coding Collective website.

For the 2019 Destination Deep Space season, FIRST will be changing the supported software environment from eclipse to MS Visual Studio Code. This change has the potential to impact teams. More details can be found at the wpilib site. Runnymede will be posting more information on the Toronto Coding Collective site as we come up to speed on the new environment.

The Toronto Coding Collective is:

  • 1310 - Runnymede Robotics
  • 907 - East York Cybernetics "The Cybernauts"
  • 2935 - NACI Robotics
  • 4343 - MaxTech
  • 5596 - Wolverines
  • 5834 - R3P2
  • 5911 - PARAGON
  • 6009 - CYBERHEART
  • 6867 - JPCI Jaguars
  • 6924 - Hogarth Hornets
http://www.torontocodingcollective.com/home

Programming Lessons

For the 2019 Destination Deep Space pre-season Runnymede Robotics has not yet determined if it will run pre-season programming lessons. We may have some lessons in the new year once we become familiar with the new FRC coding software environment.

Some of the past pre-seaon projects and solutions are listed here:

As a warm up project we created a Sudoku Solver.

Some people asked for a solution to the dmoj puzzle A plus B (Hard). Here is that solution.

Typical Topics we cover in the pre-season are:

  • overview of the software components
  • looking at a basic drive base
  • creating our first FRC program
  • reading the joystick and turning a wheel
  • proper structure of an FRC program (user input, commands, subsystems)
  • using encoders to measure speed and distance
  • printing data on the SmartDashboard
  • PID controllers
  • driving in a straight line (without a gyro)
  • stopping at a distance or a limit switch
  • using the gyro and PID control to drive very straight and turn with precision
  • writing more commands (drive straight, turn to angle)
  • intro to autonomous programming
  • complex auto patterns (chaining commands)
  • ultrasonic sensors