Skip to content

Latest commit

 

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Extension de Comunicacion para MakeCode y Micro:bit

La extension "Comunicacion" mejora las capacidades de comunicacion entre dispositivos Microbit, permitiendo una interaccion mas avanzada y personalizada en proyectos educativos y de entretenimiento.

Uso como Extension

Este repositorio puede ser agregado como una extension en MakeCode.

Editar este Proyecto

Para editar este repositorio en MakeCode:

Bloques Disponibles

La extension "Comunicacion" proporciona una variedad de bloques para la comunicacion entre dispositivos Micro:bit, permitiendo configuraciones personalizadas, sincronizacion y la transmision de diferentes tipos de datos. A continuacion, se detallan los bloques disponibles y ejemplos de su uso.

Configuracion

Establecer Canal de Comunicacion

communication.setChannel(1)

Configura el canal de comunicacion (0-255) para limitar la interferencia con otros dispositivos.

Registrar Dispositivo con Nombre

communication.registerDevice("Alice")

Asigna un nombre identificativo a tu dispositivo Micro:bit, facilitando su identificacion en la red.

Grupos

Unirse al Grupo

communication.joinGroup("Exploradores")

Permite que el dispositivo se una a un grupo especifico para comunicarse unicamente con los miembros de ese grupo.

Salir del Grupo

communication.leaveGroup("Exploradores")

Retira el dispositivo del grupo especificado, deteniendo la recepcion de mensajes de ese grupo.

Sincronizacion

Esperar por Dispositivos Conectados

communication.waitForDevices(2)

Bloquea la ejecucion del programa hasta que el numero especificado de dispositivos se haya conectado.

Esperar por Dispositivo Especifico

communication.waitForDevice("Bob")

Detiene la ejecucion del programa hasta que el dispositivo con el nombre especificado se conecte.

Esperar por Dispositivos Conectados en Grupo

communication.waitForDevicesInGroup(2, "Exploradores")

Bloquea la ejecucion del programa hasta que el numero especificado de dispositivos del grupo especificado se haya conectado.

Puntos de Encuentro de Sincronizacion Directa

communication.synchronizationBarrierDirect("Alice", "inicioJuego")

Sincroniza acciones entre dispositivos en puntos especificos del programa, esperando a que un dispositivo especifico alcance el punto de encuentro antes de continuar.

Puntos de Encuentro de Sincronizacion de Grupo

communication.synchronizationBarrierGroup("Exploradores", "puntoReunion")

Sincroniza acciones entre dispositivos de un grupo en puntos especificos del programa, esperando a que todos los dispositivos del grupo alcancen el punto de encuentro antes de continuar.

Puntos de Encuentro de Sincronizacion por Difusion

communication.synchronizationBarrierBroadcast("finJuego")

Sincroniza acciones entre todos los dispositivos en el canal de comunicacion en puntos especificos del programa, esperando a que todos los dispositivos alcancen el punto de encuentro antes de continuar.

Mensajes Directos

Enviar Mensaje Directo

communication.sendDirectMessage("Bob", "Hola")

Envia un mensaje directamente a un dispositivo especifico identificado por su nombre.

Recibir Mensaje Directo

communication.onDirectMessageReceived(function(mensaje, emisor) {
    basic.showString(mensaje)
})

Define una accion a realizar cuando se recibe un mensaje directo de cualquier dispositivo.

Recibir Mensaje Directo de Emisor Especifico

communication.onDirectMessageReceivedFrom("Bob", function(mensaje) {
    basic.showString(mensaje)
})

Define una accion a realizar cuando se recibe un mensaje directo de un emisor especifico.

Valores Directos

Enviar Valor Directo

communication.sendDirectValue("Bob", "temperatura", 25)

Envia un valor con nombre a un dispositivo especifico identificado por su nombre.

Recibir Valor Directo

