TP0
I. Introduction
Objectif
L’objectif est de prendre en main la carte Qorvo DWM3001 et le logiciel de programmation et de communication avec la carte IDE Arduino.
Matériel nécessaire
- Un ordinateur
- Une carte Qorvo DW3001
- Un câble micro USB B vers USB A.
- Un accès internet
II. Téléchargement et première connexion
Téléchargement et installation du logiciel Arduino IDE
Pour commencer, nous devons configurer l’environnement de dĂ©veloppement Arduino IDE pour travailler avec les nĹ“uds DW1001. Suivez ces Ă©tapes :
- TĂ©lĂ©charger et installer l’IDE Arduino sur votre ordinateur, si ce n’est pas dĂ©jĂ fait. L’IDE Arduino est disponible gratuitement sur le site officiel d’Arduino.
Installez la chaîne de compilation en suivant les instructions sur cette page.
Ajout de la carte DWM3001
- Ouvrez le gestionnaire de cartes Ă partir du menu Outils > Type de Carte > Gestionnaire des cartes et installez " Nordic Semiconductor nRF5 Boards"
- SĂ©lectionnez votre carte nRF5 dans le menu Outils > Type de Carte > Nordic Semiconductor nRF5 Boards > QorvoDWM3001 CDK
REMARQUE 1 : Lors de l’installation, il faut quelques minutes Ă l’IDE Arduino pour extraire les outils après leur tĂ©lĂ©chargement, veuillez patienter.
REMARQUE 2 : La carte QorvoDWM3001 CDK n’existe pas parmi les cartes, veuillez la configurer d’abord en ajoutant des pilotes supplémentaires.
Configuration spĂ©cifique au système d’exploitation
–> OS X
Aucune configuration supplémentaire requise.
–> Linux
Pour les utilisateurs Linux 64 bits, « libc6:i386 », « libstdc++6:i386 », « libncurses5: i386 » et « libudev1:i386 » doivent être installés :
|
|
|
|
|
|
–> Windows pour Segger J-Link
- Télécharger Zadig
- Brancher la carte comme montre l’image suivante.
Attention ! : Il faut bien la brancher sur le port 1 et non pas 2, si vous utilisez le port 2 la led rouge clignote.
- DĂ©marrer Zadig https://zadig.akeo.ie
- SĂ©lectionner Options -> List All Devices
- Branchez et débranchez votre appareil pour trouver ce qui change, et sélectionnez l’Interface 2 dans la liste déroulante des appareils
- Cliquez sur Replace Driver
REMARQUE : Pour revenir au pilote d’origine, accĂ©dez Ă : Gestionnaire de pĂ©riphĂ©riques -> Cliquez avec le bouton droit sur le pĂ©riphĂ©rique -> Cochez la case “Supprimer le logiciel du pilote pour ce pĂ©riphĂ©rique” et cliquez sur DĂ©sinstaller
Ajout des paquets manquants
- Depuis https://gitlab.irit.fr/rmess/wino/software/arduino-nrf5 , téléchargez la toolchain en zip en cliquant sur le bouton
- Accédez aux fichiers cachés en tapant « Windows + R » pour windows
- Positionnez-vous dans le dossier 0.7.0 avec le chemin suivant :
–> Windows : C:\Users\Username\AppData\Local\Arduino15\packages\sandeepmistry\hardware\nRF5\0.7.0
–> Linux : ~/.arduino15/packages/sandeepmistry/hardware/nRF5/0.7.0
4. Dézippez le dossier arduino-nrf5-master et faites un copier/coller de son contenu dans le dossier caché 0.7.0 (cliquer sur remplacer les fichiers qui existent déjà ).
- Redémarrez l’IDE Arduino et vérifier que Qorvo DWM3001 CDK apparaît dans la liste des types de carte. Sélectionnez-le.
Choix du Port
Sélectionnez ensuite le port sur lequel vous allez brancher votre câble USB. Pour ce faire, avant de brancher ce câble, repérez les ports présents dans Outils > Port. Branchez ensuite la câble sur la carte DW3001, puis le câble sur un des ports USB de votre ordinateur. Un nouveau port doit apparaître.
III. Premier Programme
Ce premier programme a pour but de vérifier le bon fonctionnement de l’ensemble, notamment la communication entre la carte et l’IDE (Integrated Development Environment, ou environnement de développement). Pour l’instant, c’est le câble USB qui alimente la carte. Le voyant rouge ON (carte sous tension). Le programme est écrit dans l’IDE, puis téléversé dans la carte Arduino. Le résultat sera de faire clignoter la LED verte intégrée à la carte.
Programmer une carte se fait en plusieurs Ă©tapes : d’abord Ă©crire le code, puis le compiler, c’est Ă dire le transformer en commandes adaptĂ©es au circuit, enfin le tĂ©lĂ©verser dans le microcontrĂ´leur.
Le fichier compilĂ© est du “code machine” au format hexadĂ©cimal (.hex), il n’est plus lisible pour nous autres mammifères, mais parfaitement adaptĂ© pour un circuit Ă©lectronique. On ne peut pas retrouver le code d’origine depuis le fichier.hex (dans le meilleur des cas on peut le dĂ©compiler pour rĂ©cupĂ©rer un programme en assembleur)
- Téléchargez le programme (appelé aussi « croquis » ou « sketch » en langage Arduino) de clignotement : Menu Fichier > Exemples > 01. Basics > Blink. Le programme, écrit en langage C++ apparaît dans l’IDE.
- Sans le modifier, vérifiez le programme
- Compilez le code tout en cliquant sur Croquis > Exporter les binaires compilées, après la compilation un fichier .hex sera créer au même emplacement que fichier .ino, pour vérifier qu’il s’est bien ajouter, il suffit d’aller à croquis > afficher le dossier des croquis
- Téléversez le code.
- Résultat : la LED intégrée doit clignoter à la fréquence d’un cycle allumage/extinction chaque second.
Il est intéressant de se pencher maintenant sur la constitution de ce programme. Ce ne sera pas le langage utilisé avec les élèves de collège, mais tous les langages utilisés par la suite seront « traduits » avant d’être compilés vers la carte.
|
|
(1) : Toute la partie entre /* et */ est du commentaire. Ces commentaires n’interviennent pas dans le fonctionnement du programme, mais sont nécessaires à sa compréhension.
(2) et (3) : Tous les programmes sont composés au minimum de deux fonctions :
void setup () (2) et void loop() (3). La première exécute une seule fois les instructions situées entre les accolades. Elle sert le plus souvent pour initialiser des variables. La deuxième répète indéfiniment (loop = boucle) les instructions situées entre les accolades.
(4) : Dans ce programme, l’instruction située dans le setup : pinMode(LED_BUILTIN, OUTPUT); indique que la broche repérée LED_BUILTIN est considérée comme une sortie.
(5) : Le programme en lui-même est situé dans la fonction « loop » : il consiste à mettre une tension haute sur la broche LED_BUILTIN pendant un délai de 1000 millisecondes, puis une tension basse (égale à zéro) pendant un délai de 1000 millisecondes : digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(1000); On peut, par exemple, faire clignoter la DEL deux fois plus vite en modifiant les deux valeurs delay, pour prendre la valeur 500 au lieu de 1000.