Compare commits
10 Commits
a89e12eae1
...
1f6284cd6a
Author | SHA1 | Date | |
---|---|---|---|
1f6284cd6a | |||
c1bba4f4e7 | |||
11592b5953 | |||
0cf3ca5541 | |||
c27e0efeea | |||
a11b57514e | |||
293c56c544 | |||
b155cfa406 | |||
dae4dac38e | |||
c5d48f2281 |
@ -1,6 +1,7 @@
|
|||||||
default:
|
default:
|
||||||
|
image: node:latest
|
||||||
tags:
|
tags:
|
||||||
- docs
|
- node
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- build
|
- build
|
||||||
@ -17,6 +18,9 @@ build:
|
|||||||
|
|
||||||
deploy:
|
deploy:
|
||||||
stage: deploy
|
stage: deploy
|
||||||
|
before_script:
|
||||||
|
- apt-get update
|
||||||
|
- apt-get install ncftp
|
||||||
script:
|
script:
|
||||||
- ncftpput -R -u "$ftp_user" -p "$ftp_pass" pls5618.com docs dist/*
|
- ncftpput -R -u "$ftp_user" -p "$ftp_pass" pls5618.com docs dist/*
|
||||||
environment:
|
environment:
|
||||||
|
@ -1,23 +1,20 @@
|
|||||||
import { defineConfig } from 'astro/config';
|
import { defineConfig } from "astro/config";
|
||||||
import starlight from '@astrojs/starlight';
|
import starlight from "@astrojs/starlight";
|
||||||
|
|
||||||
// https://astro.build/config
|
// https://astro.build/config
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
integrations: [
|
integrations: [
|
||||||
starlight({
|
starlight({
|
||||||
title: 'Documentation PLS5618',
|
title: "Documentation PLS5618",
|
||||||
favicon: 'favicon.png',
|
favicon: "favicon.png",
|
||||||
sidebar: [
|
sidebar: [
|
||||||
{
|
{
|
||||||
label: 'Java',
|
label: "Java",
|
||||||
autogenerate: { directory: 'java' },
|
autogenerate: { directory: "java" },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Robot',
|
label: "Robot",
|
||||||
items: [
|
autogenerate: { directory: "robot" },
|
||||||
{ label: "Débuter", autogenerate: { directory: "robot/debuter" } },
|
|
||||||
{ label: "Nouveau Projet", autogenerate: { directory: "robot/nouveau_projet" } }
|
|
||||||
],
|
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
locales: {
|
locales: {
|
||||||
@ -25,10 +22,10 @@ export default defineConfig({
|
|||||||
label: "Français",
|
label: "Français",
|
||||||
lang: "fr",
|
lang: "fr",
|
||||||
},
|
},
|
||||||
}
|
},
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
|
|
||||||
// Process images with sharp: https://docs.astro.build/en/guides/assets/#using-sharp
|
// Process images with sharp: https://docs.astro.build/en/guides/assets/#using-sharp
|
||||||
image: { service: { entrypoint: 'astro/assets/services/sharp' } },
|
image: { service: { entrypoint: "astro/assets/services/sharp" } },
|
||||||
});
|
});
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
{"rule":"FRENCH_WHITESPACE","sentence":"^\\Q:::\\E$"}
|
|
||||||
{"rule":"FRENCH_WHITESPACE","sentence":"^\\Q:::note\\E$"}
|
|
||||||
{"rule":"DEUX_POINTS_ESPACE","sentence":"^\\Q:::note\\E$"}
|
|
6490
package-lock.json
generated
6490
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -10,9 +10,9 @@
|
|||||||
"astro": "astro"
|
"astro": "astro"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@astrojs/check": "^0.2.0",
|
"@astrojs/check": "^0.5.9",
|
||||||
"@astrojs/starlight": "^0.9.0",
|
"@astrojs/starlight": "^0.21.2",
|
||||||
"astro": "^3.0.6",
|
"astro": "^4.5.8",
|
||||||
"sharp": "^0.32.5",
|
"sharp": "^0.32.5",
|
||||||
"typescript": "^5.2.2"
|
"typescript": "^5.2.2"
|
||||||
}
|
}
|
||||||
|
@ -11,5 +11,3 @@ hero:
|
|||||||
link: /robot/
|
link: /robot/
|
||||||
variant: primary
|
variant: primary
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,4 +1,18 @@
|
|||||||
---
|
---
|
||||||
title: Classes
|
title: Classes
|
||||||
|
lang: fr
|
||||||
|
sidebar:
|
||||||
|
order: 4
|
||||||
---
|
---
|
||||||
|
|
||||||
|
Les classes sont les éléments les plus importants dans la programmation en Java
|
||||||
|
(ou la programmation orientée objet en général). Elles permettent d'avoir une
|
||||||
|
structure entre les variables et les fonctions.
|
||||||
|
|
||||||
|
## Classe et objet
|
||||||
|
|
||||||
|
On fait souvent références aux classes et aux objets en Java, mais quelle est la
|
||||||
|
différence entre les deux ?
|
||||||
|
|
||||||
|
Vous pouvez penser des classes comme des plans et des objets comme des objets
|
||||||
|
créés à partir de ces plans.
|
||||||
|
@ -36,10 +36,8 @@ deux chiffres. Cette méthode retourne une valeur de type `int` et prend deux
|
|||||||
chiffres en paramètre.
|
chiffres en paramètre.
|
||||||
|
|
||||||
:::note
|
:::note
|
||||||
|
|
||||||
Cette fonction n'existe pas véritablement, vous pouvez juste utiliser un `+`
|
Cette fonction n'existe pas véritablement, vous pouvez juste utiliser un `+`
|
||||||
pour faire une addition.
|
pour faire une addition.
|
||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
## Créer une fonction
|
## Créer une fonction
|
||||||
@ -49,22 +47,20 @@ retourne (si elle retourne quelque chose) et les arguments qu'elle pourrait
|
|||||||
demander. Par exemple, pour la fonction `add`, elle retourne un `int` et prend
|
demander. Par exemple, pour la fonction `add`, elle retourne un `int` et prend
|
||||||
deux arguments `int`.
|
deux arguments `int`.
|
||||||
|
|
||||||
```java
|
|
||||||
// type-de-retour nom(argument)
|
// type-de-retour nom(argument)
|
||||||
int add(int a, int b) {
|
int add(int a, int b) {
|
||||||
return a + b;
|
return a + b;
|
||||||
}
|
}
|
||||||
```
|
|
||||||
|
````
|
||||||
|
|
||||||
On commence par donner le type de retour (un `int` dans ce cas), suivi du nom de
|
On commence par donner le type de retour (un `int` dans ce cas), suivi du nom de
|
||||||
la fonction (`add`) et, entre parenthèses, les arguments de la fonction (`a` et
|
la fonction (`add`) et, entre parenthèses, les arguments de la fonction (`a` et
|
||||||
`b`, qui sont les deux des `int`).
|
`b`, qui sont les deux des `int`).
|
||||||
|
|
||||||
:::note
|
:::note
|
||||||
|
|
||||||
Certains mot-clés peuvent être ajoutés, mais ils seront vus dans la page des
|
Certains mot-clés peuvent être ajoutés, mais ils seront vus dans la page des
|
||||||
[classes](/java/classes).
|
[classes](/java/classes).
|
||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
Dans la fonction, vous pouvez faire les opérations que vous voulez. Si vous
|
Dans la fonction, vous pouvez faire les opérations que vous voulez. Si vous
|
||||||
@ -78,4 +74,4 @@ Si vous voulez que votre fonction ne retourne rien, donnez-lui le type de retour
|
|||||||
void fun() {
|
void fun() {
|
||||||
// Faire quelque chose
|
// Faire quelque chose
|
||||||
}
|
}
|
||||||
```
|
````
|
||||||
|
@ -43,9 +43,7 @@ Voici les différents types primitifs
|
|||||||
| `char` | Caractère |
|
| `char` | Caractère |
|
||||||
|
|
||||||
:::note
|
:::note
|
||||||
|
|
||||||
Les types en italique (`int`, `double`, `boolean`) sont les plus utiles.
|
Les types en italique (`int`, `double`, `boolean`) sont les plus utiles.
|
||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
Voici comment créer un `double`:
|
Voici comment créer un `double`:
|
||||||
@ -66,10 +64,8 @@ fonctionnalités qui permettent de séparer une phrase en mots ou de savoir la
|
|||||||
longueur de la chaine de caractère par exemple.
|
longueur de la chaine de caractère par exemple.
|
||||||
|
|
||||||
:::info
|
:::info
|
||||||
|
|
||||||
Plus d'information sur les classes est donnée dans la section
|
Plus d'information sur les classes est donnée dans la section
|
||||||
[classes](/java/classes).
|
[classes](/java/classes).
|
||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
Voici comment créer un `String`:
|
Voici comment créer un `String`:
|
||||||
@ -79,8 +75,6 @@ String phrase = "Hello World!";
|
|||||||
```
|
```
|
||||||
|
|
||||||
:::note
|
:::note
|
||||||
|
|
||||||
Vous remarquez que dans les exemples sur cette page, les lignes finissent toutes
|
Vous remarquez que dans les exemples sur cette page, les lignes finissent toutes
|
||||||
par `;`.
|
par `;`.
|
||||||
|
|
||||||
:::
|
:::
|
||||||
|
12
src/content/docs/robot/creer_projet.md
Normal file
12
src/content/docs/robot/creer_projet.md
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
title: Créer un projet
|
||||||
|
lang: fr
|
||||||
|
sidebar:
|
||||||
|
order: 2
|
||||||
|
---
|
||||||
|
|
||||||
|
Pour créer un projet de robot, appuyez sur les touches `Ctrl+Shift+p` sur votre clavier et choisissez `Create a new project` dans le menu qui s'est ouvert.
|
||||||
|
|
||||||
|
Dans la fenêtre de création de projet, sélectionnez le type de projet `Template - Java - Command Based Skeleton`. Choisissez le dossier dans lequel vous voulez avoir le projet, ne nom du projet et le numéro d'équipe. Vous pouvez ensuite créer et ouvrir le projet.
|
||||||
|
|
||||||
|
Vous pouvez suivre le guide dans la [documentation officielle](hhttps://docs.wpilib.org/en/stable/docs/software/vscode-overview/creating-robot-program.html#creating-a-new-wpilib-project) pour en savoir plus.
|
@ -1,8 +0,0 @@
|
|||||||
---
|
|
||||||
title: Créer un projet
|
|
||||||
lang: fr
|
|
||||||
sidebar:
|
|
||||||
order: 2
|
|
||||||
---
|
|
||||||
|
|
||||||
|
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
@ -1,5 +1,9 @@
|
|||||||
---
|
---
|
||||||
title: Robot
|
title: Robot
|
||||||
|
lang: fr
|
||||||
sidebar:
|
sidebar:
|
||||||
hidden: true
|
order: 1
|
||||||
|
hidden: True
|
||||||
---
|
---
|
||||||
|
|
||||||
|
ROBOT!!!
|
||||||
|
@ -5,7 +5,6 @@ sidebar:
|
|||||||
order: 1
|
order: 1
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
Pour programmer un robot _FRC_, nous avons plusieurs choses à installer :
|
Pour programmer un robot _FRC_, nous avons plusieurs choses à installer :
|
||||||
|
|
||||||
- Les [outils de développement](#outils-de-développement), qui permettent de programmer le robot et déployer le programme sur un robot
|
- Les [outils de développement](#outils-de-développement), qui permettent de programmer le robot et déployer le programme sur un robot
|
@ -1,83 +0,0 @@
|
|||||||
---
|
|
||||||
title: Installer AdvantageKit
|
|
||||||
lang: fr
|
|
||||||
sidebar:
|
|
||||||
order: 2
|
|
||||||
---
|
|
||||||
|
|
||||||
|
|
||||||
AdvantageKit permet de recevoir plus d'information du robot, ce qui nous aidera à debug.
|
|
||||||
|
|
||||||
[Plus d'information](https://github.com/Mechanical-Advantage/AdvantageKit/blob/main/docs/INSTALLATION.md)
|
|
||||||
|
|
||||||
## Ajouter le répertoire d'AdvantageKit
|
|
||||||
|
|
||||||
Ajouter ce code à la fin du fichier `build.gradle` pour ajouter le repertoire d'AdvantageKit.
|
|
||||||
|
|
||||||
```groovy
|
|
||||||
repositories {
|
|
||||||
maven {
|
|
||||||
url = uri("https://maven.pkg.github.com/Mechanical-Advantage/AdvantageKit")
|
|
||||||
credentials {
|
|
||||||
username = "Mechanical-Advantage-Bot"
|
|
||||||
password = "\u0067\u0068\u0070\u005f\u006e\u0056\u0051\u006a\u0055\u004f\u004c\u0061\u0079\u0066\u006e\u0078\u006e\u0037\u0051\u0049\u0054\u0042\u0032\u004c\u004a\u006d\u0055\u0070\u0073\u0031\u006d\u0037\u004c\u005a\u0030\u0076\u0062\u0070\u0063\u0051"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Il faut aussi ajouter ce code en dessous pour remplacer certaines fonctionalités de WPILib par celles de AdvantageKit.
|
|
||||||
|
|
||||||
```groovy
|
|
||||||
configurations.all {
|
|
||||||
exclude group: "edu.wpi.first.wpilibj"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## Ajout dans le programme
|
|
||||||
|
|
||||||
Il faut ensuite ajouter les bibliothèques qui permettent de choisir quoi enregistrer.
|
|
||||||
|
|
||||||
### Bibliothèques
|
|
||||||
|
|
||||||
Il faut utiliser la même technique que dans [Bibliothèques de composants](./vendor_libraries) avec le lien suivant:
|
|
||||||
|
|
||||||
```
|
|
||||||
https://github.com/Mechanical-Advantage/AdvantageKit/releases/latest/download/AdvantageKit.json
|
|
||||||
```
|
|
||||||
|
|
||||||
### Configuration du robot
|
|
||||||
|
|
||||||
Il faut ensuite aller remplacer le type de robot pour celui de AdvantageKit dans `Robot.java`:
|
|
||||||
|
|
||||||
```java
|
|
||||||
public class Robot extends LoggedRobot {
|
|
||||||
...
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Ensuite, dans `robotInit()` ajoutez les lignes suivantes:
|
|
||||||
|
|
||||||
```java
|
|
||||||
Logger.getInstance().recordMetadata("ProjectName", "5618BOT");
|
|
||||||
if (isReal()) {
|
|
||||||
Logger.getInstance().addDataReceiver(new WPILOGWriter("/media/sda1/"));
|
|
||||||
new PowerDistribution(1, ModuleType.kCTRE);
|
|
||||||
}
|
|
||||||
Logger.getInstance().addDataReceiver(new NT4Publisher());
|
|
||||||
Logger.getInstance().start();
|
|
||||||
```
|
|
||||||
|
|
||||||
:::caution
|
|
||||||
|
|
||||||
Il faut importer le `Logger` de `org.littletonrobotics.junction.Logger`.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
Remplacer le ModuleType du PowerDistribution par kREV selon le PDP utilisé.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
AdvantageKit est installé. Vous pouvez maintenant utiliser [AdvantageScope](https://github.com/Mechanical-Advantage/AdvantageScope).
|
|
@ -1,37 +0,0 @@
|
|||||||
---
|
|
||||||
title: Bibliothèques de composants
|
|
||||||
lang: fr
|
|
||||||
sidebar:
|
|
||||||
order: 1
|
|
||||||
---
|
|
||||||
|
|
||||||
|
|
||||||
NavX
|
|
||||||
|
|
||||||
```
|
|
||||||
https://dev.studica.com/releases/2023/NavX.json
|
|
||||||
```
|
|
||||||
|
|
||||||
Phoenix (CTRE)
|
|
||||||
|
|
||||||
```
|
|
||||||
https://maven.ctr-electronics.com/release/com/ctre/phoenix/Phoenix5-frc2023-latest.json
|
|
||||||
```
|
|
||||||
|
|
||||||
REV
|
|
||||||
|
|
||||||
```
|
|
||||||
https://software-metadata.revrobotics.com/REVLib-2023.json
|
|
||||||
```
|
|
||||||
|
|
||||||
AdvantageKit (voir [AdvantageKit](./advantagekit))
|
|
||||||
|
|
||||||
```
|
|
||||||
https://github.com/Mechanical-Advantage/AdvantageKit/releases/latest/download/AdvantageKit.json
|
|
||||||
```
|
|
||||||
|
|
||||||
YAGSL (Swerve, voir [YAGSL](./yagsl.md))
|
|
||||||
|
|
||||||
```
|
|
||||||
https://broncbotz3481.github.io/YAGSL-Lib/yagsl/yagsl.json
|
|
||||||
```
|
|
10
src/content/docs/robot/vendor_libraries.md
Normal file
10
src/content/docs/robot/vendor_libraries.md
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
title: Bibliothèques de composants
|
||||||
|
lang: fr
|
||||||
|
sidebar:
|
||||||
|
order: 3
|
||||||
|
---
|
||||||
|
|
||||||
|
Voici le lien avec toutes les librairies que vous pourriez avoir besoin sur [le site de documentation](https://docs.wpilib.org/en/stable/docs/software/vscode-overview/3rd-party-libraries.html#vendor-libraries).
|
||||||
|
|
||||||
|
Pour les installer, allez dans votre projet, faites un clic droit sur le fichier build.gradle, choisissez `Manage Vendor Libraries`. Un menu apparaîtra en haut de l'écran, choisissez `Install new libraries (online)` et collez le lien que vous avez copié sur la page (finissant par `.json`). Les instructions sont aussi disponibles [dans la documentation officielle](https://docs.wpilib.org/en/stable/docs/software/vscode-overview/3rd-party-libraries.html#installing-libraries).
|
@ -1,18 +1,15 @@
|
|||||||
---
|
---
|
||||||
title: YAGSL (Swerve)
|
title: YAGSL (Swerve)
|
||||||
lang: fr
|
lang: fr
|
||||||
sidebar:
|
|
||||||
order: 3
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
[Yet Another Generic Swerve Library](https://github.com/BroncBotz3481/YAGSL) permet de facilement créer un sous-système swerve pour un robot.
|
[Yet Another Generic Swerve Library](https://github.com/BroncBotz3481/YAGSL) permet de facilement créer un sous-système swerve pour un robot.
|
||||||
|
|
||||||
Plus d'information sera ajoutée, mais pour l'instant vous pouvez suivre la documentation [ici](https://github.com/BroncBotz3481/YAGSL)
|
Plus d'information sera ajoutée, mais pour l'instant vous pouvez suivre la documentation [ici](https://yagsl.gitbook.io/yagsl)
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
Installer les [bibliothèques](vendor_libraries.md) de NavX, Phoenix, REV et YAGSL.
|
Installer les [bibliothèques](./vendor_libraries) de NavX, Phoenix, REV et YAGSL.
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
@ -27,22 +24,18 @@ Vous pouvez donc aller chercher le dossier d'[exemple](https://github.com/BroncB
|
|||||||
3. Créer le `SwerveDrive` à partir de la configuration
|
3. Créer le `SwerveDrive` à partir de la configuration
|
||||||
|
|
||||||
```java
|
```java
|
||||||
SwerveDrive swerveDrive;
|
double maximumSpeed = Units.feetToMeters(4.5)
|
||||||
|
File swerveJsonDirectory = new File(Filesystem.getDeployDirectory(),"swerve");
|
||||||
/** Creates a new SwerveSubsystem. */
|
SwerveDrive swerveDrive = new SwerveParser(directory).createSwerveDrive(maximumSpeed);
|
||||||
public SwerveSubsystem(File file) {
|
|
||||||
try {
|
|
||||||
this.swerveDrive = new SwerveParser(file).createSwerveDrive();
|
|
||||||
} catch (IOException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
Ici, on utilise un [try-catch](../../java/try-catch){target="\_blank"}, car il pourrait y avoir une erreur si les fichiers de configuration n'existent pas;
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
Vous devrez ensuite ajouter vos méthodes pour intéragir avec le `SwerveDrive` dans le subsystem.
|
Vous devrez ensuite ajouter vos méthodes pour intéragir avec le `SwerveDrive` dans le subsystem.
|
||||||
|
|
||||||
|
```java
|
||||||
|
swerveDrive.drive(new Translation2d(
|
||||||
|
translationX.getAsDouble() * swerveDrive.getMaximumVelocity(),
|
||||||
|
translationY.getAsDouble() * swerveDrive.getMaximumVelocity()),
|
||||||
|
angularRotationX.getAsDouble() * swerveDrive.getMaximumAngularVelocity(),
|
||||||
|
true,
|
||||||
|
false);
|
||||||
|
```
|
Loading…
x
Reference in New Issue
Block a user