Différences entre versions de « Technologies numériques/Arduino/Arduino- Débutant »

De Wiki CGEC
Aller à la navigation Aller à la recherche
m
 
(12 versions intermédiaires par un autre utilisateur non affichées)
Ligne 1 : Ligne 1 :
== Comprendre les cartes Arduino ==
+
== [[Technologies numériques/Arduino/Arduino- Débutant/Comprendre les cartes Arduino|Comprendre les cartes Arduino]] ==
  
 
=== Qu'est-ce qu'un microcontrôleur ? ===
 
=== Qu'est-ce qu'un microcontrôleur ? ===
 
Un microcontrôleur est un circuit intégré compact qui reçoit des entrées de l'environnement, traite ces entrées et peut produire une sortie. Il reçoit des données de ses broches d'entrée/sortie et traite les signaux reçus à l'aide de l'unité centrale de traitement intégrée à la puce. Les microcontrôleurs sont généralement intégrés dans des systèmes plus importants et sont utilisés dans de nombreux domaines de la vie, notamment les véhicules, les appareils médicaux, les appareils ménagers, etc.
 
Un microcontrôleur est un circuit intégré compact qui reçoit des entrées de l'environnement, traite ces entrées et peut produire une sortie. Il reçoit des données de ses broches d'entrée/sortie et traite les signaux reçus à l'aide de l'unité centrale de traitement intégrée à la puce. Les microcontrôleurs sont généralement intégrés dans des systèmes plus importants et sont utilisés dans de nombreux domaines de la vie, notamment les véhicules, les appareils médicaux, les appareils ménagers, etc.
 +
 +
Arduino est une plateforme électronique open source qui offre un moyen facile et accessible de réaliser des projets de robotique. Les cartes sont capables de recevoir des signaux d'entrée provenant de capteurs et de produire des sorties par le biais de broches d'entrée/sortie. Les cartes Arduino sont utilisées par un large éventail de personnes, notamment des étudiants, des amateurs, des ingénieurs et des chercheurs, en raison de la simplicité de leur disposition et de leur programmabilité.
 +
 +
Un Arduino ou un microcontrôleur peut être mis en œuvre de nombreuses façons :
 +
 +
* Une voiture télécommandée
 +
* Une veilleuse de nuit
 +
* Une balance de cuisine
 +
 +
=== Sections de la carte Arduino ===
 +
Il existe 5 sections importantes de la carte que l'utilisateur doit bien comprendre pour commencer à utiliser les fonctions de la carte. Ces sections sont décrites ci-dessous :
 +
