Cette page présente les différentes composantes physiques qui se retrouve sur une carte électronique CrcDuino. C’est une lecture assez chargée, mais elle en vaut la peine!
Toutes les valeurs de voltage indiquées sont par rapport à la broche GND
. Celles-ci sont toutes connectées entre elles, alors elles peuvent toutes être utilisées à votre guise.
Table des matières de la page
Agencement des éléments
I/O
Les I/O (entrées/sorties) sont la manière qu’a votre CRCduino pour interagir avec le monde extérieur. Elles sont toutes disponibles par des broches mâles de .100”. Ces dernières sont très typiques dans le monde de l'électronique amateure, et il sera donc facile de trouver des capteurs et actuateurs compatibles.
Pour utiliser les I/Os dans votre code, référez-vous à:
Pour éviter d’endommager le micro-contrôleur, le courant soutiré à chacune des broches SIG
, MISO
, MOSI
, SCK
ou SS
ne devrait jamais dépasser 20mA et ne peut en aucun cas dépasser 40mA. Le courant total tiré de l’ensembles des broches SIG
, MISO
, MOSI
, SCK
et SS
ne doit quant à lui jamais dépasser 200mA.
Entrées analogues
Les entrées analogues sont utilisées pour mesurer un voltage provenant du monde extérieur et transformer cette mesure en valeur numérique utilisable par le micro-contrôleur.
Ne confondez pas les entrées analogues avec les « channels » analogues de votre télécommande. Plusieurs capteurs (tels que les capteurs de distance par ultra son et les capteurs d’infrarouge) produisent un signal où le voltage est proportionnel à la valeur mesurée (vous pouvez vous référez à cet excellente page (en anglais) pour en apprendre plus).
Le CRCduino possède 4 groupes de ports analogues. Chaque groupe possède 3 broches:
SIG
: La broche où appliquer le signal duquel mesurer le voltage.5V
: Sortie 5V continue. Plusieurs capteurs s’alimentent à partir d’un 5V continu, disponible ici à prix réduit. Si la DEL marquée “5V“ au dessus de la banque “DIG” n’est pas allumée, la sortie 5V sera désactivée.GND
: Broche « Ground ».
Le CRCduino traduira le voltage appliqué entre SIG
et GND
en une valeur numérique de 10-bits grâce à son ADC intégré. Les broches analogues peuvent lire un voltage entre 0V et 7.5V, converti proportionnellement en une valeur entre 0 et 1023, à l’aide de CrcLib::GetAnalogInput()
.
Pour en apprendre plus sur les circuits de conversion analogue-digital (ADC) et sur comment interpréter les valeurs retournées par CrcLib::GetAnalogInput()
, référez-vous à ce site et à la page GetAnalogInput().
Entrées/sorties (I/O) digitales
Les entrées/sorties digitales sont utilisées pour lire ou écrire des signaux digitaux. Un signal digital est un signal qui ne peut prendre que les valeurs vrai ou faux.
Vrai est souvent représenté par le nombre 1, ou la valeur
HIGH
dans le monde Arduino. L'état est manifesté par la présence d’un voltage sur une broche.Faux est typiquement représenté par le nombre 0, ou la valeur
LOW
dans le monde Arduino. L'état est manifesté par l’absence d’un voltage sur une broche (mise à la terre, ou GND).
Le CRCduino comporte 12 groupes de broches DIG, appelés ports. Chaque port est composé de 3 broches:
SIG
: La broche « signal », celle qui lit ou émet le signal.5V
: Alimentation continue 5V. La plupart des capteurs ont besoin de cette alimentation pour fonctionner. Si la DEL 5V directement au-dessus de la marque « DIG » est éteinte, l’alimentation ne sera pas disponible (il n’y a pas de batterie connectée pour fournir la puissance requise).GND
: Mise à la terre.
Entrée digitale
Utilisez CrcLib::SetDigitalPinMode()
pour configurer un port I/O comme entrée. Une fois configuré, vous pouvez utiliser CrcLib::GetDigitalInput()
pour lire si un voltage est appliqué à la broche SIG
correspondante.
Le seuil de déclenchement pour la transition
HIGH
→LOW
est d’environ 2.1V.Le seuil de déclenchement pour la transition
LOW
→HIGH
est d’environ 2.6V.
Sortie digitale
UtilisezCrcLib::SetDigitalPinMode()
pour configurer un port I/O comme sortie. Une fois configuré, vous pouvez utiliser CrcLib::SetDigitalOutput()
pour appliquer ou non un voltage à la broche SIG
correspondante.
Pour plus d’information sur comment utiliser les I/O digitales, référez-vous aux pages SetDigitalPinMode() {FR} GetDigitalInput() {FR} SetDigitalOutput() {FR} .
Veuillez noter qu’une résistance « pull-up » de 10kΩ est connecté à toutes les broches digitales du CRCduino. Google est un excellent endroit pour en apprendre plus sur les « pull-up » (et leurs cousines, les « pull-down »), mais cette page est une bonne introduction (en anglais).
Sorties PWM
12 groupes des broches PWM, appelés ports, sont disponible sur le CRCduino. Chaque port comporte 3 broches:
SIG
: La broche signal, qui émettra le signal.5V
: Alimentation continue 5V. La plupart des petits servos de hobby ont besoin de cette alimentation.Ports PWM #1 à #4: Aucune alimentation 5V. Ces ports devraient donc n’être utilisés que pour des applications qui n’ont pas besoin d’une alimentation. La plupart des servos standards et continus ne fonctionneront donc pas. Les contrôleurs de vitesse (ESCs, comme les Victor SPx) fonctionneront quant à eux, puisqu’ils tirent leur alimentation du 12V de la batterie plutôt que du 5V du connecteur 3-câbles.
Ports PWM #5 à #8: Ces 4 ports sont alimentés par la même source de puissance. Un maximum de 1A peut être tiré de cette source. Si la DEL marquée « A » au-dessus de l’inscription « PWM » est éteinte, l’alimentation pour les ports #5 à #8 n’est pas disponible.
Ports PWM #9 à #12: Ces 4 ports sont alimentés par la même source de puissance. Un maximum de 1A peut être tiré de cette source. Si la DEL marquée « B » au-dessus de l’inscription « PWM » est éteinte, l’alimentation pour les ports #9 à #12 n’est pas disponible.
GND
: Mise à la terre.
Pour plus d’information sur comment utiliser les I/Os PWM, veuillez vous référer aux pages InitializePwmOutput() {FR} et SetPwmOutput() {FR} .
Même si les broches SIG
des ports PWM sont liées aux broches PWM de la puce Mega2560, la CrcLib les utilisent comme des « PWM servo », à l’aide de la librairie standard servo.h plutôt que la fonction native analogWrite(). Pour en savoir plus sur les possibles conflits de « timer », référez-vous à la section micro-contrôleur ci-dessous.
En bref, analogWrite() ne peut être utilisée sur une broche SIG
que si celle-ci a été définie comme OUTPUT à l’aide de pinMode() et n’a pas été configurée par CrcLib::InitializePwmOutput()
. L’utilisation de analogWrite() n’est pas recommandée pour contrôler des servomoteur ou des contrôleurs de moteur. Pour plus d’information, visitez https://gist.github.com/ajfisher/8c5146bff264b88d04cc (en anglais).
Tout ce que vous avez toujours voulu savoir sur les signaux PWM et les servos est expliqué sur ces pages écrites par John Salt (en anglais). Tous les membres de l'équipe qui travaillent sur le robot devraient les lire:
Ports de communication
Les ports de communication sont utilisés pour communiquer avec le monde extérieur à l’aide de différents protocoles basés sur des impulsions et signaux précis et organisés.
La CrcLib ne s’occupe pas des ports de communication. Pour les configurer, pinMode() devrait être utilisée directement.
Ports de communication SPI
Le port Serial Peripheral Interface (SPI) est un groupe de 4 I/O digitales qui donnent au CRCduino la possibilité de communiquer par SPI à l’aide de la librairie Arduino SPI standard. Les 6 broches sont:
SS
: La broche Slave Select.SCK
: La broche Serial Clock.MOSI
: La broche Master Output, Slave Input.MISO
: La broche Master Input, Slave Output.5V
: Alimentation continue 5V. Si la DEL au-dessus de l’inscription « DIG » est éteinte, l’alimentation n’est pas disponible.GND
: Mise à la terre.
Port de communication I2C
Le port Inter-Integrated Circuit (I2C, prononcé I-squared-C ou I-deux-C) est un groupe de 2 I/O digitales capables d’interrupts qui donnent au CRCduino la possibilité de communiquer par I2C à l’aide de la librairie Arduino standard Wire . Les 4 broches sont:
SDA
: La broche Serial Data. Cette broche est alignée à l’inscription « MISO » du port SPI.SCL
: La broche Serial Clock. Cette broche est alignée à l’inscription « MOSI » du port SPI.5V
: Alimentation continue 5V. Si la DEL au-dessus de l’inscription « DIG » est éteinte, l’alimentation n’est pas disponible.GND
: Mise à la terre.
Port de communication SERIAL
Le port série, aussi appelé UART, est un groupe de 2 I/O digitales capables d’interrupts qui donnent au CRCduino la possibilité de communiquer par un port série à l’aide des fonctions natives Serial de Arduino. Ce port est connecté au lien série #1 du micro-contrôleur ATMEGA2560-16AU à la base du CRCduino. Les 4 broches sont:
TXD1
: La broche TX. Cette broche est alignée à l’inscription « MISO » du port SPI.TRX1
: La broche RX. Cette broche est alignée à l’inscription « MOSI » du port SPI.5V
: Alimentation continue 5V. Si la DEL au-dessus de l’inscription « DIG » est éteinte, l’alimentation n’est pas disponible.GND
: Mise à la terre.
Ports Encodeur (ENCO)
Les ports encodeurs sont faits pour lire les signaux provenant d’un encodeur à quadrature.
Aucune fonction CrcLib n’a été conçue pour interagir avec les ports encodeurs.
Le port ENCO est un groupe de 2 I/O digitales capables d’interrupts qui donnent au CRCduino la possibilité de lire les signaux d’encodeurs à quadrature lorsqu’utilisées avec la librairie Encoder de Paul Stoffregen décrite ici (en anglais). Les 4 broches sont:
ENCO_A
: La broche du signal A de l’encodeur. Cette broche est alignée à l’inscription « MISO » du port SPI.ENCO_B
: La broche du signal B de l’encodeur. Cette broche est alignée à l’inscription « MOSI » du port SPI.5V
: Alimentation continue 5V. Si la DEL au-dessus de l’inscription « DIG » est éteinte, l’alimentation n’est pas disponible.GND
: Mise à la terre.
Micro-contrôleur
Le micro-contrôleur est le cerveau du robot. C’est une petite puce chargée de lire (entrées) l'état du monde extérieur (les capteurs du robot, la manette, etc.), d’interpréter cette information en fonction du programme qui lui est donné, puis d’effectuer les actions appropriées (sorties) sur le monde extérieur (les servos du robot, les contrôleurs de moteur, etc.). Pour en apprendre plus sur les micro-contrôleurs, une bonne introduction ce trouve ici (en anglais).
Le micro-contrôleur contrôlant le CrcDuino est le ATMEGA2560-16AU. C’est la même puce à la base du Arduino Mega2560. Ainsi, si les fonctions natives Arduino sont utilisées, plusieurs des exemples tirés de l’internet pour le Mega 2560 fonctionneront directement. Pour le nom des broches, vous pouvez lire la page suivante: CrcLib: accéder aux broches IO.
Interrupts
Les broches suivantes sont capables d’interrupts, c’est-à-dire qu’elles peuvent être utilisées pour déclancher des interrupt service routines au lieu de leur rôle I2C ou UART. Ces broches pourraient aussi être utilisées comme des broches I/Os régulières si le besoin se présente.
Dans le contexte de la compétition CRC, les broches capables d’interrupts sont principalement utiles pour suivre l'état des moteurs à l’aide d’encodeurs, mais elles peuvent être utilisées pour n’importe quelle tâche. La CRC recommande d’utiliser en priorité le port ENCO
pour garder la possibilité d’utiliser les ports I2C et Serial.
Les broches doivent être déclarées comme INPUT
à l’aide de la fonction native Arduino pinMode(), plutôt qu'à l’aide de CrcLib::SetDigitalPinMode()
.
CRC_I2C_SDA
CRC_I2C_SCL
CRC_SERIAL_TX1
CRC_SERIAL_RX1
CRC_ENCO_A
CRC_ENCO_B
« Timers » du micro-contrôleur - pour utilisateurs avancés
Le ATMEGA2560-16AU possède 6 « timers ». Si vous utilisez la fonction native Arduino analogWrite(), assurez-vous que les ports PWM n’ont pas besoin de ce même « timer ». Pour plus d’information, référez-vous à ceci (en anglais).
Timer0: timer 8bit. Utilisé par
CrcLib::Update()
.Timer1: timer 16bit.
Timer2: timer 8bit. Utilisé par
CrcLib::Update()
.Timer3: timer 16bit.
Timer4: timer 16bit.
Timer5: timer 16bit. Utilisé par
CrcLib::InitializePwmOutput()
etCrcLib::SetPwmOutput()
.
Terminaux de puissance et sources d’alimentation
Les terminaux verts du CRCduino servent à alimenter celui-ci. Les circuits internes s’assurent que le 12V qui vient de la batterie soit transformé dans les 5V et 3.3V dont le CRCduino a besoin. La page Alimenter le CrcDuino contient plus d’information !
L’alimentation totale des 3 sources de puissance est limité par PTC à 2.35A @ 12V.
Les broches
5V
des ports PWM #5 à #8 sont alimentées par une source de 1A @ 5V dédiée.Les broches
5V
des ports PWM #9 à #12 sont alimentées par une source de 1A @ 5V dédiée.Les broches
5V
des porst DIG, ANA et de communication/encodeurs sont alimentées par une source de 0.350A @5V dédiée.
Le micro-contrôleur est alimenté par une source de 5V dédiée qui est limitée par PTC à 300mA @ 12V.
Le module XBee est alimenté par une source dédiée de 3.3V. Celle-ci est alimentée à même la source de 5V du micro-contrôleur.
DELs d'état
Ces DELs sont utilisées à des fins de déverminage.
CPU
: Alimentation du CPU. S’allume quand le 3.3V est alimenté au XBee, ce qui implique que le micro-contrôleur est aussi alimenté. Note: Cette DEL est aussi active lorsque le micro-contrôleur est alimenté par micro-USB, même s’il n’y a pas de batterie connectée.ST
: Indicateur Statut. Clignote périodiquement pour indiquer que le programme roule correctement. Change d'état environ à chaque seconde pour un programme simple.Fail
: Indicateur d’erreur. S’allume lorsque le CRCduino est en mode d’erreur. Lisez Déverminage - Codes d'erreur CrcLib pour plus d’information.X1
: Indicateur statut XBee X1. S’allume lorsque le XBee est branché et alimenté.X2
: Indicateur statut XBee X2. S’allume lorsque le XBee est connecté à un autre module XBee. Lors d’une déconnexion, la LED peut prendre quelques secondes avant de s'éteindre.X3
: Indicateur statut XBee X3. Clignote lorsque le XBee fonctionne correctement.
Comportement spécial: ST
et Fail
clignotent en alternance lorsque le programme initial de l’usine est programmé sur le micro-contrôleur.
LED Neopixel
La LED RGB Neopixel est utilisée par la CrcLib pour le diagnostic d’erreur. Déverminage - Codes d'erreur CrcLib contient plus d’information sur la signification de chaque séquence de couleur.
Bouton Reset
Lorsque le bouton reset est appuyé, l’alimentation du micro-contrôleur est coupée. Lorsque relâché, le micro-contrôleur s’allume à nouveau et recommence son exécution du début.
Sorties par défaut à la réinitialisation
Lorsque le micro-contrôleur s’allume, certaines sorties pourraient temporairement devenir HIGH
automatiquement pour une courte durée, même si elles sont indiquée comme INPUT
dans votre programme. C’est un comportement « normal » de la puce AVR causé par la séquence interne d’opération lors du démarrage. Celle-ci se produit lorsqu’un « reset » se produit, mais aussi lorsqu’un nouveau sketch est téléversé ou que le CRCduino est alimenté pour la première fois.
XBee Module - Optionnel
Le module XBee est un module optionnel qui peut facilement être installé sur le CRCduino. Le module est requis pour pouvoir contrôler le CRCduino à distance avec un module CRCconnect. Pour plus d’information, référez-vous à la page CRCconnect.
N’installez/retirez le module XBee que lorsque le CRCduino est éteint.
Pour l’installer, alignez simplement les broches du module avec le socket sur le CRCduino et insérez-les. Assurez-vous que l’orientation est correcte à l’aide des marques sur le CRCduino.
Pour le retirer, il s’agit de simplement tirer doucement dessus. Assurez-vous de ne pas plier les broches.
Capteur de température - Optionnel
Même s’il n’est pas installé en usine par défaut, un capteur LM35D peut être installé sur chaque CRCduino. Son état peut ensuite être lu à l’aide de l’entrée analogue définie comme CRC_LM35D
. Il peut facilement être soudé sur les trous correspondants directement sous l’inscription « Q240 », dans l’orientation indiquée par l'ovale tronqué marqué sur la plaquette.
Révision du CRCduino
La CRC cherche toujours à s’améliorer. Par conséquent, plusieurs révisions ont été produites au fil des années pour garder le CRCduino à jour et améliorer ses capacités. À cause de ces changements, certains fils pourraient être connectés différemment sur le board. Pour éviter certains problèmes, la dernière révision de la CrcLib devrait toujours être utilisée.
9880A: Génération A. Révision initiale beta.*
9880B: Génération B. Alimentation améliorée pour mieux soutenir les brusques changement de voltage causé par le « in-rush » provoqué par les moteurs de puissance. Aucun impact logiciel.
*Tous les 9880A en circulation ont été mis à jour pour être équivalent aux 9880B.
Articles liés
-
CrcDuino: détails matériels (Système CrcDuino System) —
Cette page présente les différents composants physiques qui se retrouvent sur une carte électronique CrcDuino. C’est une lecture assez chargée, mais elle en vaut la peine!
Toutes les valeurs de voltage indiquées sont par rapport à la broche
GND
. Celles-ci sont toutes connectées entre elles, alors elles peuvent toutes être utilisées à votre guise. -
CrcLib: accéder aux broches IO (Système CrcDuino System) —
Cette page présente les constantes symboliques définies dans CrcLib en utilisant la directive du pré-processeur
#define
.Broches
-
Déverminage - Codes d'erreur CrcLib (Système CrcDuino System) —
Cette page présente les codes associés au mode d’erreur de CrcLib.
Qu’est-ce que c’est ?
-
GetAnalogInput() {FR} (Système CrcDuino System) —
Objectif
Obtenir l'état d’une entrée analogique du CRCduino
Quand l’utiliser
-
InitializePwmOutput() {FR} (Système CrcDuino System) —
Objectif
Permet l’utilisation d’une broche PWM en configurant ses paramètres internes.
Quand l’utiliser
-
SetPwmOutput() {FR} (Système CrcDuino System) —
Objectif
Contrôler la sortie d’un port PWM
Quand l’utiliser
Add Comment