Programming_Basics

5436 Cyber Cats Programming Resources

GrumpyCatProgrammer1

Overview

This document provides instructions and tutorials of essential software tools, programming concepts, and control systems utilized by the Cyber Cats programming team

New students should complete the self guided tutorials in sections 1-2 prior to the start of the season Returning students should expand their knowledge with advanced tutorials in either control systems or programming concepts.

  1. Tools
    1. Software
      1. Installation guide
    2. Collaboration Tools
      1. Git
      2. Github
  2. Basic of Java Programming
    1. Lesson 1
      • Anatomy of a Class
      • Data Types
    2. Lesson 2
      • Classes
      • Data Structures(Arrays, Arraylist)
  3. Advanced Java
    1. Inheritance
    2. Interfaces
    3. Functional Interfaces
    4. Stream
  4. WPILib
    1. Simulation
    2. Dashboards & Network Tables
    3. Subsystems
    4. Commands
      • Scheduler
    5. Autonomous
      • Path Planner
    6. Log Files
    7. Driver Station
  5. Hardware
    1. CAN Setup
    2. Radio Programming
    3. Firmware Updates
      • Phoenix Tuner
      • REV Hardware Client
      • RoboRIO
      • Limelight
    4. Calibration
      • Swerve Drive Kinematics
      • Swerve drive turning motors / Cancoders
      • Limelights
      • Pigeon
  6. Control systems
    1. PID Controllers
    2. State Machine
    3. Vision
    4. Power Management