Introduction
Tout au long des amicales, tu pourras te servir de ce site comme référence. Dans la barre de menu déroulant, tu y trouveras les défis des années précédentes ainsi que ceux de cette année, ainsi que quelques informations sur le langage Python et certaines notions de mathématiques dont nous aurons besoin.
Si tu as besoin de plus d'informations sur les différentes fonctionnalités de RSK, je t'invite à consulter le site officiel (clic ici) ,et notamment la section dédiée à la programming
N’hésite pas à nous appeler si tu as du mal à comprendre une consigne ou si tu es bloqué quelque part, nous nous ferons un plaisir de répondre à toutes tes questions 😄.
Les défis peuvent également être réalisés chez toi. Si c’est le cas, tu peux nous contacter sur Discord ou par email à clement.labbe33@gmail.com
Commencer les défis →
Installation
Prérequis
Si vous utilisez un ordinateur que nous vous avons fourni, veuillez passer directement à l'introduction.
-
Système d'exploitation : Windows ou Linux
-
Installer Python 3.12.7 : Téléchargez la version appropriée pour votre système depuis le site officiel python.org.
📸 Procédure d'installation : Python 3.12.7
-
Installer Visual Studio Code avec l'extension Python : Téléchargez Visual Studio Code depuis le site officiel. Après l'installation, ouvrez le, accédez à l'onglet des extensions (icône de carré) et recherchez "Python". Installez l'extension officielle de Microsoft.
📸 Procédure d'installation : Visual Studio Code
- utiliser Google Chrome : Téléchargez et installez Google Chrome depuis le site officiel. Définissez-le comme navigateur par défaut.
Installation du paquet Robot Soccer Kit
Dans un terminal, exécutez la commande suivante :
pip install robot-soccer-kit[gc]
Lancement
Pour démarrer le contrôleur de jeu, exécutez la commande suivante dans un terminal :
python -m rsk.game_controller -s
Après avoir exécuté la commande, la page suivante devrait s'afficher :

