Tuesday 25 April 2017

GPIO zero Minecraft "Whack on board Led's"



This code uses Minecraft to turn on the on board leds by whacking either a TNT block or Glass block. It uses GPIO zero. 

To find out about Gpio zero go here: 
https://gpiozero.readthedocs.io/en/stable/notes.html#how-can-i-tell-what-version-of-gpiozero-i-have-installed 

1. In Minecraft lay a TNT block, glass block and grass block. 
2. Open the below code in Python 3.
3. Run the code below
4. Whack the one of the blocks and you should see some action with one of the on board LED's. 

TNT turns on the red light 
Grass turns on the green light
Glass is random


Code


#import minecraft libraries
import mcpi.minecraft as minecraft
import mcpi.block as block
#import gpio and time
from gpiozero import LED
from time import sleep
import random

mc = minecraft.Minecraft.create()

mc.postToChat("Turn on your Pi lights with MCPI and GPIO zero")

LightList= ["R","L"]

red = LED(35)
green = LED(47)

def RedOnMCPI(msg,time):
    mc.postToChat(msg)
    red.on()
    sleep(time)
    red.off()
    

def GreenOnMCPI(msg,time):
    mc.postToChat(msg)
    green.on()
    sleep(time)
    green.off()

def RandomLight():
    for i in range(0,6):
        light = random.choice(LightList)
        if light == "R":
            RedOnMCPI("Red",1)
        if light == "L":
            GreenOnMCPI("Green",1)
        

while True:

    evs = mc.events.pollBlockHits()
    for e in evs:
        pos = e.pos

        b = mc.getBlock(pos.x,pos.y,pos.z)
        if b == 46:#tnt
            RedOnMCPI("Red",1)
        elif b == 2:#Grass
            GreenOnMCPI("Green",1)
        elif b == 20:#Glass
            RandomLight()
           



No comments:

Post a Comment