Funduino Calle - robot móvil para la enseñanza

FunduinoÚltima actualización el

Linienverfolger, Ultraschall und NeoPixel mit MakeCode

Der Fahrroboter Calle wird mit dem Calliope mini V3 gesteuert. Programmiert wird er grafisch in MakeCode – du steckst die Blöcke im Browser zusammen und überträgst das Programm per USB auf den Calliope.

Die Anleitung führt dich durch alle Funktionen des Roboters:

  • Motoren ansteuern und vorwärts, rückwärts und im Kreis fahren
  • Scheinwerfer und NeoPixel-LEDs schalten
  • Einer Linie folgen mit den beiden Liniensensoren
  • Hindernissen ausweichen mit dem Ultraschallsensor

Vorkenntnisse brauchst du keine. Jeder Abschnitt beginnt mit einem kurzen Erklärstück und endet mit einem fertigen Beispielprogramm zum Nachbauen.

Robot móvil Calle con Calliope mini V3 acoplado
Programación con Calliope mini V3

Montaje: las ruedas motrices

El montaje de Calle es bastante sencillo: solo hay que montar las dos ruedas motrices y la rueda loca delantera. Antes, rompe con la mano los bordes laterales de la placa de circuito: solo son necesarios durante la producción para darle estabilidad.

Fija los motores a la parte inferior con los soportes blancos. Asegúrate de que la parte saliente del soporte y el eje del motor queden orientados hacia fuera.

Pasa los cables de ambos motores por la abertura de la placa de circuito hacia la parte superior y conecta los conectores JST en los zócalos correspondientes. La orientación de los cables negros y rojos es indiferente, ya que los conectores solo encajan en una posición.

Motores montados en la parte inferior con los soportes blancos
Montar motores de accionamiento
Conectores JST de los motores en los zócalos de la parte superior
Conecta el enchufe del motor
1 / 2

Estructura: rodillo y componentes

La rueda delantera funciona como una rueda de apoyo y sigue todos los movimientos que producen los dos motores de accionamiento.

Fija dos separadores hexagonales entre la rueda y la placa con dos tornillos cortos de nailon. Estos colocan la rueda a la altura adecuada para las ruedas motrices. Después, fija la rueda debajo de la placa introduciendo otros dos tornillos desde la parte superior por los orificios previstos y enroscándolos en los separadores.

Por último, conecta los demás componentes -los sensores de seguimiento de línea y el sensor ultrasónico- en la parte superior de la placa.

Crear un proyecto de MakeCode

Calle se programa con el IDE MakeCode. Si nunca has trabajado con un Calliope, primero deberías familiarizarte con él.

En MakeCode, un programa nuevo se llama «proyecto». Haz clic en «Nuevo proyecto», ponle un nombre -en este ejemplo, «Calle»- y haz clic en «Crear». Como Calle está diseñado para el Calliope mini V3, selecciona este microcontrolador.

A la izquierda ves el controlador seleccionado y, a su lado, los bloques de programación. En el área grande del centro ya están los bloques «al iniciar» y «para siempre»; están ahí de forma predeterminada.

Interfaz de MakeCode con los bloques «al iniciar» y «para siempre»
La interfaz de programación

Ejercicio práctico: encender los faros delanteros

Tarea: Los dos faros de Calle se deben encender y apagar con los botones A y B. Son dos LED conectados al pin C12 del Calliope.

Sin programación, el contacto C12 tiene el estado «0»: no hay tensión y los LED no se encienden. Con el bloque «escribir el valor digital del pin C12 en 1» cambias el estado a «1» y el Calliope emite 3,3 V por este contacto.

Ve a Avanzado → Pines, selecciona en la sección Digital «escribir el valor digital del pin P0 en 0» y cambia el pin a C12. Duplica este bloque: con el botón A, ponlo en 1; con el botón B, en 0.

Después, haz clic en «Descargar», conecta el cable al Calliope y al ordenador, haz clic en «Siguiente» y luego en «Emparejar». En la ventana emergente, selecciona el Calliope: ya estás conectado.

