[latexpage] Bienvenue à toi, cher joueur, dans le monde de la redstone ! Dans cette rubrique, nous allons découvrir le fonctionnement de cette merveilleuse mécanique, fabriquer nos propres systèmes pour finalement devenir un redstoneur expérimenté. Allons, je suis sûr que vous en avez les capacités !
Dans les précédents articles, nous n’avons utilisé qu’un nombre limité d’items. Il est temps de voir d’autres objets pour des circuits plus performants ou plus compacts. Nous allons voir ici le répéteur, un item que nous avons déjà utilisé sans l’étudier de plus près.
Rappels et généralités
Nous avons déjà utilisé le répéteur à plusieurs reprises.
Nous avions classé le répéteur dans notre premier article comme permettant d’agir et de transmettre le courant. Mais cette transmission ne peut pas se faire de n’importe quelle façon :
- si on regarde un répéteur, on remarque la présence d’un triangle sur le socle : la base du triangle correspond à un côté du répéteur et la pointe correspond la torche fixe.
- si on place de la poudre de redstone autour, seuls deux côtés peuvent se relier aux câbles de redstone : la base du triangle et le côté opposé.
- la transmission du courant ne peut se faire que dans un sens : de la base du triangle vers la pointe.
Le répéteur permet alors de forcer le passage du courant dans un seul sens : c’est l’équivalent d’une diode en électronique.
Dans l’article sur la propagation du courant, nous avons utilisé de nombreuses fois le répéteur pour transmettre le courant à travers des blocs. Le répéteur peut transformer un courant faible en courant fort et d’intensité maximale, ce qui permet de prolonger la transmission du signal au delà de la limite des 15 blocs habituels.
Les caractéristiques du signal
Le répéteur agit sur le courant, nous l’avons souvent répété. Mais, pour savoir quoi regarder, il nous faut définir quelques notions pour décrire les signaux.
Le courant dans un câble de redstone reste rarement statique, il est important de le considérer comme quelque chose dépendant du temps. Dès lors que vous avez plusieurs câbles et plusieurs signaux, il devient important de pouvoir les comparer et de les mettre en relation pour comprendre ce qui se passe dans le circuit.
Pour cette première approche, nous ne développeront que des modèles simples :
- la durée du signal (ce qui revient à considérer des impulsions)
- le délai entre deux signaux
Pour illustrer ceci, nous utiliserons un matériel bien connu des électriciens : un oscilloscope. C’est un appareil qui permet de représenter les signaux en fonction du temps. Il présente deux canaux : le canal « or » en haut et le canal « diamant » en bas, qui correspondent à la surveillance des blocs de la même couleur dans le circuit. L’écran est balayé de gauche à droite à raison d’un bloc tous les redtics (0,1 seconde) : si un bloc coloré du circuit est alimenté, il apparaît un bloc dans le canal correspondant, permettant de visualiser les variations dans le temps.
Remarquez qu’ici, on ne s’occupe que de l’alimentation et non de l’intensité comme pour les portes logiques.
Illustrons ceci par un exemple de mesure de durée : les durées des signaux créés par les deux types d’interrupteurs. Le canal du haut (bloc d’or) correspondra à l’interrupteur en pierre tandis que le canal du bas (bloc de diamant) surveille l’interrupteur de pierre.
On lance le balayage de l’oscilloscope et on appuie sur les deux interrupteurs en même temps : on observe au fur et à mesure du déplacement du curseur l’apparition de blocs sur l’écran. La mesure terminée, on observe deux traits :
- un trait de 10 blocs dans le canal or, soit un signal d’une durée de 10 redtics (1 seconde)
- un trait de 15 blocs dans le canal diamant, soit un signal d’une durée de 15 redtics (1,5 seconde)
Cela correspond aux valeurs données dans notre premier article, nous voilà rassuré !
Prenons un autre exemple : le système que nous avons décrit comme l’ancêtre du répéteur. On s’intéresse au délai de réponse, c’est-à-dire au temps qu’il faut pour que le signal de sortie se mette à jour. Pour connaitre la réponse, il suffit d’enregistrer le signal d’entrée (bloc d’or) et de le comparer au signal de sortie (bloc de diamant) dans le temps.
On lance le balayage et on alimente l’entrée avec un interrupteur en pierre. On observe bien que les deux signaux ne débutent pas au même instant : le signal du bas a un décalage de 2 blocs noirs par rapport au signal du haut, ce qui correspond à un délai de 2 redtics (0,2 seconde). C’est bien ce que nous attendions : d’après l’article sur les torches de redstone, le délai d’actualisation de ces dernières est de 1 redtic, donc ce délai correspond bien à celui des deux torches du circuit.
Le répéteur face aux impulsions
- Chaque cran du répéteur correspond à un délai
- Obtenir un délai donné
- Attention aux modifications de durées des impulsions courtes
Le répéteur possède un curseur mobile qui peut être déplacé selon quatre positions. On notera chaque position avec un entier $\delta$ compris entre 1 et 4 : la première position correspond à $\delta = 1$ et ainsi de suite.
Plaçons le répéteur sur la troisième position ($\delta = 3$) et introduisons un courant (channel or) : il en ressort après un délai de trois redtics (channel diamant). On peut vérifier que un répéteur sur la position $\delta$ ajoute un délai de $\delta$ redtics au signal de sortie.
Un répéteur seul ne peut donc donner qu’un délai compris entre 1 et 4 redtics. Plaçons plusieurs répéteurs en série : le signal de sortie a alors un retard correspondant à la somme des délais individuels. C’est l’utilisation la plus commune des répéteurs : ajouter du délai dans ces circuits.
Remarque : vous imaginez que pour obtenir des délais plus importants, il faudra passer par d’autres astuces si on ne veut pas obtenir des circuits extrêmement longs. Ce sera développé dans les prochains articles.
Il faut être vigilant aux impulsions courtes, c’est-à-dire dont la durée n’excède pas 4 redtics. En effet, observez le signal de sortie obtenu pour ces trois impulsions courtes :
- dans chaque cas, on observe bien un retard du signal correspondant au cran du répéteur.
- pour un répéteur en première position, les durées sont inchangées.
- aucun des signaux en sortie n’a une durée inférieure au délai $\delta$ du répéteur traversé.
Cela signifie une chose : les pulsations trop courtes sont allongées pour correspondre au délai du répéteur. C’est particulièrement visible pour le répéteur à la dernière position ($\delta = 4$) : toutes les impulsions de sortie durent 4 redtics (0,4 seconde) alors que les signaux d’entrée n’ont pas du tout les mêmes durées.
Résumons : lorsqu’un signal de durée $d$ entre dans un répéteur en position $d$, le signal de sortie a :
- un retard de $\delta$ redtics par rapport au début du signal d’entrée.
- une durée de $\max ( d, \delta)$ redtics, c’est-à-dire qu’elle ne peut être inférieure au délai $\delta$.
Un peu de théorie : démonstration de l'augmentation des délais et des durées
Revenons à ce qu’est fondamentalement un répéteur : on peut caractériser son action sur le courant en observant ce qui se passe à son entrée $E$ et à sa sortie $S$ en fonction du temps $t$ (exprimé en redtics). Rappelons que nous nous intéressons pas à l’intensité comme dans l’article sur les portes logiques : si l’entrée est alimentée, $E=1$ quelle que soit l’intensité, sinon $E=0$.
Soit un répéteur sur le cran $\delta$, cette valeur correspond au délai de mise à jour en redtics. Si, à un instant $t$, la sortie est différente de l’entrée, on a deux cas :
- si on introduit un courant d’entrée $E(t) = 1$ devant un répéteur éteint $S(t)=0$, la sortie se mettra à jour après un délai $\delta$ : $S(t+\delta) = 1$.
- si le courant d’entrée devient nul $E(t)=0$ devant un répéteur activé $S(t)=1$, la sortie se mettra à jour après le même délai $\delta$ : $S(t+\delta) =0$.
On peut alors examiner les deux cas en comparant la durée de l’impulsion $d$ avec le délai $\delta$.
- premier cas : si $\delta$ est inférieur à $d$
Dès que l’entrée passe de $E=0$ à $E=1$, on a la sortie qui passe après un délai $\delta$ redtics de $S=0$ à $S=1$. Après un temps $d$ redtics, l’entrée revient à $E=0$ et la sortie fait de même après $\delta$ redtics.
Si on regarde la durée totale du signal de sortie, on a un premier segment de durée $d – \delta$ et un second segment de durée $\delta$. On a donc un signal de sortie simplement décalé temporellement : un retard de $\delta$ redtics et de durée $d$ redtics.
- second cas : si $\delta$ est supérieur à $d$
Si on reprend le même raisonnement, on se rend compte rapidement que, lorsque la sortie du répéteur s’actualise enfin en $S=1$, son entrée est déjà revenue à $E=0$ : on enchaîne donc tout de suite sur la remise à zéro de la sortie après le délai $\delta$.
Si on regarde la durée totale du signal de sortie, on a donc plus plus le premier segment où $E=1$ et $S=1$, il ne reste que le second segment de durée $\delta$. On a donc un signal de sortie décalé temporellement mais allongé : un retard de $\delta$ redtics et de durée $\delta$ redtics.
Le verrouillage d’un répéteur
Plaçons un répéteur de manière à alimenter un répéteur par le côté. On remarque alors quelque chose de curieux : tant que le répéteur sur le côté alimente le répéteur, une barre remplace le curseur et le répéteur garde sa sortie inchangée, et cela indépendamment de ce qui se passe en entrée : le répéteur est alors verrouillé tant qu’on n’enlève pas l’alimentation de répéteur latéral.
Du fait que le répéteur sur le côté reste fondamentalement un répéteur, n’oubliez pas qu’il nécessite un délai d’activation dépendant du cran auquel il est placé. De même, un répéteur bloqué mettra un certain temps pour s’activer ou se désactiver une fois déverrouillé, il y aura un décalage donné par la position du répéteur bloqué.
Mais sommes-nous obligé d’utiliser un répéteur pour en verrouiller un autre ? Essayons en remplaçant le répéteur latéral par un comparateur qu’on alimente :
- au départ, aucun changement graphique n’est visible (cas à gauche) pourtant le répéteur est verrouillé et ne laisse pas passer le courant.
- si on fait un clic droit sur le comparateur, on le change de mode et cela met à jour le répéteur qui affiche la barre de verrouillage (cas du centre).
- si on refait remet le comparateur dans son mode initial par un autre clic droit, le répéteur garde sa mise à jour et affiche correctement la barre de verrouillage (cas de droite).
Ce bug est purement graphique (MC-9194) et il est très ancien (il était déjà présent en 1.5). En l’attente d’une résolution, n’oubliez pas de mettre à jour les répéteurs en double-cliquant sur le comparateur qui le verrouille.
Nous expliquerons dans l’article prochain à quoi correspondent les différents modes du comparateur, mais ils sont ici équivalents pour verrouiller un répéteur.
Application : transformer un interrupteur en levier
Après la théorie, la pratique : nous allons transformer un interrupteur en pierre en levier.
- Mise en contexte
- Décomposition
- Etude de l'horloge
- Les états verrouillés
- Pourquoi le bouton en pierre fonctionne ?
- Pourquoi le bouton en bois ne marche-t-il pas ?
La différence entre un interrupteur et un levier est plutôt évidente : l’interrupteur émet un courant une fois pressé, mais il revient à sa position originelle au bout d’un certain temps ce qui désactive le courant, alors que le levier reste dans la position dans lequel on le laisse. Il serait intéressant de pouvoir combiner ces deux propriétés : un bouton qui conserverait son état d’alimentation jusqu’à la prochaine pression.
Pour cela, on utilise des circuits T flip-flop: il s’agit des bascules qui changent d’état en sortie lorsqu’ils reçoivent un signal en entrée. Le circuit ci-dessus est un exemple de T flip-flop. Attention, il ne fonctionne que pour les interrupteurs en pierre.
Avant de commencer, quelques détails :
- l’interrupteur est en pierre.
- le répéteur servant de verrou est sur le premier cran.
- les deux autres répéteurs sont sur le troisième cran.
On peut décrire le système comme ceci : un répéteur qui sert de verrou a une partie qui se révèle être une horloge (en orange). Cette horloge est composée d’une boucle formée de plusieurs éléments induisant du délai (répéteurs et torche) et elle est stabilisée par la torche (comme elle inverse le courant, l’horloge ne nécessite pas d’excitation extérieure car elle se ré-initialise toute seule).
Étudions l’horloge dans l’oscilloscope. Première chose, le signal se répète tous les 14 tics (c’est sa période). Si vous regardez les délais, on a un retard d’un tic du signal jaune par rapport au vert (dû à la torche), un retard de 3 tics du vert par rapport au bleu (répéteur droit au cran $\delta$) et un retard de 3 tics du vert par rapport au bleu (répéteur gauche au cran $\delta ‘$).
Retour sur le système au complet : un répéteur verrouille un des répéteurs dans un état donné lorsqu’il est activé. Le répéteur verrouillé peut alors avoir deux états : activé ou éteint, ce qui donne deux états stabilisés par ce verrouillage.
Nous nommerons ces états « état OFF » et « état ON » selon que la lampe soit éteinte ou allumée.
Le bouton en pierre active le bloc pendant 10 redtics, donc l’horloge pourra fonctionner durant 1 seconde. Ce délai est matérialisé en haut et en bas par des bandes oranges. Or, on constate qu’en 10 redtics, on passe de l’état OFF a l’état ON.
On constate la même chose pour passer de l’état ON à l’état OFF :
Voilà pourquoi le bouton en pierre est compatible avec ce montage : il permet de verrouiller au bon moment l’horloge pour permettre un changement d’état.
Le bouton en bois active le bloc pendant 15 redtics, donc l’horloge pourra fonctionner durant 1,5 seconde. Le problème saute aux yeux : la période de l’horloge est de 14 redtics, il n’y a donc rien d’étonnant à retomber sur l’état de départ.
Ce qu’on a vu pour l’état OFF est valable aussi lorsqu’on part de l’état ON :
Donc comment modifier le système pour que le bouton en bois fonctionne ? Vous remarquerez vite qu’il faudra rajouter des répéteurs pour cela : par exemple, en ajoutant deux répéteurs sur le troisième cran en série.
Conclusion
Merci de l’astuce
Oh ! Je savais pas pour l’augmentation de la durée des impulsions !
J’avais jamais vraiment fais gaffe, mais (j’ai vérifié) c’était déjà le cas en beta 1.7. Haha, ne dite a personne que que je ne le savais pas, alors que je fait de la redstone depuis le début.
@sirius : je viens de mettre à jour les miniatures. J’espère qu’elles sont plus attractives maintenant. ^^
Tu devrais changer de type de miniatures car celles que tu fais ne donne pas envie de lire