communication.onDirectValueReceived("temperatura", function(valor, emisor) {
    basic.showNumber(valor)
})

Define una accion a realizar cuando se recibe un valor con nombre de cualquier dispositivo.

Recibir Valor Directo de Emisor Especifico

communication.onDirectValueReceivedFrom("Bob", "temperatura", function(valor) {
    basic.showNumber(valor)
})

Define una accion a realizar cuando se recibe un valor con nombre de un emisor especifico.

Eventos Directos

Enviar Evento Directo

communication.sendDirectEvent("Bob", "inicio")

Envia un evento directamente a un dispositivo especifico, lo que puede desencadenar acciones especificas en el receptor.

Escuchar por Evento Especifico

communication.onDirectEventReceivedWithEvent("inicio", function(emisor) {
    basic.showString("Inicio desde " + emisor)
})

Ejecuta acciones en respuesta a la recepcion de un evento especifico enviado por cualquier dispositivo.

Escuchar por Evento Especifico de Emisor Especifico

communication.onDirectEventReceivedFromWithEvent("Alice", "inicio", function() {
    basic.showString("Inicio desde Alice")
})

Ejecuta acciones en respuesta a la recepcion de un evento especifico enviado por un emisor especifico.

Solicitudes

Enviar Solicitud

let value = communication.requestValue("Bob", "temperatura")
basic.showNumber(value)

Envia una solicitud a un dispositivo especifico identificado por su nombre, esperando una respuesta.

Recibir Solicitud

communication.onRequestReceived("temperatura", function(emisor) {

})

Define una accion a realizar cuando se recibe una solicitud de cualquier dispositivo.

Responder a Solicitud

communication.respondWithValue("Alice", "temperatura", 25)

Envia una respuesta a una solicitud recibida, con un valor con nombre especifico.

Mensajes de Grupo

Enviar Mensaje al Grupo

communication.sendMessageToGroup("Exploradores", "¡Reunion!")

Envia un mensaje a todos los miembros de un grupo especifico.

Recibir Mensaje de Grupo

communication.onReceivedMessageFromGroup("Exploradores", function(mensaje, emisor) {
    basic.showString(mensaje)
})

Define una accion a realizar cuando se recibe un mensaje de cualquier miembro del grupo especificado.

Recibir Mensaje de Grupo con Emisor Especifico

communication.onReceivedMessageFromGroupFrom("Exploradores", "Bob", function(mensaje) {
    basic.showString(mensaje)
})

Define una accion a realizar cuando se recibe un mensaje de un emisor especifico en el grupo especificado.

Valores de Grupo

Enviar Valor al Grupo

communication.sendValueToGroup("Exploradores", "temperatura", 25)

Envia un valor con nombre a todos los miembros de un grupo especifico.

Recibir Valor de Grupo

communication.onReceivedValueFromGroup("Exploradores", "temperatura", function(valor, emisor) {
    basic.showNumber(valor)
})

Ejecuta acciones en respuesta a la recepcion de un valor con nombre enviado por cualquier miembro del grupo.

Recibir Valor de Grupo con Emisor Especifico

communication.onReceivedValueFromGroupFrom("Exploradores", "Bob", "temperatura", function(valor) {
    basic.showNumber(valor)
})

Ejecuta acciones en respuesta a la recepcion de un valor con nombre enviado por un emisor especifico en el grupo especificado.

Eventos de Grupo

Enviar Evento al Grupo

communication.sendEventToGroup("Exploradores", "inicioActividad")

Envia un evento a todos los miembros de un grupo especifico, lo que puede desencadenar acciones especificas en los receptores.

Recibir Evento de Grupo

communication.onReceivedEventFromGroupWithEvent("Exploradores", "inicioActividad", function(emisor) {
    basic.showString("Actividad iniciada por " + emisor)
})

Ejecuta acciones en respuesta a la recepcion de un evento especifico enviado por cualquier miembro del grupo.

