Outils pour utilisateurs

Outils du site


cppu_initiation

Initiation à Arduino pour la robotique

Bases d'algorithmie

Le programme est une recette!

Démonstration avec la résolution d'un Rubik's Cube

la machine effectue des actions en fonction des entrées (conditions, cas multiple, boucles, séquences de mouvements=fonctions)

Le programme est la suite d'opérations, un compteur indique où en est l'exécution du programme

Les variables permettent de stocker des informations sur l'état de la résolution du problème

Le programme permet de résoudre des problèmes complexes en procédant à une décomposition en succession de tâches simples

Le compilateur traduit le programme en une succession d'opérations élémentaires exécutées par le processeur

Le programme utilise:

  1. des structures de contrôle (boucles, conditions, fonctions avec paramètres et valeur de retour, fonctions imbriquées, librairies )
  2. des structures de données

Bases de numération

Les bases binaires et hexadécimales → (partir d'exemples simples et généraliser) → expliquer les opérations de calculs additions et multiplication en binaire pour montrer que c'est plus simple.

Structures de données élémentaires (types, variables, constantes):

  1. expliquer les types entiers 8,16,32,64 bits int8_t etc (non)signés, caractères ascii (interprétation en tant que valeur numérique ou caractère)
  2. évoquer les flottants

Structures de données composites (tableaux, structures, classes,…)

Opérations de calculs (arithmétiques, booléens, logiques)

Priorité des opérateurs et parenthèses: exemple du 3*4+2

Exercices:

  1. tester si le chiffre des centaines d'un nombre est égal à 4 (en base 10)
  2. tester si le chiffre des quatraines d'un nombre est égal à 1 (en base 2) → d'abord avec des opérateurs arithmétiques puis logiques

division et multiplication par puissance de la base ⇔ décalages

Application au Langage C/C++

Variable

Une variable est une entité permettant de stocker une information susceptible de changer au cours de l'exécution du programme.

Déclaration de variable: donner un nom, un type et une valeur initiale/par défaut

Types: permet d'indiquer ce qu'une variable, une constante ou un paramètre contient.

Fonction

Une fonction est une séquence d'instructions regroupées, pouvant être appelée depuis plusieurs endroit du programme, pouvant être paramétrée et éventuellement retournant une fonction.

Déclaration de fonction, paramètres E/S et type de retour

Implémentation de fonction: Instructions à l'intérieur des fonctions/méthodes entre { et }

Appel de fonction: donner des valeurs effectives aux paramètres et éventuellement utiliser la valeur de retour.

En C/C++, une fonction principale: main()

Les classes et objets

Arduino

Description de l'écosystème Arduino:

  • cartes mères
  • cartes d'extensions (shield)
  • logiciels (IDE, compilateur, console et téléchargement)
  • librairies (intégrées ou tierces) permettant d'abstraire la complexité du matériel

Un site de référence: https://www.arduino.cc/reference/fr/

Explication de la structure du programme arduino (fonctions loop(), setup(). main() est cachée)

Présentation d'un microcontroleur: Analogie avec ordinateur

Intégration dans une puces des différents composants (processeur/RAM/ROM/périphériques…)

Pas de système d'exploitation, faible latence et haute cadence (tâches bas niveau) /complémentaire avec carte type raspberry pi (PC sur carte SBC) pour la partie haut niveau

Exemples de périphériques intégrés:

  • interfaces de communication (bus): illuster avec port Série émulé en USB
  • e/s TOR
  • e/s analogiques et convertisseurs
  • e/s PWM
  • Timers

Notions d'actionneurs/capteurs (sera détaillé par Thomas/Luiz)

échelle de temps (16Mips)

Exercices

E/S série

E/S TOR lire port d'entrée 8574 et isoler certains bits en faire une fonction bool lireBitEntree(unsigned char numerobit)

ADC⇒ lecture vitesse ou position angulaire sur potar, division et commande moteur présentation potentiomètre rotatif ou linéaire monté en pont diviseur de tension dynamique du convertisseur: plage de tension admissible en entrée et plage de valeurs possible en sortie, notion de résolution

chronogramme signal PWM et génération par logiciel avec digitalWrite et delayMicroseconds

alimentation pour la logique et pour la puissance, dimensionnement et discussion tension/courant

Appareils de mesures

Multimètre (fonctions voltmètre,Ohmmètre et ampèremètre):

  • Montages
  • Calibre
  • Fusible

Oscilloscope (illustrer avec GPIO qui commute, PWM, puis Serial)

Wattmètre USB

Analyse d'un schéma électronique

Utilisation de l'arduino en bridge USB⇔servos: http://inmoov.fr/how-to-start-myrobotlab/

Discussion sur les entrées/sorties

Mise en oeuvre

cppu_initiation.txt · Dernière modification: 2020/10/19 21:42 de bvandepo