1-Prise en main du bouclier Open-Smart Rich.

CC by julien bernard

Le bouclier OPEN SMART Rich est une carte électronique de type bouclier (shield), il s’insère sur une carte  Arduino UNO.

Le principal intérêt pédagogique et le regroupement sans câblage des nombreux composants électroniques. En contextualisant les utilisations via des scénarios pédagogiques vous pourrez exploiter ce bouclier en classe notamment dans le cours de technologie, mathématiques et sciences du numérique…

Le bouclier regroupe différents capteurs et actionneurs.

 

Liste des actionneurs:

CC by Julien Bernard

– Une led jaune.
– Une led bleue.
– Une led Verte.
– Une led Rouge.
– Un potentiomètre.
– Quatre afficheurs 7 segments.
– Un buzzer.

Liste des capteurs:

– Deux boutons poussoirs.
– Un capteur de température et d’humidité.
– Un capteur de température.
– Un capteur de lumière.
– Un récepteur infrarouge.

 

Scénarios faciles, (Utilisation des 4 LEDS)

La led rouge est connecté sur la broche 4
La led bleue est connecté sur la broche 5
La led verte est connecté sur la broche 6
La led jaune est connecté sur la broche 7

Notez au passage que la led bleue et verte sont connectés sur une broche PWM

Scénario 1:
Étude d’une alarme factice de voiture.

CC BY
Raito Akehanareru

Dans cette activité, nous allons réaliser une alarme factice de voiture, un signal lumineux rouge clignotant faussera l’appréciation d’éventuels voleurs.
Pour ce faire, nous allons utiliser la LED rouge du bouclier, elle est connecté à la broche 4.

L’organigramme de fonctionnement.

Nous allons mettre la broche 4 à l’état HAUT pendant 500ms puis mettre l’état logique de la broche 4 à l’état BAS pendant 500ms et répéter les instructions à l’infini…

CC BY Julien bernard

Le code en C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const int ledrouge=4;

void setup() {

pinMode(ledrouge,OUTPUT);

}

void loop() {
 
digitalWrite(ledrouge,HIGH);
delay(500);

digitalWrite(ledrouge,LOW);
delay(500);

}
Le résultat en vidéo:
Continuité pédagogique

Une fois l’exercice maîtrisé, vous pouvez proposer aux étudiants  d’expérimenter le montage avec les 4 LEDS (La led bleue est connecté sur la broche 5,  la led verte est connecté sur la broche 6, la led jaune est connecté sur la broche 7).

La démarche pourrait être la suivante:

  1. Scénariser l’activité (feu de circulation, guirlande de fête, signaux de bateau…)
  2. Inventer l’organigramme et le faire valider par l’enseignant.
  3. Coder le programme.
  4. Tester avec la plateforme.

Un exemple de programme utilisant les 4 LEDS:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
const int ledrouge=4;
const int ledvert=5;
const int ledbleu=6;
const int ledjaune=7;


void setup() {
pinMode(ledvert,OUTPUT);
pinMode(ledbleu,OUTPUT);
pinMode(ledjaune,OUTPUT);
pinMode(ledrouge,OUTPUT);
}

void loop() {
 
digitalWrite(ledvert,HIGH);
digitalWrite(ledbleu,HIGH);
digitalWrite(ledjaune,HIGH);
digitalWrite(ledrouge,HIGH);
delay(50);
digitalWrite(ledrouge,LOW);
delay(50);
digitalWrite(ledjaune,LOW);
delay(50);
digitalWrite(ledvert,LOW);
delay(50);
digitalWrite(ledbleu,LOW);
delay(50);

}

 

 

Un kit pour toute l’année…

Vous allez recevoir un kit dont vous êtes responsables, les composants électroniques sont fragiles et dispendieux, ainsi une partie de vos évaluations tiendront compte du soins apporté au matériel. Dans le kit vous trouverez:

  • Un automate arduino UNO
  • Un shield de prototypage ou une plaque de prototypage
  • Des câbles – Deux moteurs pas à pas
  • Deux contrôleurs de moteur ULN 2003
  • Des résistances – Un module bluetooth
  • Un capteur Ultrasons
  • Des leds

Vous allez apprendre pendant cette année, à câbler les composants, ce n’est pas très difficile mais vous faire attention car les erreurs sont fréquentes…

L’automate arduino UNO: Une plateforme open source

