CrcDuino: détails matériels
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.
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 analogiques
Les entrées analogiques sont utilisées pour mesurer un voltage provenant du monde extérieur et pour transformer cette mesure en valeur numérique utilisable par le micro-contrôleur.
Le CRCduino possède 4 groupes de ports analogiques. Chaque groupe possède 3 broches:
SIG
: La broche où appliquer le signal à mesurer.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 analogiques peuvent lire un voltage entre 0V et 7.5V, converti proportionnellement en une valeur entre 0 et 1023, à l’aide de CrcLib::GetAnalogInput()
.
Entrées/sorties (I/O) numériques
Les entrées/sorties numériques sont utilisées pour lire ou écrire des signaux numériques. Un signal numérique 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ées numériques
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.
Sorties numériques
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.
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.
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.
Ports de communication SPI
Le port Serial Peripheral Interface (SPI) est un groupe de 4 I/O numériques 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 numériques 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 numériques 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.
Le port ENCO est un groupe de 2 I/O numériques 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 se 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éclencher des interrupts 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.
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ée 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 ports 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 DEL peut prendre quelques secondes avant de s'éteindre.X3
: Indicateur statut XBee X3. Clignote lorsque le XBee fonctionne correctement.
DEL Neopixel
La DEL 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 couleurs.
Bouton Reset
Lorsque le bouton reset est enfoncé, 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.
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.
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 analogique 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 la carte. 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 changements de voltage causés par le « in-rush » provoqué par les moteurs de puissance. Aucun impact logiciel.
*Tous les 9880A en circulation ont été mis à jour pour être équivalents aux 9880B.