<style> .reveal { font-size: 22px; } .alert-warning { color: #ffffff; background-color: #000000; border-color: #faebcc; } .alert-info { background-color: black; opacity : 50%; } .reveal blockquote { margin: var(--r-block-margin) 0px; margin-top: 200px; font-style: normal; } </style> <!-- .slide: data-background="https://i.imgur.com/ju5xPsO.jpg" data-background-color="#191919" --> <div style="text-align: left"> # Conquérir le monde avec Arduino </br> </br> </br> </br> Lien direct vers la présentation : hackmd.io/@creanum/arduino </br> </br> </br> </br> ###### CC-BY 4.0 ![Logo des bibliothèques](https://hackmd.io/_uploads/Sy7EJWC5lg.svg =200x) </div> --- <div style="text-align: left"> ## Plan <!-- .slide: data-background="https://i.imgur.com/iF1db2L.jpg" data-background-color="#191919" --> <span>1. Présentation Arduino<!-- .element: class="fragment" data-fragment-index="1" --></span> <span>2. Découverte du logiciel<!-- .element: class="fragment" data-fragment-index="2" --></span> <span>3. Les circuits<!-- .element: class="fragment" data-fragment-index="3" --></span> <span>4. Exercice<!-- .element: class="fragment" data-fragment-index="4" --></span> </div> Note: Avez-vous de expérience avec Arduino? Avez-vous de l'expérience en code? --- <div style="text-align: left"> <!-- .slide: data-background="https://i.imgur.com/GY0n8is.jpg" data-background-color="#191919" --> ## 1 - C'est quoi un Arduino? - Marque déposée! - Carte électronique matériellement libre - Logiciel (Arduino IDE) - Communauté de pratique > Une carte Arduino est un cerveau qui permet de rendre intelligent des systèmes électroniques et d'animer des dispositifs mécaniques. [Source](https://www.positron-libre.com/electronique/arduino/arduino.php) </div> --- ### Le coeur de la carte : le microcontrôleur* ![image du microcontrôleur](https://i.imgur.com/pOqcCxJ.png =400x) **ATmega328** *plus petit en vrai --- <img align="right" height="350" style="float: right" src="https://i.imgur.com/lkeGZy8.jpg"> <div style="text-align: left"> ### Ça fait quoi? * ### Mesure et détection Capteur de gaz, présence, distance * ### Contrôle Drone, robot * ### Automatisation Arrosage de plante, alarme </div> --- ![Dessin explicatif sur l'entrée, le traitement et la sortie avec un Arduino](https://i.imgur.com/ytlr7Gi.png) Capteurs / Microcontrôleur / Actionneurs --- ### Exemple de schéma ![Un exemple d'un branchement d'un Arduino, d'une DEL et d'une photorésistance](https://hackmd.io/_uploads/S1nqsaNNA.jpg) [Anatomie d'un microcontrôleur Arduino ](https://creanum.notion.site/Arduino-Anatomie-515db21609d74d29ac1509c20d4e5751) --- ### Et le Raspberry Pi? ![Un exemple d'un branchement d'un Arduino, d'une DEL et d'une photorésistance](https://i.imgur.com/oZBlsC5.jpg) ###### [Source](https://www.raspberrypi.org/) --- ### Arduino VS Raspberry Pi | Arduino Uno | Raspberry Pi | | ------------------------------- | --------------------------------- | | Équipé d'un **microcontrôleur** | Équipé d'un **microprocesseur** | | Pas d'OS | Linux (Raspberry Pi OS) | | Matériel libre | Propriétaire (matériel), OS libre | | Pas de sortie vidéo/audio* | Deux HDMI 4K et sortie son | | Pas de Wifi/Bluetooth* | Équipé du Wifi/Bluetooth | *sauf si équipé d'une carte d'interface (*Shield*) --- <img align="right" height="300" style="float: right" src="https://i.imgur.com/h0rj8nD.jpg"> </br> </br> </br> <div style="text-align: left"> ### Alternatives à Arduino Uno Arduino Nano \ NodeMCU (ESP8266) \ ESP32 \ Microbit \ ... </div> --- ![](https://i.imgur.com/x48xpqR.jpg) ##### Photo : NASA :::warning **ESP8266 : 78 fois plus puissant que l'ordinateur de bord du module d'alunissage du programme Apollo.** ##### [Source](https://labs.sogeti.com/homage-hardware-engineers/) --- <!-- .slide: data-background="https://i.imgur.com/3fnVOs2.jpg" data-background-color="#191919" --> ### Notre projet Faire réagir une lumière DEL en fonction de la luminosité de la pièce. --- ## 2 - Arduino IDE 1. Connecter le microcontrôleur 2. Lancer Arduino IDE :::warning Télécharger [Arduino IDE](https://www.arduino.cc/en/software) et le [pilote CH340](http://www.wch-ic.com/downloads/CH341SER_ZIP.html) (selon votre OS) ::: --- ### Sélectionner le bon port ![Capture d'écran de l'interface d'Arduino IDE. Sélectionner Select Brand > COM x (x est le numéro du port USB)](https://i.imgur.com/KuCl0wn.png =500x) --- ### Sélectionner le bon modèle ![Capture d'écran de l'interface d'Arduino IDE. Sélectionner Boards Arduino Uno et Port COM x](https://i.imgur.com/FeqpOXG.png =600x) --- ### Ouvrir un exemple **File > Examples > 01.Basics > Blink** ```arduino [1-12|2-4|7-12] // configuration initiale void setup() { pinMode(13, OUTPUT); // Initialise la pin digital numéro 13 en Output } // Instructions exécutées en boucle void loop() { digitalWrite(13, HIGH); // Allume la DEL (HIGH est la valeur du voltage) delay(1000); // Attendre une seconde digitalWrite(13, LOW); // Éteindre la DEL en mettant la valeur du voltage LOW delay(1000); // Attendre une seconde } ``` Référence du langage : https://www.arduino.cc/reference/fr/ Note: Language inspiré du C++ --- <svg width="120pt" height="120pt" version="1.1" viewBox="0 0 1200 1200" xmlns="http://www.w3.org/2000/svg"> <g fill="#45dee0"> <path d="m600 174c-235.2 0-426 190.8-426 426s190.8 426 426 426 426-190.8 426-426-190.8-426-426-426zm0 780c-195.6 0-354-158.4-354-354s158.4-354 354-354 354 158.4 354 354-158.4 354-354 354z"/> <path d="m754.8 454.8-223.2 223.2-86.398-86.398c-14.398-14.398-37.199-14.398-50.398 0-14.398 14.398-14.398 37.199 0 50.398l111.6 111.6c7.1992 7.1992 16.801 10.801 25.199 10.801 8.3984 0 18-3.6016 25.199-10.801l248.4-248.4c14.398-14.398 14.398-37.199 0-50.398-14.398-14.398-36-14.398-50.398 0z"/> </g> </svg> Vérifier le code <svg width="100pt" height="100pt" version="1.1" viewBox="0 0 1200 1200" xmlns="http://www.w3.org/2000/svg"> <path d="m599.52 1109.1c280.99 0 509.59-228.61 509.59-509.59s-228.61-509.59-509.59-509.59-509.59 228.6-509.59 509.59c0 280.99 228.6 509.59 509.59 509.59zm0-953.2c244.61 0 443.6 199.01 443.6 443.6s-199 443.6-443.6 443.6-443.6-199-443.6-443.6c0-244.59 199-443.6 443.6-443.6zm-247.46 506.91h334.88s-81.18 81.191-131.46 131.45c-21.469 21.48-21.469 56.301 0 77.781 3.543 3.543 7.125 7.1172 10.668 10.656 21.469 21.48 56.289 21.48 77.77 0 65.812-65.805 196.42-196.42 241.96-241.96 10.316-10.305 16.113-24.297 16.113-38.879v-4.707c0-14.574-5.7969-28.562-16.113-38.879-45.535-45.535-176.14-176.15-241.96-241.96-21.48-21.48-56.305-21.48-77.77 0-3.543 3.5312-7.125 7.1289-10.668 10.656-21.469 21.48-21.469 56.293 0 77.77 50.285 50.273 131.46 131.46 131.46 131.46h-334.88c-30.379 0-54.992 24.625-54.992 54.992v16.617c0 30.379 24.613 54.992 54.992 54.992z" fill="#45dee0" fill-rule="evenodd"/> </svg> Vérifier et téléverser le code :::warning :warning: **Problème?** Changer le port ou la prise USB. ::: Note: ![image représentant les messages lors de l'exécution du code et son transfert](https://i.imgur.com/XdqlI03.png) --- ### Variable ```arduino [1-14|1|5|10|12|1-14] int maLumiere = 13; // J'ai donné un nom au numéro 13 // configuration initiale void setup() { pinMode(maLumiere, OUTPUT); // Initialise la pin digital numéro 13 en Output } // Instructions exécutées en boucle void loop() { digitalWrite(maLumiere, HIGH); // Allume la DEL (HIGH est la valeur du voltage) delay(1000); // Attendre une seconde digitalWrite(maLumiere, LOW); // Éteindre la DEL en mettant la valeur du voltage LOW delay(1000); // Attendre une seconde } ``` --- ## 3 - Premier exercice #### Faire allumer une DEL - DEL de la couleur de votre choix - Une résistance de 200 Ω - Platine d'essai (*Breadboard*) - Câbles dupont >[!warning] La longue patte de la DEL est branchée du côté de la résistance. La petite patte du côté de GND. ![Schéma du premier circuit avec un Arduino et une lumière DEL](https://i.imgur.com/XL3VzUd.png =700x) --- ![](https://i.imgur.com/MvkdZxF.png) --- ### Deuxième exercice #### Ajouter une photorésistance en entrée - Photorésistance - Résistance 10k Ω ![Schéma du deuxième circuit avec un Arduino, une lumière DEL et une photorésistance](https://hackmd.io/_uploads/S1nqsaNNA.jpg) --- ```arduino [1|1-2|1-3|7|7-8|7-9|14|15-17] int maLumiere = 7; // J'ai donné un nom à la pin 7 int photoresistance = A1; // ma photorésistance est branchée dans A1 int valeur = 0; // initialise la variable valeur à 0 // configuration initiale void setup() { Serial.begin(9600); // ouvre le port série pinMode(maLumiere, OUTPUT); // Initialise la pin digital numéro 7 en Output pinMode(photoresistance, INPUT); // initialise la lecture de la pin A1 } // Instructions exécutées en boucle void loop() { valeur = analogRead(photoresistance); // lecture de ma valeur et stockage dans la variable valeur. Serial.println("La valeur est de "); // s'affiche dans le moniteur Serial.println(valeur); // ma valeur delay(250); // délai de 1/4 de seconde digitalWrite(maLumiere, HIGH); // Allume la DEL (HIGH est la valeur du voltage) delay(1000); // Attendre une seconde digitalWrite(maLumiere, LOW); // Éteindre la DEL en mettant la valeur du voltage LOW delay(1000); // Attendre une seconde } ``` --- ### Valeur normale ![](https://i.imgur.com/eD94UNA.png =800x) ### Valeur en cachant la photorésistance ![](https://i.imgur.com/NcGTAgs.png =800x) --- ### Créer une condition ```arduino [1-99|19|19-21|22-24|1-99] int maLumiere = 7; // J'ai donné un nom à la pin 7 int photoresistance = A1; // ma photorésistance est branchée dans A1 int valeur = 0; // initialise la variable valeur à 0 // configuration initiale void setup() { Serial.begin(9600); // ouvre le port série pinMode(maLumiere, OUTPUT); // Initialise la pin digital numéro 7 en Output pinMode(photoresistance, INPUT); // initialise la lecture de la pin A1 } // Instructions exécutées en boucle void loop() { valeur = analogRead(photoresistance); // lecture de ma valeur et stockage dans la variable valeur. Serial.println("La valeur est de "); // s'affiche dans le moniteur Serial.println(valeur); // ma valeur delay(250); // délai de 1/4 de seconde if (valeur > 500) { digitalWrite(maLumiere, HIGH); // Allume la DEL (HIGH est la valeur du voltage) } else { digitalWrite(maLumiere, LOW); // Éteint la DEL } } ``` --- ![](https://imgur.com/WHdVedO.png) --- ### Code final (sans les commentaires) ```arduino int maLumiere = 7; int photoresistance = A1; int valeur = 0; void setup() { Serial.begin(9600); pinMode(maLumiere, OUTPUT); pinMode(photoresistance, INPUT); } void loop() { valeur = analogRead(photoresistance); Serial.println("La valeur est de "); Serial.println(valeur); delay(250); if (valeur<500) { digitalWrite(maLumiere, HIGH); } else { digitalWrite(maLumiere, LOW); } } ``` --- ## 4 - Exercice final - Inclure une deuxième DEL - Faire une condition : si valeur <500 = allume DEL 1 Sinon, allume DEL 2 --- [CREANUM.NOTION.SITE](https://CREANUM.NOTION.SITE) Documentation et projets <img align="left" height="500" style="float: left" src="https://i.imgur.com/FJdfWT1.png"> <br/> <br/> <br/> #### Prochaine formation en création numérique * Impression 3D * Découpe numérique * Montage vidéo * Baladodiffusion * ... [S'inscrire!](https://bib.umontreal.ca/formations/calendrier?cid=7690&t=g&cal=7690&d=0000-00-00&ct=34766&inc=0) <br/> <br/> <br/> Questions? Commentaires? creanum@bib.umontreal.ca --- # Autres ressources <br/> ## Livres recommandés | [Arduino : apprivoisez <br/> l'électronique et le codage](https://umontreal.on.worldcat.org/oclc/1397343409) | [Arduino Workshop](https://umontreal.on.worldcat.org/oclc/1285605415) | [Getting started <br/> with Arduino](https://umontreal.on.worldcat.org/oclc/898290173) | | -------- | -------- | -------- | | [<img style="max-height:150px;" src="https://www.eni-training.com/download/EE533CBE-42C3-4A2E-9092-95418832B3F5/download/couv_HSLF3ARD.png/?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA2RGVsc2FydCBJbmRpYW5hIC0gYzQ2OGUzZjQtMmQ3Mi00OWQyLWFhNWEtY2U3YjQzMGExNTk0oLSWMdaA3IgL">](https://umontreal.on.worldcat.org/oclc/1397343409) | [<img style="max-height:150px;" src="https://coverart.oclc.org/ImageWebSvc/oclc/+-+0690510376_140.jpg?SearchOrder=+-+IG,OT,OS,AV,FA,GO&DefaultImage=N&client&allowDefault=true">](https://umontreal.on.worldcat.org/oclc/1285605415) | [<img style="max-height:150px;" src="https://coverart.oclc.org/ImageWebSvc/oclc/+-+826547343_140.jpg?SearchOrder=+-+IG,OT,OS,AV,FA,GO&DefaultImage=N&client&allowDefault=true">](https://umontreal.on.worldcat.org/oclc/898290173) | <br/> <br/> ## Sites à consulter * [Arduino Project Hub](https://projecthub.arduino.cc/) * [Forum Arduino](https://forum.arduino.cc/) --- <img align="right" height="70" style="float: right" src="https://media.giphy.com/media/CT5Ye7uVJLFtu/giphy.gif"> **Formulaire de rétroaction anonyme** Temps de remplissage ≈ 1 minute <iframe width="640px" height="480px" src="https://forms.office.com/r/JMT79tpiAW?embed=true" frameborder="0" marginwidth="0" marginheight="0" style="border: none; max-width:100%; max-height:100vh"> </iframe>
{"metaMigratedAt":"2023-06-17T12:52:29.331Z","metaMigratedFrom":"YAML","title":"Arduino","breaks":false,"slideOptions":"{\"transition\":\"fade\",\"progress\":true,\"hideAddressBar\":true,\"spotlight\":{\"enabled\":false},\"slideNumber\":\"c/t\",\"touch\":true,\"viewDistance\":3,\"display\":\"block\",\"autoPlay\":true}","description":"Logo des bibliothèques","contributors":"[{\"id\":\"b56bf3fe-165b-4e22-ad8d-d2dee16fdcbf\",\"add\":469,\"del\":264},{\"id\":\"fa837fd9-9dc4-4f16-b7bf-f20b25278e3d\",\"add\":18936,\"del\":6562},{\"id\":\"05856b44-af25-4f1b-a6fe-3edea9a87a2d\",\"add\":31,\"del\":0},{\"id\":\"185aae2a-2e3e-4ac1-8f15-e6a779cd4487\",\"add\":3454,\"del\":1856,\"latestUpdatedAt\":1757445967251}]"}
    1168 views
   Owned this note