###### tags: `程式組工筆`
# 20220522 ~ 20220528
# 20220522
## Aslan
Today is the first day that freshmen join this team. I don't want to give too much info to them. So, after the freshmen's entrance meeting, I just have them reintro themselves and didn't give them any homework.
### Work Progress
* Freshmen's Entrance Meeting
* Programming Team Meeting
1. 4th self-intro
2. 5th self-intro
3. Make 5th know how we will work this season
* We will work in two group
* One is **Research and Development Group** ➨ At least include Albert and Henry. Btw, There will be about three person in this group
* Another is **Training Group** ➨ Everyone except R&D Group
* There will be a Programming Team Routine Meeting on Tuesday
* Approximately 30 mins, or less
### Summarize
Today is a very easy day. It isn't because I want to rest, it's because I dont want to give too much pressure to freshmen, so that thy lost their passions to FRC.
Just as what I said in the programming meeting, ***I hope you're glad to be on this team, after all I don't think anyone wants to be unhappy learning something they have to fase every week even every day***.
Take me for example, FRC is a place that gives me happiness and new skill. My original intention is make everyone like, even love, FRC this game, I want to share this feeling to everyone in programming team, so do 7130.
### Future Outlook
Like I always say,
> **I want to make the 7130 programming team the strongest programming team in Taiwan !**
# 20220526
## Aslan
### Work Progress
* Teching Freshmen
1. Start programming
2. Basic Motor Declaration
<br>
```java=
WPI_TalonSRX LFront = new WPI_TalonSRX(kLFrontChannel);
MotorcontrollerGroup
```
3. Control Mode
* Init and Periodic
* Robot, Autonomous, Teleop, Disabled, Test, and Simulation
4. Markdown
1. *Word*, **Word**, ***Word***, and ==Word==
2. Title
3. Spolier
4. Code Block
5. Success, Info, Danger, and Warning
* :::spoiler Examples
* Success
:::success
:::
* Info
:::info
:::
* Danger
:::danger
:::
* Warning
:::warning
:::
:::
### Summarize
I think today is very easy to freshmen, some of them might think it is too difficult to understand ? So, I think I can spent more time on explain the code or explain another way.
### Teaching REC
[Link to Youtube](https://youtu.be/IXHVSwirvrE)
### Remark
1. The speaker next Tue wil be LINLIN
2. The recorder in programming team might be FUNDAI ?
3. IDK I don't know what I am doing now : )))))
4. Ask some question about the class last Thu. in the programming team meeting next Tue.
## 倪睿宏
Today I learned a few things. Such as :
* FRC's Variable types
* WPI_TalonSRX
* MotorControllerGroup
* DifferentialDrive
* Methods
* Init & Periodic
* Some basic Markdown
Also, I encountered some problems. For instance, at the beginning of the class, I couldn't successfully import *WPI_TalonSRX*. So I asked Aslan, and I realized that I forgot to import *Phoenix.json*.
Except the FRC courses, I also learned Java via [a course on udemy](https://www.udemy.com/course/develop-minecraft-plugins-java-programming/). Though it's a course about Minecraft plugin developing, it can also help me lay the groundwork for Java basics.
One more thing. I have a question:
```java=
public static void main(String[] args) {
System.out.println("Hello world!");
}
```
What does ```args``` mean? And why put it inside brackets?
:::info
p.s. HackMD is so freaking fun!!!
:::
## 粘家榆
This is the first time to take this class. At the begining, I just download the wrong program. After that, I almost missed the progress, and I felt really nervous. Thanks to the REC. I can learn it again and again. I also found that I didn't download Phoenix and REVLib. Aslan toid me the solution to fix the problem.[link](https://hackmd.io/@FRC-7130-5th/SyMolfXmq)
This time I learned:
1. MotorControllerGroup LeftMotor = new MotorControllerGroup(LeftFront, LeftRear);
2. WPI_TalonSRX LeftFront; LeftFront=new WPI_TalonSRX(kLeftFrontChannel)
3. Init, Periodic,autonomous
4. How to write markdown
## 施暄庭
During the class, I found it hard to catch up with everyone cus I accidently downloaded the wrong app. After the class, I successfully downloaded phoenix tuner, driver station, and also watched our class video again just to make sure that I can get it.
Due to the troubles I encountered in the first class, I decided to start to learn the basic JAVA syntax by myself, hoping that I can understand better next time.
The link that I use to learn JAVA ➨ [Link](https://hackmd.io/@ItisCaleb/H109ie_Kw/%2F%40ItisCaleb%2FByZnx4z7v)
But there's a paragragh from the link above that has been puzzleling me a lot. It's about recursive function, and below are the code of that question.
:::spoiler A Question About Hanoi Tower
```java=
public static void main(String[] args){
Tower(5,"A","B","C");
}
static void Tower(int n, String a, String b, String c){
if(n==1){
System.out.println("Move disk "+n+" from "+a+" to "+c);
}else{
Tower(n-1,a,c,b);
System.out.println("Move disk "+n+" from "+a+" to "+c);
Tower(n-1,b,a,c);
}
}
```
:::
<br>
I can't understand why the code can kept on runnig, though there's no loop like while or for. To solve the question I'll try to ask others for the answer and continue learning JAVA, hoping that I can improve my programming skills.
## 彭柏鈞
In the class, I've learned the common variables(e.g. leftStick_X)and functions(e.g. WPI_TalonSRX)that are used in practice robot. By the way, everything seemed fine.
After a long learning and programming, I closed VSCode to take a short break. BUT ! When I restart it, I just forgot where did I save the data...
After many times of tries, and many times of feeling like the picture below
:::spoiler The Picture

:::
<br>
I finally found it, then created a new file to copy the code from that one, than deleted it.
:::spoiler How did I find it
* [Click me](https://www.youtube.com/watch?v=dQw4w9WgXcQ)
:::
<br>
At last, I've learned many things at here, and I hope I can approve my programming skills at the following class!
## 黃湲宸
In this class, I had learned many things, such as:
1. The basic program
:::spoiler Code
```java=
WPI_TalonSRX LFront = new WPI_TalonSRX(kLFrontChannel);
MotorControllerGroup LeftMotor = new MotorControllerGroup(LeftFront, LeftRear);
```
:::
2. Init, Periodic, Autonomous, Teleop
:::spoiler Example

:::
3. How to write markdown
Actually first I can't catch up, and also I had downloaded the wrong app. But after the class, I had watched the video(REC)again and again, so I can understand what he was teaching.
## 陳宇浩
This class I learned how to initialization VS Code. When you just open the VS Code, the welcome screen will show in frony of you. Then click the insignia Ⓦ. After that you can enter key word "Creat", which means "Creat a new project", you can see the new file and you can enter the title and your team number. But don’t forget to choose tenplate and java. If you finish every steps above, you should click Ⓦ, and enter key words "libraries" in the prompt window. You can see four choose all need to click. And I learn how to declare variable about motor, and learned about the program to robot contrl box to the game contrl butten how does it work. And I learned contrl robot function. And I learned about why does the robot work.
1. The problem I'm having
1. I found I didn't download something, so I can't see somthing when I enter libraries.
2. I don't know after I download "REVLib-offline-v2022.1.1" what do I need to do.
3. I never been able to start create.
2. The problem answer I found
1. I found I didn't download "CTRE_Phoenix_Framework_v5.21.2.1" and "REVLib-offline-v2022.1.1"
* After I download them I can found the three choices.
::: spoiler Picture

:::
2. You have to open the zip and move them to the C:\Users\Public\wpilib\2022
::: spoiler Picture

:::
3. **Choose the "template" and "java" is very important**
Because if you forgot to choose "template" and "java" VS Code will show
::: spoiler Picture

:::
3. My thoughts
This is my first time come into contact with industrial program and markdown. Although future have a lot to learn and I will encounter many difficulties, I will still be like this ask when I have a problem, and never give up!
## 蔡甯伊
This is my first time learning about Java. I'm interesting in the "public" in the program,so I search for more about it:
Before categorizing member list, "public" assing's them can be taken from any funtion.
Before base class name,"public" assing's base class public use and in protect members,respectively are derivative category base class public use and in protect members.
Members in category's preset is "private",structure is "public".
I'm still lack of programming technical ability, so I'll start from Python and catch up teamates.
## 謝亞諺
:::spoiler DRY TALK
:::spoiler WARNING IT'S VERY DRY
:::danger
The day today is the first that the teaching process begin.I am glad to see everyone is curios about the programming.
:::
### Working process
* Recording the tutorial
* The file size is ==**2GB**==
* Upload the video to youtube
* It takes me ==**2 hours**==
* Designing the cover take a lot of time
* :::spoiler SOMETHING WANT TO TELL YOU
:::spoiler I
:::spoiler JUST
:::spoiler WANT
:::spoiler TO
:::spoiler SAY
:::spoiler GIVE ME BACK THE HOMEWORK SCORE
F***
:::
* Answer some question from freshmen
* Making some ==**GAYTING**== meme
* :::spoiler PICTURE

:::
* Learing some HTML
## 江宥伶
I found out that I downloaded the wrong app during the class. I finally downloaded the right app after class. Fortunately, there is a video file, so I can learn it again ang again. When I felt everything was perfect, and started learning programs, I found out that I hadn't downloaded sth, so I coudn't do them well, so I asked others and they helped me a lot, tks!
Oh and when I was programming, I deleted sth by accident, but I don't know how to restore them so I typed them one by one and finally finished!
## 吳玠廷
sleeping
## 魏旭霆
There were three softwares in total that had to be downloaded and I did. But I don't know why when I enter "manage vendor libraries", I still can't check the three libraries. I hope I can ask the senior in the next class.
And we also learn how to announce the motor, after waching the video for many times, I finally understood a little bit.
## 林俊彥
I participated in Po Hao's interesting class he had tought us input and because i had reset my computer so i can't do any programming so i doenload them during the class .
:::spoiler what i have learnt

How to import different motor
How to make the motors move
:::
## Henry Chen
I was reading the article about Planning Motion Trajectories for Mobile Robots Using Splines, and one of the most commonly used splines are the cubic bezier and the hermite splines. These splines are parametric meaning that they can be graphed anywhere on the 2D plane and doesn't need to follow the rules of a standard mathematical function (they dont have to complete the verticle line test). However it is going go be challenging as it is very hard to compute the bezier curve's length and derivitave (curvature) and the increments for B(t) is also going to be challenging
link to the paper
http://www2.informatik.uni-freiburg.de/~lau/students/Sprunk2008.pdf
## 王敬銜
:::spoiler worknote
[20220526](https://hackmd.io/k2JbAjnaTpiCfibI3ZBkuQ)
:::