[[Fichier:Arduino parts.png|centré|vignette|438x438px|Composant de l'arduino Uno]]
 +
{| class="wikitable"
 +
|+Tableau 1 : Description des 5 sections principales d'une carte arduino
 +
!Section
 +
!Description
 +
|-
 +
|Connecteur USB
 +
|L'arduino peut être alimenté par un connecteur USB de type A/B entre l'ordinateur portable/ordinateur de l'utilisateur et la carte. Ce port est également utilisé pour télécharger des programmes sur la carte.
 +
|-
 +
|Port d'alimentation
 +
|La carte arduino peut être alimentée par un adaptateur AC-DC ou une batterie. La prise d'alimentation de la carte peut être connectée à une fiche de 2,1 mm à centre positif.
 +
|-
 +
|Broches d'alimentation
 +
|Pour alimenter les circuits externes, 3 tensions standard (0 V ou GND, 3.3V, 5V) sont fournies dans la section 'Power Pins' de la carte.
 +
|-
 +
|Broches numériques
 +
|Les broches numériques de la carte arduino peuvent être configurées comme une entrée ou une sortie. Lorsque les broches sont configurées en entrée, elles envoient un signal binaire à la carte, ce qui permet à la carte de lire les niveaux de tension logique détectés (c'est-à-dire 0/bas ou 1/haut). Si les broches numériques sont configurées comme une sortie, alors l'arduino enverra un signal binaire à la broche. Il y a une LED intégrée pré-connectée à la broche numérique 13. Lorsque la valeur de la broche est pilotée en HIGH par le processeur, la LED sur la carte est allumée, lorsque la broche est LOW, elle est éteinte. Ceci peut être utilisé comme un indicateur de statut lorsque des programmes sont en cours d'exécution.
 +
|-
 +
|Broches analogiques
 +
|Les broches analogiques permettent à la carte Arduino de recevoir ou d'envoyer un signal analogique. Ces signaux doivent être convertis en représentations numériques qui peuvent être utilisées à l'intérieur de la partie d'exécution du logiciel du processeur Arduino (qui n'utilise que des signaux numériques binaires). Les entrées de signaux analogiques peuvent être acceptées pour être converties en numérique via l'en-tête Analog Pins. La conversion analogique-numérique (A/D ou "A to D") est effectuée à l'intérieur du processeur avec des circuits spécialisés.
 +
|}
 +
 +
=== Signaux analogiques VS numériques ===
 +
Un signal est un courant électromagnétique ou électrique qui transfère des informations d'une source à une autre. Il existe deux principaux types de signaux utilisés en électronique : les signaux analogiques ou numériques.
 +
 +
==== Signaux analogiques ====
 +
Il s'agit d'un type de signal continu et variable dans le temps qui est souvent utilisé pour mesurer les changements de lumière, de son, de position, de température ou d'autres phénomènes physiques. Lorsque l'on trace un graphique tension-temps, le résultat est souvent une courbe continue et lisse.
 +
 +
==== Signaux numériques ====
 +
Un signal numérique est un signal qui représente l'information sous la forme d'une série de valeurs binaires discrètes. Les signaux numériques sont utilisés dans toutes les applications électroniques modernes, y compris les dispositifs de communication et de réseau. Lorsqu'il est représenté sur un graphique tension-temps, le signal est discret et va de 0 V à VCC (généralement 1,8 V, 3,3 V ou 5 V).
 +
 +
=== <u>[[Technologies numériques/Arduino/Arduino- Débutant/Connexion à un arduino|Connexion à un Arduino]]</u>===
 +
 +
* '''Il y a plusieurs façons d'endommager ou de brûler votre Arduino, consultez [[Technologies numériques/Arduino/Cinq façons simples de tuer un Arduino|ce guide]] avant de commencer pour plus d'informations.'''
 +
*'''Si vous utilisez un ordinateur de laboratoire de la Faculté d'ingénierie, consultez [[Technologie numérique/Arduino/Comment ce connecté a un oridateur de laboratoire|ce guide]] pour les étapes supplémentaires de connexion de l'Arduino.'''
 +
 +
Étape 1 : Téléchargez l'IDE Arduino à partir de https://www.arduino.cc/en/software<nowiki/>.Veillez à choisir la version qui convient à votre système d'exploitation.
 +
 +
Etape 2 : Connectez l'Arduino à votre ordinateur via un câble USB de type A/B.
 +
 +
Étape 3 : Une fois l'Arduino connecté, votre ordinateur reconnaîtra la carte Arduino comme un port COM générique. Les LEDs d'alimentation de l'Arduino devraient s'allumer.
 +
 +
Étape 4 : Il est temps de trouver le numéro de port attribué pour que l'Arduino et l'ordinateur puissent communiquer correctement entre eux. Dans l'IDE, sélectionnez Outils > Ports > Sélectionner un port. Si même après avoir sélectionné le port, l'Arduino ne se connecte pas, essayez un autre port.
 +
 +
Étape 5 : Ouvrez l'IDE Arduino. Sous Outils>Carte, assurez-vous que le bon type de carte Arduino est sélectionné.
 +
 +
Étape 6 : Sous Outils> COM, assurez-vous que le "port" est celui indiqué dans l'étape ci-dessus. Vérifiez que le programmateur est défini comme "AVRISP AKII".
 +
 +
=====Bogues possibles :=====
 +
Si vous avez des problèmes avec votre Arduino, consultez ce guide : [[Technologies numériques/Arduino/Arduino- Débutant/Dépannage de l'Arduino|Dépannage de l'Arduino]]
 +
<youtube>64oEr1zTlOg</youtube>
 +
 +
==[[Technologies numériques/Arduino/Arduino- Débutant/IDE et outils Arduino|IDE et outils Arduino]]==
 +
 +
===Arduino IDE:===
 +
Le processus de programmation comprend la conception et l'exécution du code dans un environnement de développement intégré, également appelé IDE. De nombreux IDE différents existent et sont adoptés pour différents usages, et permettent aux programmes d'éditer, de déboguer et d'exécuter (ou de compiler) leur code. Pour programmer un Arduino (quel que soit le type de microcontrôleur utilisé), il faut avoir téléchargé l'IDE Arduino (voir [[Digital technologies/Arduino/Arduino- Beginner/Connecting to an Arduino|Connexion d'un Arduino]]).
 +
 +
 +
Lorsque l'on commence à apprendre à coder, il est important de connaître l'environnement de développement intégré, ou IDE, que le codeur utilisera pour modifier et compiler les programmes écrits. La figure suivante guide les utilisateurs sur les options de base disponibles dans l'IDE :
 +
[[Fichier:Arduino ide.png|néant|vignette|730x730px|Interface de Arduino IDE]]
 +
 +
===Bibliothèques internes===
 +
 +
====Qu'est-ce qu'une bibliothèque ?====
 +
Une bibliothèque est un fichier qui contient du code pré-écrit auquel on peut se référer pour utiliser certains capteurs et fonctions. Souvent, pour accomplir une tâche comme se connecter à un serveur pour faire tourner un moteur, de nombreuses lignes de code doivent être écrites et exécutées. Les bibliothèques sont des morceaux de code auxquels les utilisateurs peuvent se référer pour accomplir ces tâches sans avoir à taper chaque ligne de code, ce qui simplifie le processus de programmation et nous permet d'accomplir des tâches relativement complexes avec facilité.
 +
 +
 +
Dans les sujets pour débutants, nous n'utiliserons pas de bibliothèques complexes ou externes ! Mais gardez cela à l'esprit pour les suivants car cela sera nécessaire par la suite.
 +
 +
====Bibliothèques intégrées====
 +
Les bibliothèques intégrées sont celles qui sont préinstallées dans l'IDE Arduino, vous n'avez pas besoin d'importer la bibliothèque dans l'IDE. Un exemple de ce type de bibliothèque est la bibliothèque math.h, qui est utilisée pour la plupart des opérations mathématiques de base.
 +
 +
 +
<u>Où les trouver?</u>
 +
 +
Vous pouvez effectuer une recherche rapide dans différents forums Arduino en ligne, ou la méthode la plus simple consiste à consulter le gestionnaire de bibliothèques dans l'IDE Arduino. Cette fenêtre affiche les bibliothèques qui sont déjà installées et vous avez également la possibilité d'installer de nouvelles bibliothèques si vous le souhaitez.
 +
 +
Comme indiqué ci-dessous, dans la barre de menu en haut de la fenêtre, cliquez sur Outils > Gérer les bibliothèques....
 +
[[Fichier:Bibliothèque.png|néant|vignette|470x470px|Ou trouver les bibliothèque]]
 +
 +
 +
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|vignette|738x738px|Différent types de bibliothèque|alt=|centré]]
 +
 +
 +
Lorsque l'on souhaite utiliser une bibliothèque, il faut la déclarer en haut de son code afin que son IDE sache que l'on fait référence à ce fichier, la syntaxe est la suivante :
 +
 +
<code>#include<math.h></code>
 +
 +
===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 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>
 +
 +
==[[Technologies numériques/Arduino/Arduino- Débutant/Introduction à la syntaxe et à la conceptualisation de la programmation|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>
 +
 +
==[[Technologies numériques/Arduino/Arduino- Débutant/Introduction aux variables et aux instructions conditionnelles|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*/.
 +
 +
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>
 +
 +
==[[Technologies numériques/Arduino/Arduino- Débutant/Introduction à l'électronique et aux circuits|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/]]]
 +
 +
Dans la page consacrée aux [[planches à prototypage|planches à prototypage]], vous trouverez des informations sur les différentes techniques d'utilisation des planches à prototypage ou sur la raison pour laquelle elles sont appelées "planches à pain" en anglais.
 +
 +
====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>)]]
 +
 +
 +
 +
 +
==[[Technologies numériques/Arduino/Arduino- Débutant/Introduction aux capteurs|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/)]]
 +
 +
== [[Technologies numériques/Arduino/Arduino- Débutant/Simulateurs en ligne|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 :
 +
 +
*'''[https://www.tinkercad.com/learn/circuits Tinkercad: Circuit]'''
 +
 +
*'''[https://www.tinkercad.com/learn/codeblocks Tinkercad: Programmation]'''

Version actuelle datée du 15 mai 2024 à 20:43

Comprendre les cartes Arduino

Qu'est-ce qu'un microcontrôleur ?

Un microcontrôleur est un circuit intégré compact qui reçoit des entrées de l'environnement, traite ces entrées et peut produire une sortie. Il reçoit des données de ses broches d'entrée/sortie et traite les signaux reçus à l'aide de l'unité centrale de traitement intégrée à la puce. Les microcontrôleurs sont généralement intégrés dans des systèmes plus importants et sont utilisés dans de nombreux domaines de la vie, notamment les véhicules, les appareils médicaux, les appareils ménagers, etc.

Arduino est une plateforme électronique open source qui offre un moyen facile et accessible de réaliser des projets de robotique. Les cartes sont capables de recevoir des signaux d'entrée provenant de capteurs et de produire des sorties par le biais de broches d'entrée/sortie. Les cartes Arduino sont utilisées par un large éventail de personnes, notamment des étudiants, des amateurs, des ingénieurs et des chercheurs, en raison de la simplicité de leur disposition et de leur programmabilité.

Un Arduino ou un microcontrôleur peut être mis en œuvre de nombreuses façons :

  • Une voiture télécommandée
  • Une veilleuse de nuit
  • Une balance de cuisine

Sections de la carte Arduino

Il existe 5 sections importantes de la carte que l'utilisateur doit bien comprendre pour commencer à utiliser les fonctions de la carte. Ces sections sont décrites ci-dessous :

Composant de l'arduino Uno
Tableau 1 : Description des 5 sections principales d'une carte arduino
Section Description
Connecteur USB L'arduino peut être alimenté par un connecteur USB de type A/B entre l'ordinateur portable/ordinateur de l'utilisateur et la carte. Ce port est également utilisé pour télécharger des programmes sur la carte.
Port d'alimentation La carte arduino peut être alimentée par un adaptateur AC-DC ou une batterie. La prise d'alimentation de la carte peut être connectée à une fiche de 2,1 mm à centre positif.
Broches d'alimentation Pour alimenter les circuits externes, 3 tensions standard (0 V ou GND, 3.3V, 5V) sont fournies dans la section 'Power Pins' de la carte.
Broches numériques Les broches numériques de la carte arduino peuvent être configurées comme une entrée ou une sortie. Lorsque les broches sont configurées en entrée, elles envoient un signal binaire à la carte, ce qui permet à la carte de lire les niveaux de tension logique détectés (c'est-à-dire 0/bas ou 1/haut). Si les broches numériques sont configurées comme une sortie, alors l'arduino enverra un signal binaire à la broche. Il y a une LED intégrée pré-connectée à la broche numérique 13. Lorsque la valeur de la broche est pilotée en HIGH par le processeur, la LED sur la carte est allumée, lorsque la broche est LOW, elle est éteinte. Ceci peut être utilisé comme un indicateur de statut lorsque des programmes sont en cours d'exécution.
Broches analogiques Les broches analogiques permettent à la carte Arduino de recevoir ou d'envoyer un signal analogique. Ces signaux doivent être convertis en représentations numériques qui peuvent être utilisées à l'intérieur de la partie d'exécution du logiciel du processeur Arduino (qui n'utilise que des signaux numériques binaires). Les entrées de signaux analogiques peuvent être acceptées pour être converties en numérique via l'en-tête Analog Pins. La conversion analogique-numérique (A/D ou "A to D") est effectuée à l'intérieur du processeur avec des circuits spécialisés.

Signaux analogiques VS numériques

Un signal est un courant électromagnétique ou électrique qui transfère des informations d'une source à une autre. Il existe deux principaux types de signaux utilisés en électronique : les signaux analogiques ou numériques.

Signaux analogiques

Il s'agit d'un type de signal continu et variable dans le temps qui est souvent utilisé pour mesurer les changements de lumière, de son, de position, de température ou d'autres phénomènes physiques. Lorsque l'on trace un graphique tension-temps, le résultat est souvent une courbe continue et lisse.

Signaux numériques

Un signal numérique est un signal qui représente l'information sous la forme d'une série de valeurs binaires discrètes. Les signaux numériques sont utilisés dans toutes les applications électroniques modernes, y compris les dispositifs de communication et de réseau. Lorsqu'il est représenté sur un graphique tension-temps, le signal est discret et va de 0 V à VCC (généralement 1,8 V, 3,3 V ou 5 V).

Connexion à un Arduino

  • Il y a plusieurs façons d'endommager ou de brûler votre Arduino, consultez ce guide avant de commencer pour plus d'informations.
  • Si vous utilisez un ordinateur de laboratoire de la Faculté d'ingénierie, consultez ce guide pour les étapes supplémentaires de connexion de l'Arduino.

Étape 1 : Téléchargez l'IDE Arduino à partir de https://www.arduino.cc/en/software.Veillez à choisir la version qui convient à votre système d'exploitation.

Etape 2 : Connectez l'Arduino à votre ordinateur via un câble USB de type A/B.

Étape 3 : Une fois l'Arduino connecté, votre ordinateur reconnaîtra la carte Arduino comme un port COM générique. Les LEDs d'alimentation de l'Arduino devraient s'allumer.

Étape 4 : Il est temps de trouver le numéro de port attribué pour que l'Arduino et l'ordinateur puissent communiquer correctement entre eux. Dans l'IDE, sélectionnez Outils > Ports > Sélectionner un port. Si même après avoir sélectionné le port, l'Arduino ne se connecte pas, essayez un autre port.

Étape 5 : Ouvrez l'IDE Arduino. Sous Outils>Carte, assurez-vous que le bon type de carte Arduino est sélectionné.

Étape 6 : Sous Outils> COM, assurez-vous que le "port" est celui indiqué dans l'étape ci-dessus. Vérifiez que le programmateur est défini comme "AVRISP AKII".

Bogues possibles :

Si vous avez des problèmes avec votre Arduino, consultez ce guide : Dépannage de l'Arduino

IDE et outils Arduino

Arduino IDE:

Le processus de programmation comprend la conception et l'exécution du code dans un environnement de développement intégré, également appelé IDE. De nombreux IDE différents existent et sont adoptés pour différents usages, et permettent aux programmes d'éditer, de déboguer et d'exécuter (ou de compiler) leur code. Pour programmer un Arduino (quel que soit le type de microcontrôleur utilisé), il faut avoir téléchargé l'IDE Arduino (voir Connexion d'un Arduino).


Lorsque l'on commence à apprendre à coder, il est important de connaître l'environnement de développement intégré, ou IDE, que le codeur utilisera pour modifier et compiler les programmes écrits. La figure suivante guide les utilisateurs sur les options de base disponibles dans l'IDE :

Interface de Arduino IDE

Bibliothèques internes

Qu'est-ce qu'une bibliothèque ?

Une bibliothèque est un fichier qui contient du code pré-écrit auquel on peut se référer pour utiliser certains capteurs et fonctions. Souvent, pour accomplir une tâche comme se connecter à un serveur pour faire tourner un moteur, de nombreuses lignes de code doivent être écrites et exécutées. Les bibliothèques sont des morceaux de code auxquels les utilisateurs peuvent se référer pour accomplir ces tâches sans avoir à taper chaque ligne de code, ce qui simplifie le processus de programmation et nous permet d'accomplir des tâches relativement complexes avec facilité.


Dans les sujets pour débutants, nous n'utiliserons pas de bibliothèques complexes ou externes ! Mais gardez cela à l'esprit pour les suivants car cela sera nécessaire par la suite.

Bibliothèques intégrées

Les bibliothèques intégrées sont celles qui sont préinstallées dans l'IDE Arduino, vous n'avez pas besoin d'importer la bibliothèque dans l'IDE. Un exemple de ce type de bibliothèque est la bibliothèque math.h, qui est utilisée pour la plupart des opérations mathématiques de base.


Où les trouver?

Vous pouvez effectuer une recherche rapide dans différents forums Arduino en ligne, ou la méthode la plus simple consiste à consulter le gestionnaire de bibliothèques dans l'IDE Arduino. Cette fenêtre affiche les bibliothèques qui sont déjà installées et vous avez également la possibilité d'installer de nouvelles bibliothèques si vous le souhaitez.

Comme indiqué ci-dessous, dans la barre de menu en haut de la fenêtre, cliquez sur Outils > Gérer les bibliothèques....

Ou trouver les bibliothèque


Dans le gestionnaire, comme indiqué ci-dessous, vous pouvez sélectionner le type de bibliothèque que vous recherchez, par exemple, installée, etc.

Différent types de bibliothèque


Lorsque l'on souhaite utiliser une bibliothèque, il faut la déclarer en haut de son code afin que son IDE sache que l'on fait référence à ce fichier, la syntaxe est la suivante :

#include<math.h>

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 accessible à deux endroits : l'icône dans la barre en haut de l'IDE, comme le montre la figure ci-dessous.

Interface du moniteur en série

Et dans le menu déroulant suivant, comme indiqué ci-dessous :

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.

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

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 :

Code Arduino
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 :

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.

Lorsque vous voulez écrire des données sur la broche, la syntaxe suivante est utilisée :

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.

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 :

pinMode(LED1, OUTPUT); //Par exemple, si vous avez une broche appelée LED1

Si vous voulez écrire une valeur à LED1, vous devez utiliser la syntaxe suivante :

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.

Quelques autres considérations de base :

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.

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].

Exemple de pseudocode
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.

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 :

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*/.
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/] :

/* 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 }

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.

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.

Type de circuit

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.

Planche de prototypage cité de https://dreyfuzz.github.io/hackinghardware/

Dans la page consacrée aux planches à prototypage, vous trouverez des informations sur les différentes techniques d'utilisation des planches à prototypage ou sur la raison pour laquelle elles sont appelées "planches à pain" en anglais.

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).

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.

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.

Comment lire une résistance. (Source: https://www.arrow.com/en/research-and-events/articles/resistor-color-code)
(Source: https://www.autodesk.com/products/fusion-360/blog/how-to-choose-the-right-resistor/)



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.

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 :