Dans toute cette partie, nous allons voir comment faire notre schéma électrique, nous essayerons d'expliquer les différents composants au fur et à mesure qu'on les mets dans le schéma.
Le microcontrôleur est le composant principal de la carte. Pour être schématique c'est le cerveau de la carte, pour être plus précis c'est lui qui fait les opérations arithmétiques et logiques. (Voir Wikipedia pour plus de détails).
Nous avons choisi un ATmega88 de la famille des AVR. Par la suite, nous parlerons indistinctement du "microcontôleur", de "l'AVR" ou de "l'ATmega88". Par abus de langage, il se pourrait aussi que nous l'appelions "micrprocesseur" même si un mivrocontrôleur est bien plus qu'un microprocesseur.
Dans la suite, vous aurez régulièrement besoin de consulter la datasheet de l'ATmega88 , elle se trouve ici.
Tout d'abord, dans la barre de menu, cliquez sur Place -> Device ou sur le petit icône Device.
Dans la nouvelle fenêtre :
Choisissez la partition IC.
Puis dans choisir ATMEGA88 dans la colonne Part Name

Enfin, cliquez sur "place" pour placer le composant, placez le, puis appuyez sur Echap.
| Fichier attaché | Taille |
|---|---|
| AVRdatasheet.pdf | 2.74 Mo |
Nous allons maintenant nous occuper de l'alimentation qui est une partie importante d'un PCB . En effet, il faut que l'alimentation soit la plus stable possible afin de ne pas perturber le fonctionnement du microcontrôleur et des autres composants électroniques (comme les capteurs).
Comme il y a beaucoup d'éléments pour faire une alimentation correcte, nous allons la mettre dans une nouvelle page du schématique. Cette séparation est purement virtuelle puisque sur la future carte tous les composants seront ensemble. Pour ajouter une nouvelle page, cliquez sur (+) en bas de la page.
Ajoutez-y les composants suivants :
En plus des "vrais" composants, on ajoute des symboles qui ne représentent rien de physique mais montre visuellement à quoi sont reliés les fils (masse ou alimentation) :
place > symbol > supply ground > un P_VCC, cinq GND_SMALL, et un VCC
Renommez le P_VCC en VCC_in.
Une fois les composants ajoutés, agencez-les de la manière suivante :
(Ne vous occupez pas du numéro à coté de la lettre dans les noms des composants ça se fera tout seul plus tard)

Dans la barre de menu, allez dans Place, puis Wire pour pouvoir dessiner des fils. Pour obtenir le schemas final.
Reliez les composants comme ceci :

