# 編碼器 / CAN 編碼器 / 馬達
FRC 中的馬達控制精準性會依賴感測器,其中「編碼器(Encoder)」扮演關鍵角色。
---
## 一、編碼器(Encoder)基本概念
| 類型 ( 根據使用方式 ) | 說明 |
|----------------|--------------------------------------|
| Incremental | 相對編碼器(常見於旋轉、移動) |
| Absolute | 絕對編碼器(可記錄"精確"位置) |
| Rotary | 旋轉型編碼器,偵測軸旋轉角度或圈數 |
| Linear | 線性型編碼器,偵測直線移動距離 |
回傳資訊:
- 位置(Position)
- 速度(Velocity)
- 有些可推導加速度(Acceleration)
[WPILib Encoder Class Docs](https://docs.wpilib.org/en/stable/docs/software/hardware-apis/sensors/encoders-software.html)
---
## 二、常見編碼器類型與接法
### **CAN-based encoder(透過 CAN 傳輸)**
- 直接整合進 CAN 裝置(如 Spark MAX、Kraken、Talon FX)
- 資料透過 CAN 匯流排傳輸 → 不占用 RoboRIO IO 口
- 可取得速度、位置、溫度、電流等資訊
常見:
- Spark MAX + NEO(整合型感測器)
- Kraken X60(內建高解析度感測器)
- Talon FX(內建 Falcon 500 的感測器)
[Spark MAX Sensor Modes](https://docs.revrobotics.com/sparkmax/sensors/using-encoders)
---
### **Absolute Encoder(絕對式)**

- 通電後可直接讀出角度位置(不需歸零)
- 支援 PWM、Analog、CAN 等通訊方式
例子:
- 用於 Swerve 輪子方向/ Arm 角度等需絕對位置的情境
- CTRE CANcoder
---
## 三、常見馬達與感測器整合
| 馬達型號 | 感測器類型 | 特點 |
|------------------|--------------------------------|---------------------------------------|
| NEO| Hall Sensor(內建) | 高效能無刷馬達,搭配 Spark MAX 使用 |
| Kraken X60| 高精度感測器 ( 內建 ) | 新型高功率馬達,支援 CAN 通訊 |
| NEO 550 | 較小型無刷馬達 | 適合 Intake、Shooter 等快速應用 |
| CIM / Mini CIM | 無內建感測器 | 可額外安裝 Encoder |
---
## 四、選擇建議與實戰經驗
| 應用場景 | 建議搭配 |
|--------------------|----------------------------------------|
| 驅動系統(Swerve) | ( NEO ) + Kraken + Absolute Encoder |
| 機械手臂(Arm) | NEO + CANcoder + Spark MAX |
| Shooter | NEO550 + Spark MAX |
| Intake | NEO550 / Brushed + 無需編碼器 |
---
## 延伸 / 官方連結
- [WPILib Encoders 概覽](https://docs.wpilib.org/en/stable/docs/software/hardware-apis/sensors/index.html)
- [REV Motor Guide](https://docs.revrobotics.com/brushless/)
- [FRC CAN Network 教學](https://docs.wpilib.org/en/stable/docs/software/can-devices/index.html)
- [REV NEO Documentation](https://docs.revrobotics.com/brushless/)
- [Falcon 500 Overview](https://store.ctr-electronics.com/falcon-500-powered-by-talon-fx/)
---
### <font color="#f50"> ! 都看完了,我要回家 ! </font>
## [好](https://hackmd.io/ACI3uWclSO6rAX9mMNIxcQ)