Recibir Evento de Grupo con Emisor Especifico

communication.onReceivedEventFromGroupFromWithEvent("Exploradores", "Bob", "inicioActividad", function() {
    basic.showString("Actividad iniciada por Bob")
})

Ejecuta acciones en respuesta a la recepcion de un evento especifico enviado por un emisor especifico en el grupo especificado.

Mensajes por Difusion

Enviar Mensaje por Difusion

communication.broadcastMessage("Alerta general")

Envia un mensaje a todos los dispositivos en el canal de comunicacion, independientemente del grupo.

Recibir Mensaje por Difusion

communication.onReceivedBroadcast(function(mensaje, emisor) {
    basic.showString(mensaje)
})

Define una accion a realizar cuando se recibe un mensaje de difusion de cualquier dispositivo.

Recibir Mensaje por Difusion con Emisor Especifico

communication.onReceivedBroadcastFrom("Bob", function(mensaje) {
    basic.showString(mensaje)
})

Define una accion a realizar cuando se recibe un mensaje de difusion de cualquier dispositivo.

Valores por Difusion

Enviar Valor por Difusion

communication.broadcastValue("alerta", "rojo")

Envia un valor con nombre a todos los dispositivos en el canal de comunicacion.

Recibir Valor por Difusion

communication.onReceivedValueBroadcast("alerta", function(valor, emisor) {
    if (valor == "rojo") {
        basic.showIcon(IconNames.No)
    }
})

Ejecuta acciones en respuesta a la recepcion de un valor con nombre enviado por cualquier dispositivo en modo de difusion.

Recibir Valor por Difusion con Emisor Especifico

communication.onReceivedValueBroadcastFrom("Bob", "alerta", function(valor) {
    if (valor == "rojo") {
        basic.showIcon(IconNames.No)
    }
})

Ejecuta acciones en respuesta a la recepcion de un valor con nombre enviado por un emisor especifico en modo de difusion.

Eventos por Difusion

Enviar Evento por Difusion

communication.broadcastEvent("evacuar")

Envia un evento a todos los dispositivos en el canal de comunicacion, lo que puede desencadenar acciones especificas en los receptores.

Recibir Evento por Difusion

communication.onReceivedEventBroadcastWithEvent("evacuar", function(emisor) {
    basic.showIcon(IconNames.Skull)
})

Ejecuta acciones en respuesta a la recepcion de un evento especifico enviado por cualquier dispositivo en modo de difusion.

Recibir Evento por Difusion con Emisor Especifico

communication.onReceivedEventBroadcastFromWithEvent("Bob", "evacuar", function() {
    basic.showIcon(IconNames.Skull)
})

Ejecuta acciones en respuesta a la recepcion de un evento especifico enviado por un emisor especifico en modo de difusion.

Proximidad

Encontrar Dispositivo Mas Cercano

let dispositivoCercano = communication.findClosestDevice()
basic.showString(dispositivoCercano)

Este bloque devuelve el nombre del dispositivo mas cercano basado en la intensidad de la senal de radio recibida.

Encontrar Dispositivo Mas Cercano en un Grupo

let dispositivoCercanoGrupo = communication.findClosestDeviceInGroup("Exploradores")
basic.showString(dispositivoCercanoGrupo)

Similar al bloque anterior, pero restringe la busqueda al grupo especificado, devolviendo el dispositivo mas cercano dentro de ese grupo.

Metadatos (utilizados para busqueda, renderizado)

  • for PXT/microbit
<script src="https://makecode.com/gh-pages-embed.js"></script><script>makeCodeRender("{{ site.makecode.home_url }}", "{{ site.github.owner_name }}/{{ site.github.repository_name }}");</script>

About

Extensión de MakeCode para Micro:bit que facilita la comunicación avanzada y sincronización entre dispositivos, promoviendo el aprendizaje interactivo y colaborativo del pensamiento computacional.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages