Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sensores y
actuadores 3
1.1. Introducción y objetivos 3
1.2. La placa controladora 3
1.3. Sensores y actuadores 7
1.4. Componentes digitales y analógicos. Placa Zum Core 8
1.5. Primeros pasos con Bitbloq 12
1.6. Cómo programar la placa controladora con Bitbloq 19
1.7. Nuestro primer reto: ¡Hola mundo! 22
Referencias bibliográficas 80
En este tema conoceremos qué es una placa controladora y cuáles son sus partes
principales, así como los tipos de componentes que podremos conectarle. Además,
aprenderemos cómo empezar a programarla y la herramienta de programación que
utilizaremos a lo largo de todo el curso.
La placa recibe información del entorno a través de los sensores que se le conectan,
tal como hacen nuestros sentidos. A su vez actúa sobre su entorno mediante los
actuadores. Ambos componentes se conectan a la placa controladora a través de
Por su naturaleza libre (diseñado para que cualquiera pueda usarlo, entenderlo,
aprender de él, modificarlo y redistribuirlo) surgieron además empresas que
realizaron modificaciones a las placas, adaptándolas a otras necesidades y creando
nuevos periféricos que pudieran usarse con ellas.
Por todo ello, para trabajar en este curso la robótica y la programación, utilizaremos
el kit Zum Kit Advanced, que está adaptado para Secundaria, teniendo la placa y los
componentes electrónicos visibles (no encapsulados) y adaptados para una
conexión mediante pines.
La placa Zum Core posee 20 pines de entrada o salida distribuidos entre pines
digitales y pines analógicos. Más adelante veremos el tipo de componentes que
podemos conectar a cada uno de ellos.
Figura 3. Zum Core 2.0 - Placa de la familia Arduino optimizada para robótica.
La palabra robot proviene del checo: robota, que significa trabajo duro o forzado. Se
usó por primera vez durante la obra de teatro Rossum Universal Robots de Karel
Čapek y su uso se extendió gracias a las obras de ciencia ficción creadas por el
escritor Isaac Asimov.
A menudo nos imaginamos a un robot como una máquina con forma humana que
camina, habla, gesticula… pero en realidad es algo mucho más sencillo:
“Un robot es una máquina automática programable que es capaz de interpretar
información del medio físico para modificar su conducta. Tiene la capacidad de
interactuar con el entorno y, en función de ello, realizar unas funciones u otras.”
Si comparamos un robot con una persona, los sensores serían sus sentidos. Éstos
transmiten información a su sistema de control o cerebro, modificando su
comportamiento e influyendo sobre el mundo mediante sus actuadores. Además,
un robot necesitará una fuente de energía para funcionar y una estructura física
para sostener los elementos que lo componen.
Vamos a ver los distintos componentes que podemos utilizar con la placa Zum Core
divididos entre sensores y actuadores:
Sensores
Actuadores
Registro
Bitbloq permite trabajar en su plataforma de dos formas: como invitado o con una
cuenta de usuario. Esta última opción tiene la ventaja de que se pueden guardar los
proyectos que se van creando, descargarlos, verlos o modificarlos cuando se quiera
y compartirlos con la comunidad. Para crear una cuenta de Bitbloq debemos tener
un correo electrónico propio y tener al menos 14 años.
Una vez completado el registro podemos iniciar sesión en Bitbloq yendo a su página
principal y haciendo clic en Entrar.
Tras esta acción, nos aparecerá la página de Mis documentos. Aquí podemos crear
nuevos documentos de diversos tipos o ver los ya creados.
También podemos crear nuevas carpetas, para ordenar los documentos como
necesitemos.
Para empezar a programar con esta herramienta, hacemos clic en Nuevo documento
/ Bitbloq Robotics.
Para ello, desde la pestaña Placas, arrastramos nuestra placa hasta el espacio
marcado. Desde la pestaña Componentes, arrastramos los elementos hasta la zona
blanca que rodea la placa. Podemos cambiar el nombre del componente si lo
deseamos. Será conveniente cuando tengamos más de un componente del mismo
tipo, por ejemplo, dos LED. Conectamos el componente a la placa controladora
haciendo clic en el punto verde que se encuentra en la parte inferior del mismo y
arrastrando hasta el pin o conector deseado. Es importante conectar los
componentes en Bitbloq en los mismos pines o conectores que en la placa física.
Empezamos por el programa más simple que podemos realizar, nuestro ¡Hola
mundo!
Encender un LED
En la parte superior derecha, hacemos clic en Verificar para comprobar que todo
está correcto y posteriormente en Cargar.
Cuando aparezca el mensaje “Cargada con éxito”, se ejecutará el encendido del LED.
Sabiendo esto, podemos pensar que las instrucciones que debemos dar a la placa
para hacer el parpadeo son Encender LED - Apagar LED, dentro del bucle para que
se repitan indefinidamente. Sin embargo, nuestra placa controladora piensa muy
rápido, si le decimos que apague el LED tras darle la orden de encendido pasará de
Para solucionarlo tenemos que hacer esperar un tiempo mediante el bloque Esperar
que encontramos en la categoría de Control, en la pestaña Básicos.
En nuestro caso vamos a hacer que el LED parpadee con una cadencia de un
segundo, por lo que escribiremos 1000 milisegundos. Tras la espera podemos
apagar el LED y, como el programa se repite indefinidamente, deberemos esperar
otro segundo antes de volver a empezar.
La secuencia de acciones para que parpadee un LED (con una espera de 1 segundo)
será entonces: Encender - Esperar 1 segundo - Apagar - Esperar 1 segundo -
Encender - etc.
El programa quedaría de la siguiente manera:
¿Cómo podemos hacer que dos LED se enciendan a la vez y se apaguen a la vez?
Al conectar dos componentes del mismo tipo, nos será más fácil programarlos si le
ponemos un nombre a cada uno para diferenciarlos. Pero si no lo hacemos, Bitbloq
generará un nombre específico automáticamente. Este nombre nos permitirá
seleccionar en el bloque sobre qué LED queremos actuar.
La placa controladora:
▶ Piensa (procesa) las cosas de una en una, no puede hacer dos cosas a la vez.
▶ Piensa y repite acciones muy rápido, tanto que a veces no podemos ni ver lo
En este tema, aprenderemos qué son las sentencias condicionales y los bucles y
como puedo programarlos con Bitbloq. Seremos capaces de leer los valores que le
llegan a nuestra placa desde los sensores y veremos cómo pueden ayudarnos los
diagramas de flujo a entender la estructura de un programa.
En una sentencia condicional nos planteamos una pregunta para actuar de una
forma u otra según la respuesta a la misma. Por ejemplo, si llueve, abrimos el
paraguas. Si por el contrario no llueve, lo cerramos. Si hace frío, nos ponemos el
abrigo. Si hace calor, nos lo quitamos. Si es de noche, encendemos una luz. Si por el
contrario es de día, la apagamos.
● Placa controladora
● Botón
● LED
Figura 26. Componentes LED y Botón conectados a la placa controladora Zum Core.
Dentro del bloque Si colocamos el bloque con la acción que queremos que ocurra,
en este caso Encender el LED. Y a continuación situamos un de lo contrario, para que
cuando no se cumpla esta condición el LED se apague.
Recuerda que nuestra placa controladora nunca hace nada que no le hayamos
dicho. Debemos programar todo lo que queramos que haga. Si solo programamos
que cuando el botón esté pulsado el LED se encienda y no le decimos cuándo debe
apagarse, el LED nunca se apagará.
Vamos a ver otro reto en el que tengamos que utilizar las sentencias condicionales:
realizar una lámpara inteligente que encienda un LED cuando esté oscureciendo.
Ya hemos visto cómo utilizar las sentencias condicionales con un sensor digital, el
botón, por lo que vamos a practicarlas ahora con un sensor analógico, el sensor de
luz.
Figura 29. Componentes LED y Sensor de luz conectados a la placa controladora Zum Core.
Representa el proceso o acción que se ejecuta a partir de unos datos, que pueden ser de
entrada, salida o resultado de algún proceso anterior.
Representa una condición o pregunta que puede tener varios caminos: si/no,
verdadero/falso, mayor que/menor que, igual a/diferente a, etc.
Para el caso del reto encender un LED al pulsar un botón, el diagrama de flujo que
representa el algoritmo es el siguiente:
Es una buena práctica tanto para nosotros, como para nuestros alumnos y alumnas,
desarrollar el diagrama de flujo de los ejercicios que propongamos antes de
programarlos. Les ayudará a simplificar el problema y les resultará más sencilla su
resolución.
Un bucle es una parte del programa que se repite mientras se cumpla una
condición.
Como hemos comentado antes, un bucle es una parte del programa que se repite
mientras se cumpla una condición. El bucle Mientras o While repite una serie de
acciones mientras una condición sea verdadera. Por ejemplo, mientras llueva no
saldremos a la calle y leeremos un buen libro. Cuando la condición deja de ser
verdadera, el programa sale del bucle y continúa con la siguiente instrucción.
La estructura del bloque Mientras es muy similar a la del bloque condicional Si. La
diferencia en este caso es que cuando la condición sea verdadera, la programación
permanecerá en ese bucle Mientras, realizando las instrucciones que se han
introducido en él y paralizando el Bucle principal, hasta que la condición deje de
cumplirse. En el caso del bloque Si, cuando la condición se cumpla, se realizarán las
instrucciones, saldrá del bloque Si y continuará con la siguiente instrucción que haya
dentro del Bucle principal.
● Placa controladora
● Sensor de luz
● Zumbador
Figura 35. Componentes Zumbador y Sensor de luz conectados a la placa controladora Zum Core.
Para usar el monitor puerto serie con el ordenador debemos mantener conectada la
placa controladora mediante el cable USB. En la pestaña Hardware seleccionamos el
componente USB serie y lo arrastramos a la parte gris que rodea la placa, se
conectará automáticamente al puerto USB de esta. El baudrate es la cantidad de
información que se transmite en un segundo y se mide en baudios (bits/segundo).
Utilizaremos el baudrate que aparece por defecto: 9600 baudios.
Nuestro primer ejemplo va a consistir en mostrar un mensaje por pantalla. Para ello,
en la pestaña Bloques, en la categoría Componentes, encontramos los bloques de
comunicación: Recibir, Recibir número y Enviar. Elegimos el bloque Enviar y lo
situamos en el apartado Bucle principal (Loop). Seleccionamos la opción USB_serie
en el desplegable y dejamos la opción Con salto de línea para mostrar los mensajes
en líneas diferentes. En caso de que queramos que nos los muestre en la misma
línea, elegiremos Sin salto de línea en el desplegable.
Se abrirá una ventana nueva donde aparecerá el mensaje que hemos escrito, con
una cadencia de 1 segundo. Puedes cambiar a la opción de Sin salto de línea para
visualizar un mensaje seguido del otro, pero es importante que, si vas a realizar un
cambio en la programación, primeramente, cierres el Monitor Puerto Serie, a
continuación cargues el programa y, una vez cargado a la placa, vuelvas a abrir el
Monitor Puerto Serie.
Al igual que hemos hecho con el mensaje de texto, podemos mandar la lectura de
cualquier sensor a través del Monitor puerto serie.
Vamos a leer los valores que el sensor de luz está enviando a la placa.
Colocamos en la pestaña Hardware los elementos necesarios:
● Placa controladora
● USB_serie
● Sensor de luz
Figura 41. Componentes USB serie y sensor de luz conectados a la placa controladora Zum Core.
Para poder ver los valores, como hemos comentado antes, cargamos el programa en
la placa y, a continuación, hacemos clic en Ver y Mostrar Monitor Puerto Serie.
En este tema aprenderemos qué son las variables y qué son las funciones, para qué
se utilizan y cómo podemos implementarlas en los programas que realizamos.
Una variable es como una “caja” donde guardamos un dato. Este valor que
guardamos lo podremos consultar y utilizar siempre que lo necesitemos. Si no lo
guardásemos el programa no lo recordaría. Además, como veremos más adelante,
en cualquier momento podremos cambiar el valor guardado en la variable.
Declaración de variables
Al declarar una variable en nuestro programa lo que hacemos es crear esa caja y
guardar por primera vez un dato en ella.
En el momento en que declaramos una variable definimos de qué tipo es. Por
ejemplo, si lo primero que guardamos es un número, esa variable siempre va a
guardar números, pero si lo primero que guardamos es una palabra o texto, solo
podrá contener texto.
También podemos guardar en una variable el valor que nos devuelve un sensor.
Al declarar una variable, también será importante decidir si queremos utilizar una
variable global o una variable local.
Una vez declarada la variable, podemos realizar dos acciones con ella:
Por ejemplo, una tarea que hemos realizado varias veces en otros ejercicios es hacer
parpadear un LED, lo cual implica una serie de pasos (encender, esperar, apagar…).
Podría resultarnos útil y cómodo no tener que escribir todos los pasos cada vez, sino
tener una función parpadeo que lo automatice.
Lo primero que tenemos que hacer es definir qué hace nuestra función, es decir,
qué tarea o conjunto de tareas realiza. Esto siempre lo tenemos que escribir en el
apartado Variables globales y funciones de nuestro programa. Para ello utilizamos la
pestaña función1, donde debemos cambiarle el nombre haciendo clic en los tres
puntos y con ello quedará declarada. Al igual que con las variables, debemos
nombrarlas siguiendo las mismas reglas. Después, siempre que queramos utilizarla,
tendremos que ejecutarla en el Bucle principal (Loop) con el bloque Ejecutar de la
categoría Funciones:
Imaginemos ahora que queremos tocar una pequeña melodía varias veces en
distintos momentos del programa y encender un LED presionando un botón.
Normalmente deberíamos repetir todos los bloques de la melodía cada vez que
queramos usarla. Al final tendríamos un programa largo y difícil de entender y
De nuevo, para poder utilizar una función, primero hay que crearla dentro de la
zona Variables globales y funciones.
Una vez creada, es necesario ejecutarla dentro del Bucle principal (Loop). Las
funciones no se ejecutan a no ser que las llamemos mediante el bloque Ejecutar.
Figura 49. Ejemplo de ejecución de una función dentro de una estructura de programación.
Como podemos ver, el programa es mucho más corto usando funciones, siendo
mucho más rápido y fácil de crear. Además, si por alguna razón queremos modificar
la melodía, solo tendremos que cambiarla en la función y no en cada parte del
programa.
Y añadimos también una pequeña espera de 0,5 segundos para poder ver mejor los
valores en el Monitor Puerto Serie.
IMPORTANTE. Si declaramos una variable, dentro de una función, esa variable será
local y solo podrá ser utilizada dentro de dicha función.
Vamos a analizar en qué estados pueden estar dos LED. Consideramos que cada LED
puede estar apagado o encendido. Al tener dos LED, podemos tener cuatro estados
diferentes.
LED 1 LED 2
Estado 2 (S2) ON ON
Ahora vamos a pensar que el evento que va a originar el cambio de estado va a ser
la pulsación de un botón. Cada vez que pulsemos el botón cambiaremos al siguiente
estado y del estado final (S3) volveremos al inicial (S0). Podemos ver la
representación del cambio de estados en en el siguiente diagrama de estados,
siendo EV el evento que origina el cambio:
“Este año he tenido mucho tiempo libre, así que he decidido comprar un montón de
LED para crear las luces de mi árbol navideño. Me he fijado en luces ya hechas y,
normalmente, tienen tres estados: los LED apagados, los LED que parpadean al
mismo tiempo y los LED que parpadean alternativamente. Voy a basarme en ese
comportamiento de forma que cada vez que presione el botón pasaré al siguiente
modo de luz.”
Vamos a simular el problema con dos LED y un botón, que va a hacer que pasemos
al siguiente estado, el evento.
En el primer estado, S0, se apagan ambos LED. En el segundo estado, S1, parpadean
al mismo tiempo y en el tercer estado, S2, parpadean alternativamente.
LED 1 LED 2
Empezamos por la parte del programa que realiza el cambio entre estados.
Queremos que cada vez que presionemos el botón pasemos al siguiente estado,
para lo cual, lo primero que vamos a realizar es declarar una variable global, que
Cambiaremos de estado cada vez que presionemos el botón, lo que implica sumar 1
a la variable, excepto cuando estemos en el estado 2 y presionemos de nuevo el
botón, que volveremos al estado inicial, 0.
Figura 56. Programación que realiza el cambio del valor de la variable estado.
Queremos que los LED se comporten de una forma u otra según el valor que tenga
la variable estado. Para ello utilizaremos el bloque Comprobar cuál es el valor de
que se encuentra en la categoría de Control. Este bloque comprueba el valor que
tiene la variable que le indiquemos en el desplegable y lleva asociados los bloques si
es igual a, ejecutar y en otro caso, ejecutar. Utilizaremos cada uno de ellos igual que
los bloques condicionales, introduciendo las instrucciones a realizar en cada uno de
los valores de la variable o estados.
Podemos comprobar que cada vez que pulsamos el botón vamos cambiando de
estado y los LED se comportan de distinta manera.
En el bloque básico que ejecuta su sonido, aparte del tiempo de duración, podemos
elegir entre unas notas predeterminadas. Sin embargo, es muy habitual que los
alumnos y alumnas necesiten otras notas que no aparecen en dicho bloque para
poder crear una melodía proveniente de una partitura.
A partir de ahí, si queremos notas más agudas, nos iremos a octavas superiores y si
las queremos más graves, nos iremos a octavas inferiores.
Octavas
1ª 2ª 3ª 4ª 5ª 6ª 7ª 8ª
Para introducir dichas frecuencias, rellenaremos los huecos del bloque avanzado
Sonar zumbador con dos bloques de número e introduciremos en el primero la
frecuencia de la nota musical y en el segundo el tiempo de duración de la nota.
Así por ejemplo, si deseamos hacer sonar el zumbador con un Do agudo, que se
corresponde con la 5ª octava, durante 1 segundo, rellenaremos el bloque de la
siguiente manera:
Figura 60. Ejemplo de cómo rellenar los bloques avanzados Sonar zumbador.
El bucle Contar o For repite una serie de acciones un número concreto de veces.
Ya vimos la versión más sencilla de este bloque en el apartado 3.6. con el bloque
Repetir. La diferencia fundamental en este caso es que el bloque Contar nos
permitirá modificar ciertos parámetros y utilizar el resultado de la operación (sumar
o restar) dentro de una variable.
Vamos a verlo con un ejemplo: el reto consiste en hacer parpadear un LED cada vez
más lento.
Dentro del bucle, introduciremos las instrucciones a realizar, que en este caso será
hacer parpadear un LED. Tendremos en cuenta que el tiempo de espera no será fijo
esta vez, sino que dependerá de la variable. Para lograr esto, utilizaremos el bloque
Esperar que se encuentra en la pestaña Avanzados de la categoría de Control.
Para poder entender cómo utilizar estos bloques, vamos a realizar algunos ejemplos
con un servo. Recordamos primeramente que el servo es capaz de posicionarse en
el lugar que le indiquemos de la escala de 0 a 180 grados y permanecer en esa
posición hasta que le indiquemos otra.
En el primer hueco situaremos aquella medida que queremos mapear, para nuestro
ejemplo la lectura del potenciómetro. En el segundo hueco situaremos hasta qué
valor va a llegar la nueva escala, en nuestro caso 180. Como podemos observar, el
primer valor de la escala no podemos elegirlo en el bloque básico Mapear, sino que
viene fijado a 0.
Hemos comentado anteriormente que es recomendable evitar los valores límites del
servo, es decir los grados 0 y 180 por lo que podemos reducir el rango a 5 - 175
grados. Pero con el bloque básico Mapear no podríamos realizarlo, ya que el valor 0
viene fijado. Vamos a utilizar para ello el bloque Mapear de la pestaña Avanzados.
Este bloque deja abierta la posibilidad de elegir cualquiera de los dos rangos que
vamos a referenciar.
En muchos de los programas que hemos ido realizando hemos incluido alguna
espera con el bloque Esperar para simular la parada del bucle. Pero este bloque
puede darnos muchos problemas cuando queremos que nuestro programa realice
más acciones. La orden Esperar detiene toda la programación de la placa mientras
dure el tiempo indicado, por lo que no podremos realizar ninguna otra acción hasta
que esta termine.
En una primera lectura puede parecernos un programa sencillo, ya que son dos
acciones fáciles de programar por separado, por lo que podemos realizar la
siguiente programación dentro del apartado Bucle principal (Loop):
Sin embargo, esta programación no sería la más adecuada, ya que durante las
instrucciones Esperar la placa estará detenida. Mientras la placa está detenida no se
comprobará si el botón está pulsado o no, por lo que el segundo LED no se
encenderá si no tenemos el botón pulsado entre parpadeo y parpadeo.
El problema ahora es que sabemos que tras 2000 milisegundos hay que encender el
LED o apagarlo, pero no sabemos en qué estado está dicho LED, por lo que es
necesario almacenar su estado en otra variable a la que llamaremos estadoLed.
Por último, tras cambiar el estado del LED, volvemos a situar la variable
tiempoDeEspera 2000 milisegundos por encima del tiempo de ejecución, para que
vuelva a cambiar el estado del LED 2000 milisegundos más tarde.
La lógica booleana se basa en preguntas que solo tienen dos respuestas posibles:
sí/no o verdadero/falso.
Operación “o”
En este caso el resultado solo será falso si ambas entradas son falsas, y será
verdadera si una de las entradas, o ambas, son verdaderas.
Operación “y”
Figura 79. Componentes Sensor infrarrojo 1, Sensor infrarrojo 2 y Servo conectados a la placa controladora
Zum Core.
En este caso, apagaremos el LED siempre que la luz ambiente sea alta o si ésta es
baja pero no está pulsado el botón, ni se está detectando presencia. Encendemos el
LED cuando la luz ambiente es baja y el botón se ha pulsado o el sensor infrarrojo
detecta presencia o ambas cosas a la vez.
Figura 81. Componentes Botón, Sensor de infrarrojos, LED y Sensor de luz conectados a la placa
controladora Zum Core.
Si nos fijamos, sólo nos queda un hueco en el que podremos formar una condición,
pero en nuestro ejemplo necesitamos formar dos más. Para poder realizarlo,
anidaremos un bloque “y”, como puedes ver en la imagen, en el hueco que nos
queda libre.
Una característica muy útil de las funciones es que pueden utilizar variables creadas
específicamente para ellas. A estas variables las llamamos argumentos.
Los dos tipos de funciones que hemos visto hasta ahora, sin retorno y con retorno,
pueden a su vez llevar argumentos que las definan. Los bloques para usar este tipo
Cuando definimos una función con argumentos, tenemos que especificar sus
variables asociadas (argumentos), es decir, declararlas y definir de qué tipo son y
cómo se llaman. Estas variables sólo existirán dentro de la función y su valor lo
especificaremos cada vez que la ejecutemos.
● Entero. Para declarar una variable numérica que sólo admite valores enteros.
● Decimal. Para declarar una variable numérica que admite valores decimales.
● Texto. Para declarar una variable que admite textos. Podemos introducir un
número, pero este será interpretado también como un texto, no podremos
realizar operaciones matemáticas con él, como sumarlo o restarlo.
Imaginemos que queremos que un LED parpadee a distintas frecuencias que van a
depender del valor de un potenciómetro.
Figura 86. Componentes LED y Potenciómetro conectados a la placa controladora Zum Core.
ℎ² = 𝐶𝐴² + 𝐶𝐵²
ℎ= 𝐶𝐴² + 𝐶𝐵²
Como hemos visto, para calcular la hipotenusa necesitamos saber el valor de sus
catetos. Podemos introducirlos en la función como argumentos, “cateto_A” y
“cateto_B”, siendo ambos de tipo decimal. Para introducir los dos en la función
usaremos el bloque coma, que se encuentra en la pestaña Avanzados de la categoría
de Funciones, y lo ponemos en el hueco destinado para ello.
4. Aparecerá el siguiente cuadro de diálogo, en el cual debemos hacer clic en Sí, está
conectada.
7. Para Sistemas Operativos Linux, todos los pasos realizados son iguales excepto el 5 y el
6, que son sustituidos por:
Una vez le hemos dicho que la placa está conectada, nos aparece la siguiente ventana:
Abrimos la Terminal y ejecutamos el comando que nos indica en la ventana (es muy
importante respetar mayúsculas y minúsculas). Cuando nos lo pida introduciremos la
contraseña de nuestro equipo y pulsaremos la tecla Intro.
Esto ocurre cuando se utiliza un navegador diferente a Google Chrome, puesto que
Bitbloq solo es compatible al 100% con este navegador.
En los demás navegadores puede funcionar, pero es muy probable que no aparezcan
todas las opciones.
Para trabajar con Bitbloq se debe disponer de una conexión a Internet lo más estable
posible.
Problemas con la placa Zum Core 2.0/Zum Core y los componentes del kit
Zum Advanced
Listado de problemas que pueden surgir con la placa Zum Core 2.0/Zum Core y los
componentes del kit de robótica Zum Advanced.
No detecta la placa
Si la placa Zum Core 2.0 está correctamente conectada al ordenador a través del cable
USB pero Bitbloq no detecta la placa, lo más probable es que el interruptor de la placa
esté en modo OFF. Para solucionarlo, se debe revisar la placa y cambiar el interruptor a
modo ON.
Sin embargo, la placa Zum Core, cuando está en modo OFF, sí permite que el programa se
cargue a la placa, aunque este no se ejecuta. Para que se ejecute hay que cambiar el
interruptor a modo ON.
En primer lugar, se debe comprobar que los componentes están bien conectados, es decir,
que los cables coinciden con los colores de los pines a los que está conectado el
componente.
A continuación, será necesario comprobar que los componentes están conectados en los
mismos pines tanto físicamente (en la placa) como en el apartado Hardware de Bitbloq.
Si sigue sin funcionar, se deberá comprobar que el componente no está estropeado
probándolo de forma aislada en un programa sencillo.
El servo de rotación continua gira cuando debería estar parado (solo para los
servos que poseen dicha funcionalidad)
Para ello, en la parte trasera del componente hay un tornillo que se debe girar con el
destornillador (preferentemente plano) poco a poco hasta que el servo permanezca
quieto.
Para evitar estropear el kit de robótica, deben tenerse en cuenta estas consideraciones:
● Si se fuerza el giro de los servos o se utilizan para mover algo con demasiado peso,
pueden romperse.
● Si la placa Zum Core está conectada y los puntos de soldadura contactan con algún
material metálico, puede producirse un pequeño cortocircuito e inutilizar la placa.