El pasado domingo, 20 de marzo, varios integrantes de la Asociación Tecnológica GeekGamersTeam de Sierra de Yeguas se pasaron 12 horas realizando un Taller de Iniciación a la Programación.
Para iniciarse en la programación usaron el videojuego Minecraft y el lenguaje de programación Python y fueron capaces de diseñar el logotipo de su asociación virtualmente a través de algoritmos.
La jornada dio también para poder probar la placa Raspberry Pi y saltar las barreras virtuales para interactuar con el mundo físico y viceversa. Un ejemplo de esto es que cuando encendían una luz en Minecraft se encendía también un led que había conectado en la placa o cuando pulsaban un botón que había conectado en la placa se creaba una estructura en Minecraft.
Al taller asistieron 5 socios y se espera volver a repetir pronto para ampliar conocimientos y que participen más socios y vecinos del municipio.
Para iniciarse en la programación usaron el videojuego Minecraft y el lenguaje de programación Python y fueron capaces de diseñar el logotipo de su asociación virtualmente a través de algoritmos.
La jornada dio también para poder probar la placa Raspberry Pi y saltar las barreras virtuales para interactuar con el mundo físico y viceversa. Un ejemplo de esto es que cuando encendían una luz en Minecraft se encendía también un led que había conectado en la placa o cuando pulsaban un botón que había conectado en la placa se creaba una estructura en Minecraft.
Al taller asistieron 5 socios y se espera volver a repetir pronto para ampliar conocimientos y que participen más socios y vecinos del municipio.
Si desea más información sobre la Asociación GeekGamersTeam y sus actividades puede visitar:
- Su página en Facebook: https://www.facebook.com/geekgamersteam
- O seguirlos en Twitter: https://twitter.com/geekgamersteam
Galería de fotos de la actividad:
Código fuente del programa que crea el logotipo de la asociación GeekGamersTeam en Minecraft al pulsar un botón conectado a una Raspberry Pi:
################################################
# PROGRAMA LOGOTIPO GEEKGAMERSTEAM: Crea el #
# logotipo de la asociación cuando se pulsa #
# el botón que hay concectado en una Raspberry #
################################################
# Importar API - Librerías Minecraft
import mcpi.minecraft as minecraft
import mcpi.block as block
# Importar librerias Python
import string
import time
# Importar librerías Raspberry Pi
import RPi.GPIO as GPIO
# Configurar Raspberry Pi
BUTTON = 4
GPIO.setmode(GPIO.BCM)
GPIO.setup(BUTTON, GPIO.IN)
ON = False
# Constantes colores de la lana
BLANCO = 0
MARRON = 12
NARANJA = 1
# Radio del circulo del Logo
RADIO = 31
# Creamos una conexión a Minecraft
mc = minecraft.Minecraft.create()
# Obtener posición de mi jugador
pos = mc.player.getTilePos()
#########################################
# PROCEDIMIENTO: Dibujar Circunferencia #
#########################################
def dibujarCircunferencia(radio, posicion):
mc.setBlocks(posicion.x + 2, posicion.y, posicion.z, (posicion.x + (radio * 2)), (posicion.y + 200), (posicion.z + (radio * 2)), block.AIR.id)
mc.setBlocks(posicion.x + 2, posicion.y, posicion.z, (posicion.x + (radio * 2)), posicion.y, (posicion.z + (radio * 2)), block.WOOL.id, 12)
###################################
# PROCEDIMIENTO: Dibujar Carácter #
###################################
def dibujarCaracter(posicion, caracter, colorLetra, colorFondo):
letra = []
if caracter == "G" or caracter == "g":
letra = [[0,0,0,0,0,0,0],
[0,1,1,1,1,1,0],
[0,1,0,0,0,0,0],
[0,1,0,0,1,1,0],
[0,1,0,0,0,1,0],
[0,1,1,1,1,1,0],
[0,0,0,0,0,0,0]]
elif caracter == "E" or caracter == "e":
letra = [[0,0,0,0,0,0,0],
[0,1,1,1,1,1,0],
[0,1,0,0,0,0,0],
[0,1,1,1,0,0,0],
[0,1,0,0,0,0,0],
[0,1,1,1,1,1,0],
[0,0,0,0,0,0,0]]
elif caracter == "K" or caracter == "k":
letra = [[0,0,0,0,0,0,0],
[0,1,0,0,1,0,0],
[0,1,0,1,0,0,0],
[0,1,1,0,0,0,0],
[0,1,0,1,0,0,0],
[0,1,0,0,1,0,0],
[0,0,0,0,0,0,0]]
elif caracter == "A" or caracter == "a":
letra = [[0,0,0,0,0,0,0],
[0,1,1,1,1,1,0],
[0,1,0,0,0,1,0],
[0,1,1,1,1,1,0],
[0,1,0,0,0,1,0],
[0,1,0,0,0,1,0],
[0,0,0,0,0,0,0]]
elif caracter == "M" or caracter == "m":
letra = [[0,0,0,0,0,0,0],
[0,1,0,0,0,1,0],
[0,1,1,0,1,1,0],
[0,1,0,1,0,1,0],
[0,1,0,0,0,1,0],
[0,1,0,0,0,1,0],
[0,0,0,0,0,0,0]]
elif caracter == "S" or caracter == "s":
letra = [[0,0,0,0,0,0,0],
[0,1,1,1,1,1,0],
[0,1,0,0,0,0,0],
[0,1,1,1,1,1,0],
[0,0,0,0,0,1,0],
[0,1,1,1,1,1,0],
[0,0,0,0,0,0,0]]
elif caracter == "T" or caracter == "t":
letra = [[0,0,0,0,0,0,0],
[0,1,1,1,1,1,0],
[0,0,0,1,0,0,0],
[0,0,0,1,0,0,0],
[0,0,0,1,0,0,0],
[0,0,0,1,0,0,0],
[0,0,0,0,0,0,0]]
elif caracter == "R" or caracter == "r":
letra = [[0,0,0,0,0,0,0],
[0,1,1,1,1,1,0],
[0,1,0,0,0,1,0],
[0,1,1,1,1,1,0],
[0,1,0,0,1,0,0],
[0,1,0,0,0,1,0],
[0,0,0,0,0,0,0]]
else:
letra = [[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0]]
# Dependiendo de si la letra es mayúsculas o es minusculas
# la hará el doble de grande o no
if string.find(string.ascii_uppercase, caracter) == -1:
# Si la letra es minúscula
x = 0
z = 0
for x in range (len(letra)):
for z in range (len(letra[x])):
if letra[x][z] == 0:
mc.setBlock(posicion.x - x, posicion.y, posicion.z + z, block.WOOL.id, colorFondo)
elif letra[x][z] == 1:
mc.setBlock(posicion.x - x, posicion.y, posicion.z + z, block.WOOL.id, colorLetra)
else:
# Si la letra es mayúscula
i = 0
h = 0
x = 0
z = 0
for i in range (len(letra)):
for h in range (len(letra[i])):
x = i * 2
z = h * 2
if letra[i][h] == 0:
mc.setBlocks(posicion.x - x, posicion.y, posicion.z + z, posicion.x - x - 1, posicion.y, posicion.z + z + 1, block.WOOL.id, colorFondo)
elif letra[i][h] == 1:
mc.setBlocks(posicion.x - x, posicion.y, posicion.z + z, posicion.x - x - 1, posicion.y, posicion.z + z + 1, block.WOOL.id, colorLetra)
##################################
# PROCEDIMIENTO: Dibujar Palabra #
##################################
def dibujarPalabra(posicion, palabra, colorLetra, colorFondo):
posicionCaracter = posicion
for x in range(len(palabra)):
dibujarCaracter(posicionCaracter, palabra[x], colorLetra, colorFondo)
posicionCaracter.z = posicionCaracter.z + 7 + 1
############################################################
try:
while True:
time.sleep(0.1)
if GPIO.input(BUTTON) == False:
# Dibuja la circunferencia
dibujarCircunferencia(RADIO, pos)
# Dibuja la palabra G
posicionLetra = mc.player.getTilePos()
posicionLetra.x = pos.x + RADIO + 1
posicionLetra.z = pos.z + RADIO - 21
dibujarPalabra(posicionLetra, "G", BLANCO, NARANJA)
# Dibuja la palabra t
posicionLetra = mc.player.getTilePos()
posicionLetra.x = pos.x + RADIO + 10
posicionLetra.z = pos.z + RADIO - 5
dibujarPalabra(posicionLetra, "t", BLANCO, MARRON)
# Dibuja la palabra e
posicionLetra = mc.player.getTilePos()
posicionLetra.x = pos.x + RADIO + 2
posicionLetra.z = pos.z + RADIO - 5
dibujarPalabra(posicionLetra, "e", BLANCO, MARRON)
# Dibuja la palabra ek
posicionLetra = mc.player.getTilePos()
posicionLetra.x = pos.x + RADIO + 2
posicionLetra.z = pos.z + RADIO - 5 + 8
dibujarPalabra(posicionLetra, "ek", NARANJA, MARRON)
# Dibuja la palabra a
posicionLetra = mc.player.getTilePos()
posicionLetra.x = pos.x + RADIO - 6
posicionLetra.z = pos.z + RADIO - 5
dibujarPalabra(posicionLetra, "a", BLANCO, MARRON)
# Dibuja la palabra mers
posicionLetra = mc.player.getTilePos()
posicionLetra.x = pos.x + RADIO - 6
posicionLetra.z = pos.z + RADIO - 5 + 8
dibujarPalabra(posicionLetra, "mers", NARANJA, MARRON)
# Dibuja la palabra m
posicionLetra = mc.player.getTilePos()
posicionLetra.x = pos.x + RADIO - 14
posicionLetra.z = pos.z + RADIO - 5
dibujarPalabra(posicionLetra, "m", BLANCO, MARRON)
finally:
GPIO.cleanup()
No hay comentarios:
Publicar un comentario