======== Vittascience ======== [[https://fr.vittascience.com/|Vittascience FR]] [[https://fr.vittascience.com/support/glossary|Glossaire 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. {{ :start:arduino:cours:cataloguevittascience2025.pdf |cataloguevittascience2025.pdf}} ====== Programmer un arduino ====== [[https://fr.vittascience.com/arduino/?mode=mixed&console=bottom&toolbox=vittascience&board=uno&localId=loc643b6bf6e1cdc8|Vittascience et Arduino ]] {{ :start:arduino:cours:capture_d_ecran_du_2025-11-16_15-08-58.png?direct&800 |}} ==== Decouverte Arduino ==== [[https://fr.vittascience.com/learn/tutorial.php?id=1232/manipulation-de-la-carte-arduino-uno-et-de-sa-led-integree|Manipulation de la carte Arduino Uno et de sa LED intégrée]] {{ :start:arduino:cours:1713047252_decouverte_de_la_carte_arduino_uno.jpeg?direct&800 |}} ==== Decouverte Arduino UNO ==== [[https://fr.vittascience.com/learn/tutorial.php?id=1231/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]] {{ :start:arduino:cours:1699369946_arduino-pinout.png?direct&800 |}} {{ :start:arduino:cours:prise_en_main_de_la_carte_arduino_uno_et_de_l_interface_vittascience.pdf |}} ==== Decouverte LED et Arduino ==== [[https://fr.vittascience.com/learn/tutorial.php?id=6/allumer-une-led-avec-arduino|Allumer une LED avec Arduino]] {{ :start:arduino:cours:wiring-led-for-arduino.jpg?direct&800 |}} {{ :start:arduino:cours:allumer_une_led_avec_arduino.pdf |}} ==== Decouverte Bouton + LED + Arduino ==== [[https://fr.vittascience.com/learn/tutorial.php?id=7/ajouter-un-bouton-sur-arduino|Ajouter un bouton sur Arduino]] {{ :start:arduino:cours:wiring-button-led-for-arduino.jpg?direct&800 |}} {{ :start:arduino:cours:ajouter_un_bouton_sur_arduino.pdf |}} ==== Decouverte PhotoResistance + Led + Arduino ==== [[https://fr.vittascience.com/learn/tutorial.php?id=8/mesurer-la-luminosite-avec-une-photoresistance-sur-arduino|Mesurer la luminosité avec une photorésistance sur Arduino]] {{ :start:arduino:cours:wiring-photoresistance-led-for-arduino.jpg?direct&800 |}} {{ :start:arduino:cours:mesurer_la_luminosite_avec_une_photoresistance_sur_arduino.pdf |}} ==== Decouverte Vitesse du son avec un HC-SR04 + Arduino ==== [[https://fr.vittascience.com/learn/tutorial.php?id=829/vitesse-du-son|Vitesse du son : Capteur ultrason HC-SR04 ]] {{ :start:arduino:cours:capture_d_ecran_du_2025-11-16_15-33-18.png?direct&800 |}} {{ :start:arduino:cours:vitesse_du_son.pdf |}} ==== Decouverte Radar de recul avec HC-SR04 + Arduino==== [[https://fr.vittascience.com/learn/tutorial.php?id=801/radar-de-recul-avec-un-ecran-lcd-colore|Radar de recul avec un écran LCD ]] {{ :start:arduino:cours:capture_d_ecran_du_2025-11-16_15-38-10.png?direct&800 |}} {{ :start:arduino:cours:radar_de_recul_avec_un_ecran_lcd_colore.pdf |}} ==== Decouverte Chariot+ servo Moteur 360° + Arduino==== [[https://fr.vittascience.com/learn/tutorial.php?id=980/chariot-teleguide-par-un-joystick|Chariot téléguidé par un joystick]] {{ :start:arduino:cours:1707248329_arduinojoystick.jpeg?direct&800 |}}{{ :start:arduino:cours:chariot_teleguide_par_un_joystick.pdf |}} ====== 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- [[https://support.google.com/accounts/answer/32050?hl=fr&co=GENIE.Platform%3DDesktop|Vider le cache de Google Chrome]] 2-[[https://support.google.com/chrome/answer/95464?hl=fr&co=GENIE.Platform%3DDesktop&sjid=2493393679554846770-EU |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: **" USB Serial (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 ===== [[start:arduino:robots:mbot:vittascience]] {{ :start:arduino:cours:activitesvittascience.zip |}} == Image fond ecran pour virtualisation mBot1 sur Vittascience == {{ :start:exercices:tracerobot004.jpg.zip |}} {{:start:exercices:tracerobot004.jpg?nolink&600|}} ===== Programmes mBot1 Vittascience ===== ===robot-mbot-utiliser-les-led-rgb === {{ :start:arduino:cours:capture_d_ecran_du_2025-11-27_15-41-07.png?direct&200 |}} {{ :start:arduino:cours:capture_d_ecran_du_2025-11-27_15-38-07.png?direct&600 |}} {{ :start:arduino:cours:capture_d_ecran_du_2025-11-27_15-39-49.png?direct&600 |}} [[https://fr.vittascience.com/learn/tutorial.php?id=1381/robot-mbot-utiliser-les-led-rgb|robot-mbot-utiliser-les-led-rgb]] {{ :start:arduino:cours:robot_mbot_-_utiliser_les_led_rgb.pdf |}} {{ :start:arduino:cours:capture_d_ecran_du_2025-11-27_15-36-22.png?direct&600 |}} #include #include #include #include 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); } __Exercice- 1__ : Le feu tricolore RGB du mBot __Objectif__ : programmer les LED RGB du mBot pour afficher plusieurs couleurs, puis les éteindre. __Matériel__ : un mBot classique avec sa carte mCore et un ordinateur équipé de Chrome pour se connecter à Vittascience. La carte mCore possède deux LED RGB contrôlables séparément ou ensemble. Les couleurs se règlent avec des valeurs de rouge, vert et bleu, de 0 à 255. __Consigne__ : crée dans mBlock un programme qui affiche chaque couleur pendant une seconde, puis éteint les LED. *Choisis l’événement de démarrage du programme. *Ajoute un bloc pour régler les LED RGB sur rouge : rouge 255, vert 0, bleu 0. *Ajoute une attente d’1 seconde. *Recommence avec : *vert : 0, 255, 0 ; *bleu : 0, 0, 255 ; *jaune : 255, 255, 0. *Pour finir, règle les trois valeurs à 0 afin d’éteindre les LED. __Pour continuer__ : Ajoute une boucle pour répéter le feu tricolore **trois fois**, et ensuite choisis deux couleurs et alterne-les __Utilise les blocs suivant__ : {{ :start:arduino:cours:capture_d_ecran_du_2026-11-09_18-43-44.png?direct&600 |}} {{ :start:arduino:cours:capture_d_ecran_du_2026-11-10_12-14-56.png?direct&200 |}} === Robot mBot : utiliser le buzzer === == Correspondance des notes avec la frequence en Hz== À 440 hertz : ^Notes ^Fréquences ^ |DO (C4) | 261.63 Hz| |RÉ (D4) | 293.66 Hz| |MI (E4) | 329.63 Hz| |FA (F4) | 349.23 Hz| |SOL (G4)| 392 Hz| |LA (A4) | 440 Hz| |SI (B4) | 493.88 Hz| |Do aigu | 523,25 Hz| __Exercice- 2__ : Jouer de la musique avec le buzzer du mBot __Objectif__ : programmer le Buzzer du mBot pour jouer une musique. __Matériel__ : un mBot classique avec sa carte mCore et un ordinateur équipé de Chrome pour se connecter à Vittascience. La carte mCore possède un Buzzer pour émettre un son très basique __Consigne__ : crée dans mBlock un programme qui joue une petite musique . *Choisis l’événement de démarrage du programme. *Ajoute un bloc pour régler le buzzer " Contrôler le buzzer à la fréquence XXX pendant xxxx ms". *Ajoute une attente en fonction du résultat voulu *un petit morceau très court : « Frère Jacques », début de la mélodie. * Do — 261,63 Hz — 400 ms * Ré — 293,66 Hz — 400 ms * Mi — 329,63 Hz — 400 ms * Do — 261,63 Hz — 400 ms __Pour continuer__ : Ajoute une boucle pour répéter la musique **cinq fois**. __Utilise les blocs suivant__ : {{ :start:arduino:cours:capture_d_ecran_du_2026-11-10_12-03-16.png?direct&600 |}} {{ :start:arduino:cours:capture_d_ecran_du_2026-11-10_12-14-56.png?direct&200 |}} === Robot mBot - Utiliser le capteur de distance === [[https://fr.vittascience.com/learn/tutorial.php?id=1390/robot-mbot-utiliser-le-capteur-de-distance|robot-mbot-utiliser-le-capteur-de-distance]] {{ :start:arduino:cours:robot_mbot_-_utiliser_le_capteur_de_distance.pdf |robot_mbot_-_utiliser_le_capteur_de_distance.pdf}} {{ :start:arduino:cours:capture_d_ecran_du_2025-11-27_15-03-48.png?direct&400 |}} {{ :start:arduino:cours:principe_ultrasons_1-1786197688.jpg?direct&600 |}} {{ :start:arduino:cours:capture_d_ecran_du_2025-11-27_12-36-27.png?direct&600 |}} {{ :start:arduino:cours:robot_mbot_-_utiliser_le_capteur_de_distance_-_partie_3_20251027_123737.ino.tar |}} (Enlever .tar) #include #include #include #include // 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); } } __Exercice- 3__ : Mesurer une distance avec le robot mBot __Objectif__ : programmer le capteur de distance du mBot pour afficher le résultat dans la console. __Matériel__ : un mBot classique avec sa carte mCore et un ordinateur équipé de Chrome pour se connecter à Vittascience. La carte mCore possède un capteur de distance HC-SR04 __Consigne__ : crée dans Vittascience un programme qui affiche la distance mesurée . * Choisis l’événement de démarrage du programme. * Ajoute un bloc d’affichage/console * Ouvre le moniteur série en bas à droite pour voir les mesures. * Met un obstacle devant le capteur de distance * Vérifie la distance en la mesurant avec un double decimetre ( pour vérifier l'erreur ...) __Pour continuer__ : Créer un programme anti-obstacle qui arrête le mBot si la distance est < à 5cm est qui fait avancer le mBot si la distance est > à 5cm Au démarrage Répéter indéfiniment Si la distance du capteur ultrason (port 3) est inférieure à 5 cm Arrêter les moteurs Sinon Faire avancer le mBot à 50 % de puissance __Utiliser les blocs suivant__ {{ :start:arduino:cours:capture_d_ecran_du_2026-11-10_12-35-06.png?direct&600 |}} === robot-mbot-controler-le-robot-avec-une-telecommande === [[https://fr.vittascience.com/learn/tutorial.php?id=1392/robot-mbot-controler-le-robot-avec-une-telecommande|robot-mbot-controler-le-robot-avec-une-telecommande]] {{ :start:arduino:cours:robot_mbot_-_controler_le_robot_avec_une_telecommande.pdf |}} {{ :start:arduino:cours:e0840-5-a542-312068236.jpg?direct&400 |}} __Exercice- 4__ : Tester la telecommande du robot mBot __Objectif__ : programmer la telecommande du mBot pour verifier son fonctionnement. __Matériel__ : un mBot classique avec sa carte mCore et un ordinateur équipé de Chrome pour se connecter à Vittascience. La carte mCore possède un capteur de infrarouge pour la liaison avec une telecommande __Consigne__ : crée dans Vittascience un programme qui test la telecommande . Au démarrage Répéter indéfiniment Si le bouton A de la télécommande est appuyé Allumer les LED en rouge Sinon Éteindre les LED __Pour continuer__ : Créer un programme de verrouillage par télécommande : le code est 1–2–3. Tant qu’il n’est pas saisi, le mBot reste arrêté. Au démarrage mettre étape à 0 mettre autorisé à faux arrêter les moteurs Répéter indéfiniment Si autorisé = faux : Si le bouton 1 est appuyé : si étape = 0, mettre étape à 1 sinon, remettre étape à 0 Si le bouton 2 est appuyé : si étape = 1, mettre étape à 2 sinon, remettre étape à 0 Si le bouton 3 est appuyé : si étape = 2, mettre autorisé à vrai sinon, remettre étape à 0 Si autorisé = vrai : piloter le mBot avec les flèches de la télécommande ou allumer les leds en Rouge __Utiliser les blocs suivant__ {{ :start:arduino:cours:capture_d_ecran_du_2026-11-10_14-23-19.png?direct&600 |}} == Exemple de code pour télécommande ( voir algorithme télécommande) == {{ :start:arduino:cours:blocks_screenshot_20261010_145230.png?direct&600 |}} == exemple == {{ :start:arduino:cours:capture_d_ecran_du_2025-11-27_14-33-35.png?direct&600 |}} {{ :start:arduino:cours:robot_mbot_-_controler_le_robot_avec_une_telecommande_-_partie_3_20251027_144323.ino.tar |}} ( enlever .tar) #include #include #include #include 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); } } ==== Mot de passe avec telecommande ==== Taper un mot de passe à 3 chiffres pour pouvoir utiliser votre robot {{ :start:arduino:cours:capture_d_ecran_du_2026-03-08_11-22-35.png?direct&600 |}} #include #include #include #include MeRGBLed rgbled_board(7, 2); MeIR ir; void serial_setupConnection(long baudrate) { Serial.begin(baudrate); while (!Serial) { Serial.println("En attente de l'ouverture du port série..."); delay(1000); } Serial.println("Port série activé. Baudrate: " + String(baudrate)); delay(50); } void setup() { ir.begin(); serial_setupConnection(9600); rgbled_board.setColor(0, 255, 0, 0); rgbled_board.show(); while (!(ir.keyPressed(12))) { } while (!(ir.keyPressed(24))) { } while (!(ir.keyPressed(94))) { } rgbled_board.setColor(0, 51, 204, 0); rgbled_board.show(); Serial.println("C\'est bon vous pouvez démarrez !"); Serial.println("@music:261.63|"); delay(1000*1); } void loop() { } === robot-mbot-utiliser-le-bouton === [[https://fr.vittascience.com/learn/tutorial.php?id=1386/robot-mbot-utiliser-le-bouton|robot-mbot-utiliser-le-bouton]] {{ :start:arduino:cours:robot_mbot_-_utiliser_le_bouton.pdf |}} {{ :start:arduino:cours:mbot002.png?direct&600 |}} {{ :start:arduino:cours:boutonappui001.png?direct&600 |}} {{ :start:arduino:cours:robot_mbot_-_utiliser_le_bouton_-_partie_3_20251027_15143.ino.tar |}}(enlever .tar) {{ :start:arduino:cours:capture_d_ecran_du_2025-11-27_15-00-24.png?direct&600 |}} #include #include #include #include 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 === [[https://fr.vittascience.com/learn/tutorial.php?id=1391/robot-mbot-utiliser-les-suiveurs-de-ligne|robot-mbot-utiliser-les-suiveurs-de-ligne]] {{ :start:arduino:cours:robot_mbot_-_utiliser_les_suiveurs_de_ligne.pdf |}} {{ :start:arduino:cours:suiveur_de_ligne-4278321378.png?direct&600 |}} {{ :start:arduino:cours:linefollow.png?direct&600 |}} {{ :start:arduino:cours:capture_d_ecran_du_2025-11-27_20-56-32.png?direct&600 |}} {{ :start:mblock5:solution:correctionsuiviligneexo4_vittascience_20251020_193057.ino.zip |}} {{ :start:mblock5:solution:robotcircuithuit002.ino.zip |Robot circuit Vittascience test gauchedroite variables 20251121 }} {{ :start:mblock5:solution:capture_d_ecran_du_2025-11-21_11-40-30.png?direct&1000 |}} #include #include #include #include // 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 ====== [[vittascience:labyrinthe|Sortie d un Labyrinthe avec un mBot]] ======= Mbot2 ======= [[start:arduino:mbot:mbot2]]