Fabriquer un Drone avec un Arduino
Un Livre qui étudie des projets avec le Raspberry et/ou L'Arduino
Arduino Nano Connect RP2040 https://store.arduino.cc/products/arduino-nano-rp2040-connect-with-headers
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 une version en ligne
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/). *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. *platformio pour programmer un arduino
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 .
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 |
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 |
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 |
MKR Vidor 4000] | Intel® Cyclone® 10CL016 FPGA-SAMD21 Cortex®-M0 | 32 | 48/200 | 3.3 | 2000 | – | 8000 | no | 22 | tout | 8 | 8 |
ESP32 | Xtensa® single-/dual-core | 32 | 240 | 2.7 ~ 3.6 | 64000 | – | 520 | 448 ROM | 28 | tout | 18 | – |
PYBStick26 | STM32F411 | 32 | 100 | 1.7 V to 3.6 | 512 | – | 128 | – | 17 | 17 | 6 | – |
DocAtiny85 | ATINY85 | 8 | 1-20 | 5 | 8 | - | 512o | 512o | 6 | 2 | 2 | - |
Un MOOC pour s initier à l'Arduino (fin inscription 12/2020)
Des cours donner au Funlab de Tours il y a quelques temps ...
Des Quiz pour mieux connaître l'Arduino
les variables globales et la fonction void setup Les variables
le sens des LEDS : cathode = -, anode = +, le meplat = -
la valeur d une résistance : 220 ohms n'est pas 10k ohms mesure des resistances et anneaux Calcul resistances Tension de seuil
la connexion à la carte Arduino : les ports USB sur windows 10
La syntaxe du langage Arduino : 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
Voir dans les programmes exemples de l IDE arduino Arduino le grand Livre p221Programmes 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 }
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); }
// 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); } }
// 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<PI*2; i=i+PI*2/1000) { analogWrite(LED1,sin(i)*127.5+127.5); analogWrite(LED2,sin(i+DECAL)*127.5+127.5); analogWrite(LED3,sin(i+DECAL*2)*127.5+127.5); analogWrite(LED4,sin(i+DECAL*3)*127.5+127.5); analogWrite(LED5,sin(i+DECAL*4)*127.5+127.5); analogWrite(LED6,sin(i+DECAL*5)*127.5+127.5); } }
// 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<PI*2; i=i+PI*2/300) { analogWrite(LED6,sin(i+DECAL*5)*127.5+127.5); // ATTENTION ce programme ne fonctionne pas il faut ajouter une boucle for ... // A vous de chercher une solution pour remplacer 6 lignes par une seule.... // Indices : boucle for imbriquée dans la première avec une valeur de 0 à 5 .... } } }
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 et corrections cours Arduino
Correction_2 Corrections LCD I2CCréer des caractères sur un LCD---page doc LCD
Correction Corrections et Doc—-Doc 74HC595—-Autre Alternative MCP23017