Brancher un nouveau composant à son esieabot

Si vous souhaitez brancher un nouveau composant à votre esieabot mais qu’il n’est pas listé en exemple dans la documentation Programmer sur l’esieabot, pas de panique ! Vous pouvez très probablement le faire fonctionner avec votre esieabot. Vous trouverez dans cette documentation les réflexions à avoir et les étapes à suivre pour brancher un nouveau composant à votre esieabot.

Comment s’alimente mon composant ?

La première question que vous devez vous poser est : « Comment mon composant est alimenté ? ». C’est une question essentielle, car une mauvaise alimentation pourrait détruire votre composant ou votre esieabot. Plusieurs cas sont possibles :

../_images/add-on-board-top.png
  • Votre composant est alimenté en 3.3V : dans ce cas, vous pouvez le brancher directement à votre esieabot (voir-ci-dessous)

  • Votre composant est alimenté en 5V : dans ce cas, vous pouvez l’alimenter à partir de votre esieabot mais s’il envoie des signaux en 5V en retour, il faut impérativement utiliser un convertisseur de niveau logique pour éviter d’endommager votre esieabot (voir ci-dessous)

  • Votre composant est alimenté par une autre tension : dans ce cas, vous devez l’alimenter séparément. S’il envoie des signaux d’une tension différente de 3.3V en retour, il faut impérativement utiliser un convertisseur de niveau logique pour éviter d’endommager votre esieabot (voir ci-dessous)

Note

Les informations ci-dessous concernent des composants « nus ». Si vous souhaitez connecter un périphérique USB ou Bluetooth, vous pouvez vous référer à la section use/common/common pour savoir comment faire.

Quoi qu’il en soit, la masse de votre composant doit être reliée à la masse de votre esieabot. La masse de votre composant est souvent symbolisée par « GND », « - » ou plus rarement « VSS ». Sur votre esieabot, la masse est symbolisée par « GND » ou « - ». Plusieurs points de masse sont disponibles sur votre esieabot, vous pouvez les utiliser indifféremment, ils sont tous connectés ensemble.

Pour l’alimentation, la broche de votre composant devrait être symbolisée par « VCC », « VDD » ou « + ». Vous devez la connecter à une source d’alimentation compatible qui dépend de sa tension (voir ci-dessus). Sur votre esieabot, vous avez des broches d’alimentation en 3.3V (numéro 7 sur l’image) et en 5V (numéro 8 sur l’image). Attention à ne pas mélanger les différentes tensions, cela pourrait endommager votre esieabot ou votre composant.

Enfin, votre esieabot ne peut pas fournir une quantité infinie de courant. Si votre composant consomme beaucoup de courant, il est possible que votre esieabot se mette en sécurité et redémarre. A titre indicatif, si votre composant est alimenté en 3.3V il ne doit pas consommer plus de 500mA. Si votre composant est alimenté en 5V, il ne doit pas consommer plus de 1A. Si votre composant consomme plus que cela, vous devez l’alimenter séparément.

Comment communique mon composant avec mon esieabot ?

Cas 1 : votre composant communique via un bus

Certains composants communiquent via un bus de communication, comme par exemple I2C ou SPI. Référez vous à sa documentation si besoin. Si vous n’êtes pas certains, vous pouvez identifier certains bus assez facilement :

  • Si votre composant possède une broche « SDA » et une broche « SCL » (ou « SCK »), il communique probablement en I2C. Dans ce cas, vous devez brancher les broches « SDA » et « SCL » de votre composant respectivement aux broches « SDA » et « SCL » de votre esieabot

  • Si votre composant possède une broche « MOSI », une broche « MISO » et une broche « SCK », il communique probablement en SPI. Dans ce cas, vous devez brancher les broches « MOSI », « MISO » et « SCK » de votre composant respectivement aux broches 10, 9 et 11 de votre esieabot.

