Plongez dans l'Univers de la Robotique votre club

Code Arduino pour Labyrinthe

Bienvenue dans le monde fascinant de la robotique où l’innovation rencontre la créativité. Chez CLUB ROBOTIQUE, nous croyons que chaque passionné, qu’il soit novice ou expert, a le potentiel de transformer ses idées en réalité. Nos ateliers sont conçus pour encourager l’apprentissage pratique et l’expérimentation. Que vous soyez intéressé par la programmation, l’électronique ou la mécanique, nous avons quelque chose à offrir. Rejoignez-nous pour des événements passionnants, des compétitions stimulantes et des projets collaboratifs qui vous permettront d’explorer les limites de la technologie. Ensemble, faisons avancer la robotique et inspirons la prochaine génération d’innovateurs.

Explorez les Horizons de la Technologie Robotique

Chez CLUB ROBOTIQUE, nous nous engageons à créer un environnement où l’apprentissage et l’innovation vont de pair. Nos membres bénéficient d’un accès exclusif à des ressources pédagogiques, des ateliers interactifs et des projets collaboratifs. Que vous souhaitiez construire votre propre robot ou participer à des compétitions, notre communauté dynamique est là pour vous soutenir à chaque étape. Découvrez nos dernières initiatives, partagez vos idées et faites partie d’une aventure passionnante qui repousse les frontières de la technologie. Ensemble, nous pouvons façonner l’avenir de la robotique.

Inspirez votre Créativité avec CLUB ROBOTIQUE

Guide Technique

Explorez notre guide complet pour implémenter le code de suiveur de ligne Arduino avec précision.

Introduction au Suiveur de Ligne

Ce document fournit une vue d’ensemble détaillée sur la mise en œuvre du code Arduino pour les suiveurs de ligne. Découvrez comment configurer votre matériel et optimiser votre code pour des performances maximales.

Capteurs Infrarouges

Utilisez des capteurs infrarouges pour détecter les lignes avec précision et ajuster la trajectoire du robot.

Algorithme PID

Implémentez l’algorithme PID pour améliorer la stabilité et la réactivité de votre robot suiveur de ligne.

Configuration Matérielle

Assurez-vous que votre carte Arduino est correctement connectée aux moteurs et aux capteurs. Suivez notre schéma de câblage détaillé pour éviter les erreurs courantes.

code pour Labyrinthe

code pour Labyrinthe

#include <Arduino.h>
#include <Wire.h>
#include <SoftwareSerial.h>

#include <MeMCore.h>

MeDCMotor motor_9(9);
MeDCMotor motor_10(10);
void move(int direction, int speed)
{
int leftSpeed = 0;
int rightSpeed = 0;
if(direction == 1){
leftSpeed = speed;
rightSpeed = speed;
}else if(direction == 2){
leftSpeed = -speed;
rightSpeed = -speed;
}else if(direction == 3){
leftSpeed = -speed;
rightSpeed = speed;
}else if(direction == 4){
leftSpeed = speed;
rightSpeed = -speed;
}
motor_9.run((9)==M1?-(leftSpeed):(leftSpeed));
motor_10.run((10)==M1?-(rightSpeed):(rightSpeed));
}
double angle_rad = PI/180.0;
double angle_deg = 180.0/PI;
void Correction();
double distance;
MeUltrasonicSensor ultrasonic_2(2);
MeUltrasonicSensor ultrasonic_3(3);
void se();
double currentTime = 0;
double lastTime = 0;
double getLastTime(){
return currentTime = millis()/1000.0 – lastTime;
}
void Tourner(double angle);
double Temps;
double compteur;
double __var__99_97_112_116_101_117_114_32_49;
double __var__99_97_112_116_101_117_114_32_50;
double __var__99_97_112_116_101_117_114_32_51;
double ETAT;
MeUltrasonicSensor ultrasonic_1(1);
Me7SegmentDisplay seg7_4(4);

void Correction()
{
move(1,0);
if((ultrasonic_2.distanceCm()) < (25)){
if(!(((round(ultrasonic_2.distanceCm()))==(round(ultrasonic_3.distanceCm()))))){
distance = ((ultrasonic_2.distanceCm()) – (ultrasonic_3.distanceCm())) / (16);
distance = atan(distance)*angle_deg;
if((abs(distance)) > (0.5)){
Tourner(distance);
}
}
}
}

