IoMT - a Internet das coisas do Minecraft: gerenciamos objetos reais no mundo virtual


O computador virtual que controla o interruptor das luzes no mundo virtual do

Minecraft já é mais do que um jogo. Este é o estilo de vida e o habitat de muitos, muitos jogadores. O Minecraft também pode ser usado para fins de engenharia. Por exemplo, por que não aprender a ligar e desligar a lâmpada em uma sala, colocando um interruptor no jogo?

O mesmo aconteceu com um dos jogadores cujo apelido é giannoug . Ele trabalhou com seu amigo, criando um sistema que controla uma lâmpada WiFi que não é o mesmo nome. Agora não é incomum, e você pode comprá-los a um preço relativamente baixo. Giannoug trabalhou com um amigo que fez a engenharia reversa do protocolo da lâmpada. O próprio autor da ideia construiu um switch baseado no mod OpenComputers .

Depois de algum tempo, o computador estava pronto e o autor conseguiu abri-lo para o mundo inteiro através do TCP / IP.

O protocolo usado pela lâmpada é bastante simples. O byte do cabeçalho, três bytes adicionais para determinar a cor RGB, um byte para determinar o brilho, um byte para alternar o modo de operação e um byte final. Há também um mineral no jogo - um análogo da eletricidade em nosso mundo. Por padrão, os blocos podem ser usados ​​como elementos de um circuito elétrico. Com a ajuda de tais blocos, até análogos de processadores reais foram criados.

0x56 RED GREEN BLUE WHITE MODE 0xAA




O script para a lâmpada:
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

E uma demonstração do trabalho de todo o esquema:



no Minecraft, muitos jogadores ainda recriam modelos de lugares reais. Por exemplo, Antártica.
Martin O'Leary, um glaciologista da Universidade de Swansea, recriou a Antártica em Minecraft. Agora, o modelo, com um tamanho de 1: 1000 do continente real, contém mais de 3 bilhões de blocos. Martin decidiu um trabalho tão em larga escala depois que os cientistas começaram a aparecer no Minecraft, que criou vários modelos, incluindo Manhattan do século XIX .

Informações adicionais sobre o projeto "acenda a luz do Minecraft" estão no site do autor .

Source: https://habr.com/ru/post/pt387245/


All Articles