========== Parcours Arduino débutant ========== ===== Que peut on faire avec un Arduino ===== [[https://www.geeek.org/domotique-5-idees-de-montages-avec-l-arduino-772/|Domotique ]] [[https://www.maison-et-domotique.com/72194-devriez-utiliser-cartes-arduino-vos-projets-domotique/|Autres Idées 001]] [[https://www.arduino-france.com/projets/3-projets-simples-que-vous-pouvez-realiser-avec-arduino/| Idées 002]] [[https://www.locoduino.org/|Modélisme Ferroviaire ]] [[https://www.firediy.fr/article/realisation-d-un-drone-a-base-d-arduino-chapitre-1|Fabriquer un Drone avec un Arduino]] [[http://f4cvm.free.fr/arduino/projet/modelisme/recepteur_rc/recepteur_rc.htm|Modelisme 001]] [[http://bateaux.trucs.free.fr/ageneral.html| Programmes pour modelisme ]] [[https://gladysassistant.com/fr/blog/connecter-un-arduino-au-raspberry-pi/|Arduino et Raspberry 001 ]] [[https://www.aranacorp.com/fr/communication-i2c-entre-raspberry-pi-et-arduino/|Arduino et Raspberry 002 ]] [[https://www.raspberry-lab.fr/Tutoriels-Arduino/Communication-serie-entre-Raspberry-Pi-et-Arduino-Uno/|Arduino et Raspberry 003 ]] [[https://www.google.fr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwjV-7LGprHsAhUNzIUKHc1_DmA4ChAWMAR6BAgGEAI&url=http%3A%2F%2Fwww.multimedialab.be%2Fdoc%2Ferg%2F2018-2019%2FArduino%2FMouvement_lumiere_et_son_avec_Arduino_et_Raspberry_Pi_Simon_Monk_Eyrolles_2016.pdf&usg=AOvVaw13_jH6FogQ5d_7r1I5c8Ux| Un Livre qui étudie des projets avec le Raspberry et/ou L'Arduino]] [[https://www.tubefr.com/feu-d-artifice-electronique-programmable-arduino_7.html#title| On fini en beauté : avec un Feu d'artifice ]] ===== Toutes les cartes arduino ===== [[https://www.arduino.cc/en/Main/Products| les cartes arduino actuelles ]] ===== Les cartes Arduino que l'on va utiliser ===== {{ :start:arduino:uno_a000066_featured_1_2.jpg?520x330 |Arduino UNO}} {{ :start:arduino:mega_4784333051_7e90eaa383_b-e1561212488602.jpg?512x288 |Arduino Mega}} {{ :start:arduino:nano_a000005_featured_2.jpg |Arduino Nano}} Arduino Nano Connect RP2040 [[https://store.arduino.cc/products/arduino-nano-rp2040-connect-with-headers ]] ==== Les logiciels utiliser ==== == A télécharger sur votre ordinateur :== La version **IDE Arduino** au 01/09/2024 est la 2.3.2 , mais on peut bien sur utiliser une version plus ancienne 1.8.19 ou [[https://login.arduino.cc/login?state=hKFo2SA1RTJfeXBkZ053bXJYQjZjZGpTU1o4VVNERzlGQ0dQWKFupWxvZ2luo3RpZNkgcWxZanZvdlpXMFJKcVBVenhieWNNWkM3RF8wdDBSMGujY2lk2SBycjZMU09TejU3aDdmdnNIZFJYWFBrWkczRVJvWFRmWg&client=rr6LSOSz57h7fvsHdRXXPkZG3ERoXTfZ&protocol=oauth2&authorizeTimeoutInSeconds=5&redirect_uri=https%3A%2F%2Fcreate.arduino.cc%2Feditor&logout_uri=https%3A%2F%2Fcreate.arduino.cc&audience=https%3A%2F%2Fapi.arduino.cc&scope=openid+profile+email&response_type=code&response_mode=query&nonce=bi5jN2NGLW1pOS5TbER4dklJd3hlY0JsNFlXRUI3Y1E0cGhHb2ZKT0hGcQ%3D%3D&code_challenge=tFaT2ogiqAOB0De9K8tZ6z7ro0Ceg1wUHWtltFcfpwU&code_challenge_method=S256&auth0Client=eyJuYW1lIjoiYXV0aDAtc3BhLWpzIiwidmVyc2lvbiI6IjEuMTIuMSJ9#/sso/login|une version en ligne ]] *[[https://www.arduino.cc/en/Main/Software| IDE Arduino ]] Interface graphique d'utilisation de l'utilitaire **"avrdude"** de Atmel (celui qui est utilisé, notamment, par Arduino IDE pour téléverser le firmware ou fichier .hex sur la carte mère de votre imprimante préférée, dès lors qu'elle est à base de microcontroleur Atmel (comme l'ATmega 2560, UNO, ou ATiny ). Cet outil est développé et entretenu par Zak Kemble (cf. http://blog.zakkemble.net/avrdudess-a-gui-for-avrdude/). *[[https://github.com/zkemble/AVRDUDESS|AVRDUDESS]] **PlateformIO** est un éco système open source conçu pour le développement IOS supportant le framework Arduino. Celui-ci est accessible depuis tout type de systèmes d’exploitation puis qu’il est programmé en python. *[[https://platformio.org/|platformio pour programmer un arduino]] == Pour tester en ligne == [[https://www.tinkercad.com/| Tinkercad]] Après avoir creer un compte gratuit ou utiliser votre compte Google , vous pourrez tester vos montage Arduino et aussi faire de modélisation ( Simplifiée ) pour des pieces 3D . [[https://www.tinkercad.com/things/giPzFKw4x5v-copy-of-6ledschenillard/editel?sharecode=gYGOnM5FtS1G1TyKFkYsWSuQaWjJpeSeTYVL-3A2RjQ|Un exemple de montage arduino]] ==== Le materiel dont on va avoir besoin ==== === Comparaison des caractéristiques des principales cartes Arduino et autres cartes === ^ Cartes^ MControleurs ^ (bits) ^ Mhz^ V^ Flash(KB)^Boot(KB)^SRam(KB)^EEprom^DigitalI/O^PWM^AnalogI/O^int^ |** Uno** |ATmega328P |8 |16 |5 |32 |0.5 |2 |1 |14 |6 |6|2| | **Nano **| ATmega328P |8 |16 |5 |32 |2 |2 |1 |14 |6 |8|2| |** Mega** |ATmega2560 |8 |16 |5 |256 |8 |8 |4 |54 |15 |16|6| |[[https://store.arduino.cc/en-fr/products/giga-r1-wifi|Giga]] |STM32H747XI 2Coeurs| 32|M7=480 M4=240 |3.3|2MB| |1MB| | 76 | 12 | 12 |76| |Micro |ATmega32U4 |8 |16 |5 |32 |4 |2.5 |1 |20 |7 |12|5| | Leonardo | ATmega32U4 |8 |16 |5 |32 |4 |2.5 |1 |20 |7 |12|5| | Nano RP2040 |ARM Cortex M0+ |32|133|3.3|16M|--|264|--|20|20|8|20| | MKR ZERO| SAMD21 Cortex-M0 |32 |48 |3.3 |256 | --| 32| no| 22|12 |8|10| | [[https://www.gotronic.fr/art-carte-arduino-due-18742.htm#complte_desc|DUE]] | AT91SAM3X8E | 32 | 84| 3.3|512 |-- |96 |-- |54 |12 |14|54| | MKR WIFI 1010|SAMD21 Cortex-M0 |32| 48 |3.3 | 256|-- | 32|no |8 |12 |8 |10| | [[https://store.arduino.cc/arduino-mkr-vidor-4000|MKR Vidor 4000]]] | Intel® Cyclone® 10CL016 FPGA-SAMD21 Cortex®-M0 |32 |48/200 | 3.3| 2000| --|8000 |no | 22|tout |8|8| | [[http://wiki.jelectronique.com/doku.php?id=esp32|ESP32]] | Xtensa® single-/dual-core | 32 |240 |2.7 ~ 3.6 | 64000| --|520 | 448 ROM|28 |tout |18|--| | [[https://wiki.mchobby.be/index.php?title=PYBStick-Arduino|PYBStick26]] | STM32F411 | 32 |100 |1.7 V to 3.6 | 512|-- |128 | --|17 |17 |6|--| | [[https://www.sla99.fr/2019/12/01/prise-en-main-attiny85/|Doc]][[https://www.cachem.fr/fabriquer-programmateur-attiny-85/|Atiny85]] | ATINY85 | 8 |1-20 |5 | 8| -| 512o|512o | 6| 2|2|-| | | | | | | | | | | | ||| {{ :start:arduino:liste_des_composants_et_du_materiel_pour_le_mooc_t.pdf | Materiels }} === Des liens pour des kits arduino === [[https://www.arduino-france.com/review/quel-est-le-meilleur-kit-arduino-pour-debuter/| Arduino France : Kits 001 Arduino]] [[https://www.cdiscount.com/search/10/kits+arduino.html#_his_| Cdiscount : Kits 002 Arduino]] [[https://www.kubii.fr/29-kits-arduino| Kubii : Kits 003 Arduino]] [[https://www.lextronic.fr/starter-kit-arduino-en-francais-k020007-27117.html| Lextronic : Kits 004 Arduino]] [[https://boutique.semageek.com/fr/16-pack-et-starter-kits-arduino| Semageek :Kits 005 Arduino]] [[https://store.arduino.cc/genuino-starter-kit| Arduino cc :Kits 006 Arduino]] [[https://www.gotronic.fr/art-kit-de-base-pour-uno-12429.htm| Gotronic :Kits 007 Arduino]] [[https://www.ebay.fr/sch/i.html?_nkw=kit+arduino+uno| eBay : Kits 008 Arduino]] [[https://www.adafruit.com/product/3588|Adafruit : Kits 009 Arduino]] [[https://www.sainsmart.com/products/sainsmart-mega2560-r3-1602lcd-starter-kit-with-17-basic-arduino-projects| SainSmart : Kits 010 Arduino]] ....... ==== Pour apprendre à utiliser un Arduino ==== [[https://www.fun-mooc.fr/courses/course-v1:MinesTelecom+04017+session09/about|Un MOOC pour s initier à l'Arduino (fin inscription 12/2020) ]] [[http://wiki.funlab.fr/index.php/Fil_rouge|Des cours donner au Funlab de Tours il y a quelques temps ...]] [[http://wiki.funlab.fr/index.php/Arduino#Quizz_pour_d.C3.A9buter_avec_l.27Arduino|Des Quiz pour mieux connaître l'Arduino]] [[http://fablab37110.ovh/doku.php?id=start:arduino:langage_c| Le langage C ]] [[https://openclassrooms.com/fr/courses/1894236-programmez-avec-le-langage-c| Le Langage C++]][[http://casteyde.christian.free.fr/cpp/cours/online/book1.html| Le C++ en Ligne ]] [[https://www.mon-club-elec.fr/?s=arduino| Reference Langage Arduino FR]] [[https://www.hwlibre.com/fr/attiny85/|ATtiny 85]] {{ :start:arduino:arduinosram.tar.bz2 |Doc : SRAM Arduino}} [[http://www.juggling.ch/gisin/microcontroleur/code_exemples.html|Des programmes Arduino ...]] [[https://eskimon.fr/|Arduino : le blog d'Eskimon]] === Des Livres === *{{ :start:arduino_le-guide-complet.pdf |Arduino : le guide complet pdf FR}} *{{ :start:arduino:arduino_pour_les_nuls.pdf |Arduino pour les nuls}} {{ :start:arduino:le_grand_livre_d_arduino.pdf | Arduino le grand Livre}} {{ :start:arduino:arduino_-_reference-1.pdf | Arduino Reference EN}} ==== On apprend de nos erreurs ==== [[https://arduino-france.site/locales-globales-variables/#3|les variables globales]] et la fonction void setup [[https://bentek.fr/5-arduino-types-donnees/| Les variables ]] [[https://www.robot-maker.com/shop/img/cms/tuto-led/ledwiring.jpg|le sens des LEDS]] : cathode = -, anode = +, le meplat = - [[https://curtiszone.files.wordpress.com/2016/05/58490-resistance5bands.png?w=353&h=392|la valeur d une résistance]] : 220 ohms n'est pas 10k ohms [[https://www.ma-calculatrice.fr/calculer-valeur-resistance-couleur.php|mesure des resistances et anneaux]] [[https://www.dcode.fr/code-couleur-resistance| Calcul resistances ]][[http://www.electronique-3d.fr/Photo_des_schemas/Les_diodes_LED/Caracteristique_des_Leds.jpg|Tension de seuil]] la connexion à la carte Arduino : [[https://www.robot-maker.com/ouvrages/tuto-arduino/installer-configurer-ide-arduino/|les ports USB sur windows 10]] La syntaxe du langage Arduino : [[https://eskimon.fr/tuto-arduino-105-le-langage-arduino-12#les-points-virgules|les ; et les { et } ]] **Non détection des cartes Arduino :** Nano : soit mettre ancien bootloader, soit mettre Uno comme carte dans --> outils --> type de cartes --> UNO Mega ou nano : le port COM non reconnu sous W10 , mettre à jour pilote dans gestion des périphériques, clic droit sur port COM et MAJ pilotes ==== Les programmes pour commencer ==== === Pour tester la carte : Blink === Voir dans les programmes exemples de l IDE arduino {{ :start:arduino:le_grand_livre_d_arduino.pdf | Arduino le grand Livre p221}}{{ :start:arduino:grand-livre-arduino_montages_.zip |Programmes des montages N°1}} int led = 13; void setup() { pinMode(led, OUTPUT); // Définit la pin 13 comme pin de sortie } // the loop routine runs over and over again forever: void loop() { digitalWrite(led, HIGH); // Allume la LED delay(1000); // Attend une seconde digitalWrite(led, LOW); // Eteint la LED delay(1000); // Attend une seconde } === Le chenillard avec des LEDS Programme 1 === {{ :start:arduino:chenillards001.resized2.jpg?direct&400 |}} int led1 = 3; // Déclaration de la variable int led2 = 5; // Déclaration de la variable int led3 = 6; // Déclaration de la variable int led4 = 9; // Déclaration de la variable int led5 = 10; // Déclaration de la variable int led6 = 11; // Déclaration de la variable void setup() { pinMode(led1,OUTPUT); // Défini la variable en tant que sortie (OUTPUT) pinMode(led2,OUTPUT); // Défini la variable en tant que sortie (OUTPUT) pinMode(led3,OUTPUT); // Défini la variable en tant que sortie (OUTPUT) pinMode(led4,OUTPUT); // Défini la variable en tant que sortie (OUTPUT) pinMode(led5,OUTPUT); // Défini la variable en tant que sortie (OUTPUT) pinMode(led6,OUTPUT); // Défini la variable en tant que sortie (OUTPUT) } void loop() { digitalWrite(led1, HIGH); delay(200); digitalWrite(led1, LOW); delay(200); digitalWrite(led2, HIGH); delay(200); digitalWrite(led2, LOW); delay(200); digitalWrite(led3, HIGH); delay(200); digitalWrite(led3, LOW); delay(200); digitalWrite(led4, HIGH); delay(200); digitalWrite(led4, LOW); delay(200); digitalWrite(led5, HIGH); delay(200); digitalWrite(led5, LOW); delay(200); digitalWrite(led6, HIGH); delay(200); digitalWrite(led6, LOW); delay(200); } === Chenillard programme2 === // ce programme allume les leds une par une int pin[6]={3,5,6,9,10,11}; int temp0=50; //tempo pour allumer les leds int temp1=50; // tempo pour eteindre void setup(){ for (int i = 0 ; i<=5 ; i++){ pinMode(pin[i], OUTPUT); } } void loop(){ for (int i = 0 ; i<=5 ; i++){ // boucle for pour allumer les leds une par une digitalWrite(pin[i], HIGH); delay(temp0); digitalWrite(pin[i], LOW); delay(temp0); } for (int i = 5 ; i>=0 ; i--){ digitalWrite(pin[i], LOW); delay(temp1); digitalWrite(pin[i], HIGH); delay(temp0); } } === Chenillard Programme 3 en utilisant une fonction sinus === // les sorties avec PWM #define LED1 11 #define LED2 10 #define LED3 9 #define LED4 6 #define LED5 5 #define LED6 3 // Valeur pour decaler le sinus #define DECAL PI*2/6 // configuration des sorties void setup(){ pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); pinMode(LED3, OUTPUT); pinMode(LED4, OUTPUT); pinMode(LED5, OUTPUT); pinMode(LED6, OUTPUT); } void loop() { for (float i=0; i === Chenillard Programme 4 avec moins de ligne de code toujours en utilisant une fonction sinus === // ce programme allume les leds une par une int pin[6]={3,5,6,9,10,11}; // Valeur pour decaler le sinus #define DECAL PI*2/6 void setup(){ for (int i = 0 ; i<=5 ; i++){ pinMode(pin[i], OUTPUT); } } void loop() { for (float i=0; i {{ :start:arduino:pwm_sinus001.pdf |Correction}}{{ :start:arduino:tp001_correction_pwm_sinus.ino.zip |programme correction}} === Des Électronique 1 avec Bouton poussoir === [[http://78.204.53.180:16557/share/xtF3D58vrLiOiKWC/008_Le%20grand%20livre%20d_Arduino_Des_electroniques.pdf |Des électronique 2 ]] [[https://eskimon.fr/tuto-arduino-105-le-langage-arduino-12#la-condition-ternaire-ou-condens%C3%A9e|La condition ternaire en langage C]] {{ :start:arduino:capture_du_2020-10-06_16-04-31.resized.png?600 |}} {{ :start:arduino:progdes..jpg?600 |}} === Le des électronique 2 avec capteur Lumière === {{ :start:arduino:capture_du_2020-10-07_11-20-57.resized.jpg?direct&600 |}} [[http://sciences-du-numerique.fr/projet-arduino-pour-la-specialite-isn/de-electronique/41|Des électronique]] const int ECART=100; const int TEMPO=2000; void setup(){ randomSeed(analogRead(1)); for(int i=2;i<=8;i++){ pinMode(i,OUTPUT); } } void loop(){ int luminosite1=analogRead(0); delay(100); int luminosite2=analogRead(0); if(luminosite2-luminosite1>ECART){ afficheDe(random(1,7)); delay(TEMPO); eteintDe(); } } void afficheDe(int nombre){ if(nombre==1){ digitalWrite(5,HIGH); } if(nombre==2){ digitalWrite(2,HIGH); digitalWrite(8,HIGH); } if(nombre==3){ digitalWrite(2,HIGH); digitalWrite(5,HIGH); digitalWrite(8,HIGH); } if(nombre==4){ digitalWrite(2,HIGH); digitalWrite(4,HIGH); digitalWrite(6,HIGH); digitalWrite(8,HIGH); } if(nombre==5){ digitalWrite(2,HIGH); digitalWrite(4,HIGH); digitalWrite(6,HIGH); digitalWrite(8,HIGH); digitalWrite(5,HIGH); } if(nombre==6){ digitalWrite(2,HIGH); digitalWrite(3,HIGH); digitalWrite(4,HIGH); digitalWrite(6,HIGH); digitalWrite(7,HIGH); digitalWrite(8,HIGH); } } void eteintDe(){ for(int i=2;i<=8;i++){ digitalWrite(i,LOW); } } === TP === {{ :start:arduino:tp_corrections_arduino.tar.gz |TP et corrections cours Arduino}} [[https://www.tinkercad.com/things/hoX5BPVijd9-com-serie-entre-2-arduino/editel?sharecode=mN9YN9AKYj05K_Vn993QQigvkYpEUxvlzyIOPvBrWBE|Correction3]] [[https://www.tinkercad.com/things/0wMSg8CVXDO-potentiometreledserie/editel?sharecode=F8MCRlWMe-vUD8eFmoCWfn2CZ3WCHStapKdmwWOoiQk|Correction_2]] [[https://www.aranacorp.com/fr/gerer-un-ecran-lcd-par-la-connexion-i2c-dune-arduino-nano/|Corrections LCD I2C]][[https://youtu.be/R_LxirJ5R4A|Créer des caractères sur un LCD]][[start:arduino:LCD |---page doc LCD]] [[https://www.robot-maker.com/forum/blog/62/entry-54-les-potentiometres-et-les-servomoteurs/|Correction]] [[https://eskimon.fr/tuto-arduino-901-ajouter-des-sorties-num%C3%A9riques-%C3%A0-larduino-le-74hc595|Corrections et Doc]]----[[start:arduino:74hc595|Doc 74HC595]]----[[start:arduino:mcp23017|Autre Alternative MCP23017]] === Autres Cours === {{ :start:arduino:autrfes_cours_arduino.tar.gz | Autres Cours sur arduino}} [[http://www.juggling.ch/gisin/microcontroleur/code_exemples.html|Des programmes Arduino ...]]