L’intérêt d’un bus de communication est que vous pouvez brancher plusieurs composants sur les mêmes broches de votre esieabot. Par exemple, vous pouvez brancher plusieurs composants I2C en parallèle sur les broches « SDA » et « SCL » de votre esieabot. Chaque composant doit cependant avoir une adresse différente pour que votre esieabot puisse les différencier.

Note

Plusieurs composants sont déjà branchés sur le bus I2C de votre esieabot, comme par exemple l’écran OLED, le gyroscope ou même la power board !

En I2C, vous devez déterminer l’adresse de votre composant pour pouvoir communiquer avec lui. Si vous ne trouvez pas l’adresse du composant dans sa documentation, vous pouvez la déterminer en effectuant un scan I2C. Pour cela, vous pouvez utiliser le programme « i2cdetect » qui est préinstallé sur votre esieabot. Exécutez la commande suivante : i2cdetect -y 1 directement dans le terminal de votre robot. Vous verrez alors une grille avec des adresses. Si une adresse est occupée par un composant, vous verrez son adresse écrite dans la grille. Si une adresse n’est pas occupée, vous verrez « – » à la place.

Note

Essayez de brancher et débrancher le composant en effectuant différents scans pour vous assurer de l’adresse de votre composant. Si vous avez plusieurs composants sur le même bus, essayez de les brancher un par un pour différencier leurs adresses.

Cas 2 : votre composant communique via des broches d’entrée/sortie classiques

Si votre composant communique via des broches d’entrée/sortie classiques, vous devez le brancher à une broche GPIO disponible de votre esieabot. Ces composants (par exemple un bouton, une LED, etc.) sont plus simples à brancher. Ils ne font qu’envoyer ou recevoir des signaux électriques à travers une ou plusieurs broches. Vous devez simplement brancher les broches de votre composant à des broches GPIO disponibles de votre esieabot (numéro 2 sur l’image précédente).

Les broches GPIO qui sont disponibles par défaut sont les suivantes :
  • GPIO 4

  • GPIO 5

  • GPIO 7

  • GPIO 8

  • GPIO 9

  • GPIO 10

  • GPIO 11

  • GPIO 12

  • GPIO 14

  • GPIO 15

  • GPIO 19

  • GPIO 20

  • GPIO 21

Avertissement

Dans tous les cas, ces broches ne peuvent pas recevoir une tension supérieure à 3.3V. Si votre composant envoie des signaux d’une tension supérieure à 3.3V, vous devez impérativement utiliser un convertisseur de niveau logique pour éviter d’endommager votre esieabot.

Note

les GPIOs de votre esieabot ne peuvent qu’envoyer ou recevoir des valeurs 0 ou 1. Si votre composant envoie des valeurs analogiques, vous devez vous référer au cas 3.

Cas 3 : votre composant communique via des broches analogiques

Si votre composant communique via des broches analogiques (par exemple une photoresistance), vous devez brancher sa ou ses broches de sortie sur les entrées analogiques de votre esieabot (numéro 6 sur l’image ci-dessus). Votre esieabot possède 4 entrées analogiques, numérotées de 0 à 3. Vous pouvez brancher votre composant sur n’importe quelle entrée analogique disponible. Vous devez ensuite utiliser dans votre programme une bibliothèque permettant de lire les valeurs du convertisseur analogique TLA2024 de votre esieabot, par exemple : https://github.com/adafruit/Adafruit_CircuitPython_TLA202x

Avertissement

Le convertisseur analogique intégré à votre esieabot (le TLA2024) ne peut pas lire des tensions supérieures à 3.3V. Si votre composant envoie des signaux d’une tension supérieure à 3.3V, vous devez impérativement utiliser un convertisseur de niveau logique pour éviter d’endommager votre esieabot.

Note

Les valeurs analogiques lues sont encodées sur 12 bits, c’est à dire qu’elles sont comprises entre 0 et 4095. Si votre composant envoie une tension de 0V, vous devriez lire une valeur proche de 0. Si votre composant envoie une tension de 3.3V, vous devriez lire une valeur proche de 4095.