Dans le précédent article, nous avons vu les propriétés et l’utilisation des blocs transparents dans les circuits. Dans ce quatrième épisode, nous allons nous intéresser à un item incontournable des circuits : la torche de redstone. L’occasion de voir ses propriétés ainsi que quelques applications.
Rassurez-vous, cet article est accessible quel que soit votre niveau. La difficulté sera progressive au fur et à mesure des articles.
La torche de redstone inverse le courant
Nous avons rencontré la torche de redstone à de nombreuses reprises, mais nous n’avons pas développé toutes ses propriétés. Nous allons voir ici ce qui la rend extrêmement intéressante pour le redstoneur.
- Résumé des épisodes précédents
- L'état de la torche dépend de l'alimentation du support.
- La torche est une porte logique NOT
- Exemple d'application : l'ancêtre des répéteurs
Commençons en douceur avec ce que nous savons déjà avec les articles précédents :
- Dans le premier article, vous pouvez trouver comment fabriquer les torches de redstone. C’est simple et intuitif : une poudre de redstone sur un bâton.
- Dans le second épisode, nous avons vu que la torche de redstone nécessitait un bloc support pour pouvoir être posée. Deux positions possibles : sur le haut d’un bloc ou sur le côté de celui-ci.
- Dans le troisième épisode, on a introduit les blocs transparents sur lesquels les torches ne peuvent pas être posées. Il y a cependant des exceptions : les dalles, les escaliers, la glowstone mais également le verre, les barrières et… les couches de neige lorsqu’on en empile 7 mais c’est un bug depuis la 1.8.1 (MC-80551).
Mais chose plus intéressante : elle est n’alimente pas de la même façon les blocs adjacents que les autres sources sur support. Ainsi, elle n’alimente pas le bloc support, mais elle alimente le bloc au-dessus d’elle. J’avais laissé le pourquoi en suspens, le moment est venu.
Le bloc support n’est donc pas alimenté par la torche, essayons donc d’introduire un courant dans le bloc. La torche ne reste pas insensible et on observe plusieurs choses :
- Visuellement, la torche n’émet plus de lumière et les particules disparaissent.
- Et chose plus intéressante, la torche de redstone cesse d’être une source de courant.
Retirons l’alimentation : la torche reprend ses propriétés habituelles et redevient une source de courant. Le phénomène est donc réversible.
L’état de la torche de redstone dépend donc uniquement de l’alimentation du bloc. Dans le circuit-ci dessus, cela signifie que l’alimentation de la lampe au niveau du bloc magenta varie en fonction de l’activation du levier au niveau du bloc orange. On a deux cas possibles :
- si j’alimente au niveau du bloc orange, la torche s’éteint et il n’y a pas de courant au niveau du bloc magenta.
- s’il n’y a pas d’alimentation en orange, la torche s’allume et on a du courant au niveau du bloc magenta.
La torche inverse donc le courant : s’il y a un courant en entrée (orange), alors il n’y a pas de courant en sortie (magenta) et vice-versa.
En électronique, cela s’appelle une porte NOT (ou porte NON), ce qui correspond à la négation logique. Nous aurons l’occasion de revoir ces notions de portes logiques dans l’article suivant, n’ayez crainte.
Maintenant, si j’utilise deux inverseurs à la suite, que se passe-t-il ? Réponse : le courant inversé est inversé à nouveau, les câbles en entrée et en sortie ont donc le même état. A droite, vous avez une version plus compacte du double inverseur.
C’est la même chose en logique formelle : si je prends une proposition (par exemple « Il aime lire ») et que j’enchaîne deux négations successives (ce qui donne quelque chose comme « Il n’aime pas ne pas lire »), je retrouve bien le sens de la proposition de départ. Cela illustre bien que deux négations successives équivalent à n’avoir rien changé.
Mais quelque chose a changé en sortie : les torches de redstone remettent l’intensité au maximum et donc on peut prolonger la distance parcourue par le signal. C’est exactement ce que permet de faire un répéteur aujourd’hui, c’est ce que nous avons vu dans la première partie de l’épisode 2. Les doubles inverseurs ont donc assuré les fonctions des répéteurs avant leur introduction dans le jeu à la Bêta 1.3.
Le délai de mise à jour des torches
Pour l’instant, dans cette rubrique, nous n’avons jamais soulevé les questionnements d’ordre temporel. Nous allons débuter ici à partir de la torche de redstone.
- La torche change d'état avec un délai.
- Le temps dans les circuits : le tic redstone
- Exemple d'application : les horloges
- Mais ce délai est également une contrainte.
Mettons en évidence ce délai : comparons un câble de redstone simple et une torche de redstone. Activons l’interrupteur : la lampe côté câble s’allume de suite, alors qu’un retard pour l’extinction est clairement visible côté torche.
Éteignons l’interrupteur : réaction immédiate côté câble, alors que la torche de redstone agit encore avec retard. Cela semble être le même délai que précédemment. Tentons de le mesurer.
Le plus simple est de chronométrer : on trouve un délai de 0.1 seconde. Retenez ce temps, c’est important pour la suite.
Prenons différents éléments des circuits redstone : torches, comparateurs, répéteurs. Mesurons le temps mis par un signal pour les traverser : à chaque fois, on tombe sur un multiple entier de 0.1 seconde.
Ainsi, dans les circuits redstone, on mesure le temps en tics redstone (que nous abrégerons par la suite en « redtic ») : 1 redtic vaut 0.1 seconde. Cette notion est relative à comment le jeu met à jour les informations sur le monde.
Cependant, ce n’est pas la véritable unité de temps du jeu : Minecraft s’actualise en fait toutes les 0.05 seconde, ce qu’on appelle les tics de jeu, durée primordiale lorsqu’on doit manipuler les blocs de commande ou modifier des mécaniques de jeu. Ceci est source de nombreuses confusions, retenons :
1 tic redstone = 2 tics de jeu = 0.1 seconde
On parlera par la suite en redtics ou en donnant directement le temps en secondes.
La première application à laquelle on pense est bien entendu la création d’horloge pour obtenir des impulsions régulières avec une fréquence donnée. De nombreuses usines utilisent des horloges pour minuter des actions à produire, par exemple récolter un champ.
Passons à plus de théorie : si je mets torches de redstone à la suite en revenant au point de départ, j’obtiens en théorie une horloge qui donne des pulsations tous les $n$ redtics. Mais il faut certaines précautions :
- si $n$ est impair, il n’y a pas de problèmes de stabilité : quand on parcourt la boucle en entier, le signal se retrouve inversé par rapport au départ et donc il peut recommencer un tour en inversant toutes les torches et ceci aussi longtemps qu’on veut sans intervenir.
- si $n$ est pair, le problème est plus délicat. Une fois un tour terminé, le signal n’a pas de raison de faire un second tour puisqu’il n’a pas de torches à inverser. Il faut donc que les torches dans le circuit puissent revenir à leur état de départ avant que le signal ne soit de retour : on doit introduire une impulsion dans le circuit.
- dans le cas de circuits comprenant 2 torches ou moins, il n’est pas possible de former une horloge car les délais sont trop courts.
Une autre application des torches consiste à faire des tours alternant torche et bloc, ce qui permet de faire monter le courant facilement et de manière compacte.
Comparons ces ascenseurs à torche avec des câbles utilisant des dalles par exemple :
- les ascenseurs à torche permettent d’économiser de l’espace mais également de diviser la consommation de poudre de redstone par 2.
- ils sont nettement plus lents : les câbles avec dalles transmettent le signal instantanément alors qu’il faudra attendre pour un ascenseur à torches.
Selon les exigences du circuit et les préférences du constructeur, vous pouvez utiliser l’un ou l’autre de ces câbles mais il est important d’en connaitre les avantages et les défauts.
La torche de redstone face au court-circuit
La torche de redstone possède une autre propriété intéressante, une sorte de protection contre certaines configurations et qu’il est nécessaire de contourner pour certains circuits. Certaines parties sont techniques, notamment sur les calculs des temps pendant lesquels la torche va griller et rester inerte, le lecteur néophyte peut sauter ces parties et lire simplement les conclusions.
- Soumise à un court-circuit, une torche peut griller.
- Réactiver une torche qui a grillé
- Exemple d'application : les pulseurs rapides
- Bonus : un bug intéressant et mystérieux
Prenons la situation ci-dessus : la torche est surmontée d’un bloc et le bloc support est surmonté d’une poudre de redstone. Analysons la situation pas à pas :
- La torche de redstone alimente le bloc supérieur en courant fort. Le bloc supérieur, alimenté en courant fort, alimente la poudre de redstone qui va alors alimenter le bloc support de la torche.
- Alors, la torche s’éteint après un redtic de délai (0.1 seconde). Elle n’alimente donc plus le bloc supérieur, et par conséquent la poudre de redstone et le bloc support.
- La torche de redstone s’allume donc à nouveau après un redtic, et on recommence un cycle.
On a donc ici un circuit qui va éteindre et allumer rapidement la torche : on a fait un court-circuit. Si on fait l’expérience, on voit ce clignotement rapide pendant 15 redtics (1.5 seconde) avant de s’éteindre définitivement avec un petit bruit du feu qu’on éteint. La torche a alors grillé.
Les torches grillent pour une raison simple : c’est un mécanisme de protection ajouté au jeu pour éviter que des courts-circuits créent trop de ralentissements en mettant à jour de façon importante la redstone.
Mais la torche n’est pas grillée définitivement : si un bloc adjacent est actualisé (un bloc est posé ou détruit par exemple), la torche reprendra son état classique. Mais il existe un petit délai après la mise hors service où une torche ne peut pas être réactualisée.
Si nous voulons être plus précis : la torche de redstone grille si elle doit effectuer 8 cycles d’activation-désactivation dans une période de 30 redtics (3 secondes). Elle reste ensuite inerte aux actualisations jusqu’à ce que, pendant les derniers 30 redtics écoulés, le nombre de cycles activation-désactivation retombe à 60. Cela peut paraître compliqué, mais nous allons développer cela dans l’application qui suit.
Nous avons donc lors du court-circuit d’une torche de redstone un cycle d’activation-réactivation de la torche toutes les 2 redtics. Cela forme ainsi un pulseur rapide qui serait intéressant par exemple pour des circuits nécessitant beaucoup d’impulsions en peu de temps.
Pour déterminer les divers temps, on va utiliser une torche mise en court circuit à t = 0 redtic. Sur le graphique ci-dessous, les points rouges indiquent que la torche est allumée et les points noirs que la torche est éteinte ou a grillé.
Déterminons quand la torche grille : il faut qu’il y ait 8 cycles activation-désactivation de la torche dans les derniers 30 redtics (segment supérieur). Or, à raison d’un cycle d’activation-réactivation toutes les 2 redtics, la torche atteint la limite à t = 15 redtics (zone indiquée en cyan) : la torche grille au bout de 1.5 secondes. Voilà qui n’est pas pratique pour notre pulseur.
Maintenant, calculons le temps pendant lequel la torche va rester inerte : la torche va contrôler à chaque instant les 30 derniers redtics jusqu’à ce qu’on ait moins de 8 cycles activation-désactivation. Pour vérifier cette condition, il faut attendre le temps t = 32 redtics : durant les 30 derniers redtics (segment inférieur), on a seulement 7 cycles activation-désactivation (dans la zone indiquée en bleu). Cela signifie que la torche est insensible aux actualisations pendant 32-15=17 redtics, soit 1.7 seconde.
L’idée pour faire un pulseur rapide est d’utiliser plusieurs torches en court-circuit avec le même bloc support : ainsi, les torches s’actualisent mutuellement grâce aux court-circuits qui mettent à jour le bloc support. Mais combien doit-on mettre de torches au minimum ? Du fait que le délai pendant lequel une torche grille est plus court que le délai pendant lequel la torche ne peut pas être réactivée implique qu’il faut au moins 3 torches.
Mais ceci est sans compter les bugs de Minecraft : créons un pulseur avec seulement deux torches. Il ne devrait théoriquement pas être stable vu les données précédentes. Et effectivement, il s’arrête.
Actualisons une torche en posant temporairement un bloc : le pulseur se remet en route et se stabilise dans le temps. Même si vous retirez les torches et la poudre de redstone et que vous les replacez, même si vous déchargez le monde en vous éloignant ou en vous déconnectant, le pulseur continue de fonctionner avec seulement 2 torches.
A ma connaissance, ce bug n’a pas été reporté. Vous pouvez le faire si vous le désirez.
Article toujours aussi bien fait que les autres, merci ! :)