Si no se puede establecer la conexión, suele deberse al navegador: Safari, Firefox e Internet Explorer no son compatibles con WebUSB. En cambio, Chrome, Edge y Opera sí lo son.

Programa: C12 con el botón A en 1, con el botón B en 0
Faros mediante los botones A y B
Ventana emergente con el Calliope conectado
El Calliope está conectado.
1 / 2

Seguidor de líneas: leer los valores de los sensores

Los sensores de línea emiten una señal de voltaje —o no—, dependiendo de si detectan una superficie clara o una línea oscura.

Para seguir usando el valor medido, necesitas un espacio de almacenamiento: una variable. En Variables → Crear una variable, crea una variable con el nombre «LinienVerfolgerLinks». Arrastra el bloque «establece LinienVerfolgerLinks en 0» dentro del bloque «para siempre».

Luego, haz clic en Avanzado → Digital, arrastra «valores digitales del pin P0» hasta donde está el «0» y cambia el contacto a C15.

Para ver qué indica el sensor, añade el bloque «mostrar texto» de Fundamentos y sustituye el texto predeterminado por la variable. Después de cargar el programa, aparecerá un «0» o un «1» en la matriz LED.

El artículo afirma en un punto que la señal «1» corresponde a una superficie clara y, un capítulo más adelante, que el sensor emite «1» cuando detecta una línea. Ambas cosas no pueden ser ciertas a la vez: comprueba qué significa en tu propio montaje.

Bloque de programa: valores digitales del pin establecidos en C15
Consultar el sensor en el contacto C15
Programa: mostrar el valor del sensor como texto en la matriz LED
Mostrar el valor del sensor en la matriz
1 / 2

Seguidor de líneas: controlar los motores

El principio del seguimiento de líneas es sencillo: si Calle se desvía hacia la izquierda de la línea, el motor izquierdo debe girar más rápido; así, el robot gira a la derecha. Si se desvía hacia la derecha, el motor derecho gira más rápido.

Con dos sensores hay cuatro casos: ambos claros, ambos oscuros, el izquierdo oscuro y el derecho claro, el izquierdo claro y el derecho oscuro. Si ambos sensores detectan «oscuro», el robot está justo sobre la línea y puede ir a toda velocidad.

Para programar, crea dos variables, «SeguidorDeLíneasIzquierda» y «SeguidorDeLíneasDerecha», y asígnales los valores digitales de los contactos C14 y C15. En la sección Lógica, selecciona «si verdadero, entonces; de lo contrario» y amplía el bloque dos veces con el símbolo más. Comprueba los cuatro casos con dos comparaciones para cada uno, unidas mediante «y».

El control de motores ya está incluido en MakeCode: el motor derecho es M0 y el izquierdo, M1.

Si el programa se ejecuta, pero los sensores no responden, probablemente no estén calibrados correctamente. Los sensores tienen una caja azul que puedes ajustar con un destornillador. Para ello, coloca a Calle sobre la línea y ajusta el sensor para que funcione justo en el umbral entre encendido y apagado.

Condiciones anidadas si-entonces para ambos sensores de línea
La estructura condicional
Programa de seguidor de líneas listo con control de motores
El programa terminado del seguidor de línea
1 / 2

Medir la distancia con el sensor ultrasónico

En la parte frontal del Calliope hay un módulo con dos cilindros que parecen dos ojos. Es un sensor ultrasónico.

Funciona como un murciélago: emite ondas ultrasónicas que se reflejan en los objetos y vuelven como un eco. A partir del tiempo que tarda la onda en recorrer el trayecto, el Calliope calcula la distancia.

Los módulos externos no están incluidos de forma predeterminada en MakeCode. Haz clic en «Extensiones» e introduce el enlace directo a la biblioteca en la barra de búsqueda: github.com/Funduino-GmbH/RCW0001