void se()
{
lastTime = millis()/1000.0;
move(1,100);
while(!((getLastTime()) > (1)))
{
_loop();
}
move(1,0);
}

void Tourner(double angle)
{
move(1,0);
Temps = ((angle) * (1.9)) / (180);
lastTime = millis()/1000.0;
if((Temps) < (0)){
Temps = (Temps) * (-1);
move(4,100);
}else{
move(3,100);
}
while(!((getLastTime()) > (Temps)))
{
_loop();
}
move(1,0);
}

void setup(){
compteur = 0;
}

void loop(){
_delay(0.1);
if((ultrasonic_1.distanceCm()) < (5)){
__var__99_97_112_116_101_117_114_32_49 = 1;
}else{
__var__99_97_112_116_101_117_114_32_49 = 0;
}
if((ultrasonic_2.distanceCm()) < (15)){
__var__99_97_112_116_101_117_114_32_50 = 1;
}else{
__var__99_97_112_116_101_117_114_32_50 = 0;
}
if((ultrasonic_3.distanceCm()) < (15)){
__var__99_97_112_116_101_117_114_32_51 = 1;
}else{
__var__99_97_112_116_101_117_114_32_51 = 0;
}
ETAT = ((__var__99_97_112_116_101_117_114_32_49) * (100)) + (((__var__99_97_112_116_101_117_114_32_50) * (10)) + (__var__99_97_112_116_101_117_114_32_51));
seg7_4.display((float)compteur);
if(!(((compteur)==(0)))){
if(((ETAT)==(1))){
move(1,100);
while(!((ultrasonic_3.distanceCm()) > (15)))
{
_loop();
}
compteur += 1;
Tourner(90);
se();
}
}
if(!(((compteur)==(0)))){
if(((ETAT)==(11))){
Correction();
move(1,100);
}
}
if(!(((compteur)==(0)))){
if(((ETAT)==(100))){
compteur += 1;
Tourner(90);
se();
}
}
if(!(((compteur)==(0)))){
if(((ETAT)==(101))){
move(1,0);
}
}
if(!(((compteur)==(0)))){
if(((ETAT)==(110))){
move(1,0);
}
}
if(!(((compteur)==(0)))){
if(((ETAT)==(111))){
compteur += -1;
Tourner(-90);
}
}
if(!(((compteur)==(0)))){
if(((ETAT)==(10))){
move(1,100);
lastTime = millis()/1000.0;
while(!(((ultrasonic_3.distanceCm()) < (15)) || ((getLastTime()) > (1))))
{
_loop();
}
}
}
if(((compteur)==(0))){
if(((__var__99_97_112_116_101_117_114_32_49)==(1))){
compteur += -1;
Tourner(-90);
}else{
if(((ETAT)==(11))){
Correction();
move(1,100);
}
move(1,100);
}
}
if((((ultrasonic_1.distanceCm())==( 400 ))) && (((__var__99_97_112_116_101_117_114_32_49)==(1)))){
move(1,0);
move(2,100);
while(!((!(((ultrasonic_1.distanceCm())==( 400 )))) && ((ultrasonic_1.distanceCm()) > (10))))
{
_loop();
}
move(1,0);
}
if((((ultrasonic_2.distanceCm())==( 400 ))) && (((ETAT)==(11)))){
motor_9.run((9)==M1?-(200):(200));
motor_10.run((10)==M1?-(100):(100));
while(!((!(((ultrasonic_2.distanceCm())==( 400 )))) && ((ultrasonic_2.distanceCm()) > (6))))
{
_loop();
}
move(1,0);
}
if((((ultrasonic_2.distanceCm())==( 400 ))) && (((__var__99_97_112_116_101_117_114_32_50)==(1)))){
Tourner(-20);
se();
}
if((((ultrasonic_3.distanceCm())==( 400 ))) && (((__var__99_97_112_116_101_117_114_32_51)==(1)))){
Tourner(-40);
se();
}
if(!(((compteur)==(0)))){
if(((ETAT)==(0))){
move(1,100);
}
}
_loop();
}

void _delay(float seconds){
long endTime = millis() + seconds * 1000;
while(millis() < endTime)_loop();
}

void _loop(){
}

Découvrez des astuces pour optimiser votre code Arduino, réduire la consommation d’énergie et améliorer la vitesse de traitement.

Rejoignez le club Robotique