Installation du pilote arduino uno sur Windows 7. Comment fonctionne Arduino

Ou plutôt son homologue chinois.

La différence essentielle entre l'homologue chinois et l'original est son prix. L'Arduino UNO original coûte actuellement 24,95 $ sur le site officiel, tandis que l'homologue chinois avec livraison m'a coûté moins de 3 $ (8 fois moins cher). Une comparaison plus détaillée de l'original avec son analogue sera dans le prochain article, mais maintenant, afin de ne pas s'éloigner des objectifs principaux, commençons.



Connexion à un PC et installation du pilote.

En raison du fait que dans cet analogue chinois d'Arduino, une puce est utilisée pour se connecter à l'USB CH340G, les pilotes fournis ne conviennent pas à l'Arduino d'origine et à ses analogues, qui contiennent un microcircuit ATMEGA16U2.


Nous connectons la plate-forme Arduino à l'ordinateur via cable USB auquel les imprimantes sont connectées. La LED sur la carte s'allumera. SUR". Un nouveau périphérique apparaîtra dans le Gestionnaire de périphériques " USB2.0-série". Vous devez installer des pilotes, nous allons travailler dans l'exemple sur Windows.

Téléchargez l'archive, décompressez et exécutez le fichier CH341SER.EXE. Choisir INSTALLER.


La LED clignote pendant l'installation du pilote. RX, après l'installation un message correspondant apparaîtra, cliquez sur " D'ACCORD".

Un nouvel appareil apparaîtra dans le gestionnaire d'appareils" USB-série CH340". Dans mon cas, l'appareil connecté au port COM7, tout le monde peut avoir n'importe quel autre numéro de port, l'essentiel est de s'en souvenir pour les travaux futurs.

Première esquisse.

Le programme Arduino s'appelle un sketch. Pour écrire un croquis sur Arduino, vous devez l'installer sur un ordinateur. Environnement de développement Arduino. Téléchargez la dernière version et décompressez. Lancer l'environnement de développement avec un fichier arduino.exe.

Par défaut, le programme chargé avec l'interface russe.

Pour sélectionner une autre langue, utilisez l'élément de menu " Dossier" - "Réglages".

Dans la liste" Langue de l'éditeur" vous pouvez choisir n'importe quelle autre langue, cliquez sur " D'ACCORD" et redémarrez l'environnement de développement. La composition comprend le biélorusse, l'ukrainien et d'autres langues.


Il faut aussi vérifier que la plateforme Arduino est bien sélectionnée, pour cela on va dans " Outils" – "Payer:"J'avais Anduino UNO correctement sélectionné par défaut, si vous avez autre chose, sélectionnez votre plate-forme dans la liste.


Vous devez également choisir le bon port auquel notre plate-forme est connectée. Pour ce faire, lors de l'installation du pilote, j'ai fait attention à cela (il faut regarder le port dans le gestionnaire de périphériques). Dans mon cas cela COM7. Maintenant en " Outils" - "Port:"vous devez spécifier le bon port.

Essayons maintenant d'exécuter notre premier croquis sur l'Arduino, qui fera clignoter la LED.

Cette version de l'environnement de développement contient déjà une collection de croquis simples, parmi lesquels se trouve notre croquis.
Pour cela, rendez-vous dans " Dossier" - "Échantillons" - "01. Bases" – "Cligner".

Le code du programme s'ouvrira dans une nouvelle fenêtre. Préparons maintenant la LED pour notre programme. Sur de nombreuses cartes, comme sur la mienne, la LED souhaitée était déjà soudée avec le reste des composants radio ...


Mais il peut y avoir des cartes qui n'ont pas cette LED, auquel cas vous devrez la connecter via les broches de la carte. Prenons la LED colorée la plus courante et connectons-la via une résistance de limitation de 220Ω - 1Kom aux broches de la carte 13 et Terre(Lors du processus de connexion de la LED à l'Arduino, il est recommandé de déconnecter le câble USB).


Lorsque tout est prêt, il reste à télécharger le programme de clignotement de la LED dans le microcontrôleur. Dans l'environnement développeur, cliquez sur le bouton " charger", pour télécharger le croquis sur Anduino.

Une fois l'esquisse chargée avec succès, la LED commencera à clignoter, dans mon cas, la LED qui a été soudée sur la carte et celle que j'ai connectée aux broches ont clignoté.

Pour éteindre Anduino, il suffit de déconnecter la carte du câble USB.

C'est là que vous pouvez terminer la première prise de connaissance de la plateforme, en vous assurant que tout fonctionne correctement.

En principe, il est universel et un grand nombre de projets peuvent y être mis en œuvre.

Commençons!

Tout d'abord, nous devons télécharger et installer l'environnement de développement avec les pilotes intégrés, cela peut être fait à partir du site officiel Arduino.cc ou à partir du lien. Ensuite, vous pouvez connecter la carte à l'ordinateur via fil usb qui vient le plus souvent dans le kit, ou par n'importe quel kit approprié. Arduino utilise USB B, il n'y a rien de spécial à ce sujet. Si tout est fait correctement et que la carte fonctionne, Windows trouvera un nouveau périphérique et l'installera tout seul, après quoi le voyant marqué ON ou PWR s'allumera sur la carte.

Vous pouvez maintenant ouvrir l'ide Arduino et la fenêtre de l'éditeur apparaîtra immédiatement devant nous.1) La fenêtre de l'éditeur est l'endroit où nous allons écrire le code.

2) La fenêtre d'état, les erreurs et d'autres informations sur notre programme et le processus de téléchargement du micrologiciel sur la carte seront affichés ici.

3) Barre d'outils, etc.