Al hacer clic en la tarjeta «RCW-0001», aparece una nueva categoría con un único bloque: «Sensor ultrasónico (en cm), trigger en C8 y echo en C9».

Para mostrar la distancia, arrastra «mostrar número 0» de la categoría «Básico» al bloque «para siempre» y sustituye el «0» por el bloque del sensor ultrasónico.

Bloque de programa del sensor ultrasónico con Trigger C8 y Echo C9
El bloque ultrasónico
Programa: mostrar la distancia medida como número
Mostrar la distancia en la matriz
1 / 2

Mostrar valores medidos a través de la comunicación serie

La pantalla de matriz LED tiene un inconveniente: tarda bastante en mostrar el número y el programa no continúa hasta que termina. Si necesitas procesar datos rápidamente, los bloques «mostrar número» y «mostrar texto» no son adecuados.

En su lugar, utiliza la comunicación serie. En Avanzado → Serie, coloca el bloque «redirigir serie a USB» en «al iniciar» y «emitir línea por serie» en «para siempre». Después de descargar el programa, aparecerá una nueva opción a la izquierda de la página web, donde podrás ver los valores medidos.

Para poder seguir utilizando los valores, crea una variable «Distancia», coloca el bloque ultrasónico en «establecer Distancia en 0» y añade la variable a la salida serie. Así podrás leer los datos mientras se ejecutan otros bloques del programa en paralelo.

Programa: guardar la distancia en una variable y mostrarla por el puerto serie
Mostrar la distancia en serie

Programar dependencias

Ahora reproduces un tono en función de la distancia medida. En informática, esta dependencia se llama «consulta If» o «función Si-Entonces».

De la categoría Lógica, toma «si es verdadero, entonces»; de la categoría Sonido, el bloque «reproducir nota … durante …» y, también de Lógica, la comparación «Mayor que». Combina estos bloques.

Para ampliar, haz clic en el signo más del bloque verde oscuro: Calle debe avanzar cuando la distancia sea superior a 30 y detenerse cuando sea inferior. De la categoría Motores, toma el bloque «Motor» y cambia la configuración de M0 a M0 & M1. Por debajo de 30, establece el valor en 0; de lo contrario, en 50 por ciento, para que Calle no vaya demasiado rápido.

Programa completo: avanzar a partir de 30 cm; de lo contrario, detenerse
El programa completo

Controlar NeoPixel

Calle tiene seis fuentes de luz especiales: LED inteligentes del tipo WS2812, a menudo también llamados NeoPixel. Pueden iluminarse en miles de colores, y varios cientos comparten una única línea de datos.

En Calle se utilizan dos contactos: P2 controla los tres LED del lado derecho y P3, los tres del lado izquierdo.

En «Extensiones», busca «NeoPixel» e instala la biblioteca. Después, haz clic en la nueva categoría en «Establecer tira como NeoPixels en el pin P0…» y cambia el pin a P2. Para el lado izquierdo, crea una segunda variable —la llamaremos «strip2»— y configúrala en P3.

Con el bloque «mostrar color» eliges el color. Para que los colores no cambien demasiado rápido, añade «pausar (ms) 1000» desde Fundamentos.

Puedes controlar los LED individualmente mediante NeoPixel → más, con el bloque «strip establece el color del NeoPixel 0 en rojo». En ambos lados, la numeración va del 0, en la parte delantera, al 2, en la parte trasera.

Dos tiras NeoPixel: strip en P2 y strip2 en P3
Crear ambos lados de LED
Programa: Encender un NeoPixel individualmente en azul, verde y rojo
Controlar los LED individualmente
Numeración de los NeoPixel: del 0 en la parte delantera al 2 en la parte trasera, vista superior
La numeración de los píxeles
1 / 3
Calificar la guía

Comentarios

Haz una pregunta o comparte tu experiencia

Schreib uns, wenn etwas nicht funktioniert. Nenne dabei dein Board und die Fehlermeldung.

Revisamos cada comentario antes de publicarlo. Tu dirección de correo electrónico permanece con nosotros.