Modifications

aucun résumé de modification
Ligne 96 : Ligne 96 :     
Dans le gestionnaire, comme indiqué ci-dessous, vous pouvez sélectionner le type de bibliothèque que vous recherchez, par exemple, installée, etc.
 
Dans le gestionnaire, comme indiqué ci-dessous, vous pouvez sélectionner le type de bibliothèque que vous recherchez, par exemple, installée, etc.
[[Fichier:Différent type de bibliothèque.png|néant|vignette|627x627px|Différent types de bibliothèque]]
+
[[Fichier:Différent type de bibliothèque.png|vignette|738x738px|Différent types de bibliothèque|alt=|centré]]
      Ligne 103 : Ligne 103 :  
<code>#include<math.h></code>
 
<code>#include<math.h></code>
   −
=== Moniteurs en série ===
+
===Moniteurs en série===
 
Le moniteur série est une fonction de l'IDE Arduino qui vous permet d'interagir avec votre Arduino. Grâce à lui, vous êtes en mesure d'envoyer des informations et de recevoir un retour ou la sortie du système, ce qui facilite le débogage et l'interaction avec le programme.
 
Le moniteur série est une fonction de l'IDE Arduino qui vous permet d'interagir avec votre Arduino. Grâce à lui, vous êtes en mesure d'envoyer des informations et de recevoir un retour ou la sortie du système, ce qui facilite le débogage et l'interaction avec le programme.
    +
Le moniteur série est accessible à deux endroits : l'icône dans la barre en haut de l'IDE, comme le montre la figure ci-dessous.
 +
[[Fichier:Serial monitor interface.png|centré|vignette|733x733px|Interface du moniteur en série]]
 +
 +
Et dans le menu déroulant suivant, comme indiqué ci-dessous :
 +
[[Fichier:Moniteur de série.png|centré|vignette|498x498px|Acceder au moniteur en série]]
 +
Quelques caractéristiques à noter sont le débit en bauds et la fonctionnalité de défilement automatique. Le débit en bauds doit correspondre à celui dicté par le programme. Cette valeur détermine le débit auquel l'Arduino et l'IDE communiquent entre eux.
 +
[[Fichier:Interface du moniteur en série.png|centré|vignette|787x787px|Interface du moniteur en série]]
 +
Lorsque vous utilisez le moniteur série, il doit être initialisé dans le code pour un débit en bauds spécifique comme suit:
 +
Void Setup {
 +
 +
Serial.begin(9600);  //ceci initialise le moniteur à un taux de baud de 9600 }
 +
 +
Il existe plusieurs façons de transmettre des valeurs au moniteur série. Par exemple, si vous souhaitez transmettre la valeur d'une variable, vous pouvez utiliser la syntaxe suivante :
 +
Serial.print(nom_de_la_variable):
 +
 +
Serial.println(nom_de_la_variable); //pour sortir chaque valeur sur une nouvelle ligne
 +
 +
Si l'on veut produire une chaîne de caractères ou une phrase, on peut aussi utiliser la syntaxe suivante :
 +
Serial.print("INSÉRER UNE PHRASE");
 +
 +
Serial.println("INSÉRER UNE PHRASE"); //pour sortir chaque valeur sur une nouvelle ligne
 +
 +
<youtube>f1z-1Db2IAI</youtube>
 +
 +
==Introduction à la syntaxe et à la conceptualisation de la programmation==
 +
Comme mentionné précédemment, un IDE est utilisé pour compiler et exécuter le code utilisé dans un microcontrôleur. Il existe de nombreux IDE différents qui peuvent être utilisés pour divers types de microcontrôleurs et pour chaque objectif, il existe des cartes plus appropriées qui peuvent être utilisées. Pour programmer un Arduino, il faut avoir téléchargé l'IDE Arduino (voir Connexion d'un Arduino). L'Arduino IDE fournit aux utilisateurs un éditeur de programmation ainsi qu'un moyen de télécharger et de compiler facilement des programmes sur la carte Arduino. Les programmes dans l'IDE Arduino sont appelés sketches, et sont normalement enregistrés avec l'extension .ino. Le langage utilisé pour programmer la carte Arduino est basé sur le langage C++, qui est un langage orienté objet d'usage général. Comme tout langage courant, pour commencer à coder, il faut connaître les règles de grammaire et le vocabulaire utilisé. Un mot important que l'on rencontrera souvent est une "fonction", qui est un bloc de code qui prend une entrée, traite l'entrée, puis renvoie une sortie.
 +
 +
