L'ordinateur virtuel qui contrôle l'interrupteur d'éclairage dans le monde virtuel deMinecraft est déjà plus qu'un jeu. C'est le mode de vie et l'habitat de nombreux joueurs. Minecraft peut également être utilisé à des fins d'ingénierie. Par exemple, pourquoi ne pas apprendre à allumer et éteindre votre ampoule dans une pièce en plaçant un interrupteur dans le jeu?Il en est de même pour l'un des joueurs dont le surnom est giannoug . Il a travaillé avec son ami, créant un système qui contrôle une ampoule WiFi noname. Maintenant, ce n'est pas rare, et vous pouvez les acheter à un prix relativement bas. Giannoug a travaillé avec un ami qui a procédé à une ingénierie inverse du protocole de l'ampoule. L'auteur de l'idée a lui-même construit un commutateur basé sur le mod OpenComputers .Après un certain temps, l'ordinateur était prêt et l'auteur a pu l'ouvrir au monde entier via TCP / IP.Le protocole utilisé par l'ampoule est assez simple. L'octet d'en-tête, trois octets supplémentaires pour déterminer la couleur RVB, un octet pour déterminer la luminosité, un octet pour commuter le mode de fonctionnement et un octet final. Il y a aussi un minéral dans le jeu - un analogue de l'électricité dans notre monde. Par défaut, les blocs peuvent être utilisés comme éléments d'un circuit électrique. Avec l'aide de tels blocs, même des analogues de vrais processeurs ont été créés.0x56 RED GREEN BLUE WHITE MODE 0xAA
Le script de l'ampoule:local event = require('event')
local net = require('internet')
local myEventHandlers = {}
local running = true
local con = net.open('192.168.1.110', 5577)
function myEventHandlers.key_up(address, char, code, playerName)
if (char == 'q') then
running = false
print('Goodbye '… playerName… '!')
end
end
function myEventHandlers.redstone_changed(_, address, side)
local brightness = 0xff;
if side > 0 then
brightness = 0xff
else
brightness = 0x00
end
print('Sending '… brightness… ' to lamp...')
con:write(string.char(0x56))
con:write(string.char(0x00))
con:write(string.char(0x00))
con:write(string.char(0x00))
con:write(string.char(brightness))
con:write(string.char(0x0f))
con:write(string.char(0xaa))
con:flush()
end
function handleEvent(eventID, ...)
local event = myEventHandlers[eventID]
if (event) then
event(...)
end
end
if con then
print('Connected to the bulb!')
end
while running do
handleEvent(event.pull())
end
Et une démonstration du travail de l'ensemble du schéma:
dans Minecraft, de nombreux joueurs recréent encore des modèles de lieux réels. Par exemple, l'Antarctique.Martin O'Leary, glaciologue à l'Université de Swansea, a recréé l'Antarctique dans Minecraft. Maintenant, le modèle, avec une taille de 1: 1000 du vrai continent, contient plus de 3 milliards de blocs. Martin a décidé d'un tel travail à grande échelle après que les scientifiques ont commencé à apparaître dans Minecraft qui a créé divers modèles, y compris Manhattan au 19e siècle .Des informations supplémentaires sur le projet «allumer la lumière de Minecraft» sont disponibles sur le site Web de l'auteur .