---
# System prepended metadata

title: FRC 8569 工程筆記

---

# FRC 8569 工程筆記

![FRC 8569 - Zenith Polaris](https://i.imgur.com/ZCfge8I.png)

## 目錄

:::success
[TOC]
:::

## 機構組

### 收球機構

#### 2021/3/7（日）

> **進度**
* 收球機構簡單化
* 「收球機構簡單化」利用1根氣動棒配合角件連結外殼和底盤
* 採買零件

> **問題**
* 螺絲和角件鎖孔有誤差

> **解決方案**
* 找接近的尺寸，再自行加工，把鎖孔鑽大

> **備註**
* 「螺絲牙距」1分是 1英吋×1/8
* 採買零件需備「游標卡尺」和「捲尺」，事前把物件尺寸量好
* 活動需事先規劃詳細行程、時間(避免浪費時間)

---

#### 2021/3/9(二)

> **進度**
* 因為S1螺絲尺寸不符合L角鐵的孔，所以利用S1螺絲把L角鐵孔鑽大，以利鎖上氣動棒 (圖一)
* 因為氣動棒直徑與2角件有誤差，所以利用鑽孔將其鑽大 (圖二)


<img src="https://i.imgur.com/zqCemJB.jpg" width=300> <img src="https://i.imgur.com/O1jJp6J.jpg" width=300> 
<small>(圖一)</small>

<img src="https://i.imgur.com/VSjeT9g.jpg" width=605>

<small>(圖二)</small>

---

#### 2021/3/10(三)

> **進度**
* 把3角件穿過氣動棒，再安裝至機台上(圖三)
* 把繪製好的收球外殼安裝上氣動棒

> **問題**
* 因為氣動棒中間的桿件可旋轉，導致收球外殼如果只鎖上一個角件，整體外殼的重量會造成其無法平衡

> **解決方案**
* 利用抽屜滑軌來支撐及平衡收球外殼的穩定性

<img src="https://i.imgur.com/38vtw0U.jpg" width=200>

<small>(圖三)</small>

---

#### 2021/3/11(四)

> **進度** 
* 利用抽屜滑軌來支撐及平衡收球外殼的穩定性(解決昨天遇到的問題)

---

#### 2021/3/12(五)

> **進度**
* 利用L 角件 把抽屜滑軌和機台底盤與收球外殼連接
* 再把 2-1/8“ NPT流量控制(am-2897)安裝上氣動棒
* 利用 2-1/8“ NPT流量控制(am-2897)讓收球機構可同時伸出和收回

> **問題**
* 因為氣動作動時會讓滑軌的螺絲和氣動棒的螺絲鬆脫(圖四)

<img src="https://i.imgur.com/LaaoU1S.jpg" width=605>

<small>(圖四)</small>

---

#### 2021/3/14(日)

> **進度**
* 利用 角片固定L形鐵，使氣動棒穩固
* 把外殼加長使滑軌可以鎖上，讓整體更穩定(圖五)

<img src="https://i.imgur.com/EpJPoCM.jpg" width=300> <img src="https://i.imgur.com/wCoe0ey.jpg" width=300>
<small>(圖五)右圖為加固後的樣子</small>

> **相關圖片**

<img src="https://i.imgur.com/i2G9f49.jpg" width=200><br>

<img src="https://i.imgur.com/4r191Se.jpg" height=182> <img src="https://i.imgur.com/Z8Or3TN.jpg" height=182>

---

#### 2021/4/12(一)

> **進度**
* 研究赤兔軟體和光固化機器

> **問題**
* 收球機構缺少固定中軸的零件

> **解決**
* 利用光固化機器列印零件(因為利用3D列印機誤差值過大)

---

#### 2021/4/14(三)

> **進度**
* 完成零件設計及製造(圖六)
* 修改收球氣動裝置，架設位置(圖七)

<img src="https://i.imgur.com/i2G9f49.jpg" width=200> <img src="https://i.imgur.com/70HOPmg.jpg" width=137>


<small>(圖六左，圖七右)</small>

> **問題**
* 收球斜坡需架設木塊來提高斜坡高度

> **解決**
* 把整個收球氣動裝置外移到車體支架，並架設底板固定

---

#### 2021/4/15(四)

> **進度**
* 完成單邊收球氣動裝置外移工程(圖八)

<img src="https://i.imgur.com/8S31p4O.jpg" width=200>

<small>(圖八)</small>

> **問題**
* 底板靠近車架內部無空間鎖上螺絲，也較難維修

> **解決方案**
* 利用束帶固定底板在車架上

待補...
<br>









## 程式組

### FRC JAVA 框架

[![](https://forthebadge.com/images/badges/made-with-java.svg)](https://github.com/SenCha930511/FRC_8569) [![](https://forthebadge.com/images/badges/powered-by-black-magic.svg)](https://github.com/SenCha930511/FRC_8569)

![](https://i.imgur.com/6swJFv1.png)

---

#### Main.java

> **主要啟動機器用，勿動**

---

#### Robot.java

> **機器人初始，類似於Arduino的程式**

**函式用法**

```java
public void robotInit()
```
* 在機器人開啟時會==執行一次==
<br>

```java
public void robotPeriodic()
```
* 機器人開啟(除了disable的其他模式)後==重複執行==
<br>

```java
public void disabledInit()
```
* 當機器人進入Disabled模式時==執行一次==
<br>

```java
public void disabledPeriodic()
```
* 當機器人進入Disabled模式時==重複執行==
<br>

```java
public void autonomousInit()
```
* 當機器人進入自動模式時==執行一次==
<br>

```java
public void autonomousPeriodic()
```
* 當機器人進入自動模式時==重複執行==
<br>

```java
public void teleopInit()
```
* 當機器人進入TeleOperate模式(一般操作模式)時==執行一次==
<br>

```java
public void teleopPeriodic()
```
* 當機器人進入TeleOperate模式(一般操作模式)時==重複執行==
<br>

---

#### RobotContainer.java

> **宣告Command、Subsystem、操作工具(搖桿等)以及設定搖桿動作**

**函式用法**

```java
public RoboContainer()
```
* 在這裡宣告各種Command、Subsytem
<br>

```java
private void configureButtonBindings()
```
* 設定搖桿動作對應的Command
<br>

---

#### Constants.java

> **宣告各種常數(不會在執行中更改的數值)，例如：搖桿ID、按鈕ID等**

---

#### Commands資料夾

> **通常會搭配Subsystem使用，存放各種Command檔案，Command檔案格式如下**

**函式用法**

```java
public FileName()
```
<small>*註:FileName為Command檔案的名稱</small>
* 宣告要使用的Subsystem
<br>

```java
public void initialize()
```
* 當Command被呼叫時==執行一次==
<br>

```java
public void excute()
```
* 當Command被呼叫時==重複執行==
<br>

```java
public void end()
```
* 當command結束時==執行一次==
<br>

---

#### Subsystem資料夾

> **通常會搭配Command使用，存放各種Subsystem檔案，Subsystem檔案格式如下**

**函式用法**

```java
public FileName()
```
<small>*註:FileName為Subsytem檔案的名稱</small>
* 當Subsystem被呼叫時==執行一次==
<br>

```java
public void periodic()
```
* 當Subsystem被呼叫時==重複執行==
<br>

### 問題與解決方案

#### 2021/04/02(五)

> **問題**
* 轉向時左右相反

> **解決方案**
* 將 `moterLeft_1.setInverted();` 關閉

<img src="https://i.imgur.com/13Ja2y3.png" width=400>
<br>
<br>

* 將 `drive.arcadeDrive` 之 `turn` 不乘以 `-1`

![](https://i.imgur.com/PfRZpzs.png)



### 相關資源

:::warning
Github專案
> https://reurl.cc/82GkXg

Command 架構
> https://reurl.cc/pxdGvQ

> https://reurl.cc/ARq56K

> https://reurl.cc/DZ90Kj

Spark Max 程式範例
> https://reurl.cc/q1dEnq

氣動程式介紹
> https://reurl.cc/mvngR1

WPILib 2021 更新
> https://reurl.cc/pxdG9Q

2021 版 FRC Game Tools
> https://reurl.cc/2o0nKr

roboRio使用相機教學
> https://reurl.cc/oxLj85

Java程式教學
> https://reurl.cc/EZ7AVm
  
> https://reurl.cc/Mkve3L

HTML教學
> https://reurl.cc/V569YZ
:::

## 電機組


### 往上長支架與氣瓶支架

#### 2021/4/13 (二) 

待補...

### 相關資源

:::warning
路由器設定
> https://reurl.cc/gmd84N

CTR設定
> https://reurl.cc/EzA2V1

配線
> https://reurl.cc/R1N6Wx

設定roboRIO(須完成配線後才能進行) 
步驟: 輸入隊號->更新韌體->刷入映像檔->編輯啟動設定
> https://reurl.cc/VX93zR

控制用硬體概觀
> https://reurl.cc/D60vOd

MAXI Blade Fuses 10安培保險絲
> https://reurl.cc/d5YV2M
 
MAXI Blade Fuses 20安培保險絲
> https://reurl.cc/Xkze5e

教學及規格書
> http://www.ctr-electronics.com/products
:::


## 公關組

### Logo設計

![FRC 8569 - Zenith Polaris](https://i.imgur.com/ZCfge8I.png)

待補...