Nous avons ainsi une alimentation stabilisée sur le fil qui s'appelle VCC. VCC_IN représente quant à lui l'entrée de l'alimentation. En pratique on y a mis un PAD pour pouvoir souder le fil qui viendra de la pile.
Maintenant sachez que nous avons une alimentation différente pour les composants logiques que celle pour les moteurs. En effet, quand les moteurs vont se mettre en rouote subitement, il y aura une chute de tension sur le fil qui alimente les moteurs or on ne peut pas se permettre que le microcontrôleur subisse cette chute de tension car il pourrait rebooter inopinément (l'ATmega88 comme beaucoup de microcontroleur possède un système de vérification de l'alimentation : si celle-ci chute un peu trop, le microcontroleur se coupe. Il se rallume quand l'alimentation redépasse un certain seuil).
Le VCC que nous avons eu en sortie du cricuit que vous venez faire va nous servir à alimenter l'AVR et d'autres composant logiques. Nous venons donc de réaliser l'alimentation "logique". Nous allons maintenant faire la partie pour alimenter le moteur et autres composants qui nécessite de la puissance mais sont moins exigeants sur la stabilité. C'est ce qu'on appelle l'alimentation "de puissance".
Procédez comme précédemment pour obtenir ceci sur la même page :

Attention !! ce n'est pas le même régulateur !!! Notez aussi que c'est la même masse par contre ce n'est pas les mêmes fils pour l'alimentation (P_VCC et P_VCC_in)
Le régulateur et les condos de découplage servent à avoir une alimentation la plus stable possible.
Maintenant repassez à la page 1 du schématique pour relier l'AVR à l'alimentation de la manière suivante (vous aurez besoin d'un symbole VCC, et d'un GND) :

Pour que l'alimentation soit encore plus stable pour l'AVR, on ajoute aussi des condensateurs de découplage autour de celui-ci : 3 capas de 100nF (CAPCERAM0805) pour obtenir le schema suivant :

| Fichier attaché | Taille |
|---|---|
| alim2_2.png | 5.06 Ko |
| alim3_1.png | 7.92 Ko |
| alim3_2.png | 8.92 Ko |
| alim1_0.png | 8.26 Ko |
| alim1_1.png | 6.86 Ko |
Place device quartz : placer un "quartz" à 20MHz.
Et prenez aussi deux capacités à 15pF. Les capacités, branchées près du quartz servent à fabriquer un circuit oscillant, pour fournir l'horloge à l'AVR. Pour connaitre, la valeur de ces capacités, il faut se reporter à la datasheet de l'AVR à la section horloge.
Il vous faudra aussi 2 symboles GND
Reliez-les de cette manière à la patte XTAL1 et XTAL2 de l'AVR :

| Fichier attaché | Taille |
|---|---|
| horloge.png | 37.63 Ko |
Pour communiquer avec un ordinateur (programmation, debug, ou autre) la solution la plus simple en robotique reste le port série. On en trouve sur quasiment tous les ordinateurs fixes et il existe des adaptateurs de série/USB pour les ordinateurs portables. Du côté de la carte, il faut prévoir un connecteur sur lequel nous brancherons le cable qui arrive de l'ordinateur. Au club, nous avons un connecteur standard qui s'appelle Micromatch (connecteur rouge carré) mais vous pouvez mettre un autre connecteur ou même des pads pour souder directement vos fils (moins bonne solution).
Nous verrons au moment de programmer le microcontrôleur comment se servir de la liaison série.
Placez le connecteur : dans la Partition "Connectors", choisissez un MICROMATCH de référence 70-0014.
Placez aussi une résistance de 10Kohms (RES_0603_E96), un symbole VCC et un GND.
Et reliez l'ensemble aux pattes RX et TX de l'AVR de la façon suivante :

La résistance sur le fil RX sert à maintenir le fil à la tension VCC quand il n'y a rien qui passe sur le fil. On évite ainsi de repérer des 0 aléatoirement. Si par contre, le fil passe à l'état bas, il y aura un courant qui passe dans la résistance, c'est pourquoi la résistance est grande : l'intensité qui traverse sera faible.
| Fichier attaché | Taille |
|---|---|
| serie.png | 4.93 Ko |
Pour programmer le microcontroleur, il faudra le reseter. Dans les phases de développement, on a donc besoin de le reseter très souvent. On prévoit donc dès maintenant un bouton pour reseter l'ATmega88 sur la carte ce qui évitera de devoir débrancher l'alimentation puis de la rebrancher.
Le bouton de reset est un simple bouton poussoir qui mettra la patte de reset du micrcontrôleur à la masse et ainsi le resetera. On met bien une résistance de "pull-up" qui fait que la patte reste bien à la tension VCC quand le bouton n'est pas appuyé. Si on ne l'avait pas mis, on aurait pu avoir des reset intempestifs suivant la tension flottante autour de cette patte.
Placez 1 résistances de 10Kohms (RES_0603_E96), un SWITCH B3S (dans la partition "Misc"), un symbole VCC et un GND, et placez-les sur la patte "RESET" de l'AVR comme ceci :

| Fichier attaché | Taille |
|---|---|
| reset.png | 144.7 Ko |
Comme nous l'avions prévu dans les spécifications, nous aurons un capteur de distance sur la carte. Ce capteur sera analogique, c'est-à-dire qu'il donnera l'information de distance sous la forme d'une tension analogique entre 0 et VCC . Pour comprendre cette information analogique, il faut brancher le fil sur une patte qui possède un convertisseur analogique/numérique (en anglais ADC pour Analog Digital Converter). C'est pourquoi on utilisera la patte ADC7 du microcontrôleur.
Sur le schématique, tirez un fil sur la patte ADC7.
Place -> Symbol -> Renvois -> INTERPAGE, lier l'interpage (pour avoir la suite du fil ailleurs sur la page), puis faire un clic droit sur le fil, et dans Properties, lui donner un nom :

Placez un micromatch (car le capteur sera reliéà un fil au bout duquel on aura mis un micromatch) et reliez le à l'alimentation comme précédemment, et sur le port 3 du micromatch, faites de même que pour la patte ADC7 de l'AVR, en lui donnant le même nom, ce qui donne ceci :

| Fichier attaché | Taille |
|---|---|
| sharp1.png | 97.47 Ko |
| sharp2.png | 76.95 Ko |
On ajoute maintenant un connecteur sur les fils qui sert au port SPI. Ainsi, si on a 2 cartes qui possèdent ce genre de connecteurs, il suffira de faire un cable entre les 2 et les 2 cartes pourront dialoguer en SPI. Pour l'instant, on s'occupe simplement de mettre le connecteur.
Ajoutez un micromatch et reliez-le aux pattes SCK, MISO, MOSI, ce qui donne :

| Fichier attaché | Taille |
|---|---|
| SPI.png | 5.16 Ko |
De la même manière qu'on avait fait pour le sharp, nous allons ajouter des interfaces vers les capteurs couleurs, les leds, le bus I2C ...
Ajouter à l'AVR de la même manière que le sharp des liens internes à la page :

Pour les capteurs de couleurs :

Pour le bus I2C (uniquement 2 fils sca et sdl avec des pull-up) et les LED qui seront bien pratiques pour le debugguage :

Ajoutez enfin les 2 dernières E/S qui sont simplement des fils reliés à un micromatch qui pourront servir pour diverses utilisations (LEDs supplémentaires, boutons poussoirs, bumpers, etc. ):
(ne vous préoccupez pas encore des noms M1*** ou M2***, ils viennent juste après)

| Fichier attaché | Taille |
|---|---|
| ES1.png | 34.03 Ko |
| ES_11.png | 7.24 Ko |
| ES_12.png | 5.36 Ko |
| ES_13.png | 8.18 Ko |
Comme nous l'avons vu à la page Alimentation, on alimente les moteurs séparément des autres composants. Toutefois les moteurs sont quand même commandés par le micrcontrôleur. Pour relier le microcontrôleur aux moteurs on utilise donc des ponts en H. Vous trouverez toutes les explications sur le fonctionnement des ponts en H sur la page dédiée ou sur Wikipedia.
Rajoutez une page au schéma électrique, puis rajouter des transistors (DUAL_NPMOS) et tout ce qu'il faut pour obtenir ceci (les connecteurs << sont des connecteurs de page à page, ils permettent d'avoir le début du fil sur une page et la fin sur une autre page) :

Les PAD J8 et J10 sont les endroits où nous allons brancher les fils qui vont au moteur et les fils M1_IN1 et M1_IN2 sont les fils qui seront reliés au microcontrôleur pour la commande du moteur. P_VCC représente quant à lui le fil qui vient de l'alimentation de puissance.
Refaire la même chose pour en avoir 2 car nous aurons 2 moteurs sur notre robot :)

Vous aurez remarqué les liens externes vers la première page, il faut donc mettre les fils de même nom relié au microcontrôleur dans la première page :

Vous avez maintenant réalisé toute la partie de design des schémas électriques. A ce stade, vous savez exactement quels sont les composants électroniques utilisés sur la carte et comment ils sont branchés entre eux.
Attention au moment de commander les composants, il faut aussi penser aux composants qui sont reliés par un connecteur qui n'apparaissent pas sur les schémas, par exemple le capteur de distance, les capteurs de couleurs, les boutons poussoirs ou bumpers...
| Fichier attaché | Taille |
|---|---|
| ponts1.png | 13.29 Ko |
| ponts2.png | 6.61 Ko |
| ponts3.png | 28.22 Ko |