Félicitations tu es prêt ! →
Ressources - Soccer Cam Track
Supports pédagogiques
Matériel
À compléter
Conseils de mise en œuvre
À compléter
Vidéos - Soccer Cam Track
Vidéos pédagogiques
Liste des vidéos à venir
Démonstrations
Défis
🌐 Défi RSK 1 : Mission "Un monde de couleur" 🌐
Votre mission, si vous l'acceptez, est d'illuminer le monde digital avec une cascade de couleurs éblouissantes. Armé de votre expertise et du puissant client RSK, vous allez plonger dans un univers où la couleur est reine.
🎨 Lumière Verte, Action !
Une fois connecté, votre objectif est d’allumer les LEDS en vert éclatant. Utilisez la combinaison de couleurs suivante pour créer un vert pur :
- Rouge (R) : 0
- Vert (G) : 255
- Bleu (B) : 0
Votre code ressemblera à ceci :
import rsk
with rsk.Client() as client:
while True:
client.blue1.leds(0, 255, 0)
🌈 Déchaînez votre Créativité :
N’hésitez pas à expérimenter avec différentes couleurs et intensités pour créer des effets visuels étonnants.
Bonne chance dans ce défi coloré, et que les meilleures couleurs gagnent!
🌐 Défi RSK 2 : Mission "Surveillance des Coordonnées" 🌐
Votre mission est de surveiller et d'afficher les coordonnées des agents sur le terrain : nos fidèles robots, codés "Bleu 1", "Bleu 2", "Vert 1" et "Vert 2". Chaque robot a sa propre trajectoire et position dans l'espace, et il est crucial de les suivre avec précision.
🎯 Surveillance de la Cible - La Balle :
En plus de suivre nos agents robots, une cible mobile - une balle - est en jeu. Votre mission inclut également de traquer et d'afficher en continu les coordonnées de cette balle.
🧩 Défi Technique :
Votre code devra récupérer et afficher les positions X, Y de chaque robot et de la balle. Cela nécessite une attention méticuleuse aux données et une capacité à interpréter les informations en temps réel.
👁🗨 Visualisation des Données :
Assurez-vous que les données soient présentées de manière claire et précise. Une bonne visualisation est la clé pour comprendre le champ de bataille numérique.
🌐 Défi RSK 3 : Mission "Navigation Stratégique" 🌐
Après avoir maîtrisé l'art de l'illumination et de la surveillance, il est temps de passer à la navigation et à la stratégie. Dans ce défi, vous allez diriger un robot dans une danse délicate de positionnement et de mouvement.
🌐 Votre Mission :
Au lieu de tourner autour d'une cible, votre tâche est de guider le robot vers des points cardinaux spécifiques autour de la balle. Pensez à cela comme un jeu de positionnement stratégique : Nord, Sud, Est, Ouest.
🤖 Manœuvres du Robot :
Vous contrôlerez le robot "Bleu 1" pour le déplacer vers des points prédéterminés autour de la balle, en utilisant des coordonnées relatives. Votre agilité en programmation et votre sens de la précision seront essentiels ici.
📍 Instructions de Navigation :
- Déplacez le robot de 0.25 mètres à l'ouest de la balle.
- Ensuite, dirigez-le 0.25 mètres au nord de la balle.
- Poursuivez en le déplaçant de 0.25 mètres à l'est.
- Enfin, amenez-le 0.25 mètres au sud de la position initiale.
🌐 Défi RSK 4 : Mission "Rotation Maîtrisée" 🌐
Votre quatrième mission dans l'arène numérique est une danse de précision et d'agilité. Dans ce nouveau défi, vous allez orchestrer une rotation élégante de votre robot, en mettant à l'épreuve votre maîtrise des commandes de mouvement.
🔄 Votre Mission :
Vous devez faire exécuter à votre robot une rotation complète sur lui-même. Cette manœuvre requiert un contrôle minutieux et une compréhension approfondie des commandes de votre robot.
🚨 Attention - Changement de Commande :
Pour ce défi, oubliez la commande goto habituelle. Vous allez plutôt utiliser la commande control pour diriger le robot. Cette approche vous donne un contrôle plus direct et précis sur les mouvements du robot, essentiel pour réussir une rotation parfaite.
🌐 Défi RSK 5 : Mission "Coup de Maître" 🌐
Votre cinquième mission dans cette aventure technologique consiste à manœuvrer votre robot de manière à frapper une balle placée au centre. Ce défi mettra à l'épreuve votre habileté à évaluer les distances et à contrôler le mouvement de votre robot.
⚽ Votre Mission :
Le but est de positionner et de faire avancer le robot pour qu'il frappe la balle située au centre. Cela nécessitera une compréhension fine de la dynamique et de la force nécessaire pour un impact efficace.
📐 Position de Départ :
Le robot commence sa mission depuis une position sur l'axe des x positifs (à une distance x quelconque du centre). Votre tâche est de le guider depuis cette position initiale jusqu'à la balle.
🌐 Défi RSK 6 : Mission "Passe Parfaite" 🌐
Votre sixième mission consiste à exécuter une passe précise entre deux robots. Ce défi nécessite une compréhension approfondie de la dynamique des mouvements et une synchronisation impeccable entre les deux robots.
⚽ Votre Mission :
Un robot doit envoyer la balle à un autre robot situé à une certaine distance. La clé est d'ajuster la force et l'angle de la passe pour assurer une réception réussie par le robot destinataire.
🌐 Défi RSK 7 : Mission "Orbite Circulaire" 🌐
Votre septième défi est de faire naviguer un robot autour d'une balle, en suivant la trajectoire d'un cercle parfait. Ce défi sollicitera vos compétences en géométrie et en programmation pour réaliser une orbite circulaire précise.
🔵 Votre Mission :
Faire tourner le robot autour de la balle en maintenant une distance constante, comme s'il suivait l'orbite d'un satellite. La trajectoire doit ressembler à un cercle parfait autour de la balle.
🏆 Défi RSK Final : Mission "Match Ultime" 🏆
Votre mission finale est de mettre en œuvre tout ce que vous avez appris pour orchestrer un match de robot. Ce défi combine stratégie, précision, coordination d'équipe, et adaptation en temps réel. Vous devrez faire preuve de créativité, de logique de programmation avancée et de compréhension tactique du jeu.
⚽ Votre Mission :
Organiser un match impliquant deux équipes de robots. Chaque équipe doit essayer de marquer des buts tout en défendant son propre but.
🤖 Stratégie et Exécution :
- Programmez les robots pour qu'ils puissent se déplacer sur le terrain, contrôler la balle, passer à leurs coéquipiers, et tirer au but.
- Implémentez des stratégies défensives pour que les robots puissent bloquer les tentatives de but de l'équipe adverse.
- Assurez une bonne communication et coordination entre les robots de la même équipe.
Défis
🌐 Défi RSK 1 : Mission "Au centre" ⭐★★★★ 🌐
Lors de votre match face à la redoutable équipe verte, vous avez calculé que la meilleure position pour marquer un but serait au centre du terrain.
Votre mission sera donc d'amener le robot Bleu 1 vers le centre du terrain afin qu'il puisse marquer ⚽⚽ !
🎯 Cours Forest ! Cours !
Une fois connecté, votre objectif est d'amener votre robot 1 vers le centre du terrain aux coordonnées x = 0 et y = 0.
Pour cela, vous utiliserez la redoutable commande Go To, qui ordonne à un robot d'aller à une position (x, y) avec une orientation theta.
client.<couleur><numeros>.goto((x,y,theta), wait=False)
Votre code ressemblera à ceci :
import rsk
with rsk.Client() as client:
while True:
client.blue1.goto((0,0,0), wait=False)
💡 Astuce 💡 :
Vous pouvez aussi récupérer votre robot grâce à la commande robots, ce qui permet d'avoir un code plus facilement maintenable :
myRobot = client.robots['<couleur>'][<numeros>]
🌐 Défi RSK 2 : Mission "À l'œil" ⭐⭐★★★ 🌐
Votre match contre l'équipe verte est difficile, et il est nécessaire de vérifier les positions de vos ennemis pour adapter votre stratégie ! Votre mission : capturer un maximum d'informations afin de vaincre la redoutable équipe verte.
🎯 Surveillance Maximal :
Lors de cette mission, vous devrez récupérer toutes les informations dynamiques sur le terrain, ce qui inclut les coordonnées des 4 robots ainsi que celles de la balle, et les afficher.
🧩 Défi Technique :
Votre code devra récupérer et afficher les positions X, Y de chaque robot et de la balle. Cela nécessitera une attention méticuleuse aux données et une capacité à interpréter les informations en temps réel. Il est conseillé de consulter la documentation de RSK pour compléter ce défi (Cliquez ici))
👁🗨 Visualisation des Données :
Assurez-vous que les données soient présentées de manière claire et précise. Une bonne visualisation est essentielle pour comprendre le champ de bataille numérique.
Si vous êtes bloqué, voici un petit indice : indice
🌐 Défi RSK 3 : Mission "Mimétisme"⭐⭐★★★ 🌐
Lors de votre affrontement avec l'équipe verte, celle-ci utilise une technique mystérieuse qui désoriente vos robots ! Mais vous avez la solution : toujours regarder dans la même direction que votre ennemi !
🌐 Votre Mission :
Réutilisez et adaptez ce que vous avez réalisé lors de vos deux précédentes missions afin de Récupérer l'orientation du robot Vert 1 puis donner à votre robot Bleu 1 la même orientation.
🎯 Mime Mime Mime !
1 - Récupérez l'orientation theta du robot Vert 1 à l’aide des informations disponibles sur le terrain.
2 - Donnez l’ordre à votre robot Bleu 1 d’adopter la même orientation.
🌐 Défi RSK 4 : Mission "Adaptation Défensive !" ⭐⭐⭐★★ 🌐
L'attaquant de l'équipe verte ne cesse de marquer des buts. Pour l'arrêter, vous avez imaginé une méthode simple : placer votre deuxième robot en gardien de but.
🔄 Votre Mission :
Vous devrez utiliser la position en y de la balle pour contrer les tirs de l'équipe verte.
Utilisez également les constantes fournies par la bibliothèque RSK afin de positionner votre gardien avec une précision optimale.
Voici un exemple pour récupérer les constantes :
import rsk
from rsk import constants
position_but = constants.defense_area_width # Correspond à la position en x des cages du côté positif du terrain
🧠 Curiosité 500% :
N'hésitez pas à explorer la bibliothèque RSK pour découvrir tout ce qu'elle contient ! Pourquoi ne pas commencer par examiner les différentes constantes disponibles ?
- Astuce 1 : Tapez
constants.et observez les propositions qui vous sont faites. - Astuce 2 : Pour une exploration plus poussée, appuyez sur
CTRL + clicsur le motconstants. Vous accéderez directement aux fichiers de la bibliothèque 🤯.
Attention : Ne modifiez rien dans ces fichiers 🤭.
👀 TOUJOURS PLUS ! (Sous-défi facultatif - ⭐⭐⭐⭐⭐) :
Pour un défi supplémentaire, essayez de programmer votre défenseur pour qu'il se base sur l'orientation du robot Vert 1 plutôt que sur la position de la balle. Ce défi est optionnel, mais il nécessitera des notions avancées en trigonométrie.
🌐 Défi RSK 5 : Mission "Side Swap" ⭐⭐⭐★★ 🌐
La mi-temps du match contre l'équipe verte approche. Comme vous le savez, les côtés du terrain sont échangés entre les mi-temps, mais vous n’avez pas encore pris cela en compte dans votre code.
Vous devez rapidement mettre en place une solution permettant de modifier facilement ce paramètre pour adapter votre stratégie !
⚽ Votre Mission :
Votre mission sera de distinguer le côté positif et négatif du terrain afin de pouvoir vous adapter à toutes les circonstances et éviter d'attaquer dans votre propre camp !
Pour cela, vous pouvez utiliser la fonction input de Python, qui permet de saisir des valeurs à la main pendant l’exécution de votre programme.
Voici comment utiliser input :
réponse = input('Que voulez vous faire ?')
Voici le résultat dans votre terminal
Que voulez vous faire ?
>|
Ici, le programme attend une réponse de l’utilisateur, qui sera ensuite stockée dans la variable réponse.
⚠️ ATTENTION ⚠️ :
La réponse fournie par l’utilisateur est sous forme de chaîne de caractères. Ainsi, si vous entrez un nombre, le programme le considérera comme une chaîne :
réponse = '1'
Pour résoudre ce problème, vous pouvez convertir la chaîne en nombre à l’aide des fonctions int ou float :
réponseEntiere = int('1')
réponseFlottante = float('3.14')
💡 Indice
Si vous ne savez pas par où commencer, essayez de voir comment positionner votre robot défensif du défi précédent dans les buts opposés.
Il se pourrait que vous ayez besoin de multiplier certaines valeurs par -1 😉.
🌐 Défi RSK 6 : Mission " Des placements " ⭐⭐⭐⭐★ 🌐
Maintenant qu'une muraille protège votre camp, il est temps de passer à l’attaque contre l’équipe verte !
Votre robot 1 est prêt à en découdre et à marquer des BUTS ⚽⚽⚽ !
⚽ Votre Mission :
Votre objectif sera de positionner votre robot derrière la balle, à une distance optimale pour tirer sans la pousser immédiatement puis de tirer. Pour cela, vous devrez prendre en compte trois paramètres :
- Le rayon du robot.
- Le rayon de la balle.
- Une marge d’imprécision arbitraire sur la distance entre le robot et la balle. Vous devrez effectuer plusieurs essais jusqu’à ce que le robot reste bien positionné derrière la balle sans bouger inutilement.
⚠️ Points importants :
- Si vous vous placez trop loin, vous risquez de perdre en puissance de frappe.
- Effectuez un maximum de tests pour trouver la distance optimale !
Pour simplifier cet objectif, placez la balle au centre du terrain et positionnez votre robot à mi-distance entre vos cages et la balle. Cela vous permettra de travailler dans des conditions simples et prévisibles.
Maintenant que vous etes bien positionné, 💥💥 TRIEZ 💥💥 !
🌐 Défi RSK 7 : Mission " Panne d'énergie ! " ⭐⭐⭐⭐⭐ 🌐
Suite à votre précédente mission, vous avez sûrement remarqué que la balle ne va pas très loin lorsque vous utilisez la commande kick du robot.
⚽ Votre Mission :
Utilisez un timer pour éviter le déchargement trop régulier du condensateur. En effet, le kickeur met un certain temps à se charger à 100 %, et il est important de s’assurer qu’il soit complètement chargé avant de tirer. Sinon, vous risquez de simplement donner la balle à vos ennemis !
Utilisez donc un timer pour vous assurer que le kickeur soit prêt avant chaque tir, afin d’optimiser la puissance et la précision de vos frappes.
💡 Indice
Allez consulter la documentation de time !
🏆 Défi RSK Final : Mission "Match Ultime" ⭐⭐⭐⭐⭐ 🏆
Combinez tout ce que vous avez appris, et plus encore, pour créer un programme imparable. Que toutes les équipes vertes tremblent rien qu'en entendant votre nom ! 😈
C’est l’occasion de mettre en pratique toutes vos compétences et de créer une stratégie gagnante. Allez, faites briller votre robot et montrez à l’équipe verte qui est le vrai champion ! 💪⚽
⚽ Votre Mission :
Organiser un match impliquant deux équipes de robots. Chaque équipe doit essayer de marquer des buts tout en défendant son propre but.
🤖 Stratégie et Exécution :
- Programmez les robots pour qu'ils puissent se déplacer sur le terrain, contrôler la balle, et tirer au but.
- Implémentez des stratégies défensives pour que les robots puissent bloquer les tentatives de but de l'équipe adverse.
- Assurez une bonne communication et coordination entre les robots de la même équipe.
🌐 Les Défi RSK Continuent ⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐ ! 🌐
Maintenant que votre match est passé, corrigez ce qui ne fonctionne pas, améliorez ce qui marche bien et inventez de nouvelles stratégies de jeu pour surprendre vos adversaires !
C’est le moment de peaufiner votre programme et d’explorer de nouvelles idées pour être encore plus performant. Gardez à l'esprit que l'innovation et l'adaptabilité sont les clés du succès ! 🚀
Défis
🌐 Défi RSK 1 : "Mission Prêt ! Partez !" ⭐★★★★ 🌐
Afin d'avoir une vue d'ensemble sur le match et d'être dans une position optimale pour recevoir la balle de n'importe où, vous avez décidé d'accompagner votre robot bleu n°1 jusqu'au centre du terrain.
🎯 Réception à toute épreuve !
Une fois connecté, votre objectif est d'amener votre robot 1 vers le centre du terrain aux coordonnées x = 0 et y = 0.
Pour cela, vous utiliserez la redoutable commande Go To, qui ordonne à un robot d'aller à une position (x, y) avec une orientation theta.
client.<couleur><numeros>.goto((x,y,theta), wait=False)
Votre code ressemblera à ceci :
import rsk
with rsk.Client() as client:
while True:
client.blue1.goto((0,0,0), wait=False)
💡 Astuce 💡 :
Vous pouvez aussi récupérer votre robot grâce à la commande robots, ce qui permet d'avoir un code plus facilement maintenable :
myRobot = client.robots['<couleur>'][<numeros>]
🌐 Défi RSK 2 : "Dos à dos" ⭐⭐★★★ 🌐
Afin de couvrir une zone encore plus grande, vous avez décidé d'utiliser vos deux robots comme tours de garde.
🎯 I've got you in my sights
Votre mission sera de faire collaborer vos deux robots afin qu'ils couvrent la zone la plus large possible.
Tandis que l'un couvre la première partie du terrain avec x>0, l'autre se charge de la zone avec x<0.
Pour cela, vous pouvez réutiliser le programme précédemment écrit afin de positionner le robot bleu 1 en (1,0) et le robot bleu 2 en (−1,0).
Veillez également à ce que les deux robots regardent dans des directions opposées.
💡 Indice 💡 :
Vous pouvez donner des instructions à deux robots en même temps dans le même programme !
Si vous n’arrivez pas à faire en sorte que les deux robots regardent dans des directions opposées, pensez que l’orientation des robots est exprimée en radians !
🌐 Défi RSK 3 : "Mission Scan" ⭐⭐★★★ 🌐
Maintenant que vos robots sont prêts à s'adapter à toutes les situations, il reste à identifier ces situations ! Pour cela, vous devez connaître votre environnement.
🎯 Surveillance Maximal :
Lors de cette mission, vous devrez récupérer toutes les informations dynamiques sur le terrain, ce qui inclut les coordonnées des 4 robots ainsi que celles de la balle, et les afficher.
🧩 Défi Technique :
Votre code devra récupérer et afficher les positions X, Y de chacun des robots et de la balle. Cela nécessitera une attention méticuleuse aux données et une capacité à interpréter les informations en temps réel. Il est conseillé de consulter la documentation de RSK pour compléter ce défi (Cliquez ici))
👁🗨 Visualisation des Données :
Assurez-vous que les données soient présentées de manière claire et précise. Une bonne visualisation est essentielle pour comprendre le champ de bataille numérique.
Si vous êtes bloqué, voici un petit indice : indice
🌐 Défi RSK 4 : Mission "Défense offensive !"⭐⭐★★★ 🌐
Vous avez repérer que votre ennemi vert s'apprêtait a tirr dans vos cages ! Votre meilleur façon d'empêcher se tir est de foncer le plus vite possible vers la balle !
🔄 Votre Mission :
Réutilisez et adaptez ce que vous avez réalisé lors de vos deux précédentes missions afin de Récupérer la position de la balle donner à votre robot Bleu 1 la même position
🎯 Arrete la !
1 - Récupérez la position (x,y) de la balle à l’aide des informations disponibles sur le terrain.
2 - Donnez l’ordre à votre robot Bleu 1 d'aller vers cette position
🌐 Défi RSK 5 : Mission "Retour à la réalité"⭐⭐⭐★★ 🌐
Pour l'instant vous vous etes concentré a réaliser vos tests dans le simulateur, ne serait-il pas tant de tester en réalité !
🔄 Votre Mission :
Votre mission consistera en l'utilisation du game controlleur en l'apprentissage de la connexion avec celui-ci afin de faire bouger les robots en vrai ! Votre seconde mission sera de voir ce qu'il se passe lorsque l'un des robot n'est pas sur le terrain
💥 😱 COMMENT ÇA, VOTRE PROGRAMME CRASH ?!
cela veut dire que vous n'avez pas gérer les erreurs ! le fait que l'un des robot ou meme la balle sorte du terrain vous enleve une donnée a votre programme ! pour le corriger il suffi de faire un test si il manque une valeur votre programme fera quelque chose d'autre en conséquences
try:
#Votre code
except rsk.client.ClientError as e:
print(e)
#autre chose
💡 Astuce 💡 :
Vous pouvez aussi gérer chacune des erreurs afin de pouvoir continuer a bouger malgré la perte d'information par exemple vous pouvez definir d'une autre maniere les données perdu !
🌐 Défi RSK 6 : Mission "Sur mesure" ⭐⭐⭐⭐★ 🌐
Maintenant que vos robots sont prêts à attaquer, il est temps de leur apprendre l'art du positionnement précis pour devenir des attaquants redoutables ! Votre mission : placer votre robot juste derrière la balle sans la toucher, afin de pouvoir effectuer un tir parfait.
🎯 Derrière mais prêt à frapper !
Votre objectif est de positionner votre robot à une distance optimale de la balle, prenant en compte les dimensions suivantes :
Le rayon du robot (robot_radius),
Le rayon de la balle (ball_radius),
Une marge d’imprécision arbitraire que vous devrez mesurer par des tests en situation réelle.
La distance idéale correspondra à la somme des rayons plus cette marge d’imprécision.
🔄 Votre Mission :
Mesurez la marge d’imprécision en effectuant plusieurs essais avec votre robot derrière la balle.
Placez votre robot derrière la balle, en vous basant sur les constantes robot_radius et ball_radius, ainsi que sur la marge calculée.
Vérifiez que votre robot est bien positionné sans toucher la balle, si tel est le cas essayé de le faire un tir et voyez le résultat !
💡 Astuce :
Utilisez les constantes de la bibliothèque RSK pour simplifier votre code. Ces constantes sont disponibles dans le module rsk.constants
Voici un exemple d'utilisation :
import rsk
from rsk import constants
rayon_du_robot = constants.robot_radius
Pour une exploration rapide des constantes, tapez constants. et observez les suggestions. Si vous êtes curieux, appuyez sur CTRL + clic sur le mot constants pour accéder directement au code source. Attention : Ne modifiez rien dans ces fichiers 🤭.
🌐 Défi RSK 7 : Mission "Carton jaune" ⭐⭐⭐⭐⭐ 🌐
Maintenant que votre robot suit la balle vous vous rendez compte durant votre match qu'il ne peux pas rester a coté d'elle durant trop de temps sous peine de se prendre une pénalité ! mais on peux faire de cette penalité aussi un avantage !
🔄 Votre Mission :
Votre mission sera de detecter lorsque un robot est pénaliser, de cette maniere vous pourrez lorsque les deux robot attaquant sont pénaliser faire monter votre defenseur pour qu'il attaque !
Pour cela vous avez acces aux information du referee referee
🎯 A l'attaque !
1 - Récupérez les information de l'arbitre 2 - Vérifiez que les deux robot vert 1 et bleu 1 sont penalisés 3 - Faites monter votre defenseur en attaquant
Voici un exemple d'utilisation du referee :
import rsk
with rsk.Client() as client:
while True:
client.referee["game_is_running"] #Cette ligne renvoie True si la partie est débuté False sinon
🌐 Défi RSK 8 : Mission "visée a toute epreuve !" ⭐⭐⭐⭐⭐ 🌐
Lors de vos péripécie il vous vient a l'idée de cree un outils vous permettant de faire en sorte que l'un de vos robot regarde un point donné
🔄 Votre Mission :
Votre mission sera de réaliser une fonction python prenant 2 points en entrée en renvoyant un angle delta en sortie Voici un exemple de fonction réalisant une addition :
def addition(a,b): # Ici a et b sont les entrés
c = a+b # ici on réalise l'addition de a + b
return c # et ici on renvoie en sortie le résultat c
résultat = addition(2,3) # ainsi cette ligne réalisera l'addition de 2+3
print(résultat) # le print affichera alors 5
Afin de réaliser le calcul permettant à votre robot regarde un point il vous faudra faire de la trigonométrie !
💡 Indice 💡 :
Renseignez-vous sur la fonction arc tangente 2 ou atan2. En python vous pourrez utiliser math.atan2 sous reserve de import math.
🏆 Défi RSK Final : Mission "Match Ultime" ⭐⭐⭐⭐⭐ 🏆
Combinez tout ce que vous avez appris, et plus encore, pour créer un programme imparable. Que toutes les équipes vertes tremblent rien qu'en entendant votre nom ! 😈
C’est l’occasion de mettre en pratique toutes vos compétences et de créer une stratégie gagnante. Allez, faites briller votre robot et montrez à l’équipe verte qui est le vrai champion ! 💪⚽
⚽ Votre Mission :
Organiser un match impliquant deux équipes de robots. Chaque équipe doit essayer de marquer des buts tout en défendant son propre but.
🤖 Stratégie et Exécution :
- Programmez les robots pour qu'ils puissent se déplacer sur le terrain, contrôler la balle, et tirr au but.
- Implémentez des stratégies défensives pour que les robots puissent bloquer les tentatives de but de l'équipe adverse.
- Assurez une bonne communication et coordination entre les robots de la même équipe.
🌐 Les Défi RSK Continuent ⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐ ! 🌐
Maintenant que votre match est passé, corrigez ce qui ne fonctionne pas, améliorez ce qui marche bien et inventez de nouvelles stratégies de jeu pour surprendre vos adversaires !
C’est le moment de peaufiner votre programme et d’explorer de nouvelles idées pour être encore plus performant. Gardez à l'esprit que l'innovation et l'adaptabilité sont les clés du succès ! 🚀
Défi 01 - Suivi de ligne basique
Objectifs d'apprentissage
- Comprendre le fonctionnement d'un capteur de ligne
- Programmer un robot pour suivre une ligne droite
- Découvrir les bases de la régulation
Description du parcours
Le robot doit suivre une ligne noire sur fond blanc. Le parcours est simple : une ligne droite avec quelques légères courbes.
┌─────────────────────────────────────┐
│ │
│ START │
│ ●═══════════════════════● │
│ END │
│ │
└─────────────────────────────────────┘
Tâches à accomplir
- Calibrer le(s) capteur(s) de ligne
- Programmer un suivi de ligne simple (tout ou rien)
- Améliorer avec une régulation proportionnelle
- Atteindre la zone d'arrivée sans sortir de la ligne
Matériel nécessaire
- Robot avec un ou plusieurs capteurs de ligne (à vous de voir...)
- Piste d'entraînement avec ligne noire
Conseils
- Commencez par tester vos capteurs : affichez leurs valeurs sur la ligne et hors de la ligne
- Un algorithme simple "si ligne à gauche, tourner à gauche" suffit pour commencer
- La régulation proportionnelle améliore la fluidité du suivi
Questions de réflexion
- Quelle est la différence entre 1 ou plusieurs capteurs de ligne ?
- Pourquoi la vitesse du robot influence-t-elle la qualité du suivi ?
- Qu'est-ce qu'une régulation proportionnelle ?
Barème indicatif
| Critère | Points |
|---|---|
| Le robot suit la ligne | 50 |
| Le robot atteint l'arrivée | 30 |
| Fluidité du mouvement | 20 |
| Total | 100 |
Défi 02 - Virages serrés
Objectifs d'apprentissage
- Gérer les virages à 90° et les courbes serrées
- Adapter la vitesse du robot selon la situation
- Améliorer la robustesse de l'algorithme de suivi
Description du parcours
Le parcours comporte plusieurs virages serrés à 90° et des courbes prononcées. Le robot doit maintenir le suivi de ligne malgré ces difficultés.
┌─────────────────────────────────────┐
│ │
│ START │
│ ●════╗ │
│ ║ │
│ ╚════════╗ │
│ ║ │
│ ╔════════╝ │
│ ║ │
│ ● END │
│ │
└─────────────────────────────────────┘
Tâches à accomplir
- Détecter les virages serrés
- Réduire la vitesse dans les virages
- Maintenir le suivi de ligne dans les courbes à 90°
- Compléter le parcours sans sortie de piste
Matériel nécessaire
- Robot avec capteurs de ligne
- Piste avec virages à 90°
Conseils
- La gestion de la vitesse est cruciale dans les virages
- Avec plusieurs capteurs, utilisez les capteurs extérieurs pour anticiper...
- Un PID bien réglé aide énormément dans les courbes
Questions de réflexion
- Comment détecter qu'un virage approche ?
- Faut-il tourner sur place ou en avançant dans un virage serré ?
- Quelle est la vitesse optimale pour les virages ?
Barème indicatif
| Critère | Points |
|---|---|
| Le robot suit la ligne droite | 20 |
| Le robot gère les virages à 90° | 40 |
| Le robot atteint l'arrivée | 25 |
| Fluidité et vitesse | 15 |
| Total | 100 |
Défi 03 - Croisements simples
Objectifs d'apprentissage
- Détecter et traverser les intersections
- Comprendre la notion de "ligne verte" comme indicateur
- Programmer une logique de décision aux croisements
Description du parcours
Le parcours comporte des intersections (croisements). Des marqueurs verts indiquent la direction à prendre. Le robot doit interpréter ces marqueurs pour choisir le bon chemin.
┌─────────────────────────────────────┐
│ │
│ START [G]=marqueur vert │
│ ●════════╦════════● │
│ ║ END │
│ [G] ║ │
│ ║ │
│ ● │
│ (autre chemin) │
│ │
└─────────────────────────────────────┘
Règles des marqueurs verts
- Vert à gauche : tourner à gauche
- Vert à droite : tourner à droite
- Vert des deux côtés : faire demi-tour
- Pas de vert : aller tout droit
Tâches à accomplir
- Détecter les intersections (tous les capteurs sur noir)
- Identifier les marqueurs verts
- Implémenter la logique de décision
- Naviguer correctement à travers 3 intersections minimum
Matériel nécessaire
- Robot avec capteurs de ligne
- Capteur(s) de couleur pour détecter le vert
- Piste avec intersections et marqueurs verts
Conseils
- L'intersection est détectée quand tous les capteurs voient du noir
- Après détection, avancez légèrement pour lire les marqueurs verts
- Testez chaque direction séparément avant le parcours complet
Questions de réflexion
- Comment distinguer une intersection d'une ligne épaisse ?
- À quel moment faut-il lire les marqueurs verts ?
- Que faire si aucun marqueur n'est détecté ?
Barème indicatif
| Critère | Points |
|---|---|
| Détection des intersections | 25 |
| Lecture correcte des marqueurs | 30 |
| Choix de direction correct | 30 |
| Parcours complet | 15 |
| Total | 100 |
Défi 04 - Rampe
Objectifs d'apprentissage
- Adapter le robot pour gravir une pente
- Gérer l'adhérence et la puissance des moteurs
- Maintenir le suivi de ligne sur un plan incliné
Description du parcours
Le parcours comporte une rampe (pente de 15° à 25°). Le robot doit monter et/ou descendre la rampe tout en suivant la ligne.
Vue de profil :
╱────────╲
╱ ╲
╱ ╲
START ●═══════╱ ╲═══════● END
Pente : 15° à 25°
Tâches à accomplir
- Tester la capacité du robot à monter la pente
- Ajuster la puissance des moteurs pour la montée
- Maintenir le suivi de ligne sur la rampe
- Gérer la descente de manière contrôlée
- Compléter le parcours (montée + descente)
Matériel nécessaire
- Robot avec bonne adhérence (pneus adaptés)
- Moteurs suffisamment puissants
- Rampe d'entraînement (15-25°)
Conseils
- Vérifiez que votre robot ne bascule pas en arrière sur la pente
- Augmentez la puissance pour la montée, réduisez pour la descente
- Le centre de gravité du robot est important : poids vers l'avant aide à monter
- Attention au décrochage de la ligne lors du changement de pente
Problèmes courants
| Problème | Solution possible |
|---|---|
| Robot recule | Augmenter la puissance, améliorer l'adhérence |
| Robot bascule | Revoir la répartition du poids |
| Perte de ligne | Ajuster les capteurs, ralentir |
Questions de réflexion
- Pourquoi le robot a-t-il besoin de plus de puissance en montée ?
- Comment détecter que le robot est sur une pente ?
- Quels ajustements mécaniques peuvent aider ?
Barème indicatif
| Critère | Points |
|---|---|
| Le robot monte la rampe | 35 |
| Suivi de ligne maintenu | 25 |
| Le robot descend la rampe | 25 |
| Fluidité du parcours | 15 |
| Total | 100 |
Défi 05 - Bascule mobile
Objectifs d'apprentissage
- Gérer un obstacle mobile et instable
- Adapter la vitesse et l'approche selon l'obstacle
- Développer des stratégies pour les surfaces instables
Description du parcours
Le parcours comporte une bascule (balancelle) que le robot doit traverser. La bascule pivote sous le poids du robot, créant un défi d'équilibre.
Vue de profil (bascule au repos) :
START ●═══════╲ ╱═══════● END
╲ ╱
╲ ╱
╲╱
▲ (pivot)
Vue de profil (robot engagé) :
START ●═══════════[robot]═══════● END
──────────
▲
Tâches à accomplir
- Détecter l'approche de la bascule
- Adapter la vitesse pour ne pas faire basculer violemment
- Traverser la bascule en maintenant le suivi de ligne
- Gérer le changement d'inclinaison pendant la traversée
- Sortir de la bascule en douceur
Matériel nécessaire
- Robot stable avec bon centre de gravité
- Bascule d'entraînement (pivot central)
- Piste avec ligne traversant la bascule
Conseils
- Approchez lentement pour éviter un basculement brusque
- Maintenez une vitesse constante pendant la traversée
- Le moment critique est quand le robot passe le point de pivot
- Un robot plus long est généralement plus stable sur la bascule
Stratégies possibles
| Stratégie | Avantages | Inconvénients |
|---|---|---|
| Vitesse lente constante | Stable, prévisible | Temps long |
| Accélération au pivot | Rapide | Risque de perte de ligne |
| Arrêt au milieu | Très stable | Complexe à programmer |
Questions de réflexion
- Pourquoi la vitesse est-elle cruciale sur la bascule ?
- Comment le poids et la longueur du robot influencent-ils le passage ?
- Comment détecter qu'on est sur une surface instable ?
Barème indicatif
| Critère | Points |
|---|---|
| Approche contrôlée | 20 |
| Traversée de la bascule | 40 |
| Suivi de ligne maintenu | 25 |
| Sortie en douceur | 15 |
| Total | 100 |
Défi 06 - Détection de victime
Objectifs d'apprentissage
- Utiliser des capteurs pour détecter des objets (victimes)
- Distinguer différents types de victimes (vivantes/mortes)
- Signaler la détection de manière appropriée
Description du parcours
Le parcours comporte des "victimes" (billes ou petits objets) placées sur les côtés de la ligne. Le robot doit les détecter et les signaler sans les toucher.
┌─────────────────────────────────────┐
│ │
│ START ○ = victime vivante │
│ ●═══════════════════════● │
│ ○ ● END │
│ │
│ ● = victime morte (noire) │
│ │
└─────────────────────────────────────┘
Types de victimes
| Type | Apparence | Action requise |
|---|---|---|
| Victime vivante | Bille argentée/réfléchissante | Signaler (LED/son) |
| Victime morte | Bille noire | Signaler différemment |
Tâches à accomplir
- Installer un capteur de détection (ultrasons, infrarouge, etc.)
- Calibrer le capteur pour détecter les victimes
- Programmer la distinction vivante/morte (si capteur couleur)
- Signaler la détection (allumer LED, émettre son)
- Continuer le parcours après signalement
Matériel nécessaire
- Robot avec capteurs de ligne
- Capteur de distance (ultrasons ou infrarouge)
- Optionnel : capteur de couleur pour distinguer les victimes
- LED et/ou buzzer pour le signalement
Conseils
- Les victimes sont à 5-10 cm de la ligne, pas dessus
- Balayez régulièrement avec le capteur de distance
- Le signalement doit être visible/audible pendant au moins 1 seconde
- Ne vous arrêtez pas trop longtemps, continuez à suivre la ligne
Questions de réflexion
- Quel type de capteur est le plus adapté pour détecter les victimes ?
- Comment éviter les faux positifs (murs, obstacles) ?
- Faut-il s'arrêter pour signaler ou le faire en mouvement ?
Barème indicatif
| Critère | Points |
|---|---|
| Détection des victimes | 35 |
| Distinction vivante/morte | 20 |
| Signalement correct | 25 |
| Parcours complété | 20 |
| Total | 100 |
Défi 07 - Accroche de victime
Objectifs d'apprentissage
- Concevoir et utiliser un mécanisme de préhension
- Coordonner le mouvement du robot et du mécanisme
- Manipuler des objets avec précision
Description du parcours
Le robot doit non seulement détecter les victimes, mais aussi les récupérer à l'aide d'un mécanisme (pince, pelle, aimant, etc.).
┌─────────────────────────────────────┐
│ │
│ START │
│ ●══════════════════════● │
│ ○ END │
│ (victime) │
│ │
│ Le robot doit récupérer la │
│ victime et continuer │
│ │
└─────────────────────────────────────┘
Tâches à accomplir
- Concevoir un mécanisme de récupération
- Programmer l'approche vers la victime
- Activer le mécanisme pour saisir la victime
- Vérifier que la victime est bien récupérée
- Reprendre le suivi de ligne avec la victime
Types de mécanismes possibles
| Mécanisme | Avantages | Inconvénients |
|---|---|---|
| Pince servo | Précis, polyvalent | Complexe, lent |
| Pelle/ramasse | Simple, rapide | Moins fiable |
| Électro-aimant | Très efficace si billes métalliques | Limité au métal |
| Ventouse | Doux pour les victimes | Nécessite pompe |
Matériel nécessaire
- Robot avec capteurs de ligne et de distance
- Servo-moteur ou actionneur pour le mécanisme
- Mécanisme de préhension adapté aux victimes (billes)
Conseils
- Testez d'abord le mécanisme seul, puis intégrez-le au robot
- L'alignement avec la victime est crucial avant la saisie
- Prévoyez une vérification (capteur) pour confirmer la prise
- Un mécanisme simple mais fiable vaut mieux qu'un complexe qui échoue
Séquence recommandée
- Détecter la victime
- S'aligner avec la victime
- S'approcher à distance de saisie
- Activer le mécanisme
- Vérifier la prise
- Reprendre le parcours
Questions de réflexion
- Quel mécanisme est le plus adapté à votre robot ?
- Comment garantir que la victime ne tombe pas pendant le transport ?
- Faut-il sortir de la ligne pour récupérer la victime ?
Barème indicatif
| Critère | Points |
|---|---|
| Détection de la victime | 15 |
| Approche et alignement | 20 |
| Saisie réussie | 35 |
| Transport sécurisé | 15 |
| Reprise du parcours | 15 |
| Total | 100 |
Défi 08 - Dépose dans une zone
Objectifs d'apprentissage
- Localiser et atteindre une zone de dépose
- Déposer les victimes de manière contrôlée
- Gérer la séquence complète : détection → saisie → transport → dépose
Description du parcours
Après avoir récupéré une victime, le robot doit la transporter jusqu'à une zone de dépose spécifique (souvent marquée par une couleur ou un motif) et l'y déposer délicatement.
┌─────────────────────────────────────┐
│ │
│ START │
│ ●══════════════╦════════● │
│ ○ ║ END │
│ (victime)║ │
│ ║ │
│ ┌───╨───┐ │
│ │ ZONE │ │
│ │DÉPOSE │ │
│ └───────┘ │
│ │
└─────────────────────────────────────┘
Tâches à accomplir
- Récupérer la victime (cf. Défi 07)
- Détecter la zone de dépose (couleur, marqueur)
- Naviguer vers la zone de dépose
- Déposer la victime dans la zone
- Reprendre le parcours principal
Zone de dépose - Caractéristiques
| Élément | Description |
|---|---|
| Couleur | Généralement rouge ou verte |
| Taille | Environ 15x15 cm minimum |
| Position | Adjacent à la ligne ou en dérivation |
| Entrée | Marquée par un indicateur sur la ligne |
Matériel nécessaire
- Robot équipé pour la saisie de victime
- Capteur de couleur pour détecter la zone
- Mécanisme de dépose (peut être le même que la saisie)
Conseils
- La zone de dépose est généralement signalée sur la ligne (marqueur vert spécial)
- Entrez dans la zone en quittant temporairement la ligne
- Déposez au centre de la zone pour être sûr
- Sortez de la zone et retrouvez la ligne principale
Séquence complète
Suivre ligne → Détecter victime → Saisir victime →
Continuer ligne → Détecter entrée zone → Entrer dans zone →
Déposer victime → Sortir de zone → Retrouver ligne →
Continuer vers arrivée
Questions de réflexion
- Comment savoir quand entrer dans la zone de dépose ?
- Comment être sûr que la victime est bien dans la zone ?
- Comment retrouver la ligne après la dépose ?
Barème indicatif
| Critère | Points |
|---|---|
| Saisie de la victime | 20 |
| Détection zone de dépose | 15 |
| Navigation vers la zone | 15 |
| Dépose dans la zone | 30 |
| Reprise du parcours | 20 |
| Total | 100 |
Défi 09 - Multivictimes
Objectifs d'apprentissage
- Gérer plusieurs victimes sur un même parcours
- Optimiser les trajets et l'ordre de récupération
- Gérer la capacité de stockage du robot
Description du parcours
Le parcours comporte plusieurs victimes (3 à 5) que le robot doit toutes récupérer et déposer dans la zone appropriée. Certaines victimes peuvent être vivantes, d'autres mortes.
┌─────────────────────────────────────┐
│ │
│ START ○ = vivante │
│ ●═══════════════════════════● │
│ ○ ● ○ END │
│ ● │
│ ● = morte │
│ ┌───────┐ │
│ │ ZONE │ │
│ └───────┘ │
│ │
└─────────────────────────────────────┘
Tâches à accomplir
- Concevoir un système de stockage multiple (ou faire plusieurs voyages)
- Détecter et récupérer toutes les victimes
- Distinguer victimes vivantes et mortes
- Déposer les victimes dans les zones appropriées
- Optimiser le parcours pour le temps
Stratégies possibles
| Stratégie | Description | Difficulté |
|---|---|---|
| Séquentielle | Une victime à la fois | Facile mais lent |
| Stockage multiple | Plusieurs victimes stockées | Mécanique complexe |
| Tri sur place | Séparer vivantes/mortes | Logique complexe |
Zones de dépose
- Zone verte : victimes vivantes
- Zone rouge : victimes mortes (si distinction requise)
- Zone unique : toutes les victimes (si pas de distinction)
Matériel nécessaire
- Robot avec capacité de stockage (simple ou multiple)
- Capteurs de couleur pour distinction des victimes
- Mécanisme de saisie/dépose fiable
Conseils
- Même avec un stockage simple, vous pouvez faire plusieurs voyages
- Comptez les victimes récupérées pour savoir quand vous avez fini
- Si stockage multiple, attention à ne pas faire tomber les victimes déjà stockées
- Planifiez l'ordre de récupération pour minimiser les allers-retours
Défis supplémentaires
- Bonus vitesse : Temps limité pour toutes les victimes
- Bonus distinction : Points extra pour bon tri vivantes/mortes
- Malus : Victime tombée hors zone
Questions de réflexion
- Vaut-il mieux un stockage multiple complexe ou plusieurs voyages simples ?
- Comment optimiser l'ordre de récupération des victimes ?
- Comment s'assurer qu'aucune victime n'est oubliée ?
Barème indicatif
| Critère | Points |
|---|---|
| Victimes détectées (×5) | 5 chacune = 25 |
| Victimes récupérées (×5) | 8 chacune = 40 |
| Victimes déposées correctement (×5) | 5 chacune = 25 |
| Bonus distinction vivante/morte | 10 |
| Total | 100 |
Défi 10 - Parcours complet autonome
Objectifs d'apprentissage
- Intégrer toutes les compétences des défis précédents
- Développer un robot entièrement autonome
- Optimiser les performances globales
Description du parcours
C'est le défi ultime ! Le parcours combine tous les éléments des défis précédents :
- Suivi de ligne avec virages serrés
- Intersections avec marqueurs verts
- Rampe et/ou bascule
- Plusieurs victimes à récupérer
- Zones de dépose
┌─────────────────────────────────────────────────┐
│ │
│ START │
│ ●══════════╦═══════════════╗ │
│ ○ ║ ╱ ║ │
│ [G] ╱rampe ║ │
│ ║ ╱ ● │
│ ╔════════╝ ║ END │
│ ║ ● ║ │
│ ║ [bascule] ║ │
│ ╚═══════════════════════╝ │
│ ○ │
│ ┌─────────┐ │
│ │ ZONE │ │
│ └─────────┘ │
│ │
└─────────────────────────────────────────────────┘
Éléments du parcours
| Élément | Quantité | Points max |
|---|---|---|
| Virages 90° | 4-6 | 10 |
| Intersections | 2-3 | 15 |
| Rampe | 1 | 15 |
| Bascule | 1 | 15 |
| Victimes | 3-5 | 25 |
| Zones de dépose | 1-2 | 10 |
| Arrivée | 1 | 10 |
Tâches à accomplir
- Suivre la ligne avec tous types de virages
- Gérer correctement toutes les intersections
- Franchir la rampe
- Traverser la bascule
- Récupérer toutes les victimes
- Déposer les victimes dans les zones
- Atteindre la zone d'arrivée
Contraintes de compétition
| Contrainte | Valeur typique |
|---|---|
| Temps maximum | 8 minutes |
| Taille max robot | 25×25×25 cm |
| Poids max | 2 kg |
| Tentatives | 2 (meilleur score) |
Conseils pour l'expert
- Fiabilité > Vitesse : Un robot lent mais fiable bat un robot rapide qui échoue ?
- Testez chaque module : Vérifiez chaque fonction séparément avant l'intégration
- Prévoyez les pannes : Que fait le robot s'il perd la ligne ? S'il rate une victime ?
- Calibration : Recalibrez les capteurs juste avant le défi (lumière ambiante)
- Batteries : Vérifiez la charge, le comportement change avec des batteries faibles
Check-list pré-défi
- Batteries chargées
- Capteurs calibrés
- Mécanisme de saisie testé
- Programme correct chargé
- Robot dans les dimensions
- Pièces de rechange prêtes
Gestion des erreurs
| Erreur | Récupération possible |
|---|---|
| Perte de ligne | Recherche en spirale / demi-tour |
| Victime ratée | Continuer (pénalité acceptée) |
| Blocage obstacle | Marche arrière + réessai |
| Bascule ratée | Retry avec vitesse différente |
Questions de réflexion
- Quel est l'équilibre optimal vitesse/fiabilité pour votre robot ?
- Quelles sont les parties les plus risquées du parcours ?
- Comment prioriser les points si le temps manque ?
Barème indicatif
| Critère | Points |
|---|---|
| Suivi de ligne complet | 15 |
| Intersections correctes | 15 |
| Franchissement rampe | 15 |
| Traversée bascule | 15 |
| Victimes récupérées et déposées | 25 |
| Arrivée atteinte | 10 |
| Bonus temps (< 5 min) | 5 |
| Total | 100 |
Félicitations !
Si vous avez complété ce défi, vous maîtrisez les bases de la Rescue Line !
Bonne chance pour la compétition ! 🤖
Vidéos - Rescue Line
Vidéos pédagogiques
Liste des vidéos à venir
Démonstrations
Vidéos de démonstration à ajouter
Code - Rescue Line
Exemples de programmes
Cette section contient des exemples de code pour Rescue Line.
Structure des exemples
Chaque exemple est commenté pour guider les élèves dans la compréhension du code.
Ressources - Rescue Line
Supports pédagogiques
À compléter
Matériel
Description du matériel nécessaire
Conseils de mise en œuvre
Conseils pour la mise en place des défis
Défi 01 - Rescue Maze
Objectifs d'apprentissage
À définir
Description du parcours
Description du scénario et du labyrinthe
Tâches à accomplir
- Tâche 1
- Tâche 2
- Tâche 3
Questions de réflexion
- Question 1
- Question 2
Vidéos - Rescue Maze
Vidéos pédagogiques
Liste des vidéos à venir
Démonstrations
Vidéos de démonstration à ajouter
Code - Rescue Maze
Exemples de programmes
Cette section contient des exemples de code pour Rescue Maze.
Structure des exemples
Chaque exemple est commenté pour guider les élèves dans la compréhension du code.
Ressources - Rescue Maze
Supports pédagogiques
Matériel
À compléter
Conseils de mise en œuvre
À compléter
Défi 01 - Rescue Simulation
Objectifs d'apprentissage
À définir
Description du parcours
Description du scénario de simulation
Tâches à accomplir
- Tâche 1
- Tâche 2
- Tâche 3
Questions de réflexion
- Question 1
- Question 2
Vidéos - Rescue Simulation
Vidéos pédagogiques
Liste des vidéos à venir
Démonstrations
Vidéos de démonstration à ajouter
Code - Rescue Simulation
Exemples de programmes
Cette section contient des exemples de code pour Rescue Simulation.
Structure des exemples
Chaque exemple est commenté pour guider les élèves dans la compréhension du code.
Ressources - Rescue Simulation
Supports pédagogiques
Matériel
À compléter
Conseils de mise en œuvre
À compléter
Python
Introduction
Python est un langage de programmation de haut niveau créé par Guido van Rossum en 1991. Son nom s'inspire de la série télévisée "Monty Python's Flying Circus". Il est géré par la Python Software Foundation, une organisation qui soutient son développement et sa communauté.
Installation
Pour installer Python, visitez le site officiel de Python et téléchargez la dernière version, Python 3.12.
Premiers Pas
Hello World
print("Hello, World!")
Caractéristiques Principales
- Langage de haut niveau : Python est conçu pour être facile à lire et à écrire.
- Gratuit : Python est open source et gratuit.
- Orienté objet : Python supporte la programmation orientée objet.
- Polyvalent : Utilisé dans de nombreux domaines comme l'analyse de données, la bioinformatique, et la robotique
Exemples de Code
Variables
Python possède plusieurs types de données courants :
Nombres entiers (int)
a = 5
print(type(a))
# >> int
Nombres décimaux (float)
En informatique, les nombres décimaux sont souvent représentés en nombre à virgule flottante, encore appelés nombres flottants.
b = 3.14
print(type(b))
# >> float
Compte tenu de la manière dont les nombres à virgule flottante sont stockés en mémoire, ils sont souvent approximés, ce qui peut entraîner des erreurs de calcul. Il faut donc éviter de tester l'égalité de deux nombres flottants.
Chaînes de caractères (str)
c = "Salut"
print(type(c))
# >> str
Booléens (bool)
d = True
print(type(d))
# >> bool
En Python, il n'est pas nécessaire de déclarer le type d'une variable, le langage se charge de le déterminer automatiquement.
Conditions et boucles
Les conditions (Structures de décision)
Les structures conditionnelles permettent de prendre des décisions dans un programme. En fonction de certaines conditions, différentes parties du code peuvent être exécutées.
if: vérifie une condition et exécute le bloc de code associé si elle est vraie.elif: vérifie une autre condition lorsque la première est fausse et exécute le bloc de code associé si cette nouvelle condition est vraie.else: exécute un bloc de code si toutes les conditions précédentes sont fausses.
Exemple :
if condition:
# Bloc de code exécuté si la condition est vraie
elif autre_condition:
# Bloc exécuté si la première condition est fausse et l’autre condition est vraie
else:
# Bloc exécuté si toutes les conditions précédentes sont fausses
Les boucles (Structures itératives)
1. La boucle for
La boucle for permet de répéter un bloc de code un nombre déterminé de fois. Elle est souvent utilisée pour parcourir des séquences (listes, chaînes de caractères, etc.).
Exemple :
for variable in séquence:
# Bloc de code exécuté pour chaque élément de la séquence
for i in range(3):
print(i)
>> 0
>> 1
>> 2
2. La boucle while
La boucle while exécute un bloc de code tant qu’une condition est vraie.
Exemple :
while condition:
# Bloc de code exécuté tant que la condition est vraie
compteur = 0
while compteur < 4:
print(compteur)
compteur += 1
>> 0
>> 1
>> 2
>> 3
3. Boucle infinie et sortie de boucle
Une boucle infinie se produit quand la condition de sortie n’est jamais atteinte. Cela peut bloquer l’exécution du programme. On peut interrompre une boucle avec l’instruction break.
Exemple :
compteur = 0
while True:
print(compteur)
compteur += 1
if compteur == 4:
break
>> 0
>> 1
>> 2
>> 3
Fonctions
def saluer(nom):
return f"Bonjour, {nom}!"
print(saluer("Alice"))
Ressources supplémentaires
Maths
Soon..