Qu’est-ce qu’Arduino Uno ?
- Microcontrôleur éducatif : Carte électronique open-source, idéale pour apprendre l’interaction entre logiciel et matériel.
- Cœur du système : Basée sur un microcontrôleur ATmega328P (architecture 8-bit AVR).
- Simplicité : Conçue pour les débutants, avec une communauté active et des ressources abondantes.
Caractéristiques Techniques Clés
| Composant | Détails |
|---|---|
| Processeur | ATmega328P @ 16 MHz (puissance équivalente à un ordinateur des années 80 !) |
| Mémoire | 32 KB Flash (programmes), 2 KB RAM (données), 1 KB EEPROM (stockage persistant) |
| Entrées/Sorties | – 14 broches digitales (dont 6 PWM pour contrôler moteurs/LED) – 6 entrées analogiques (capteurs) |
| Connectivité | Port USB (transfert de programmes + alimentation), broches ICSP (programmation avancée) |
| Alimentation | 5V via USB ou fiche jack (7-12V recommandé) |
Pourquoi Arduino en Informatique ?
- Pont logiciel-matériel : Apprendre à piloter des capteurs, moteurs, LEDs depuis le code.
- Langage accessible : Programmation en C/C++ simplifié (avec bibliothèques dédiées).
- Prototypage rapide : Idéal pour valider des concepts IoT, robotique, ou systèmes embarqués.
- Écosystème étendu : Capteurs (température, mouvement), modules (Wi-Fi, Bluetooth), afficheurs…
Exemples d’Applications
- Domotique : Station météo avec capteurs d’humidité/température.
- Robotique : Contrôle de moteurs pour un robot éviteur d’obstacles.
- IoT : Envoyer des données de capteurs sur Internet (via module ESP8266).
- Interactivité : Commander des LEDs par smartphone ou créer un mini-synthétiseur.
Environnement de Développement
- IDE Arduino : Logiciel gratuit (Windows/macOS/Linux), avec :
- Éditeur de code + moniteur série.
- Bibliothèques intégrées (ex:
Servo.hpour les moteurs). - Compilation et upload en un clic.
- Code exemple (Blink LED)
void setup() {
pinMode(13, OUTPUT); // Broche 13 (LED intégrée) en sortie
}
void loop() {
digitalWrite(13, HIGH); // Allumer la LED
delay(1000); // Attendre 1 seconde
digitalWrite(13, LOW); // Éteindre la LED
delay(1000); // Attendre 1 seconde
}
- Apprentissage concret : Comprendre les interruptions, la gestion du temps réel, l’ADC (conversion analogique-numérique).
- Debugging matériel : Utilisation du moniteur série pour suivre l’exécution.
- Projets collaboratifs : Intégration facile avec Python, Processing, ou des APIs web.
Ressources Recommandées
- Tutoriels : Arduino Official Tutorials
- Simulateurs : Tinkercad Circuits (pour tester sans matériel).
Conclusion :
L’Arduino Uno est un outil essentiel pour explorer l’informatique physique. Il transforme des concepts abstraits (algorithmes, structures de données) en applications tangibles, tout en développant des compétences en électronique et prototypage. Un investissement idéal pour s’initier à l’embarqué et à l’IoT ! 🚀
On voit sur ce schéma que l’arduino Uno il y a 2 ATMEGA 328P
un en boitier DIP que vous utilisez , et un autre en circuit cms (composant monté en surface) pour la communication PC / Arduino UNO et la programmation de l’autre
on retrouve des alimentations 3.3V , 5 V , des GND (0V)
Aref pour entrer une tension de référence analogique max sur 10 bits (2^10)
~ permettent de repérer les broches capable de générer de la PWM
A0 à A5 6 entrée analogique sur 10 bits (1024) 2^10
LOGICIEL Arduino IDE 1.8.19
Dans le monde Arduino, un programme est appelé un « sketch » (esquisse en français). Ce terme vient de l’idée que programmer un microcontrôleur, c’est comme dessiner une idée rapidement, sans la complexité des gros projets logiciels. C’est une approche minimaliste et artistique, comme un brouillon qui devient fonctionnel.
https://www.arduino.cc/en/software
la version 1.8.19 est plus facile à installer au lycée
Le plus simple au lycée et d’installer arduino ide version 1.8.19 (dernière avant la 2.0)
sudo apt update && sudo apt install arduino
Le fichier main caché est ici sous linux avec notre installation Arduino 1.8.19
/usr/share/arduino/hardware/arduino/avr/cores/arduino/main.cpp
main.cpp
/*
main.cpp - Main loop for Arduino sketches
Copyright (c) 2005-2013 Arduino Team. All right reserved.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <Arduino.h>
// Declared weak in Arduino.h to allow user redefinitions.
int atexit(void (* /*func*/ )()) { return 0; }
// Weak empty variant initialization function.
// May be redefined by variant files.
void initVariant() __attribute__((weak));
void initVariant() { }
void setupUSB() __attribute__((weak));
void setupUSB() { }
int main(void)
{
init();
initVariant();
#if defined(USBCON)
USBDevice.attach();
#endif
setup();
for (;;) {
loop();
if (serialEventRun) serialEventRun();
}
return 0;
}
ARDUINO CLI
CLI = Command Line Interface
installation
cd
sudo apt update
sudo apt install curl
cd Softs #il doit exister
mkdir arduino-cli
cd arduino-cli
curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh
export PATH=$PATH:$HOME/Softs/arduino-cli/bin # Ajoute le CLI au PATH
ajouter cette ligne à la fin du fichier ~/bashrc
export PATH=$PATH:$HOME/Softs/arduino-cli/bin
depuis un terminal vérifier que arduino-cli est accessible
sudo apt update && sudo apt install -y git avrdude avr-libc gcc-avr
arduino-cli config init
arduino-cli core update-index
arduino-cli core install arduino:avr
dans Works/arduino-cli/
mkdir ~/blink && cd ~/blink
cat > blink.ino <<EOF
void setup() { pinMode(13, OUTPUT); }
void loop() {
digitalWrite(13, HIGH); delay(1000);
digitalWrite(13, LOW); delay(1000);
}
EOF
arduino-cli compile --fqbn arduino:avr:uno --build-path ~/Works/arduino-cli/blink/build ~/Works/arduino-cli/blink
L’option –fqbn (Fully Qualified Board Name) est un paramètre clé dans Arduino CLI qui spécifie exactement quelle carte Arduino vous ciblez, y compris l’architecture et les options spécifiques.
on peut voir ensuite ce qui est généré
etudiant@ordi:~/Works/arduino-cli/blink/build$ ls -l
total 112
-rw-rw-r-- 1 etudiant etudiant 13 août 10 17:06 blink.ino.eep
-rwxrwxr-x 1 etudiant etudiant 14148 août 10 17:06 blink.ino.elf
-rw-rw-r-- 1 etudiant etudiant 2615 août 10 17:06 blink.ino.hex
-rw-r--r-- 1 etudiant etudiant 32768 août 10 17:06 blink.ino.with_bootloader.bin
-rw-rw-r-- 1 etudiant etudiant 3972 août 10 17:06 blink.ino.with_bootloader.hex
-rw-r--r-- 1 etudiant etudiant 337 août 10 17:06 build.options.json
-rw-r--r-- 1 etudiant etudiant 24889 août 10 17:06 compile_commands.json
drwxr-xr-x 2 etudiant etudiant 4096 août 10 17:01 core
-rw-r--r-- 1 etudiant etudiant 443 août 10 17:06 includes.cache
drwxr-xr-x 2 etudiant etudiant 4096 août 10 17:01 libraries
-rw-r--r-- 1 etudiant etudiant 161 août 10 17:06 libraries.cache
drwxr-xr-x 2 etudiant etudiant 4096 août 10 17:06 sketch
etudiant@ordi:~/Works/arduino-cli/blink/build$
download
arduino-cli upload \
-p /dev/ttyACM0 \
--fqbn arduino:avr:uno \
~/Works/arduino-cli/blink
ARDUINO 2 et plus
Dans votre répertoire utilisateur , il faut un répertoire , à l’installation de la IDE 2.XX
cd ~ #répertoire utilisateur
ls -la
.arduinoIDE .....
il faut y mettre ce fichier qui va permettre d’utiliser la version 2 de arduinoIDE a travers le proxy du lycée.
arduino-cli.yaml
board_manager:
additional_urls: []
build_cache:
compilations_before_purge: 10
ttl: 720h0m0s
daemon:
port: "50051"
directories:
builtin:
libraries: /home/bruno/.arduino15/libraries
data: /home/bruno/.arduino15
downloads: /home/bruno/.arduino15/staging
user: /home/bruno/Arduino
library:
enable_unsafe_install: false
locale: fr
logging:
file: ""
format: text
level: info
metrics:
addr: :9090
enabled: true
network:
proxy: http://10.0.0.1:3128/
user_agent_ext: daemon
output:
no_color: false
sketch:
always_export_binaries: false
updater:
enable_notification: true
network:
proxy:
address: "http://user:password@proxyhost:port"





