
speed
pilote un régulateur
> examples speed > edit speed
Pilote un Contrôleur de vitesse de rotation de Create : les machines tournent vite (128 tr/min) quand l'entrée gauche est alimentée, et lentement (16 tr/min) sinon. Un ordinateur qui règle des vitesses peut économiser du stress quand une chaîne est à l'arrêt, accélérer un broyeur quand le minerai s'entasse, ou ralentir une machine en fin de course.
Quoi construire
- À droite de l'ordinateur (vu face à l'écran), un Contrôleur de vitesse de rotation, alimenté par un arbre en rotation comme d'habitude, avec par-dessus la grande roue dentée qui entraîne vos machines.
- À gauche, un levier, un bouton, ou n'importe quel signal de redstone.
Si le bloc de droite n'est pas un périphérique, le programme s'arrête avec pas de régulateur de vitesse à droite. Si c'est un autre bloc de Create, le premier kinetic.set_speed() l'arrête avec set_speed needs a Rotation Speed Controller.
Comment il marche
local motor = peripheral.wrap("right")peripheral.wrap() donne un objet pour le bloc de droite. Un bloc de Create qui tourne a les méthodes cinétiques ; sur un Contrôleur de vitesse de rotation, elles comprennent set_speed.
if rs.get("left") > 0 then
motor.set_speed(128)
else
motor.set_speed(16)
endset_speed règle la vitesse cible du contrôleur, en tr/min, comme la valeur sur son côté : jusqu'à 256 dans un sens ou dans l'autre, un nombre négatif faisant tourner à l'envers. Le changement atteint le monde à la fin du tick du jeu, une seule fois, avec la dernière valeur demandée : régler une vitesse dans une boucle serrée ne submerge pas le serveur.
print(motor.speed() .. " tr/min")
os.pull_event("redstone")kinetic.speed() lit la vitesse du bloc lui-même. Sur un Contrôleur de vitesse de rotation, c'est la vitesse de l'arbre qui l'alimente, pas la cible que vous venez de régler. Ensuite os.pull_event() attend, sans rien coûter, qu'une entrée de redstone change, et la boucle recommence.
Idées
Servez-vous de la force du signal : 0 à 15 converti en 0 à 256 tr/min, pour une vitesse réglée au cadran, avec un Levier analogique de Create par exemple :
Brass for _, puissance in ipairs({0, 1, 8, 15}) do local vitesse = math.floor(puissance / 15 * 256) print(puissance, vitesse) end0 0 1 17 8 136 15 256
Dans le programme :
motor.set_speed(math.floor(rs.get("left") / 15 * 256)).- Ralentissez avant la casse :
kinetic.overstressed()indique quand le réseau est surmené. La recette garde-fou de surcharge baisse la vitesse jusqu'à ce qu'il s'en remette. - Faites tourner les broyeurs plus vite tant qu'un Coffre à objet renforcé contient beaucoup de minerai, avec
inventory.count()(voir stock). - Inversez un tapis roulant quelques secondes avec une vitesse négative, puis remettez-la.
Le programme
-- Pilote une machine Create : un régulateur de vitesse à droite
-- tourne vite quand l'entrée gauche est alimentée, lentement sinon.
local motor = peripheral.wrap("right")
if motor == nil then
error("pas de régulateur de vitesse à droite")
end
while true do
if rs.get("left") > 0 then
motor.set_speed(128)
else
motor.set_speed(16)
end
print(motor.speed() .. " tr/min")
os.pull_event("redstone")
end