# Learning Robot Code

### FRCLadder

[FRCLadder](https://www.frcladder.com/) provides a series of videos that together serve as a great introduction into robot code. We've selected some below that are particularly relevant to the programming YETI does.

**Note:** The hardware and APIs available have changed quite a bit since some of these videos were published. However, the concepts and theory behind them remain the same.

#### Introduction to FRC Programming and Basic Drivetrain Code

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="315" src="https://www.youtube.com/embed/ihO-mw_4Qpo?si=23MMyKgGsUODgW9I" title="YouTube video player" width="560"></iframe>

#### How PIDs Work and How to Implement Them

**Part 1**: Dead Reckoning, Bang Bang, and using kP

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="315" src="https://www.youtube.com/embed/jIKBWO7ps0w?si=FYxEzyTxH8kPpNjk" title="YouTube video player" width="560"></iframe>

**Part 2**: Using kI and kD

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="315" src="https://www.youtube.com/embed/Z24fSBVJeGs?si=0kUkjiBfnQ8hoZy5" title="YouTube video player" width="560"></iframe>

**Supplemental**: A practical example of tuning a PID loop and how each value affects movement

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="315" src="https://www.youtube.com/embed/qKy98Cbcltw?si=qPtB1oUdjG7YQsqq" title="YouTube video player" width="560"></iframe>