===Programme Blink : Un exemple===
 +
L'IDE Arduino fournit aux créateurs une pléthore de programmes écrits qui sont entièrement prêts à fonctionner sur une carte Arduino. Ils sont situés dans le dossier Files>Examples. Parmi les plus basiques, on trouve le programme "Blink", qui peut être utilisé non seulement pour se familiariser avec les fonctions de base du logiciel et du matériel, mais aussi pour tester la connectivité entre la carte Arduino et l'ordinateur de l'utilisateur. Ce programme est situé dans Fichiers>Exemples>01.Basics>Blink.  
 +
 +
Vous trouverez ci-dessous un aperçu des différentes fonctions utilisées dans ce programme :
 +
[[Fichier:Code arduino.png|centré|vignette|710x710px|Code Arduino]]
 +
{| class="wikitable"
 +
|+Tableau 2 : Aperçu des fonctions utilisées dans le programme Blink
 +
!Fonction
 +
!Description
 +
|-
 +
|Setup()
 +
|Effectue toutes les actions qui sont initialement nécessaires pour exécuter le reste du programme, comme l'initialisation des composants périphériques et le réglage de la fréquence de communication entre l'Arduino et le PC.
 +
|-
 +
|Loop()
 +
|La fonction loop agit comme le pilote du programme, elle s'exécute sur une boucle continue et spécifie l'ordre des opérations que le microcontrôleur va effectuer. L'exécution commence au début, parcourt le contenu de la boucle, puis reprend l'exécution au début. Cette procédure est répétée à l'infini.
 +
|-
 +
|pinMode (numéro de la broche, INPUT ou Output)
 +
|Configure la broche pour qu'elle se comporte comme un INPUT ou un OUTPUT.
 +
|-
 +
|digitalWrite (numéro de la broche, HIGH ou LOW)
 +
|Ecrit une valeur HIGH ou LOW sur une broche numérique. Si la broche a été configurée comme une SORTIE, alors le signal envoyé (c'est-à-dire la tension) sera défini comme 5 V (HIGH) ou 0 V (LOW). Pour les cartes à sortie 3,3 V, la valeur haute sera fixée à 3,3 V, tandis que la valeur basse est la même que celle de la carte 5 V, c'est-à-dire 0 V.
 +
|-
 +
|Délai (temps en millisecondes)
 +
|Met le programme en pause pendant la durée spécifiée dans le paramètre.
 +
|}
 +
 +
===Initialisation d'une broche en tant qu'entrée ou sortie===
 +
Lorsque vous utilisez des composants, vous devrez souvent initialiser la broche à laquelle ils sont connectés en tant qu'entrée ou sortie ! La syntaxe de cette opération varie en fonction du composant et du type de broche auquel il est connecté.
 +
 +
====Entrée/sortie analogique====
 +
Lorsque vous essayez de manipuler les données d'une broche analogique, les lignes de code suivantes sont utilisées pour lire les données de celle-ci :
 +
 +
<code>int ''variable'' = analogRead(''insérer le numéro de la broche''); //ici une variable est définie pour contenir la valeur lue sur la broche.</code>
 +
 +
Lorsque vous voulez écrire des données sur la broche, la syntaxe suivante est utilisée :
 +
 +
<code>int variable = analogWrite(''insérer le numéro de la broche'') ; //ici une variable est définie pour contenir la valeur lue sur la broche.</code>
 +
 +
====Entrée/sortie numérique====
 +
Si vous souhaitez utiliser une broche numérique, vous devez la déclarer comme entrée ou sortie dans le paramètre Void () comme suit :
 +
 +
<code>pinMode(LED1, OUTPUT); //Par exemple, si vous avez une broche appelée LED1</code>
 +
 +
Si vous voulez écrire une valeur à LED1, vous devez utiliser la syntaxe suivante :
 +
 +
<code>digitalWrite(LED1, HIGH); //Ici, HIGH ou LOW indique si vous souhaitez que la led s'allume - pour l'allumer, réglez HIGH, et LOW sinon.</code>
 +
 +
====Quelques autres considérations de base :====
 +
{| class="wikitable"
 +
|+Tableau 3 : Aperçu de quelques éléments de base de la programmation
 +
!
 +
!Symbol
 +
!Description
 +
|-
 +
|Supports
 +
|{....}
 +
|Commence et termine une fonction ou est utilisé pour regrouper différentes déclarations.
 +
|-
 +
|Barres de commentaires
 +
|/* ….*/ ou //
 +
|Permet aux codeurs d'ajouter des commentaires à leur code afin de le rendre plus lisible pour les autres humains. Il est important de noter que tous les commentaires ne sont pas exécutés par le programme et ne modifient donc pas le programme !
 +
|-
 +
|Point-virgule
 +
|...;
 +
|Ce caractère termine une instruction de programme et indique au compilateur la "fin de la ligne/de l'instruction en cours".
 +
|}
 +
Il est également important de savoir que l'éditeur Arduino est sensible à la casse, ce qui signifie que les mots "DOOR" et "Door" ne sont pas compris comme étant le même mot par le compilateur. En outre, pour rendre l'écriture et l'édition du code plus conviviales, l'IDE Arduino attribue un code couleur aux fonctions importantes, aux commentaires, etc. Nous verrons cela plus tard dans cette section.
 +
 +
Comme on peut le voir ci-dessous, certaines fonctions préexistantes dans l'IDE Arduino seront souvent d'une certaine couleur. C'est un bon indicateur pour savoir si vous avez écrit la fonction correctement ou non.
 +
[[Fichier:Blink.png|centré|vignette|551x551px|Arduino blink]]
 +
 +
===Pseudocode et organigrammes===
 +
Au fur et à mesure que la complexité de vos projets progresse, il sera probablement de plus en plus difficile de garder la trace de toutes les différentes fonctions. Parmi les outils souvent utilisés pour aider à créer une présentation de l'objectif des programmes figurent le pseudocode et l'organigramme. Ils aident tous deux à visualiser et à décrire la logique de votre code, la différence entre les deux étant que les organigrammes sont plus visuels et que le pseudo-code est une description dactylographiée du code [voir les exemples ci-dessous].
 +
[[Fichier:Pseudocode et organigrammes.png|néant|vignette|650x650px|Exemple de pseudocode]]
 +
[[Fichier:Organigramme.png|néant|vignette|382x382px|Exemple d'organigramme]]
 +
 +
Cela permet au concepteur (vous) de travailler sur la logique du code avant de le créer, ce qui facilite grandement le processus de conception.
 +
 +
<youtube>rSz7549WSjY</youtube>
 +
 +
==Introduction aux variables et aux instructions conditionnelles==
 +
Les variables permettent de stocker ou de modifier des informations dans le code du programme. Pour créer une variable dans votre programme, il faut la déclarer. Pour déclarer une variable, le codeur doit d'abord écrire le type de variable à déclarer. Différents types existent, les plus couramment utilisés sont :
 +
{| class="wikitable"
 +
|+Tableau 4 : Résumé des types de variables couramment utilisés
 +
!Type
 +
!Syntaxe
 +
|-
 +
|Entiers
 +
|int
 +
|-
 +
|non-entiers (rationnels et non-rationnels)
 +
|double or float
 +
|-
 +
|caractères
 +
|char
 +
|}
 +
Après avoir déclaré le type de variable, le codeur doit ensuite nommer la variable. Le nom de la variable doit clairement refléter le but de la valeur, afin que le codeur et le lecteur puissent facilement identifier quelle valeur est associée à quelle variable. En outre, les variables ne peuvent pas comporter d'espaces dans leur nom. Par exemple, "Mon dépôt" n'est pas un nom de variable valide, mais "MonDépôt" l'est. Notez que les majuscules peuvent être utiles pour la lisibilité. En outre, les variables ne doivent pas commencer par des chiffres ou par un trait de soulignement "_".
 +
 +
Après avoir nommé la variable, le codeur peut choisir d'initialiser la variable, c'est-à-dire de choisir une valeur initiale à associer à la variable (qui peut changer tout au long du programme). Veillez à rester cohérent avec le type de la variable. Par exemple, vous ne pouvez pas initialiser la variable int Age avec la valeur "k", car "k" n'est pas un nombre entier. Les segments de code ci-dessous illustrent le processus d'initialisation :
 +
int a;// non initialisé, ce qui est correct !
 +
 +
double b=1.23;/* Notez que la valeur 1,23 correspond au type "double" qui est un nombre rationnel*/.
   −
Le moniteur série est accessible à deux endroits : l'icône dans la barre en haut de l'IDE, comme le montre la figure ci-dessous.
+
char MyVariable = “h”; //notez les points-virgules!
 +
Ce qui suit produira une erreur, qui empêchera le compilateur de compiler votre code :
 +
char YourVariable= 1.23; //1.23 n'est pas un caractère!
 +
Les variables peuvent être classées en variables globales ou locales. La principale différence est la portée à laquelle elles sont accessibles. Une variable globale peut être accédée par toutes les fonctions qui existent dans un programme, alors qu'une variable locale ne peut être accédée que par la fonction dans laquelle elle est déclarée. L'exemple ci-dessous illustre bien cette différence [[https://www.arduino.cc/reference/en/language/variables/variable-scope-qualifiers/scope/&#x5D; https://www.arduino.cc/reference/en/language/variables/variable-scope-qualifiers/scope/]] :
 +
/* Il y a deux fonctions dans ce programme : setup() et loop(), et trois variables : "k", "i", "f".*/
 +
 
 +
int k;  // toute fonction verra cette variable, ainsi appelée variable globale.
 +
 
 +
void setup() {
 +
 
 +
   // ... }
 +
 
 +
void loop() {
 +
 
 +
   int i;    // "i" est seulement "visible" à l'intérieur de "loop".
 +
 
 +
   float f; }  // "f" est seulement "visible" à l'intérieur de "loop".
 +
 
 +
.....// quelques lignes de code}
 +
 
 +
===Conditionnels===
 +
Les instructions conditionnelles sont des opérations de programmation qui indiquent à l'ordinateur d'effectuer une action pour un certain ensemble de conditions. L'instruction "if" est la plus courante. Elle indique à l'ordinateur d'effectuer un ensemble d'actions uniquement si la condition est remplie. La syntaxe est la suivante :
 +
if (condition) {
 +
 
 +
///un ensemble d'instructions }
 +
Les altérations courantes des instructions if sont les "if...else" et "if... else if". Les conditionnels "if...else" vérifient d'abord la condition "if", dans le cas où elle est vraie, le compilateur ignorera le jeu d'instructions "else". Dans le cas où la ou les conditions déclarées dans l'instruction "if" ne sont pas remplies, les instructions "else" s'exécutent automatiquement. La syntaxe d'une instruction "if...else" est la suivante :
 +
if (condition){
 +
 
 +
///instructions;}
 +
 
 +
else {
 +
 
 +
///Instructions qui seront exécutées UNIQUEMENT dans le cas où les conditions "si" ne sont pas remplies. }
 +
Dans le cas de la série d'instructions "if...else if", le programme ne s'exécutera que si les conditions spécifiées dans le "if" ou le "else if" sont vraies. La syntaxe est la suivante :
 +
if (condition){
 +
 
 +
///instructions }
 +
 
 +
else if (condition) {
 +
 
 +
///instructions }
 +
 
 +
<youtube>YktSocf2vSc&t=6s</youtube>
 +
 
 +
==Introduction à l'électronique et aux circuits==
 +
 
 +
===Introduction aux circuits===
 +
Un circuit est une voie où l'électricité peut circuler à travers un chemin fermé de l'extrémité négative (cathode) à l'extrémité positive (anode) d'une source d'énergie. Les éléments d'un circuit peuvent soit fournir soit dépenser de l'énergie. L'énergie se mesure en Joules (J). Les fournisseurs d'énergie sont appelés sources ; ils fournissent une tension ou chargent des électrons avec de l'énergie. Le nombre d'électrons qui circulent dans un circuit est appelé courant, mesuré en ampères (A). Une source de tension courante est une batterie chimique, qui est un exemple de source d'énergie à courant continu (CC). Elle fournit aux électrons une quantité fixe d'énergie (c'est-à-dire une tension fixe) par le biais d'une réaction chimique au sein d'une pile. La résistance est une valeur qui décrit la facilité avec laquelle les électrons se déplacent dans un matériau lorsqu'une tension est appliquée. Les résistances sont des dispositifs qui peuvent être ajoutés au circuit pour empêcher le passage du courant.
 +
 
 +
===La loi d'Ohm===
 +
Il existe plusieurs façons de calculer les valeurs requises pour chaque composant, mais l'une des méthodes de base est la loi d'Ohm.
 +
 
 +
La relation qui représente le rapport entre la tension, le courant et la résistance est la loi d'ohm, représentée par : V=IR. La source d'alimentation d'un circuit détermine la tension fournie et le courant disponible. Les composants connectés tirent du courant de la source d'alimentation.
 +
 
 +
Il existe trois dispositions de circuits, la série, le parallèle et la combinaison.
 +
[[Fichier:Loi d'ohm.png|néant|vignette|449x449px|La loi d'ohm]]
 +
 
 +
===Circuits en série===
 +
Dans un circuit en série, la quantité de courant qui circule est la même en tout point du circuit, tandis que la tension fournie par la batterie est égale à la chute de tension aux bornes de chaque composant. Un circuit en série n'a qu'un seul chemin pour le passage de l'électricité, donc si un composant tombe en panne dans le circuit, tous les autres composants cesseront également de fonctionner, car le circuit est maintenant ouvert.
 +
 
 +
===Circuits parallèles===
 +
Dans un circuit parallèle, la tension est la même dans toutes les branches, alors que le courant est différent dans chaque branche.
 +
[[Fichier:Circuit.png|centré|vignette|865x865px|Type de circuit]]
 +
 
 +
<youtube>F_vLWkkOETI&t=1s</youtube>
 +
 
 +
=== Introduction aux composants électroniques ===
 +
 
 +
==== Planche de prototypage ====
 +
Une planche de prototypage est utilisée pour prototyper un circuit temporaire. L'utilisateur peut construire, tester et analyser un circuit sans aucune connexion permanente. Elle est composée de barrettes de connexion et de rails d'alimentation. Les barrettes de connexion sont utilisées pour maintenir un nombre quelconque de composants en place et effectuer des connexions électriques sur une rangée horizontale. Les rails d'alimentation sont de longues bandes verticales et sont utilisés pour faciliter les connexions d'alimentation (+) et de terre (-) en les plaçant toutes dans une colonne.
 +
[[Fichier:Planche de prototypage 2.png|centré|vignette|606x606px|Planche de prototypage cité de [https://dreyfuzz.github.io/hackinghardware/) https://dreyfuzz.github.io/hackinghardware/]]]
 +
 
 +
==== LED ====
 +
Une diode électroluminescente, ou LED, est un dispositif semi-conducteur qui s'allume lorsqu'un courant électrique le traverse. Elles existent dans de nombreuses couleurs et formes différentes, et sont très polyvalentes. Les LED sont des diodes, ce qui signifie que le courant ne circule dans l'élément que dans un seul sens, de l'extrémité positive à l'extrémité négative. Sur une LED, l'extrémité cathodique peut être identifiée soit par un bord plat sur le corps, soit par la branche la plus courte. L'anode est donc l'autre extrémité (la branche la plus longue de la LED).
 +
[[Fichier:LED.png|centré|vignette|(Cité de : https://create.arduino.cc/projecthub/rowan07/make-a-simple-led-circuit-ce8308)]]
 +
 
 +
==== Bouton Tactile ====
 +
Un bouton-poussoir est un composant d'interrupteur électronique qui ne complète le circuit que lorsqu'il est enfoncé. Dans un circuit électrique, l'électricité doit circuler en permanence dans le circuit pour que toutes les pièces fonctionnent. Le bouton-poussoir interrompt ce circuit et forme un espace, de sorte que l'électricité ne circule pas de l'autre côté du bouton-poussoir. Lorsqu'on appuie sur le bouton-poussoir, un petit ressort en matériau conducteur est activé, de sorte que l'électricité circule à travers le ressort jusqu'à l'autre côté du bouton-poussoir.
 +
[[Fichier:Bouton Tactile.png|centré|vignette|(Cité de :https://www.sparkfun.com/products/9190)]]
 +
 
 +
==== Résistance ====
 +
Une résistance est un composant électrique qui crée une impédance électrique, ou résistance au passage du courant. La quantité de résistance fournie par une résistance peut être lue à partir des bandes de couleur sur la résistance, qui sont lues de gauche à droite. Pour les résistances à quatre bandes, la première et la deuxième bande représentent des chiffres, tandis que la troisième bande représente un multiplicateur par lequel il faut multiplier les chiffres de la première et de la deuxième bande. La quatrième bande est la tolérance, elle représente de combien la résistance peut s'écarter de la valeur indiquée par les bandes. La valeur de la résistance peut également être déterminée à l'aide de la fonction ohmique d'un multimètre.
 +
 
 +
Les résistances sont souvent utilisées en série avec des composants pour réduire la quantité de courant circulant dans un circuit, souvent pour protéger des composants prévus pour des quantités de courant plus faibles. Les résistances pull-up et pull-down sont utilisées pour polariser une entrée sur l'Arduino pour qu'elle soit respectivement HIGH ou LOW. Ceci est nécessaire car le niveau de repos de l'entrée n'est pas nécessairement 0. Ceci est particulièrement utile lorsque l'on travaille avec des capteurs qui ont une sortie analogique.
 +
[[Fichier:Tableau de résistance.png|vignette|Comment lire une résistance. (Source: <nowiki>https://www.arrow.com/en/research-and-events/articles/resistor-color-code</nowiki>)]]
 +
[[Fichier:Résistance.png|néant|vignette|(Source: <nowiki>https://www.autodesk.com/products/fusion-360/blog/how-to-choose-the-right-resistor/</nowiki>)]]
 +
 
 +
 
 +
 
 +
 
 +
== Introduction aux capteurs ==
 +
Les capteurs permettent au microcontrôleur de détecter le milieu environnant. De nombreux capteurs existent sur le marché, notamment des boutons, des capteurs de température, des capteurs de pression, des photorésistances, des capteurs d'humidité et bien d'autres encore. La sortie du capteur (une tension) change en fonction des propriétés mesurées de l'environnement et envoie ce signal à la carte Arduino.
 +
 
 +
Les différents capteurs utilisent différents niveaux de tension et différentes méthodes de communication avec les microcontrôleurs. Il est toujours important de lire leur fiche technique et de s'assurer qu'ils sont compatibles avec votre système avant de continuer ou de concevoir votre système en fonction des spécifications du capteur.
 +
[[Fichier:Différent type de capteur.png|centré|vignette|599x599px|(Cité de: https://www.electronicshub.org/different-types-sensors/)]]
 +
 
 +
== Simulateurs en ligne ==
 +
Tinkercad est une plateforme en ligne qui permet aux utilisateurs de modéliser virtuellement des conceptions et des circuits en 3D. Son interface conviviale et ses fonctionnalités encouragent les étudiants et les amateurs à étudier virtuellement les fonctionnalités des cartes Arduino, ainsi qu'à commencer à construire leurs modèles. Pour vous inscrire, créez un compte sur : https://www.tinkercad.com/, ou bien connectez-vous avec google, facebook etc...
 +
 
 +
Une fois votre compte créé, l'utilisateur peut naviguer vers l'onglet "circuits" dans le menu de gauche, et cliquer sur "Créer un nouveau circuit". Cela ouvre un nouvel onglet, où les composants du circuit disponibles peuvent être visualisés dans le menu de droite.
 +
 
 +
Pour commencer à assembler un circuit, l'utilisateur peut faire glisser les composants de la bibliothèque et les placer dans la "zone de construction", mentionnée ci-dessus. En outre, notez le bouton "Code" dans la barre supérieure ; ce bouton permet aux utilisateurs de programmer l'Arduino pour exécuter des fonctions spécifiques. Pour démarrer la simulation, le bouton "start simulation" est disponible dans l'onglet supérieur.
 +
 
 +
 
 +
Pour plus d'informations, consultez les ressources suivantes :
 +
 
 +
* '''Tinkercad: Circuit'''
 +
 
 +
* '''Tinkercad: Programmation'''
MakerRepo Staff
199

modifications