# Métodos para interactuar los objetos y el robot (dispositivo)

Si queremos que nuestro robot se pueda comunicar con el objeto o objetos que tenga mBlock, antes con mBlock 3.0 la comunicación era inmediata, fíjate en este script de una alarma:

[![embedded-image-xGEexnUg.jpeg](https://libros.catedu.es/uploads/images/gallery/2022-02/scaled-1680-/embedded-image-xgeexnug.jpeg)](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-xgeexnug.jpeg)

Mezcla en el mismo script:

- órdenes específicas de la placa arduino (set digital...)
- órdenes específicas del objeto que exista en mBlock (por defecto el oso panda) say .... switch costume to ....
- órdenes del fondo switch backdrop to ...

Con mBlock 5.0 **YA NO SE PUEDE**, pero tenemos unos trucos

## <span style="color: rgb(22, 145, 121); background-color: rgb(255, 255, 255);">**MÉTODO UTILIZAR VARIABLES GLOBALES**</span>

Se pueden crear variables, en cualquier objeto, y las lee cualquier objeto,

<p class="callout warning">**<span style="text-decoration: underline;">Este método se utiliza con la opción EN VIVO</span>**</p>

[![variablesglobales.jpg](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/variablesglobales.jpg)](https://libros.catedu.es/uploads/images/gallery/2023-12/variablesglobales.jpg)

De esta manera si creamos una variable **frase** para todos los objetos:

[![frase3.jpg](https://libros.catedu.es/uploads/images/gallery/2023-09/scaled-1680-/frase3.jpg)](https://libros.catedu.es/uploads/images/gallery/2023-09/frase3.jpg)

Podemos usarla en el robot

[![frase1.jpg](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/frase1.jpg)](https://libros.catedu.es/uploads/images/gallery/2023-12/frase1.jpg)

y el programa del objeto que queramos, en este caso el oso panda lo puede visualizar

[![frase2.jpg](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/frase2.jpg)](https://libros.catedu.es/uploads/images/gallery/2023-12/frase2.jpg)

## <span style="color: rgb(22, 145, 121); background-color: rgb(255, 255, 255);">**MÉTODO UTILIZAR MENSAJES**</span>

Cualquier objeto tiene a su disposición enviar mensajes a los otros

<p class="callout warning">**<span style="text-decoration: underline;">Este método se utiliza con la opción EN VIVO</span>**</p>

[![mensajes.jpg](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/mensajes.jpg)](https://libros.catedu.es/uploads/images/gallery/2023-12/mensajes.jpg)

## <span style="color: rgb(22, 145, 121); background-color: rgb(255, 255, 255);">**MÉTODO EXTENSIÓN BROADCAST = TRANSMITIR MENSAJES**</span>

<p class="callout warning"><span style="color: rgb(0, 0, 0);">**Este método se utiliza con la opción EN CARGA**</span></p>

Es parecido al anterior, hay que ir al + que hay abajo para instalar extensiones

[![arduino-pelotahinchadistancia3.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/arduino-pelotahinchadistancia3.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/arduino-pelotahinchadistancia3.png)

Buscar la extensión "Broadcast" e instalarla

[![broadcast.jpg](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/broadcast.jpg)](https://libros.catedu.es/uploads/images/gallery/2023-12/broadcast.jpg)

Se instala primero descargándola con el + aquí

[![broadcast1.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/broadcast1.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/broadcast1.png)

Y luego añadir una vez descargada

[![broadcast2.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/broadcast2.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/broadcast2.png)

Entonces aparecen unas nuevas instrucciones

[![broadcast3.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/broadcast3.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/broadcast3.png)

y se instalan unas instrucciones extras parecidas a las anteriores pero más potentes

- En el mismo mensaje podemos transmitir valores asociados
- Funciona **EN MODO CARGA**
    - Esto es muy útil pues hay instrucciones que sólo se pueden utilizar en modo CARGA, de esta manera podemos pasar valores de la placa electrónica a los objetos del ordenador (oso panda o lo que sea) simplemente teniendo conectado la placa con el ordenador.

<p class="callout success">El resto de objetos trabajan en modo vivo, es decir, si cambias un bloque, automáticamente se ven los efectos</p>

<p class="callout success">A lo otros objetos TAMBIÉN hay que instalar la extensión BROADCAST</p>

<p class="callout warning">**DESVENTAJA** no se pueden transmitir mensajes de objetos a la placa. Sólo de la placa a los objetos</p>