---
# System prepended metadata

title: FRC 8584 Programming Resource
tags: [資源與教學, Programming]

---

# FRC 8584 Programming Resource
😘(本筆記用於提供FRC程式學習的管道)

## WPILIB

### [FRC Document Basic Programming](https://docs.wpilib.org/en/stable/docs/software/basic-programming/index.html)

### [Command Base Advanced Programming](https://docs.wpilib.org/en/stable/docs/software/commandbased/index.html)

### [WPILIB example code](https://docs.wpilib.org/en/stable/docs/software/examples-tutorials/wpilib-examples.html)

## Limelight 

### [Limelight Doc](https://docs.limelightvision.io/docs/docs-limelight/apis/limelight-lib)

### [Limelight java API](https://limelightlib-wpijava-reference.limelightvision.io/frc/robot/package-summary.html)

### [LimelightHelper](https://github.com/LimelightVision/limelightlib-wpijava)
<p>
    直接把整個LimelightHelper.java抓進專案，然後去找API怎麼用
</p>

## REV Robotics

### [REV frc api](https://codedocs.revrobotics.com/java/com/revrobotics/package-summary.html) 裡面很多關於REV設備(Ex:SparkMax)的API介紹

### Encoder

#### Through Bore Encoder
:warning: 用Brushless motor時，motro原有的Encoder線也要接
使用外置Encoder，記得configure要寫
```
config.closedLoop.feedbackSensor(FeedbackSensor.kAlternateOrExternalEncoder);
```
更改 判斷位置時使用的Encoder


## CTRE

### [Phoenix 6](https://api.ctr-electronics.com/phoenix6/release/java/) (Talon FX, CANcoder...)
### [Phoenix 5](https://api.ctr-electronics.com/phoenix/release/java/com/ctre/phoenix/sensors/package-summary.html) (有點沒用，太老)




## sensor們
### 紅外線
紅外線算是很常用的sensor
若是接在SparkMax上，寫
```
private SparkMax motor1 = new SparkMax(1,kbrushless);
public double getSensorValue() {
    return motor1.getAnalog().getVoltage();
}
```
使用analog得到的電壓判斷

若是接Roborio
```
private AnalogInput sensor = new AnalogInput(n);// n是roborio上的port號碼

//拿值
public double getSensorValue() {
    return sensor.getVoltage;
}
```