- PVSM.RU - https://www.pvsm.ru -

IoMT — интернет вещей от Minecraft: управляем реальными объектами в виртуальном мире

IoMT — интернет вещей от Minecraft: управляем реальными объектами в виртуальном мире - 1
Виртуальный компьютер, управляющий выключателем лампочки в виртуальном мире

Minecraft уже больше, чем игра. Это стиль жизни и среда обитания многих, многих геймеров. Среда Minecraft может использоваться и для инженерных целей. К примеру, почему бы не научиться включать и выключать свою лампочку в комнате, разместив выключатель в игре?

Так и поступил один из игроков, ник которого — giannoug [1]. Он работал со своим другом, создавая систему, управляющую noname WiFi лампочкой. Сейчас это не редкость, и купить их можно по относительно невысокой цене. Работал giannoug со своим другом, который провел реверс-инжиниринг протокола лампочки. Сам же автор идеи строил выключатель на основе OpenComputers мода [2].

Спустя некоторое время компьютер был готов, и автор смог открыть его всему миру через TCP/IP.

Протокол, который используется лампочкой, довольно прост. Байт заголовка, три дополнительных байта для определение RGB-цвета, байт для определения яркости, байт для переключения режима работы и конечный байт.


0x56 RED GREEN BLUE WHITE MODE 0xAA

В игре есть и минерал — аналог электричества в нашем мире. По умолчанию, блоки можно использовать как элементы электрической цепи. При помощи таких блоков создавались даже аналоги реальных процессоров.

Скрипт для работы лампочки:

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

И демонстрация работы всей схемы:

IoMT — интернет вещей от Minecraft: управляем реальными объектами в виртуальном мире - 2

В Minecraft многие геймеры еще воссоздают модели реальных мест. Например, Антарктиды.
Мартин О'Лири (Martin O'Leary), гляциолог [3] из Университета Суонси, воссоздал Антарктиду в Minecraft. Сейчас модель, с размером 1:1000 от реального континента, содержит более 3 миллиардов блоков. Мартин решился на такую масштабную работу после того, как в Minecraft стали появляться ученые, которые создавали различные модели, включая Манхэттен 19-го века [4].

Дополнительная информация по проекту «включи лампочку из Minecraft» — на сайте автора [1].

Автор: marks

Источник [5]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/diy-ili-sdelaj-sam/104725

Ссылки в тексте:

[1] giannoug: http://hashbang.gr/breaking-the-4th-wall-with-minecraft/

[2] OpenComputers мода: http://www.curse.com/mc-mods/minecraft/223008-opencomputers

[3] гляциолог: http://ru.wikipedia.org/wiki/%D0%93%D0%BB%D1%8F%D1%86%D0%B8%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F

[4] Манхэттен 19-го века: http://www.nypl.org/blog/2014/05/05/historical-maps-minecraft

[5] Источник: http://geektimes.ru/post/266508/