Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
55 changes: 55 additions & 0 deletions public/newsletters/2702206/draft-022026.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Février 2026

Cher.e.s lecteur.trice.s,

Bienvenue dans cette nouvelle Newsletter de CDROMS !

Qui dit nouvelle année, dit nouveau thème pour la Coupe de France de Robotique. Nous passons du monde des concerts à celui de l'hiver. "Winter is coming", l'édition 2026, nous propose de transformer nos robots en petits écureuils affamés, prêts à tout pour récupérer les caisses de noisettes que les humains ont ramassées avant eux.

### CDROMS et la CDFR 2026

Après concertation avec l'équipe, nous avons choisi les actions qui nous semblaient les plus réalisables, tout en nous ramenant suffisamment de points. Dans cette newsletter, nous décrirons uniquement les actions que nous avons choisi de réaliser, avec la table de jeu suivante, table officielle de la CDFR 2026 :

![Table de jeu - CDFR 2026](attachments/e63d3f2d-d3bf-4ed2-b486-fb2854401849.png " =493x275")

Le robot principal partira de la zone 1, appelée le nid, pour aller vers la zone 8, où la première action a lieu : le curseur de température. À l'aide d'un bras actionné par un servo-moteur, le robot principal viendra déplacer un curseur le long de la table, où figure une échelle de température, et l'amener le plus proche des températures basses.

![Position finale du thermomètre (espérée)](attachments/4be89b77-448f-4954-913f-b98b904b4e12.png " =269x251")

Après avoir déplacé le curseur, il passera par les zones 5 qui le séparent du nid, emportant avec lui les caisses de noisettes qui s'y trouvent, pour les ramener dans le nid, et s'y placer à son tour. La mission du robot principal est à présent terminée.

Au tour de nos PAMIs de survivre à l'hiver, pendant les 15 dernières secondes du match : il leur faut atteindre des garde-mangers (zones 6), les occuper jusqu'à la fin du match et faire bouger un actionneur, visible depuis le public, même après la fin du match.

Cependant, un PAMI sort du lot : le PAMI ninja. Il a le droit d'évoluer durant toute la durée du match, il est placé dans la zone 2 (en hauteur par rapport aux autres robots) et travaille en collaboration avec le ninja de l'équipe adverse. Le ninja a 2 missions : vider les frigos (zones 3), jusqu'alors remplis de caisses de noisettes, et remplir les frigos (zones 3) des caisses de noisettes vides situées en zone de chargement (zones 4). Les actions réalisées à cet endroit de la table donnent des points aux 2 équipes.

Nous pouvons à présent détailler les spécificités de nos robots et de nos systèmes pour cette année : place au côté technique !

### Robot principal et PAMI Ninja

Le robot principal et le PAMI Ninja gardent la même architecture que l'année dernière : une Raspberry Pi 4 et notre PCB plein de connecteurs pour y brancher tous les capteurs et actionneurs. Le robot principal accueille tout de même quelques modifications : les systèmes liés à la CDFR 2025 sont retirés pour y ajouter deux bras permettant de déplacer le curseur du thermomètre (un pour chaque côté) ainsi que des améliorations sur le système d'estimation de position. En plus de ces modifications fonctionnelles, le robot principal a reçu un relooking complet !

