Ceci est une ancienne révision du document !
Table des matières
Vittascience
Vittascience : Une plateforme innovante pour enseigner la programmation
Vittascience est une plateforme pédagogique en ligne qui permet d’enseigner la programmation informatique et l’intelligence artificielle aux enfants de manière ludique et interactive. Elle propose une interface intuitive où les enfants peuvent coder en blocs, à la manière de Scratch, ou en code, pour ceux qui souhaitent progresser vers des langages plus complexes. L’interface en mode hybride, comprenant les modes blocs et code juxtaposés, permet de mieux comprendre le lien entre les deux modes de langage. Vittascience offre une transition en douceur entre ces deux modes, permettant aux enfants de développer leurs compétences à leur propre rythme.
Programmer un arduino
Decouverte Arduino
Decouverte Arduino UNO
Prise en main de la carte Arduino UNO et de l'interface Vittascience
prise_en_main_de_la_carte_arduino_uno_et_de_l_interface_vittascience.pdf
Decouverte LED et Arduino
Decouverte Bouton + LED + Arduino
Decouverte PhotoResistance + Led + Arduino
Mesurer la luminosité avec une photorésistance sur Arduino
mesurer_la_luminosite_avec_une_photoresistance_sur_arduino.pdf
Decouverte Vitesse du son avec un HC-SR04 + Arduino
Decouverte Radar de recul avec HC-SR04 + Arduino
Decouverte Chariot+ servo Moteur 360° + Arduino
Programmer un Robot Mbot
Televerser dans le robot mBot1 à partir de l'interface Vittascience
Pour Téléverser le programme robot sur mBot1 à partir de l'interface Vittascience ( si “Televerser” ne fonctionne pas , passer par les étapes 1 et 2 …) :
1- Vider le cache de Google Chrome
2-Passer en navigation privée sur Google chrome
3- cliquer sur “Téléverser” ( connecter sur USB et allumer le mBot1 avant …)
4- choisir le port COM du mBot1 et faire connexion ( exemple: “COM3” sous Windows 11 ou “USB Serial (ttyUSB0)“ sous Linux)
et c'est tout , dans la console série de vittascience tu dois voir :
Le programme utilise 8469 octets d'espace de stockage. (28%) Compilation réussie. Téléversement du programme ... Carte détectée: Arduino Nano w/ ATmega328 Programme Arduino envoyé avec succès dans la carte !"
Exemples Vittascience Robot mBot1
Image fond ecran pour virtualisation mBot1 sur Vittascience
Programmes mBot1 Vittascience
robot-mbot-utiliser-les-led-rgb
robot-mbot-utiliser-les-led-rgb
robot_mbot_-_utiliser_les_led_rgb.pdf
- rgb.ino
#include <MeMCore.h> #include <Arduino.h> #include <Wire.h> #include <SoftwareSerial.h> MeRGBLed rgbled_board(7, 2); void setup() { } void loop() { rgbled_board.setColor(1, 255, 0, 0); rgbled_board.show(); rgbled_board.setColor(2, 51, 51, 255); rgbled_board.show(); delay(1000*0.5); rgbled_board.setColor(1, 51, 51, 255); rgbled_board.show(); rgbled_board.setColor(2, 255, 0, 0); rgbled_board.show(); delay(1000*0.5); }
Robot mBot - Utiliser le capteur de distance
robot-mbot-utiliser-le-capteur-de-distance
robot_mbot_-_utiliser_le_capteur_de_distance.pdf
robot_mbot_-_utiliser_le_capteur_de_distance_-_partie_3_20251027_123737.ino.tar (Enlever .tar)
- distancearduino.ino
#include <MeMCore.h> #include <Arduino.h> #include <Wire.h> #include <SoftwareSerial.h> // Ultrasonic on PORT_3 MeUltrasonicSensor ultrasonic_3(PORT_3); MeDCMotor motor_L(9); MeDCMotor motor_R(10); void mBot_setMotorLeft(int8_t dir, int16_t speed) { speed = speed/100.0*255; motor_L.run((9) == M1 ? -(dir*speed) : (dir*speed)); } void mBot_setMotorRight(int8_t dir, int16_t speed) { speed = speed/100.0*255; motor_R.run((10) == M1 ? -(dir*speed) : (dir*speed)); } void setup() { } void loop() { if (ultrasonic_3.distanceCm() > 5) { mBot_setMotorRight(1, 25); mBot_setMotorLeft(1, 25); } else { mBot_setMotorRight(0, 0); mBot_setMotorLeft(0, 0); } }
robot-mbot-controler-le-robot-avec-une-telecommande
robot-mbot-controler-le-robot-avec-une-telecommande
robot_mbot_-_controler_le_robot_avec_une_telecommande.pdf
robot_mbot_-_controler_le_robot_avec_une_telecommande_-_partie_3_20251027_144323.ino.tar ( enlever .tar)
- telecommandemBot.ino
#include <MeMCore.h> #include <Arduino.h> #include <Wire.h> #include <SoftwareSerial.h> MeIR ir; MeDCMotor motor_L(9); MeDCMotor motor_R(10); void mBot_setMotorLeft(int8_t dir, int16_t speed) { speed = speed/100.0*255; motor_L.run((9) == M1 ? -(dir*speed) : (dir*speed)); } void mBot_setMotorRight(int8_t dir, int16_t speed) { speed = speed/100.0*255; motor_R.run((10) == M1 ? -(dir*speed) : (dir*speed)); } void setup() { ir.begin(); } void loop() { if (ir.keyPressed(64)) { mBot_setMotorRight(1, 25); mBot_setMotorLeft(1, 25); } else if (ir.keyPressed(25)) { mBot_setMotorRight(-1, 25); mBot_setMotorLeft(-1, 25); } else if (ir.keyPressed(7)) { mBot_setMotorRight(1, 25); mBot_setMotorLeft(-1, 25); } else if (ir.keyPressed(9)) { mBot_setMotorRight(-1, 25); mBot_setMotorLeft(1, 25); } else { mBot_setMotorRight(0, 0); mBot_setMotorLeft(0, 0); } }
robot-mbot-utiliser-le-bouton
robot_mbot_-_utiliser_le_bouton.pdf
robot_mbot_-_utiliser_le_bouton_-_partie_3_20251027_15143.ino.tar(enlever .tar)
- boutonpoussoir.ino
#include <MeMCore.h> #include <Arduino.h> #include <Wire.h> #include <SoftwareSerial.h> MeDCMotor motor_L(9); MeDCMotor motor_R(10); int buttonPressed() { return analogRead(A7) <= 10 ? 1 : 0; } void mBot_setMotorLeft(int8_t dir, int16_t speed) { speed = speed/100.0*255; motor_L.run((9) == M1 ? -(dir*speed) : (dir*speed)); } void mBot_setMotorRight(int8_t dir, int16_t speed) { speed = speed/100.0*255; motor_R.run((10) == M1 ? -(dir*speed) : (dir*speed)); } void setup() { pinMode(A7,INPUT); } void loop() { if (buttonPressed()) { mBot_setMotorRight(1, 25); mBot_setMotorLeft(1, 25); delay(1000*1); mBot_setMotorRight(-1, 25); mBot_setMotorLeft(-1, 25); delay(1000*1); mBot_setMotorRight(0, 0); mBot_setMotorLeft(0, 0); } }
Robot suivi Ligne
robot-mbot-utiliser-les-suiveurs-de-ligne
robot_mbot_-_utiliser_les_suiveurs_de_ligne.pdf
correctionsuiviligneexo4_vittascience_20251020_193057.ino.zip
Robot circuit Vittascience test gauchedroite variables 20251121
- suivilignevariable.ino
#include <MeMCore.h> #include <Arduino.h> #include <Wire.h> #include <SoftwareSerial.h> // Line Finder on PORT_2 MeLineFollower lineFinder_2(PORT_2); MeRGBLed rgbled_board(7, 2); MeDCMotor motor_L(9); MeDCMotor motor_R(10); int vitesse; int vitessem; int droite; int gauche; int buttonPressed() { return analogRead(A7) <= 10 ? 1 : 0; } void mBot_setMotorLeft(int8_t dir, int16_t speed) { speed = speed/100.0*255; motor_L.run((9) == M1 ? -(dir*speed) : (dir*speed)); } void mBot_setMotorRight(int8_t dir, int16_t speed) { speed = speed/100.0*255; motor_R.run((10) == M1 ? -(dir*speed) : (dir*speed)); } void setup() { pinMode(A7,INPUT); while (!buttonPressed() ) {} vitesse = 50; vitessem = 50; droite = 0; gauche = 0; } void loop() { if (!lineFinder_2.readSensor2() && !lineFinder_2.readSensor1()) { rgbled_board.setColor(1, 0, 0, 0); rgbled_board.show(); rgbled_board.setColor(2, 0, 0, 0); rgbled_board.show(); mBot_setMotorRight(1, vitesse); mBot_setMotorLeft(1, vitessem); } else if (!lineFinder_2.readSensor1()) { rgbled_board.setColor(2, 0, 0, 0); rgbled_board.show(); rgbled_board.setColor(1, 255, 255, 255); rgbled_board.show(); mBot_setMotorRight(1, vitesse); mBot_setMotorLeft(0, 0); gauche = 1; droite = 0; } else if (!lineFinder_2.readSensor2()) { rgbled_board.setColor(1, 0, 0, 0); rgbled_board.show(); rgbled_board.setColor(2, 255, 255, 255); rgbled_board.show(); mBot_setMotorLeft(1, vitesse); mBot_setMotorRight(0, 0); gauche = 0; droite = 1; } else { if (!!lineFinder_2.readSensor2() && !!lineFinder_2.readSensor1()) { rgbled_board.setColor(1, 255, 255, 255); rgbled_board.show(); rgbled_board.setColor(2, 255, 255, 255); rgbled_board.show(); if (droite == 1) { mBot_setMotorRight(1, 0); mBot_setMotorLeft(1, vitesse); } if (gauche == 1) { mBot_setMotorRight(1, vitesse); mBot_setMotorLeft(1, 0); } } } }
Sortie d un Labyrinthe avec un mBot
idées d'algorythme pour sortir d un labytrinthe
- algolaby001.ino
Initialisation : -Démarrage du robot MBot. -Activation des capteurs de distance (Yeux). -Configuration des paramètres de vitesse et de détection. *Détection d'obstacle : -Si la distance est supérieure à 20 cm, le robot accélère. -Si la distance est entre 20 cm et 10 cm, le robot maintient une vitesse constante. -Si la distance est inférieure à 10 cm mais supérieure à 5 cm, le robot ralentit. -Si la distance est inférieure à 5 cm, le robot s'arrête. *Orientation pour trouver la sortie : -Si le robot est arrêté à cause d'un obstacle à 5 cm, il effectue une séquence d'orientations pour trouver la sortie. -Si après un virage à droite de 90°, il n'y a pas d'obstacle proche, le robot avance. -Sinon, s'il effectue un demi-tour (180°) et ne détecte pas d'obstacle proche, le robot avance. -Sinon, après un virage à gauche de 90°, le robot avance (car il aura effectué un demi-tour). *Répétition du processus : -Le robot continue à avancer tout en détectant les obstacles et ajustant sa vitesse en conséquence. -En cas d'obstacle à 5 cm, il effectue les étapes d'orientation pour trouver la sortie. *Fin : -Arrêt du robot lorsque la sortie du labyrinthe est détectée.

























