Alt-F4 n°31 - Cours express sur les circuits logiques 16-04-2021
traduit par bev, Firerazer
Après une courte pause d’une semaine, Alt-F4 est de retour avec le numéro 31. pocarski est de retour pour nous parler d’autres façons de construire une logique de calcul dans Factorio, cette fois en utilisant les circuits logiques. Ces derniers s’avèrent être plus simples à utiliser que vous ne le pensez ! Ensuite, Big Community Games annonce un autre de ses événements passionnants, dont le thème central sera cette fois le mod Industrial Revolution.
Les circuits logiques et pourquoi il ne faut pas en avoir peur pocarski
Il existe de nombreuses technologies dans l’arbre des recherches qui ne sont pas nécessaires pour terminer le jeu, et qui sont donc souvent délaissées. Pour certaines d’entre elles, c’est parfaitement compréhensible, comme par exemple les technologies militaires en mode pacifique. D’autres ne sont parfois même pas envisagées, alors qu’elles peuvent apporter un avantage exceptionnel. L’une de ces technologies est le réseau logique, que je vais explorer dans cet article.
Le réseau logique se compose de quatre éléments principaux : les câbles, les émetteurs de constante, les comparateurs et les calculateurs.
Les émetteurs de constante émettent continuellement ce que vous leur avez demandé (et n’ont pas besoin d’être alimentés en électricité) ; les comparateurs émettent un signal lorsqu’une certaine condition est remplie ; les calculateurs effectuent des opérations mathématiques. Les câbles agissent comme une sorte de “réseau de signaux”, où tous les signaux émis sur un câble peuvent être lus par tout ce qui y est connecté. Les câbles rouges et verts ont la même fonctionnalité, mais ils peuvent tous deux être connectés au même appareil sans interférer l’un avec l’autre.
Principes de base
Examinons trois exemples à une seule entité très simples et largement utilisés. Ce sont : le générateur d’impulsions, la bascule RS et le compteur. Nous commencerons par le générateur d’impulsions, qui ressemble à ceci :
Le générateur d’impulsions est le plus facile à comprendre. L’entrée est immédiatement transmise à la sortie par le câble rouge, et l’entrée inversée est ajoutée sur ce même câble rouge après le délai standard d’un tick du calculateur. Les deux valeurs se trouvant sur le même câble s’annulent mutuellement, ce qui signifie que la sortie est exactement égale à l’entrée, mais seulement pendant la durée d’un seul tick de jeu. Ici, l’utilisation du signal “Chaque” permet de s’assurer que le circuit peut prendre n’importe quel signal en entrée. Si vous souhaitez le rendre spécifique à un signal donné, vous pouvez remplacer les “Chaque” en entrée et sortie par le signal désiré. Ce circuit a une multitude d’utilisations possibles, surtout s’il est utilisé en combinaison avec un compteur.
Ensuite, il y a la bascule RS. Ses entrées sont soit un signal “S”, soit un signal “R”, pour Set (fixer) et Reset (réinitialiser). Lorsqu’elle reçoit un signal “S”, la condition du comparateur devient vraie. Comme il est bouclé sur lui-même, le “S” qu’il émet sera ajouté à l’entrée et maintiendra la condition vraie même après que l’entrée “S” originale se soit éteinte. De même, lorsqu’il reçoit une entrée “R”, la condition devient fausse, ce qui désactive la sortie “S” et rompt la boucle. Ce circuit est utilisé de préférence pour les systèmes où vous souhaitez une sorte d’hystérésis, où un état déclenche l’entrée “S” et un autre état déclenche l’entrée “R”.
Enfin, le compteur. Structurellement il est identique à la bascule RS, mais cette fois la sortie est configurée avec “Compteur d’entrée” et un signal “Tout”. Cela signifie que tant que la condition du décideur est respectée, il continuera à se redonner ses propres sorties, les mémorisant ainsi. Pour chaque tick où il reçoit un signal, il incrémentera la valeur de ce signal dans sa mémoire de la quantité correspondante. Dès que la condition est rompue, la mémoire est effacée, puisque le comparateur ne laisse plus passer les signaux. De même que pour le compteur, si vous souhaitez qu’il ne mémorise qu’un seul signal, remplacez le “Tout” en sortie par le signal souhaité. Ce circuit, tout comme le générateur d’impulsions, a un nombre considérable d’utilisations, mais la plus populaire est celle de garder en mémoire des quantités d’objets.
Exemples de base
Examinons maintenant quelques cas où chacun de ces trois outils peut s’avérer utile.
Supposons que vous ayez un plan de réacteur nucléaire où la récupération d’une barre d’uranium épuisée déclenche l’insertion d’une nouvelle barre. Une telle conception devrait être démarrée manuellement puisque les réacteurs sont construits sans leur contenu. L’idéal serait d’ajouter un circuit qui, une fois que tous les coffres de barres d’uranium contiennent des objets, déclenche les bras d’alimentation en combustible exactement une seule fois. C’est là que le générateur d’impulsions entre en jeu. Placez un comparateur (en bleu) pour chaque coffre pour vérifier s’il contient suffisamment d’objets, puis connectez-les tous ensemble à un seul comparateur (en vert) qui vérifie si tous les coffres sont prêts. Ce dernier émet ensuite un signal “barre d’uranium épuisée” dans le générateur d’impulsions (en mauve), qui est relié à chaque bras de ravitaillement du réacteur (en jaune). Ainsi, tous les bras de ravitaillement se déclenchent exactement une seule fois, au moment où ils ont tous du carburant disponible, ce qui démarre le réacteur automatiquement. En outre, cela permet également au réacteur de redémarrer automatiquement s’il tombe en panne de combustible.
Ensuite, un exemple classique : l’alimentation de secours. Imaginez que vous ayez un grand nombre d’accumulateurs et que vous vouliez activer vos chaudières uniquement si l’énergie stockée devient trop faible. Vous pourriez simplement brancher un commutateur d’alimentation directement sur un accumulateur et lui dire de s’activer si les accumulateurs sont en dessous d’une charge de, disons, 20 %. Mais cela ne ferait que l’activer et le désactiver rapidement, maintenant les accumulateurs en permanence à exactement 20 %. Au lieu de cela, vous devriez utiliser une bascule RS. Faites en sorte qu’un comparateur sorte un signal “S” lorsque la charge de l’accumulateur est inférieure à 20 %, et qu’un autre sorte un signal “R” lorsque la charge est supérieure à 70 %. Reliez-les tous les deux à la bascule, et connectez la sortie de la bascule à un commutateur réglé pour s’activer si “S” > 0. Le commutateur s’activera dès que la charge descendra en dessous de 20 %, et maintiendra l’alimentation de secours jusqu’à ce que la charge dépasse 70 %.
Enfin, un procédé que beaucoup craignent de mettre en place : l’enrichissement de l’uranium. Nous devons vérifier 3 bras : l’entrée, la sortie et le recyclage. Ce dernier n’est pas un bras unique, mais nous ne nous intéressons qu’au premier maillon de la chaîne. Le bras d’entrée n’a pas besoin de logique de contrôle, il saisit simplement 3 U-238 et les charge quand il le faut. Le bras de sortie doit être désactivé pendant le recyclage, afin de ne prélever aucun des objets de la centrifugeuse. Le bras de recyclage doit retirer exactement 40 U-235, ainsi que 2 U-238. Ce dernier reçoit un signal de filtre constant d’U-238, ce qui l’exclut (“Sauf”). Il commence à retirer l’U-235, et incrémente le compteur de la quantité saisie à chaque fois qu’il le fait. Le bras reçoit également un signal constant de -39 U-235, qui n’affecte pas son filtre. Finalement, le bras lira 40 U-235 sur le câble vert, et -39 U-235 sur le câble rouge. Il voit maintenant une quantité totale positive d’U-235, et comme le signal U-235 est avant le signal U-238 dans la liste des signaux, il est prioritaire. Le bras exclut donc maintenant l’U-235, ce qui signifie qu’il passe à la récupération des 2 U-238. Cela a deux conséquences : effacer le compteur et déclencher le bras de sortie, qui n’a plus d’autre choix que de retirer l’U-235 restant. Les 2 U-238 recyclés seront insérés au début du cycle suivant. Ce recyclage de l’U-238 ne nécessite pas de logique supplémentaire, car le bras d’entrée est limité à un maximum de 3 objets, laissant les 2 autres emplacements pour l’uranium recyclé.
Conclusion
Chacun des exemples donnés peut être amélioré et rendu plus spécifique aux besoins de l’utilisateur. Parfois, cela peut être fait avec des mathématiques et une logique élémentaires, d’autres fois, vous devrez ajouter quelques éléments de base supplémentaires. Par exemple, vous pouvez ajouter un deuxième compteur au circuit d’enrichissement pour éviter que la centrifugeuse ne déborde et ne se bloque s’il y a de l’U-235 dans le flux d’entrée.
Chaque étape importante des réseaux logiques a ici été franchie étape par étape, en divisant le tout en parties, puis en les divisant encore et encore. Après tout, c’est ainsi que les ordinateurs modernes ont été développés : fabriquer une porte logique à partir de transistors, puis fabriquer une bascule et un additionneur à partir de portes logiques, puis fabriquer une RAM et une UAL à partir de bascules et d’additionneurs, puis fabriquer un ordinateur à partir de ces éléments. Si vous parvenez à vous dire parfois “Hé, j’ai déjà résolu ce problème”, alors vous pouvez tout faire avec des circuits.
En avant toute ! T-A-R
Big Community Games est heureux d’annoncer un nouvel événement MMO Factorio. Un morceau de Nauvis très riche en minerai a été identifié, nous apportant une grande opportunité de lancer une fusée ensemble ce samedi même ! Le thème de cette fête sera le style Steampunk. Industrial Revolution 2 de Deadlock989 apportera toute la vapeur et le combustible incandescent que nous aimons, et peut-être même un peu plus.
Par rapport à la version de base, notre boîte à outils s’enrichit de toutes sortes de technologies. De nouveaux matériaux et procédés rendront la fabrication de la fusée un peu plus complexe, mais néanmoins très plaisante. La page de l’événement contient le pack de mods complet et d’autres détails. Le serveur sera mis en ligne dans le menu multijoueur traditionnel le samedi à 18h00 UTC/GMT.
Le compte à rebours est terminé
Visitez notre Discord pour les canaux de discussion. Les ingénieurs sont déjà en train de rassembler et de compiler les plans. BCG aimerait également convier les personnes qui souhaiteraient participer à l’organisation d’événements similaires à l’avenir.
Préparez vos exosquelettes et profitez de l’événement !
Contribuer
Comme toujours, nous attendons vos contributions pour les Alt-F4, que cela soit par la soumission d’un article ou en aidant pour les traductions. Si vous avez quelque chose d’intéressant en tête que vous souhaitez partager avec la communauté, vous êtes au bon endroit. Si vous n’êtes pas sûr, nous serons heureux de vous aider en discutant structure, contenu et idées. Donc si vous voulez vous impliquer dans les Alt-F4, rejoignez-le Discord pour ne rien rater !