![Le robot principal, avec un carénage en plexiglas et non en papier (c'est quand même plus stylé), aux couleurs de notre logo.](attachments/e0439810-b100-4580-8906-6052359aa179.png " =214x268")

Concernant le PAMI Ninja, il était nécessaire de faire une petite adaptation pour que le capteur d'obstacle ne détecte pas les caisses de noisettes comme un obstacle et puisse les pousser.

### Pas trop chaud, ni trop froid : le thermomètre

Pour déplacer le curseur sur le thermomètre représenté le long de la table, nous avons choisi de déployer un bras qui viendra se placer à l'intérieur du curseur, tandis que le robot avancera jusqu'à la zone de température froide. Pour cela, un peu de dimensionnement est nécessaire : il faut étudier l'écart entre le robot principal et le bord de la table afin de déterminer la longueur du bras.

![Etude de l'écartement à la table](attachments/2a92d6eb-f05b-4344-b7ba-354325d62938.jpg " =375x211")

Avec ces dimensions, qui respectent les contraintes de périmètre déployé, on peut construire notre bras et le système d'accroche sur l'étage principal du robot, qui lui permettra de se déployer au moment voulu.

### PAMI Écureuils

L'année dernière, en plus du gros PAMI Superstar (devenu cette année le PAMI Ninja), nos petits PAMI étaient basés sur Arduino avec un petit composant pour contrôler les moteurs du robot. Cette année, on repart de zéro avec pour objectif d'avoir des PAMIs plus petits, plus robustes et avec plus de capacités à réaliser des actions.

Depuis le début de cette année, de nouveaux PCBs ont été désignés et un premier exemplaire a été soudé. Le PCB principal contient un microprocesseur STM32, le "cerveau" du PAMI, tandis que deux autres PCBs permettent de placer les capteurs d'obstacle et les boutons pour interagir avec le PAMI. Les premiers tests ont permis de montrer que les PCBs n'ont pas de grosses erreurs !

![Le PCB principal de nos nouveaux petits PAMIs lors de la pose des composants.](attachments/3ca55032-5f23-4738-8d3e-e380cb03d3b9.png " =428x250")Désormais, il s'agit de tester les composants qui permettront de détecter un obstacle, faire avancer le PAMI, et créer les pièces mécaniques qui constitueront le PAMI.

On vous parlera de tout ça lors de notre prochaine newsletter, qui mettra *(normalement)* moins de temps à sortir que celle-ci…

Merci de nous avoir lu jusqu'à la fin !

Les CDROMS 📀
7 changes: 7 additions & 0 deletions public/newsletters/index.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"2702206": {
"date": "2026-02-27",
"title": "Février 2026",
"markdown": "draft-022026.md"
}
}
Binary file added public/restricted-assets/cdroms/members/cdd.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/restricted-assets/cdroms/members/jk.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/restricted-assets/cdroms/members/md.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/restricted-assets/cdroms/members/ot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/restricted-assets/cdroms/members/rw.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified public/restricted-assets/cdroms/members/sk.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion src/components/Member.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ const Member: React.FC<MemberProps> = ({
<img height="250px" src={image} alt={`${firstname} ${lastname}`}/>
<div className="d-flex flex-column w-100 gap-1">
<div className={`d-flex gap-3 ${inverted ? "flex-row-reverse" : ""}`}>
<div className={`${inverted ? "text-end" : ""}`}>
<div className={`${inverted ? "text-end" : ""}`} style={{marginLeft: "auto"}}>
<h3 className="fs-1 mb-0">{firstname}<br/>{lastname}</h3>
</div>
<p className="m-0 w-75 fs-5" style={{textAlign: "justify"}}>{description}</p>
Expand Down
25 changes: 17 additions & 8 deletions src/pages/Home.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import * as React from "react";
import LoremIpsum from "../components/LoremIpsum.tsx";


const Home: React.FC = () => {
Expand All @@ -12,15 +11,23 @@ const Home: React.FC = () => {
objectFit: "cover",
objectPosition: "30% 40%",
}} src="/assets/home.jpg" alt="image"/>
{/*TODO home.jpg*/}
<div className="container mb-5">
<div className="row justify-content-center mt-5">
<div className="col-md-8">
<div className="mb-5" style={{textAlign: "justify"}}>
{/*TODO Qui nous sommes*/}
<h1 className="text-center mb-5">Qui nous sommes</h1>
<LoremIpsum/>
<LoremIpsum/>
<h1 className="text-center mb-5">Qui sommes-nous ?</h1>
Après sept ans de <a href="https://www.coupederobotique.fr/levenement/la-coupe-junior/">Coupe
de France de Robotique Junior</a>, dont quelques qualifications au
niveau national, trois anciens membres du Club de Robotique de Vanves, encore animés par la
flamme de la compétition, décident de se relancer dans l’aventure avec la Coupe de France
Senior. Née de l'union de membres motivés, CDROMS se présente pour la première fois à la
Coupe de France de Robotique 2025.
<br/><br/>
Forts de notre expérience accumulée en Junior, nous avons au moins une certitude : la
maîtrise des actions de base et la robustesse technique de nos systèmes finissent toujours
par porter leurs fruits. Au sein de l’équipe, chacun participe à sa manière : avec ses
envies et ses compétences. Cela va de la conception de PCB à la programmation de robots, en
passant par l’usinage des systèmes et l’assemblage de robots.
</div>
<div>
<h1 className="text-center mb-5">Nos réseaux</h1>
Expand All @@ -32,7 +39,8 @@ const Home: React.FC = () => {
href="https://github.com/CDROMS-Robotics"
target="_blank"
rel="noopener noreferrer">
<img src="/restricted-assets/logos/github.svg" width="75px" alt="GitHub logo"/><br/>
<img src="/restricted-assets/logos/github.svg" width="75px"
alt="GitHub logo"/><br/>
GitHub
</a>
</div>
Expand All @@ -50,7 +58,8 @@ const Home: React.FC = () => {
href="https://www.youtube.com/@CDROMS-Robotics"
target="_blank"
rel="noopener noreferrer">
<img src="/restricted-assets/logos/youtube.svg" width="75px" alt="YouTube logo"/><br/>
<img src="/restricted-assets/logos/youtube.svg" width="75px"
alt="YouTube logo"/><br/>
YouTube
</a>
</div>
Expand Down
8 changes: 4 additions & 4 deletions src/pages/LegalNotice.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ const LegalNotice = () => {
<h2>Mentions légales</h2>
<h4>Éditeur du site</h4>
<p>
Le site est édité par la SC Association, association loi 1901 déclarée sous le numéro RNA W923010069.Il
Le site est édité par SC Association, association loi 1901 déclarée sous le numéro RNA W923010069. Il
partage du contenu lié à l’équipe CDROMS, qui participe à la Coupe de France de Robotique de Planète
Sciences.
</p>
Expand All @@ -16,8 +16,8 @@ const LegalNotice = () => {
</p>
<h4>Propriété intellectuelle</h4>
<p>
Tout le contenu (textes, images, logos, codes) est la propriété de l’association ou de ses auteurs et
reste protégé par la législation française et internationale.<br/><br/>
Tout le contenu (textes, images, logos, codes) est la propriété de l’association et de ses auteurs et
reste protégé par la législation française.<br/><br/>
Le code source du projet est distribué sous licence <a href="https://github.com/CDROMS-Robotics/cdroms-robotics.github.io/blob/master/LICENSE">GPL</a>.<br/>
Les newsletters et autres contenus textuels sont sous licence <a href="https://github.com/CDROMS-Robotics/cdroms-robotics.github.io/blob/master/LICENSE-CC">CC BY-NC-SA</a>.
</p>
Expand All @@ -28,7 +28,7 @@ const LegalNotice = () => {
</p>
<br/>
<p className="fst-italic">
Dernière mise à jour : 24/01/2025
Dernière mise à jour : 26/02/2025
</p>
</div>
);
Expand Down
10 changes: 6 additions & 4 deletions src/pages/Newsletters.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import "./Newsletters.scss"
import {remarkHighlight} from "../md-flavor.ts"
import {useParams} from "react-router-dom";
import NewsletterLi from "../components/NewsletterLi.tsx";
import LoremIpsum from "../components/LoremIpsum.tsx";

interface NewsletterData {
date: string;
Expand Down Expand Up @@ -36,10 +35,13 @@ const Newsletters: React.FC = () => {
if (!id) {
return <>
<div className="container col-12 col-md-6 mt-5" style={{textAlign: "justify"}}>
{/* TODO Make intro */}
<LoremIpsum/>
Pour vivre cette aventure avec nos proches, nous avons, l’an passé, partagé l’avancement du projet à
travers des newsletters. Depuis 2026, nous avons décidé de les rendre publiques. Les newsletters
vulgarisent les différentes étapes de construction des robots : qu’il s’agisse d’un choix d’actions
à réaliser durant la Coupe, la conception de pièces mécaniques ou encore les tests de code des
robots, une de nos newsletters abordera (probablement) le sujet !
</div>
<div className="container col-12 col-md-3 mt-3 mb-5">
<div className="container col-12 col-md-3 mt-3 mb-5" style={{width: "30%"}}>
<h3 className="m-0 mb-3">
Les newsletters de cette année :
</h3>
Expand Down
23 changes: 15 additions & 8 deletions src/pages/Participations.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,32 @@ import * as React from "react";
import Eurobot from "../components/Eurobot.tsx";

const Participations: React.FC = () => {
// TODO text
return (
<div className="container d-flex flex-column gap-5 mt-auto mb-auto">
<Eurobot
year={2026}
description="Loresit amedolor sit amet, consectetur adipissit amem ipsum dolor
sit amet, cosit amepiscing etetur adipislit. Lorem ipsum dolor sit sit ameit. Lorem ipsum
dolor sit amet, coneltetur adipisisit amepsum dolor sit ametetur adipist, conelit.et, conelit."
description="Pour notre seconde année, l’objectif est d’apporter quelques améliorations au robot
principal et au PAMI principal. Les petits PAMIs prennent un grand coup de neuf avec une architecture
entièrement revue."
logo="/restricted-assets/cdfr/2026.png"
points={[undefined, undefined, undefined, undefined, undefined]}
result={0}
leaderboard={0}
partners={[]}
partners={[
{
logo: "/restricted-assets/partners/savants_fous.png",
name: "Les Savants Fous",
url: "https://www.lessavantsfous.fr/contact-paris.html"
}
]}
/>
<Eurobot
year={2025}
description="Loresit amedolor sit amet, consectetur adipissit amem ipsum dolor
sit amet, cosit amepiscing etetur adipislit. Lorem ipsum dolor sit sit ameit. Lorem ipsum
dolor sit amet, coneltetur adipisisit amepsum dolor sit ametetur adipist, conelit.et, conelit."
description="Pour notre première participation, l’objectif était de construire une base roulante
robuste, qui pourrait être réutilisée d’une année à l’autre. C’est chose faite : le robot principal
et notre PAMI principal sont basés sur la même architecture (électronique, mécanique et informatique)
et ont tous les deux très bien fonctionné ! En bonus, des petits PAMIs ont même pu participer à
certains matchs."
logo="/restricted-assets/cdfr/2025.png"
points={[null, 56, 71, 60, 75]}
result={45}
Expand Down
Loading