Soit dit en passant, ide prend en charge la langue russe, ce qui devrait contribuer à son développement. Vérifions maintenant si tout va bien et allons dans l'onglet Outils -> Tableaux. Là, notre conseil devrait immédiatement être sélectionné:


Si ce n'est pas le cas, sélectionnez-le manuellement.

Maintenant, il va essayer de flasher notre carte avec le firmware de test, pour cela nous allons dans File -> examples -> Basics -> Blink. Les commentaires et le texte du programme apparaissent immédiatement dans la fenêtre de l'éditeur. Les commentaires sont toujours situés entre les balises */ ou c//, et ils peuvent être supprimés sans aucun problème, ils n'affecteront en rien le fonctionnement du programme et n'interféreront plus avec la concentration sur l'essentiel.

Après cela, le code suivant restera :

C++

void setup() ( pinMode(13, OUTPUT); ) void loop() ( digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); )

void setup()(

pinMode(13, SORTIE) ;

boucle vide ()()

Si vous obtenez une erreur : il y a un problème de téléchargement sur la carte, alors ne désespérez pas, c'est une solution facile. Pour ce faire, allez dans Outils -> Port -> et là, nous sélectionnons le port à côté duquel Arduino / Genuino Uno est écrit entre parenthèses et essayons à nouveau de flasher le contrôleur. Si quelque chose ne fonctionne pas, écrivez dans les commentaires, nous le trouverons.

Voyons maintenant ce que nous avons versé dans l'arduino.

void setup() ( )

L'environnement de développement a généré cette partie du code pour nous tout seul, ici, entre les accolades, les entrées sont initialisées, la sortie de la carte, dans notre cas, elle indique pinMode (13, OUTPUT); Cela signifie que nous attribuons la 13ème broche de la carte à laquelle la LED est connectée (dont nous avons parlé dans le dernier article) à la sortie.

Cette partie du code est également générée automatiquement, entre les accolades est écrit le code que notre programme exécutera directement indéfiniment. Autrement dit, c'est un cycle sans fin. Il dit digitalWrite(13, HIGH); , qui signifie en russe appliquer 5 volts à la broche 13, cette action allume la LED.

retard(1000); Ce délai, il arrête l'exécution de l'instruction suivante pendant 1000 milles secondes (1 seconde).

digitalWrite(13, BAS); tire 13 broches vers le sol, en russe supprime 5 volts, ce qui conduit à l'extinction de la LED.

Et puisque void loop() est une boucle infinie, la lumière sur l'Arduino clignotera sans fin !

s'amuser avec le nu Carte Arduino pas aussi amusant que nous le souhaiterions en raison du fait qu'une seule LED est installée sur la carte et qu'il n'y a pas un seul bouton, mais cela ne signifie pas que faire clignoter la LED est tout ce que nous pouvons ! Faisons-le s'allumer et s'éteindre sur commande depuis l'ordinateur !

Pour ce faire, nous devrons écrire le firmware de l'arduino et utiliser le port monitor pour le test, puis nous allons écrire un programme en C# mais ce sera dans le prochain article.

Les programmes ne clignotent pas dans Arduino

Dans le processus de transfert d'un programme d'un ordinateur vers un Arduino, de nombreux composants sont impliqués. Si au moins l'un d'entre eux ne fonctionne pas correctement, le processus du micrologiciel sera interrompu. En particulier, le processus du micrologiciel dépend : des pilotes Arduino, du modèle d'appareil et de la sélection du port dans l'environnement Arduino, de la connexion physique à la carte, du micrologiciel du contrôleur 8U2 (sur Arduino Uno et Mega 2560), du chargeur de démarrage du microcontrôleur principal de l'appareil, du fusible paramètres de bits, etc. d. Vous trouverez ci-dessous quelques recommandations pour le dépannage d'un composant particulier.

Environnement Arduino

  • Assurez-vous que votre modèle Arduino est sélectionné dans le menu Outils > Carte. Si vous avez un Arduino Uno, sélectionnez l'élément approprié. Gardez également à l'esprit que les modèles après l'Arduino Duemilanove sont livrés avec un microcontrôleur ATmega328, tandis que les versions plus anciennes sont livrées avec un ATmega168. Pour savoir quel contrôleur est utilisé dans votre Arduino, lisez l'inscription sur le microcontrôleur (la plus grande puce de la carte). Vous trouverez plus d'informations sur le menu Board dans la section Environnement de développement Arduino.
  • Vérifiez ensuite que le bon port est sélectionné dans le menu Outils > Port série (si le port n'apparaît pas, essayez de redémarrer EDI périphérique connecté à l'ordinateur). Sur le Ordinateurs Mac, le port série devrait ressembler à ceci : /dev/tty.usbmodem621 (pour Arduino Uno ou Mega 2560) ou /dev/tty.usbserial-A02f8e (pour les anciennes versions d'Arduino avec une puce FTDI). Sous Linux : /dev/ttyACM0 ou similaire (pour Arduino Uno ou Mega 2560) ou /dev/ttyUSB0 (pour les anciennes versions d'Arduino). Sous Windows, ce sera un port COM, mais avant de choisir dans le gestionnaire de périphériques, vous devez vérifier lequel est associé à Arduino. Si ces ports ne sont pas répertoriés, consultez la section suivante sur les pilotes.

Conducteurs

Les pilotes permettent au logiciel d'application de l'ordinateur (c'est-à-dire l'environnement Arduino) de communiquer avec le matériel qui lui est connecté (la carte Arduino). En ce qui concerne Arduino, les pilotes sont responsables de la création d'un port série virtuel (ou port COM virtuel) dans le système. Arduino Uno et Mega 2560 avec microcontrôleur ATmega8U2 utilisent des pilotes standard (USB CDC) du système d'exploitation. D'autres cartes Arduino, où la puce FTDI joue le rôle d'un convertisseur USB-UART, utilisent des pilotes de FTDI.

Le moyen le plus simple de vérifier si les pilotes sont correctement installés est de connecter l'Arduino au PC et d'ouvrir le menu Outils > Port série dans l'environnement de développement. Après avoir connecté l'Arduino, de nouveaux éléments de menu devraient apparaître ici. Dans ce cas, peu importe le nom de port qui sera attribué à Arduino.

  • Sous Windows 7 (en particulier la version 64 bits), vous devrez peut-être aller dans le gestionnaire de périphériques et mettre à jour les pilotes Arduino Uno ou Mega 2560. Pour cela, faites un clic droit sur le périphérique dans le gestionnaire de périphériques (la carte doit être connecté à l'ordinateur) et pointez à nouveau vers Windows le fichier .inf correspondant. Ce fichier se trouve dans le dossier drivers/ du logiciel Arduino (pas dans le sous-répertoire FTDI USB Drivers).
  • Si vous obtenez l'erreur suivante lors de l'installation des pilotes Arduino Uno ou Mega 2560 sous Windows XP : "Le système ne trouve pas le fichier spécifié", essayez cette solution (à propos de l'ajout de la clé "RunOnce" à la branche de registre "HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows\Version actuelle").
  • Sous Linux, l'Arduino Uno et le Mega 2560 sont définis comme des périphériques /dev/ttyACM0, qui ne sont pas pris en charge par la version standard de la bibliothèque RXTX utilisée par l'environnement série Arduino. Par conséquent, la version Linux de cet environnement inclut une bibliothèque RXTX corrigée, qui fonctionne également avec les périphériques /dev/ttyACM*. Il existe également une version spéciale (11.04) qui inclut la prise en charge de ces appareils. Si vous utilisez le package RXTX standard, vous devez créer un lien symbolique dans le système de /dev/ttyACM0 à /dev/ttyUSB0 (par exemple) - le port série apparaîtra alors dans l'environnement Arduino.

Accès au port série

  • Sous Windows : si le programme prend beaucoup de temps à s'ouvrir ou se bloque au démarrage, ou si le menu Outils prend trop de temps à s'ouvrir, alors dans le Gestionnaire de périphériques, essayez de désactiver tous les ports série Bluetooth et les autres ports COM du réseau. Lors du démarrage ou de l'ouverture du menu Outils, l'environnement de développement Arduino analyse respectivement tous les ports série de votre ordinateur, la présence de ces ports réseau peut parfois entraîner des blocages ou des plantages du programme.
  • Assurez-vous qu'aucun programme de scanner série n'est en cours d'exécution, tel qu'un dongle Wi-Fi cellulaire USB (tel que Sprint ou Verizon), des applications de synchronisation PDA, des pilotes USB Bluetooth (tels que BlueSoleil), des démons virtuels, etc.
  • Assurez-vous que la raison du blocage du port série n'est pas un pare-feu (par exemple, ZoneAlarm).
  • Il est également nécessaire de fermer tous les programmes qui surveillent les données envoyées via USB entre Arduino et le PC (par exemple, Processing, PD, vvvv, etc.).
  • Sous Linux : essayez d'exécuter l'environnement Arduino en tant que root, au moins temporairement, pour voir si cela aide à flasher l'Arduino ou non.

Connexion physique au tableau

  • Tout d'abord, assurez-vous que l'Arduino est allumé (allumé DEL verte) et connecté à un ordinateur.
  • Sur les ordinateurs Mac, il y a des problèmes quand connecter Arduino Uno et Mega 2560 via hub USB. Si rien n'apparaît dans le menu "Outils > Port série", essayez de connecter la carte directement à l'ordinateur et redémarrez EDI Arduino.
  • Pendant la durée du micrologiciel, déconnectez tous les appareils des broches numériques 0 et 1, car ces broches sont connectées à l'interface de connexion Arduino à l'ordinateur (après avoir réussi à flasher le code sur le contrôleur, elles peuvent être réutilisées).
  • Essayez de flasher l'Arduino en déconnectant tous les périphériques de celui-ci (sauf le câble USB, bien sûr).
  • Assurez-vous que la carte n'est pas en contact avec des objets métalliques conducteurs.
  • Essayez un autre câble USB, parfois ils échouent aussi.

Réinitialisation automatique

  • Si votre Arudino ne prend pas en charge la fonction de réinitialisation automatique, assurez-vous de réinitialiser la carte quelques secondes avant de clignoter. (Arduino Diecimila, Duemilanove et Nano prennent en charge la réinitialisation automatique, tout comme LilyPad, Pro et Pro Mini avec connecteurs de programmation à 6 broches).
  • Attention : certains Arduino Diecimila ont été accidentellement flashés avec le mauvais bootloader. De tels modèles nécessitent une pression physique sur le bouton de réinitialisation avant de charger le programme ; voir ci-dessous pour plus d'informations à ce sujet.
  • Sur certains ordinateurs, vous devez appuyer sur le bouton de réinitialisation (sur la carte) après avoir appuyé sur le bouton Télécharger dans l'environnement Arduino. Expérimentez avec différents intervalles de temps entre les tapotements - de 0 à 10 secondes ou plus avec un intervalle d'environ 2 secondes.
  • Si vous obtenez cette erreur : "L'appareil ne répond pas correctement." essayez de flasher à nouveau le programme (en d'autres termes, réinitialisez la carte et appuyez à nouveau sur le bouton Upload).

Chargeur

  • Assurez-vous que votre Arduino dispose d'un chargeur de démarrage. Pour ce faire, redémarrez simplement votre appareil. La LED intégrée (connectée à la 13ème broche du contrôleur) doit clignoter. Si cela ne se produit pas, il est fort probable que votre carte n'ait pas de chargeur de démarrage.

Si les programmes ne clignotent toujours pas, posez une question sur le forum. Veuillez inclure les informations suivantes dans votre message :

  • La version de votre système d'exploitation.
  • Type de votre Arduino. S'il s'agit d'un Mini, LilyPad ou d'un autre modèle nécessitant des fils supplémentaires, incluez une photo de votre circuit si possible.
  • Avez-vous déjà réussi à flasher la carte. Si oui, veuillez décrire ce que vous avez fait avec le tableau avant qu'il ne cesse de fonctionner, Logiciel Avez-vous installé ou désinstallé de votre ordinateur dernièrement ?
  • Messages qui apparaissent lorsque vous essayez de charger un programme dans Arduino. Pour recevoir des messages, maintenez la touche Maj enfoncée tout en cliquant sur le bouton Télécharger de la barre d'outils.

L'erreur "Le dossier de construction a disparu ou n'a pas pu être écrit" se produit (sur Mac OS X)

Avez-vous extrait l'Arduino.app de l'image disque (par exemple dans le dossier Applications) ? Sinon, vous ne pourrez pas télécharger d'exemples.

Arduino ne démarre pas après la mise à jour de Java sur Mac

Dernière chose mise à jour java Apple essaie d'utiliser les versions 64 bits des bibliothèques natives. Cependant, le logiciel Arduino utilise la version 32 bits de la bibliothèque RXTX. Au démarrage de l'Arduino, l'erreur suivante se produit :

Exception non détectée dans la méthode principale : java.lang.UnsatisfiedLinkError : /Applications/arduino-0016/Arduino 16.app/Contents/Resources/Java/librxtxSerial.jnilib : aucune image appropriée trouvée. A trouvé : /Applications/arduino-0016/Arduino 16.app/Contents/Resources/Java/librxtxSerial.jnilib : aucune architecture correspondante dans le wrapper universel

Pour résoudre ce problème, cliquez sur l'application Arduino (c'est-à-dire Arduino 16.app) dans la fenêtre du Finder, et dans le menu Fichier, choisissez Obtenir des informations. Sur le panneau, cochez la case "Ouvrir en mode 32 bits". Après cela, l'environnement Arduino devrait démarrer normalement.

Lors de la compilation du programme, une erreur java.lang.StackOverflowError se produit

L'IDE Arduino prétraite votre croquis en manipulant le code avec des expressions régulières. Parfois, certaines lignes de texte font échouer ce processus. Si vous voyez une erreur comme celle-ci :

Java.lang.StackOverflowError à java.util.Vector.addElement(Source inconnue) à java.util.Stack.push(Source inconnue) à com.oroinc.text.regex.Perl5Matcher._pushState(Perl5Matcher.java)

Sur com.oroinc.text.regex.Perl5Matcher._match(Perl5Matcher.java) sur com.oroinc.text.regex.Perl5Matcher._match(Perl5Matcher.java) ) sur com.oroinc.text.regex.Perl5Matcher._match(Perl5Matcher. java) à com.oroinc.text.regex.Perl5Matcher._match(Perl5Matcher.java) à com.oroinc.text.regex.Perl5Matcher._match(Perl5Matcher. java) à com.oroinc.text.regex.Perl5Matcher._match(Perl5Matcher .Java)

alors c'est exactement la situation. Vérifiez si le code contient des séquences de caractères inhabituelles associées à des "guillemets doubles", des "guillemets simples", une barre oblique inverse \, des commentaires, etc. Par exemple, des guillemets manquants ou, par exemple, une telle séquence "\"" (au lieu de """) .

Sketch ne s'exécute pas lorsque la carte est alimentée par une source externe (modèles Arduino Diecimila ou antérieurs)

Étant donné que la broche RX est déconnectée, le chargeur de démarrage Arduino peut recevoir du bruit au lieu de données, ce qui signifie qu'il n'expirera jamais et, par conséquent, le programme ne démarrera pas. Pour résoudre ce problème, essayez de connecter la broche RX à la terre avec une résistance de 10 kΩ (ou de connecter les broches RX et TX).

L'environnement de développement Arduino (sous Windows) se fige lorsque vous essayez de flasher le programme

Ce problème peut survenir en raison d'un conflit entre l'Arduino et le processus Logitech "LVPrcSrv.exe". Ouvrez le Gestionnaire des tâches et recherchez-le dans la liste des processus. S'il est là, vous devez terminer le processus avant de flasher le programme.

Arduino ne s'allume pas (le voyant d'alimentation vert ne s'allume pas)

Si vous utilisez un Arduino Diecimila ou plus ancien avec USB (par exemple NG), assurez-vous que le cavalier sur la carte (la petite pièce en plastique près du connecteur USB) est correctement réglé. Si la carte est alimentée par une source d'alimentation externe (connectée au connecteur approprié), le cavalier doit fermer les deux broches les plus proches du connecteur d'alimentation. Si la carte est alimentée par USB, le cavalier doit fermer les deux broches les plus proches du connecteur USB. Cette image montre la position du cavalier lorsque la carte est alimentée par USB.

(merci à mrbbp pour le post et la photo)

Le démarrage du programme sur Arduino Diecimila prend trop de temps (6-8 secondes)

Sur certaines cartes Arduino Diecimila, le chargeur de démarrage Arduino NG a été accidentellement flashé. Cela fonctionne bien, seulement il a un délai d'attente plus long après la réinitialisation de la carte (car l'Arduino NG n'implémente pas la réinitialisation automatique, ce qui nécessite une synchronisation manuelle du processus du micrologiciel). Vous pouvez reconnaître le bootloader de NG par la LED connectée à la broche 13 : dans Arduino NG, après avoir réinitialisé la carte, elle clignote 3 fois, et dans Diecimila - 1 fois. Si votre Diecimila a un bootloader de NG installé, alors avant de flasher le sketch van, vous devez appuyer physiquement sur le bouton de réinitialisation situé sur la carte. Il est également possible de flasher le bon chargeur de démarrage Diecimila dans l'appareil, voir la page du chargeur de démarrage pour plus de détails.

Erreur lors du lancement de arduino.exe sous Windows

Si une erreur se produit lors de l'exécution de arduino.exe sous Windows, telle que celle-ci :

Arduino a rencontré un problème et doit fermer.

puis essayez de démarrer Arduino en utilisant le fichier run.bat. Veuillez être patient car Le démarrage de l'environnement Arduino prend un certain temps.

Pourquoi Arduino ne fonctionne-t-il pas sur les anciennes versions de Mac OS X ?

Si vous obtenez une erreur comme celle-ci :

Erreur de lien (dyld) : dyld : /Applications/arduino-0004/Arduino 04.app/Contents/MacOS/Arduino Symboles non définis : /Applications/arduino-0004/librxtxSerial.jnilib référence indéfinie à _printf$LDBL128 censé être défini dans / usr/lib/libSystem.B.dylib

alors vous devrez probablement mettre à jour votre système vers Mac OS X 10.3.9 ou une version ultérieure. Les bibliothèques système plus anciennes ne sont pas compatibles avec Arduino.

Merci à Gabe462 pour le message.

Lors du démarrage de l'environnement Arduino, une erreur UnsatisfiedLinkError se produit (avec un message sur la bibliothèque librxtxSerial.jnilib)

Si vous obtenez l'erreur suivante lors du démarrage d'Arduino :

Exception non détectée dans la méthode principale : java.lang.UnsatisfiedLinkError : Native Library /Users/anu/Desktop/arduino-0002/librxtxSerial.jnilib déjà chargé dans un autre chargeur de classe

alors vous avez probablement une ancienne version de la bibliothèque qui est responsable de la connexion. Recherchez les fichiers comm.jar ou jcl.jar dans le dossier /System/Library/Frameworks/JavaVM.framework/ ou dans les répertoires répertoriés dans les variables d'environnement CLASSPATH et PATH. (bug découvert par Anurag Sehgal)

Que signifie l'erreur "Impossible de trouver la classe principale" ?

Si l'erreur suivante se produit lors du démarrage de l'Arduino :

Lanceur de machine virtuelle Java : Impossible de trouver la classe principale. Le programme va quitter.

vérifiez si vous avez correctement décompressé le contenu de l'Arduino .zip - en particulier, assurez-vous que le dossier lib se trouve directement dans le répertoire Arduino et contient le fichier pde.jar.

Comment gérer les conflits cygwin sous Windows ?

Si cygwin est déjà installé sur votre machine, lorsque vous essayez de compiler le sketch dans l'environnement Arduino, l'erreur suivante peut se produire :

6 ? (3512) C:\Dev\arduino-0006\tools\avr\bin\avr-gcc.exe : *** erreur fatale - C:\Dev\arduino-0006\tools\avr\bin\avr-gcc.exe : *** discordance de version de la mémoire partagée du système détectée - 0x75BE0084/0x75BE009C.

Ce problème est probablement dû à l'utilisation de versions incompatibles de la DLL cygwin.

Dans la recherche Windows (Démarrer -> Rechercher), saisissez cygwin1.dll et supprimez tous les fichiers trouvés, à l'exception de la version la plus récente. La dernière version doit se trouver dans le dossier x:\cygwin\bin, où "x" est le lecteur sur lequel la distribution cygwin a été installée. Il est également recommandé de redémarrer votre ordinateur.

Assurez-vous également que cygwin n'est pas assis dans des processus lorsque l'environnement Arduino est en cours d'exécution. Vous pouvez également essayer de supprimer le fichier cygwin1.dll du dossier Arduino et le remplacer par le fichier cygwin1.dll de la distribution cygwin existante (qui se trouve très probablement dans le dossier c:\cygwin\bin).

L'environnement Arduino et le menu Outils s'ouvrent longtemps (sous Windows)

Si l'environnement Arduino démarre pendant très longtemps ou se fige lorsque vous essayez d'ouvrir le menu Outils, cela indique un conflit avec un autre périphérique du système. Au démarrage, ainsi qu'à l'ouverture du menu Outils, le logiciel Arduino tente d'obtenir une liste de tous les ports COM disponibles sur le système. Il est possible qu'un port COM spécifique créé par l'un des périphériques de l'ordinateur ralentisse ce processus. Vérifiez le Gestionnaire de périphériques. Essayez de désactiver tous les périphériques qui peuvent créer des ports COM dans le système (par exemple, les adaptateurs Bluetooth).

Le périphérique n'apparaît pas dans Outils | Port série

Si vous utilisez Arduino depuis USB, assurez-vous que les pilotes de la puce FTDI sont correctement installés (voir les instructions d'installation). Si vous utilisez un adaptateur USB-UART avec un Arduino standard (sans USB), vérifiez si les pilotes de cet adaptateur sont installés.

Après cela, assurez-vous que la carte est vraiment connectée : le menu avec la liste des ports est mis à jour à chaque fois que vous ouvrez le menu Outils, donc si vous venez de déconnecter la carte, elle ne sera pas dans cette liste.

Vérifiez si des programmes en cours d'exécution analysent tous les ports série, tels que les applications de synchronisation PDA, les pilotes Bluetooth-USB (tels que BlueSoleil), les démons virtuels, etc.

Sur les systèmes Windows, le numéro de port COM attribué par Arudino peut être trop grand. De l'utilisateur zeveland :

"Une petite note pour ceux qui ne peuvent pas flasher un programme Arduino avec un numéro de port COM élevé : essayez de diminuer le numéro de port associé à la puce FTDI."

"Mon système a un tas de ports COM virtuels d'un adaptateur Bluetooth, donc l'Arduino s'est vu attribuer COM17. L'IDE n'a pas pu trouver l'Arduino, j'ai donc supprimé les autres ports virtuels dans le Panneau de configuration (sous XP) et changé le port pour la puce FTDI sur COM2. Assurez-vous simplement que l'arduino utilise le port attribué et tout devrait bien se passer."

Si vous avez une ancienne version Pilotes FTDI sur un ordinateur Mac, vous devrez les supprimer et installer dernière version. Voir ce fil de discussion pour les instructions d'installation.

Est-ce que gnu.io.PortInUseException est lancé lors du clignotement du code ou dans "Serial Monitor" (sur les systèmes Mac) ?

Erreur dans Serial. () gnu.io.PortInUseException : Application inconnue sur gnu.io.CommPortIdentifier.open(CommPortIdentifier.java:354) sur processing.app.Serial. (Serial.java:127) sur processing.app.Serial. (Série.java:72)

Le plus souvent, cette erreur signifie que le port est occupé par une autre application. Par conséquent, vérifiez si des programmes fonctionnant avec des ports série ou USB sont en cours d'exécution, tels que des applications de synchronisation PDA, des gestionnaires de périphériques Bluetooth, certains pare-feu, etc. Sachez également que certains programmes (par exemple Max/MSP) laissent le port série ouvert, même lorsque vous ne l'utilisez pas - il est donc préférable de fermer tous les utilitaires qui utilisent le port série et de quitter complètement ces applications.

Si cette erreur se produit dans l'environnement de traitement ou sur Arduino version 0004 ou antérieure, vous devez exécuter le script macosx_setup.command et redémarrer l'ordinateur. Dans Arduino 0004, ce script a changé et tous les utilisateurs doivent l'exécuter (même ceux qui ont exécuté le même script fourni avec la version Arduino 0003). Vous devez également supprimer le contenu du dossier /var/spool/uucp.

Des problèmes surviennent avec les pilotes USB FTDI

L'esquisse ne démarre pas lors de la mise sous tension ou de la réinitialisation de l'Arduino

Cela est probablement dû au fait que vous envoyez des données de l'ordinateur à la carte immédiatement après sa mise sous tension. Les premières secondes après la réinitialisation, le chargeur de démarrage (un programme flashé dans le microcontrôleur de la carte) attend que l'ordinateur envoie une nouvelle esquisse à écrire dans la mémoire de la carte. Si pendant ces quelques secondes les données ne sont pas arrivées, le loader terminera son travail par timeout et lancera le programme précédemment chargé. Si vous envoyez des données en continu, le chargeur n'expirera pas et n'exécutera jamais l'esquisse téléchargée. Par conséquent, vous devez soit trouver un moyen de "maintenir" l'envoi de données pendant quelques secondes après la mise sous tension de l'appareil (par exemple, en programmant le contrôleur pour envoyer des données à l'ordinateur dans le bloc de configuration ()), soit flasher votre programmez dans le microcontrôleur au-dessus du chargeur de démarrage à l'aide d'un programmeur externe.

Le firmware semble réussir, mais rien ne fonctionne

Vous avez mal sélectionné un appareil dans le menu Outils > Microcontrôleur. Assurez-vous que le microcontrôleur que vous choisissez correspond à celui de votre carte (ATmega8 ou ATmega168) - le modèle de contrôleur est répertorié sur la plus grande puce.

Assurez-vous que l'alimentation électrique est stable. Des interférences ou des pannes de courant peuvent provoquer des erreurs de téléchargement de croquis.

Un autre raison possible- la taille du croquis est trop grande pour votre appareil. Lors du téléchargement d'un croquis, l'Arduino 0004 vérifie s'il y a suffisamment d'espace dans la mémoire de l'ATmega8 pour que le programme soit chargé. Dans le même temps, Arduino effectue ses calculs en se basant sur le fait que le chargeur dans la mémoire du contrôleur occupe 1 Ko. Peut-être que votre appareil a une ancienne version du chargeur de démarrage de 2 Ko flashé au lieu de 1 Ko, puis sur la mémoire flash de 8 Ko du microcontrôleur ATmega8, 2 Ko seront déjà occupés. En conséquence, dans ce cas, seule une partie de l'esquisse sera chargée dans le contrôleur, mais le programme ne le sait pas a priori, ce qui entraînera des réinitialisations constantes de l'appareil.

Si vous avez un programmeur (pour un port parallèle ou AVR-ISP), vous pouvez mettre à jour la version du chargeur de démarrage dans le microcontrôleur à l'aide de Outils | Graver le chargeur de démarrage. Sinon, vous pouvez simplement ajuster les paramètres de l'environnement Arduino en spécifiant la quantité de mémoire programme disponible dans la variable upload.maximum_size située dans le fichier de configuration (voir les instructions pour savoir où trouver ce fichier). Modifiez la valeur 7168 qui y est spécifiée en 6144, après quoi l'environnement de développement vous avertira correctement lorsque la taille d'esquisse autorisée est dépassée.

Comment puis-je réduire la taille du firmware ?

Le microcontrôleur ATmega168 de l'Arduino est un modèle assez peu coûteux qui ne dispose que de 16 Ko de mémoire programme, ce qui n'est en fait pas beaucoup (dont 2 Ko sont déjà pris par le bootloader).

Si vous utilisez des calculs en virgule flottante dans votre programme, essayez de réécrire le code pour utiliser des calculs entiers - cela économisera environ 2 Ko de mémoire. Au début du programme, supprimez les directives #include de toutes les bibliothèques inutilisées.

Vérifiez également si le code du programme peut être optimisé pour le raccourcir.

Nous travaillons constamment à l'optimisation du noyau Arduino afin de réduire l'espace occupé par ses fonctions dans le volume total de l'esquisse compilée, et laisser le plus d'espace possible pour l'écriture de programmes.

Aucun signal PWM (sortie analogique) n'est généré lors de l'appel de la fonction analogWrite() sur des broches autres que 3, 5, 6, 9, 10 et 11

Dans le microcontrôleur Arduino (ATmega168), la prise en charge matérielle de PWM / analogWrite () n'est implémentée que sur certaines broches. Par conséquent, l'appel de la fonction analogWrite() sur n'importe quelle autre broche du contrôleur entraînera soit haut niveau signal (5 V - pour les valeurs supérieures à 128), ou niveau faible(0 V - pour les valeurs inférieures à 128). Dans les anciennes versions de l'Arduino avec le microcontrôleur ATmega8, le support PWM n'est implémenté que sur les broches 9, 10 et 11.

Pourquoi des erreurs se produisent-elles à propos de fonctions ou de types non déclarés ?

L'environnement de développement Arduino essaie de générer automatiquement des prototypes de fonctions définies par l'utilisateur, afin qu'elles puissent être placées dans n'importe quel ordre dans votre programme. Cependant, le processus de prototypage n'est pas parfait et conduit parfois à des bugs déroutants.

Par exemple, si vous déclarez votre type de données dans un programme, puis créez une fonction qui utilise ce type, une erreur se produira lorsque vous essayez de compiler l'esquisse. Dans ce cas, l'erreur se produit car le prototype généré automatiquement pour cette fonction sera situé AVANT la déclaration de type.

Si vous déclarez une fonction qui renvoie un résultat 16 bits (par exemple, de type "unsigned int"), l'environnement ne comprendra pas qu'il s'agit d'une fonction et, par conséquent, ne créera pas son prototype. Dans ce cas, vous devrez l'écrire manuellement, ou placer la déclaration de cette fonction dans le code du programme ci-dessus - avant qu'elle ne soit appelée pour la première fois dans le programme.

Lorsque vous essayez de flasher le programme, une erreur se produit "signature de périphérique invalide"

Erreur suivante :

Avrdude : Ouais ! Signature d'appareil non valide. Vérifiez les connexions et réessayez, ou utilisez -F pour annuler cette vérification.

peut signifier l'une des deux choses suivantes : soit vous avez sélectionné le mauvais tableau dans le menu Outils > Tableau, soit vous utilisez la mauvaise version d'avrdude. Pour télécharger des croquis sur Arduino, une version légèrement modifiée d'avrdude est utilisée. La version standard envoie des requêtes identifiant l'appareil dans un format que le chargeur de démarrage Arduino ne comprend pas, ce qui entraîne une erreur. Assurez-vous donc que vous utilisez la version exacte d'avrdude fournie avec l'Arduino (

Le cœur de la plate-forme Arduino est une puce de microcontrôleur connue sous le nom d'ATmega328.

L'ATmega328 est en fait un ordinateur 8 bits à tous égards : après avoir été allumé, son processeur charge un octet à partir d'un emplacement mémoire donné et l'interprète comme une commande. Ce qui se passe ensuite dépend de la valeur de cet octet. Contrairement aux ordinateurs que nous connaissons, ATmega328 n'exécute aucun système opérateur: L'utilisation des ressources est sous le contrôle total du programmeur. Nous ne pouvons pas compter sur un système d'exploitation qui peut mal allouer de la mémoire, la déborder ou entraîner d'autres conséquences indésirables pour un système automatique précis. De plus, le processeur ne peut travailler que sur une tâche à la fois (vous savez probablement que tous les processeurs fonctionnent de cette manière, mais le système d'exploitation répartit le temps de travail des différentes tâches de telle sorte qu'il semble que plusieurs programmes de votre ordinateur soient travaillant en même temps).

Le nouvel Arduino a une mémoire complètement vide, donc le premier octet traité par le processeur a une valeur de zéro : "No operation". Avant de en utilisant Arduino vous devez charger un programme exécutable dans sa mémoire, c'est-à-dire une séquence de bits dont le premier est interprété comme une commande et exécuté. Si la commande a besoin de paramètres pour s'exécuter, ils sont extraits des prochains octets de mémoire. Après avoir exécuté la commande, le processeur charge l'octet reçu en mémoire et l'interprète comme une commande. Si vous éteignez l'Arduino, la mémoire n'est pas effacée. La séquence d'octets qui y est chargée est stockée dans une mémoire non volatile, de sorte que lorsque vous le rallumez, le programme recommence depuis le début.

La fréquence des opérations du processeur est réglée par un générateur d'horloge de 16 MHz. L'alimentation peut être fournie via le connecteur USB. Travailler sans Alimentation USB Arduino une alimentation séparée de 7 à 12 V est nécessaire (cette tension est normalisée aux niveaux requis par un régulateur embarqué, vous avez donc juste besoin d'une alimentation peu coûteuse pour cela). À bord, les deux niveaux de tension de 5V et 3,3V sont disponibles pour l'utilisateur, à partir desquels un maximum de 50mA de courant peut être tiré.

La mémoire Arduino se compose de trois types : mémoire flash, où le programme est stocké 32 Ko ; RAM(SRAM) 2 Ko, où le processeur stocke et écrase les variables utilisées dans le programme ; et mémoire morte (EEP-ROM) de 1 Ko, où le programmeur peut stocker les données qui doivent rester lorsque le contrôleur est redémarré (comme la mémoire flash, où le programme est stocké). Comparé aux ordinateurs d'aujourd'hui, qui gèrent au moins quelques gigaoctets, 35 Ko semble ridicule, mais c'est en fait suffisant pour la plupart des usages. En l'absence d'un système d'exploitation, l'utilisation de la mémoire est entièrement sous votre responsabilité : si un débordement de mémoire se produit ou si vous accédez à un emplacement mémoire inexistant, votre programme peut se comporter de manière imprévisible, ce qui est assez difficile à suivre lors du débogage. Vous devez toujours garder le nombre de variables sous contrôle dans votre programme.

Le processeur ATmega328 est connecté à 14 ports d'E/S discrets (numérotés de 0 à 13), 6 entrées analogiques et un port USB. Les E/S discrètes sont connexion électrique, qui peut avoir deux états booléens : 1 et 0, ou TRUE et FALSE, ou, comme dans Syntaxe Arduino, BAS et HAUT. Si le signal est dans la valeur LOW, la broche correspondante a un potentiel zéro de 0 V - c'est-à-dire connectée à fil commun. Si le signal est ÉLEVÉ, le niveau de tension entre cette broche et la masse est de 5 V.

Les broches 0 et 1 sont utilisées pour la réception et la transmission en série des données : à travers elles carte arduino peut communiquer avec les modules connectés (shields) en utilisant le protocole série. Les protocoles série sont des protocoles de communication dans lesquels chaque bit est transmis/reçu à tour de rôle l'un après l'autre. Les broches 2 et 3 peuvent également être utilisées comme interruptions. Une interruption est un signal électrique sur une entrée numérique qui interrompt le programme du processeur en cours lorsqu'un état logique donné se produit. Des interruptions existent également dans les processeurs des ordinateurs conventionnels. Après qu'une interruption se soit produite, le processeur stocke son état en mémoire et retarde l'exécution du programme, passant à l'exécution d'un gestionnaire d'interruption : un court morceau de code de programme nécessaire pour traiter l'interruption. À la fin, le processeur reprend l'état qu'il avait avant l'arrivée de l'interruption et reprend l'exécution du programme.

Les broches 3, 5, 6, 9, 10 et 11 peuvent être utilisées comme sorties PWM et ont des paramètres analogiques. En conséquence, leurs cellules mémoire contiennent des valeurs comprises entre 0 et 255.

Fig. 1 Arduino UNO, vu d'en haut et d'en bas. Notez la carte de l'Italie au verso.

La broche 13 est également connectée à la LED à bord. Lorsque le signal est BAS, la LED est éteinte, et si le signal est HAUT, la LED est allumée.

Outre l'utilisation standard en tant qu'E/S numériques, les broches 10, 11, 12 et 13 permettent de communiquer avec des périphériques externes.

Les entrées analogiques sont repérées A0 ... A5 : elles ont chacune une résolution numérique de 10 bits,

c'est-à-dire qu'ils convertissent toute tension entre 0 et 5V en un nombre entre 0 et 1023 accessible en mémoire.

Toutes les plates-formes sont montées sur une planche mesurant 60,6 mm × 53,4 mm et ne pesant pas plus de 25 g (Fig. 1).

Les cartes ont également des connecteurs USB A/B avec lesquels vous pouvez les connecter à un ordinateur pour la communication. La connexion USB alimente également l'Arduino lorsqu'il est connecté à un ordinateur, vous n'avez donc pas besoin d'une source d'alimentation externe pour démarrer.

Programme

Un programme Arduino, comme tout autre programme pour le processeur, est une séquence de bits en langage machine. Afin de faciliter la vie des programmeurs, l'équipe Arduino a développé un langage de programmation de haut niveau, un compilateur et un outil de micrologiciel pour télécharger le code machine dans la mémoire Arduino.

Tous ces outils sont inclus dans un programme IDE (Integrated Development Environment), gratuit

à télécharger depuis le site Arduino : choisissez le système d'exploitation de votre ordinateur et téléchargez le programme. Il ressemble à la plupart des programmes informatiques classiques. Il a plusieurs onglets sur différentes fenêtres. L'une de ces fenêtres sert à éditer le programme. Cela s'appelle sketch dans le jargon Arduino. Les croquis sont écrits en C++ simplifié.


Fig. 2 Le programme Arduino apparaît sous la forme d'une fenêtre dans laquelle vous pouvez saisir le texte du programme, qui s'appelle simplement une esquisse.

Vous pouvez compiler votre croquis pour Programme Arduino(Fig. 2) en cliquant sur le bouton Vérifier dans le coin supérieur gauche de la fenêtre : le processus de compilation traduit le programme C++ dans les codes machine correspondants du processeur ATmega328. Une fois compilé, l'esquisse exécutable peut être téléchargée dans la mémoire Arduino via le câble USB en appuyant sur le bouton Télécharger. Vous devrez peut-être sélectionner le port COM approprié dans le menu s'il y en a plusieurs disponibles. Le chargement d'un sketch entraîne toujours l'exécution du compilateur en premier. L'esquisse démarre immédiatement après la fin du téléchargement.

Des fonctionnalités supplémentaires sont ajoutées au langage de base à l'aide de bibliothèques externes développées par l'équipe Arduino ou des tiers. Les bibliothèques peuvent être incluses dans le code exécutable en sélectionnant l'élément de menu approprié. Si nécessaire, l'ajout d'une bibliothèque ajoutera automatiquement des lignes à l'esquisse informant le compilateur de la nouvelle syntaxe.