cc nc sa baldiri

L’automate programmable arduino Uno sert à exécuter un programme téléverser dans sa mémoire, il met en relation des capteurs et des actionneurs par le biais d’un code de C++ et d’un logiciel arduino IDE.

Les entrées/sorties

un périphérique d’entrée est un élément qui envoie des informations vers l’automate programmable…donc l’arduino.

Un périphérique de sortie est un élément qui reçoit une information depuis l’automate programmable.

Il faut déclarer soit en entrée ou soit en sortie la ou les broche(s) au début du programme (void setup)

par exemple:

pour déclarer la broche 1,4 et 5 en entrée et 7,8 et 3 en sortie:

pinMode(1,INPUT);
pinMode(4,INPUT);
pinMode(5,INPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(3,OUTPUT);

Les capteurs:

Leurs rôles est de mesurer une grandeur physique (température, pression, lumière, niveau, humidité…) et de la transformer en signal lisible par une entrée analogique  (A0,A1,A2…).

Un exemple de capteur analogique, le capteur de flexion, CC By Sparkfun electronique.

Les actionneurs:

ils réalisent une action physique en fonction des ordres que lui envoi le programme. Allumer un LED, faire tourner un moteur…

Plus généralement les actionneurs reçoivent un ordre leurs permettant de mettre en action (donc 1 logique) un transformateur d’énergie.

un exemple d’actionneur, un moteur Pas a Pas. Image by TIMOR CC By

0 ou 1, HIGH/LOW, TRUE/FALSE bref c’est Noir ou blanc…

Un automate de type Arduino UNO est plutôt binaire, il ne peut apprécier que deux états logiques, 1 ou 0, vrai ou faux… pour lui c’est blanc ou noir, il ne connaît pas le gris et encore moins le gris clair ou le gris foncé…
Le vocabulaire utilisé par la famille Arduino est HIGH pour l’état HAUT et LOW pour l’état BAS.

une commande utilisée courante:

digitalWrite(12,HIGH);

Envoyer un 1 logique (HIGH) via la broche 12 de l’arduino.

Mais comment faire avec un capteur analogique?

Prenons un exemple de capteur de température, nous ne pouvons nous contenter de dire: il fait chaud ou il fait froid…
Les capteurs analogiques renvoient une infinité de valeurs…

Ces valeurs seront donc lues par les entrées analogiques (A0,A1,A2…) et interprétées par le programme…

Une commande utile :

analogRead(0);

Lire la valeur de la broche analogique 0.

Le shield de prototypage ou une plaque de prototypage

Une plaque de prototypage sert à réaliser des circuits électronique sans soudure.
Avant de faire votre premier câblage, vous devez comprendre et connaître les connections électriques de la plaque.

à savoir:

  • Le + est le 5V, il faut donc mettre un connecter le Vcc ou 5V de l’arduino vers un des connecteur de la plaque, nous le verrons plus tard, vous pouvez connecter le 5V  dans n’importe quel trou pour obtenir du 5V dans toute la ligne +
  • Le – est le 0V ou ground ou GND, vous devez connecter un câble entre le GND de l’arduino et cette ligne, même remarque que pour le +, vous pouvez connecter un câble dans n’importe quelle broche pour obtenir du 0V sur toute la ligne…
  • Les numéros sur la plaque n’ont pas de rapport avec les numéros sur l’arduino.

Des broches connectées

CC JB

Certaines broches sont reliées électriquement, c’est le cas de la ligne + et – comme nous venons de le voir…

La zone centrale est divisée en deux, (ligne verte sur le schéma), nous utiliserons souvent ce séparateur pour mettre “à cheval” des composants électroniques.

les colonnes sont connectés, il faut donc ne pas mettre de composant sur une colonne car ils seront en court-circuit.

Prenons l’exemple de la led…

La led ou del (diode électroluminescente) est un composant électronique très utile, elle permet de visualiser de suite le bon fonctionnement d’un circuit.

Observez bien le câblage, l’idéal est de la connecter à cheval en utilisant le moins de place possible, comme sur le premier schéma, si cela est difficile, vous pouvez aussi utiliser plus de place comme sur le seconde schéma.

Le troisième exemple met la led en court-circuit, car les colonnes sont connectées, dans ce cas la led va griller.

Le dernier cas n’est pas conseillé même s’il fonctionne…

Votre projet.

Vous allez cette année en ICN réaliser entièrement un robot. Selon votre avancement il sera peut-être même piloté avec un téléphone et/ou autonome. Pour réaliser votre projet, vous allez avoir à disposition un kit programmable Arduino.

Kit programmable arduino

Le fonctionnement de l’année.

Vous allez créer un robot par groupe et chacun doit être responsable d’une partie, bien sûr tout le monde va faire de la programmation, design et de la fabrication…

les quatre grandes parties sont:

  • La programmation.
    Dans cette partie, vous allez apprendre progressivement à coder un robot en C++, les premiers exercices sont simplistes mais ne brûler pas les étapes car ils sont très importants…
  • Le design.
    Cette partie est assez difficile puisque vous devez imaginer le robot et le dessiner en 3D, ensuite nous l’imprimerons.
  • La fabrication.
    Vous devez acquérir des compétences en câblage et en implantation de composants électriques, dans un second temps vous serez responsable de l’assemblage du robot.
  • La partie web et application.
    Cette partie est crucial puisqu’elle permet au professeur de suivre votre projet via votre page web, ensuite nous développerons pour les groupes les plus avancés une application pour piloter votre robot.

Votre groupe avance de façon autonome et doit faire valider des étapes via votre site web par le professeur pour avancer à la prochaine.
Un document de suivi de projet tel que celui-ci sera utilisé :

Les outils utiles à maîtriser

Logiciel: (vous pouvez télécharger les logiciels sur votre ordinateur).

Arduino

Le logiciel Arduino sert à créer le programme qui va faire fonctionner le robot.

Il est composée de deux parties (fonctions):

  1. la fonction void setup() { }
    S’exécute une seule fois au démarrage
  2. la fonction void loop() { }
    S’exécute en boucle après le void setup

Nous pouvons déjà observer plusieurs choses au lancement du programme:

  • Les couleurs, Arduino reconnaît les fonctions et les mots en les changeant de couleur.
  • Une fonction commence toujours pas { et se termine par le caractère }
  • vous pouvez commenter une ligne en ajoutant // devant le texte

De Sketchup vers l’impression 3D

Le Logiciel Sketchup est un modeleur 3D, il te permettra de dessiner les pièces de ton robot.

Pour commencer tu dois respecter les règles de base de dessin afin que tes pièces s’impriment correctement.

  1. Ne faire formes pleines, ils mettraient trop de temps à s’imprimer et nous utiliserons du PLA pour rien. (vider les formes)

    julien bernard CC

  2. Essayer d’éviter les impressions dans le vide.
    En effet l’imprimante a du mal à imprimer des formes qui me s’appuient pas sur du plastique, il a tendance à couler et le résultat n’est pas bon.
  3. Dessiner une seule pièce par fichier…
    Par exemple si vous devez imprimer deux roues et un boitier, il faudra donc créer trois fichiers.

    CC by julien bernard

La chaîne d’information.

Commençons par regarder cette vidéo et interrogeons-nous sur les différents sous-ensembles de notre magnifique robot réalisé en enseignement d’exploration ICN en seconde…

Nous pouvons, assez facilement identifier les parties suivantes:

  • Le capteur à ultrasons
  • Le cerveau de notre robot ( içi un automate programmable arduino Uno)
  • Une partie qui stocke de l’énergie, des piles rechargeables
  • Deux convertisseurs d’énergie ( les moteurs)
  • Des câbles électriques qui véhiculent de l’énergie ou des informations

CC by julien bernard

Un capteur à ultrasons, jamais entendu parler…?

Et bien cela est normal, notre oreille n’est pas capable d’entendre les ultrasons… contrairement à nos amis les animaux, en effet les chiens ou les chauves souris les percoivent…
Le capteur à ultrasons comme son nom l’indique envoit des ultrasons dans l’espace et mesure le temps de retour des ondes lorsqu’il rebondissent contre un obstacle.

Ainsi nous pouvons facilement déterminer la distance avec un obstacle.

Retenons comme vitesse du son:  340m/s, nous pouvons trouver la distance avec la formule V=d/t, il ne faut pas oublier de diviser le temps par 2 (aller et retour).

La chaîne d’information

La chaîne d’information se compose souvent de trois parties:

  • Acquérir
  • Traîter
  • Communiquer

Acquérir: Souvent composée de capteur(s), cette partie mesure des grandeurs physiques, afin de donner des informations à la partie “traîter”, nous pouvons les comparer à nos cinq sens.

Traîter: On peut le comparer au cerveau de notre corps, c’est l’élèment central du système. Il traîte les informations grâce au programme dans sa mémoire et aux informations (acquéries des capteurs) , en conséquence il va communiquer des actions à réaliser à la partie énergie.

Communiquer: Cette partie sert à véhiculer les informations et les actions à réaliser par la partie énergie.

CC julien bernard

La chaîne d’énergie

Cette partie exécute les ordres de la partie information, nous pouvons les comparer à nos muscles.
Globalement, nous pouvons diviser la chaîne d’énergie en quatre parties:

  • Alimenter
  • Distribuer
  • Convertir
  • Transmettre

Alimenter: C’est la partie énergie, d’abord en stockage puisque cette partie est aussi un réservoir à énergie. (batteries rechargeables).

Distribuer: Des conducteurs électriques (câble en cuivre) véhiculent l’énergie vers les convertisseurs.

Convertir: Cette partie convertit une énergie en une autre, dans le cas des moteurs électriques, nous tranformons l’énergie électrique en énergie cinétique.

Transmettre: Cette partie ne fait pas que transmettre l’énergie d’un point A vers un point B du robot, elle amplifie ou diminue la vitesse et le couple (force en rotation).

Comment se déplace un robot “base tank”?

Nous définissons une base tank en robotique par la structure de sa base. On retrouve des convertisseurs d’énergie de chaque coté. Chaque côté est indépendant et il suffit d’actionner l’un ou l’autre pour faire déplacer le robot.

CC julien bernard

À quoi servent les engrenages ? (partie transmettre)

Nous avons vu que les engrenages (association de deux ou plusieurs roues dentées) servent à transmettre un mouvement et modifier une vitesse et un couple. Entrons dans les détails:

Considérons deux roues: La roue 1 en bleue et la roue deux en rouge. La roue 1 est deux fois plus petite que la 2. Nous comprenons facilement que lorsqu’une roue tourne dans un sens (sens horaire pour la bleue), l’autre tourne dans le sens inverse (sens trigonométrique).

Nous pouvons aussi nous dire que si la roue 1 fait un tour, alors la roue 2 n’aura fait qu’un demi-tour, nous avons donc réduit la vitesse.

Cependant il y a un autre effet, le couple (force en rotation) sera augmentée de façon inverse et proportionnelle… donc x2, nous avons un robot qui va donc monter plus facilement les pentes (mais plus doucement 🙂 ).

CC julien bernard

Chaîne d’énergie, chaîne d’information

Pour finir, nous allons réunir les deux chaînes…

CC julien bernard

Pour finir vous trouverez la fiche synthèse en cliquant sur le lien synthèse Chaine info nrj

Un incontournable : SCRATCH.

Pour débuter.

Le logiciel pour acquérir les compétences de programmation du cycle 4 est Scratch. (le lien pour le télécharger)

Scratch est un logiciel qui permet d’apprendre la programmation avec des blocs que l’on déplace à la souris. Ces instructions sont directement visibles grâce à un lutin qui devient animé.

Mblock pour la technologie.

Mblock est un fork de scratch, vous trouverez l’instalation en suivant ce lien…

Mblock ajoute une bibliothèque de fonction “automate programmable” à Scratch. Il tranforme également les blocks en C++ (édition/mode arduino).

La limite, les mauvaises habitudes chez les étudiants!

Apprendre à utiliser Mblock/Arduino est assez facile. Les pré-requis sont:

  • Comprendre la différence entre un 1 logique et un 0 logique.
  • Comprendre la différence entre une entrée et une sortie numérique.
  • Comprendre la différence entre un signal analogique et numérique.

Pour donner du sens au apprentissage, il convient de contextualiser les montages et de l’inclure dans la démarche de projet d’un projet de l’année.

Cependant, Scratch ou Mblock sont des incontournables dans le sens où ils sont préconisé pour la préparation au DNB. En ce sens il convient de commencer par un des deux logiciels et de basculer vers le C++ plus tard.

Une plateforme open source

cc nc sa baldiri

L’automate programmable arduino Uno sert à exécuter un programme téléverser dans sa mémoire, il met en relation des capteurs et des actionneurs par le biais d’un code de C++ et d’un logiciel arduino IDE.

Les entrées/sorties

un périphérique d’entrée est un élément qui envoie des informations vers l’automate programmable…donc l’arduino.

Un périphérique de sortie est un élément qui recoit une information depuis l’automate programmable.

Il faut déclarer soit en entrée ou soit en sortie la ou les broche(s) au début du programme (void setup)

par exemple:

pour déclarer la broche 1,4 et 5 en entrée et 7,8 et 3 en sortie:

pinMode(1,INPUT);
pinMode(4,INPUT);
pinMode(5,INPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(3,OUTPUT);

Les capteurs:

Leurs rôles est de mesurer une grandeur physique (température, pression, lumière, niveau, humidité…) et de la transformer en signal lisible par une entrée analogique  (A0,A1,A2…).

Un exemple de capteur analogique, le capteur de flexion, CC By Sparkfun electronique.

Les actionneurs:

ils réalisent une action physique en fonction des ordres que lui envoit le programme. Allumer un LED, faire tourner un moteur…

Plus généralement les actionneurs recoivent un ordre leurs permettant de mettre en action (donc 1 logique) un transformateur d’énergie.

un exemple d’actionneur, un moteur Pas a Pas. Image by TIMOR CC By

0 ou 1, HIGH/LOW, TRUE/FALSE bref c’est Noir ou blanc…

Un automate de type Arduino UNO est plutot binaire, il ne peut apprécier que deux états logiques, 1 ou 0, vrai ou faux… pour lui c’est blanc ou noir, il ne connait pas le gris et encore moins le gris clair ou le gris foncé…
Le vocabulaire utilisé par la famille Arduino est HIGH pour l’état HAUT et LOW pour l’état BAS.

une commande utilisée courante:

digitalWrite(12,HIGH);

Envoyer un 1 logique (HIGH) via la broche 12 de l’arduino.

Mais comment faire avec un capteur analogique?

Prenons un exemple de capteur de temperature, nous ne pouvons nous contenter de dire: il fait chaud ou il fait froid…
Les capteurs analogiques renvoient une infinité de valeurs…

Ces valeurs seront donc lues par les entrées analogiques (A0,A1,A2…) et interprétées par le programme…

Une commande utile :

analogRead(0);

Lire la valeur de la broche analogique 0.

Adapter sa pédagogie avec un Arduino

Les plateformes Arduino sont Open-Source (plus d’infos…) en ce sens ils sont parfaitement adapté aux valeurs et aux compétences des référenciels ou des domaines du socle 3C.

Actuellement un arduino Uno est peu onéreux, une trentaine de $CAD s’ajoute les composants électroniques. Le kit de l’inventeur est une bonne base de départ:

 

Les composant permettent de créer beaucoup de montage avec une progression pédagogique diversifiée et adaptable aux spécificités des étudiants et enseignants.

Différents montages qu’il faut contextualiser.

Les montages ne nourrissent pas nécessairement l’imaginaire des étudiants.
Une des problématiques sera de donner du sens et de l’ampleur aux projets au sein d’une démarche d’investigation, de résolution de probleme et de projet.

L’utilisation du kit Arduino de l’inventeur en complément avec une imprimante 3D est un couple vraiment pertinent.

Dans la partie design innovation et créativité et ‘a l’image des anciens programmes de technologie: la production d’un service

 

Des exemples de projet au cour du cycle 4

  1. Inventer un robot autonome avancant seulement linéairement, cycle 4, cinqui’eme
  2. Inventer un robot autonome pouvant tourner et éviter des obstacles avec un capteur ultrason cycle 4, quatrieme
  3. Inventer un robot pilotable via un smartphone, cycle 4, troisieme.

Faire clignoter un led. (notion de boucle, états logiques…)
Déclencher l’allumage d’une LED avec un BP poussoir. (notion d’évenement, entrée-sortie)
Utiliser un capteur analogique pour piloter un actionneur

L’objectif: Faire clignoter 3 leds

Communication: Publier un article “mes trois leds clignotantes” et inclure une vidéo du résultat + faire un copie de son code avec les commentaires.

Temps: 2H

Conseils: Pensez à connecter la carte dans Outils/port et à choisir le bon type de carte (UNO) dans Outils/type de carte…

Le schéma pour une seule led:

Le code pour une seule led: