Compare commits

...

10 Commits

Author SHA1 Message Date
1f6284cd6a creer robot 2024-03-21 20:05:10 -04:00
c1bba4f4e7 respectable asides 2024-03-21 19:31:29 -04:00
11592b5953 beurk ltex 2024-03-21 19:27:41 -04:00
0cf3ca5541 UPDATE 2024-03-21 19:27:08 -04:00
c27e0efeea start classes 2023-09-27 16:16:55 -04:00
a11b57514e Update .gitlab-ci.yml file 2023-09-27 20:13:22 +00:00
293c56c544 remove useless sharp install 2023-09-27 20:11:22 +00:00
b155cfa406 try with docker? 2023-09-27 20:09:58 +00:00
dae4dac38e Try installing sharp before? 2023-09-27 19:59:53 +00:00
c5d48f2281 try npm install --unsafe-perm 2023-09-27 19:27:12 +00:00
18 changed files with 5088 additions and 1716 deletions

View File

@ -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:

View File

@ -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" } },
}); });

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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"
} }

View File

@ -11,5 +11,3 @@ hero:
link: /robot/ link: /robot/
variant: primary variant: primary
--- ---

View File

@ -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.

View File

@ -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
} }
``` ````

View File

@ -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 `;`.
::: :::

View 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.

View File

@ -1,8 +0,0 @@
---
title: Créer un projet
lang: fr
sidebar:
order: 2
---

View File

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View File

@ -1,5 +1,9 @@
--- ---
title: Robot title: Robot
lang: fr
sidebar: sidebar:
hidden: true order: 1
hidden: True
--- ---
ROBOT!!!

View File

@ -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

View File

@ -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).

View File

@ -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
```

View 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).

View File

@ -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);
```