La extension "Comunicacion" mejora las capacidades de comunicacion entre dispositivos Microbit, permitiendo una interaccion mas avanzada y personalizada en proyectos educativos y de entretenimiento.
Este repositorio puede ser agregado como una extension en MakeCode.
- Abre https://makecode.microbit.org/
- Haz clic en Nuevo Proyecto
- Haz clic en Extensiones dentro del menu de la rueda dentada
- Busca por https://github.com/romanrguez192/communication e importa
Para editar este repositorio en MakeCode:
- Abre https://makecode.microbit.org/
- Haz clic en Importar, luego en Importar URL
- Pega https://github.com/romanrguez192/communication y haz clic en importar
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.
communication.setChannel(1)
Configura el canal de comunicacion (0-255) para limitar la interferencia con otros dispositivos.
communication.registerDevice("Alice")
Asigna un nombre identificativo a tu dispositivo Micro:bit, facilitando su identificacion en la red.
communication.joinGroup("Exploradores")
Permite que el dispositivo se una a un grupo especifico para comunicarse unicamente con los miembros de ese grupo.
communication.leaveGroup("Exploradores")
Retira el dispositivo del grupo especificado, deteniendo la recepcion de mensajes de ese grupo.
communication.waitForDevices(2)
Bloquea la ejecucion del programa hasta que el numero especificado de dispositivos se haya conectado.
communication.waitForDevice("Bob")
Detiene la ejecucion del programa hasta que el dispositivo con el nombre especificado se conecte.
communication.waitForDevicesInGroup(2, "Exploradores")
Bloquea la ejecucion del programa hasta que el numero especificado de dispositivos del grupo especificado se haya conectado.
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.
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.
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.
communication.sendDirectMessage("Bob", "Hola")
Envia un mensaje directamente a un dispositivo especifico identificado por su nombre.
communication.onDirectMessageReceived(function(mensaje, emisor) {
basic.showString(mensaje)
})
Define una accion a realizar cuando se recibe un mensaje directo de cualquier dispositivo.
communication.onDirectMessageReceivedFrom("Bob", function(mensaje) {
basic.showString(mensaje)
})
Define una accion a realizar cuando se recibe un mensaje directo de un emisor especifico.
communication.sendDirectValue("Bob", "temperatura", 25)
Envia un valor con nombre a un dispositivo especifico identificado por su nombre.
communication.onDirectValueReceived("temperatura", function(valor, emisor) {
basic.showNumber(valor)
})
Define una accion a realizar cuando se recibe un valor con nombre de cualquier dispositivo.
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.
communication.sendDirectEvent("Bob", "inicio")
Envia un evento directamente a un dispositivo especifico, lo que puede desencadenar acciones especificas en el receptor.
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.
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.
let value = communication.requestValue("Bob", "temperatura")
basic.showNumber(value)
Envia una solicitud a un dispositivo especifico identificado por su nombre, esperando una respuesta.
communication.onRequestReceived("temperatura", function(emisor) {
})
Define una accion a realizar cuando se recibe una solicitud de cualquier dispositivo.
communication.respondWithValue("Alice", "temperatura", 25)
Envia una respuesta a una solicitud recibida, con un valor con nombre especifico.
communication.sendMessageToGroup("Exploradores", "¡Reunion!")
Envia un mensaje a todos los miembros de un grupo especifico.
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.
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.
communication.sendValueToGroup("Exploradores", "temperatura", 25)
Envia un valor con nombre a todos los miembros de un grupo especifico.
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.
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.
communication.sendEventToGroup("Exploradores", "inicioActividad")
Envia un evento a todos los miembros de un grupo especifico, lo que puede desencadenar acciones especificas en los receptores.
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.
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.
communication.broadcastMessage("Alerta general")
Envia un mensaje a todos los dispositivos en el canal de comunicacion, independientemente del grupo.
communication.onReceivedBroadcast(function(mensaje, emisor) {
basic.showString(mensaje)
})
Define una accion a realizar cuando se recibe un mensaje de difusion de cualquier dispositivo.
communication.onReceivedBroadcastFrom("Bob", function(mensaje) {
basic.showString(mensaje)
})
Define una accion a realizar cuando se recibe un mensaje de difusion de cualquier dispositivo.
communication.broadcastValue("alerta", "rojo")
Envia un valor con nombre a todos los dispositivos en el canal de comunicacion.
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.
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.
communication.broadcastEvent("evacuar")
Envia un evento a todos los dispositivos en el canal de comunicacion, lo que puede desencadenar acciones especificas en los receptores.
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.
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.
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.
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.
- for PXT/microbit