Guías
Bienvenido a las guías de Black Robots. Aquí tienes todo organizado por temas: elige uno para empezar.
Arduino
¿Qué es Arduino?
Arduino es una plataforma de electrónica open source: una empresa y una comunidad que diseñan placas y el software para programarlas, todo libre y pensado para que cualquiera pueda empezar.
Instalación del IDE
El Arduino IDE
Tu primer programa
El "Hola Mundo" de Arduino es hacer parpadear un LED. Usaremos el LED integrado en el pin 13, así que no necesitas ningún componente extra.
Conceptos básicos
Funciones esenciales
Electrónica básica
Tensión y corriente
Tres magnitudes explican casi todo lo que pasa en un circuito. Entenderlas bien te ahorra muchos componentes quemados.
Digital y analógico
Todo lo que entra y sale de un Arduino es una señal eléctrica: una tensión que cambia con el tiempo. Hay dos formas de leerla o generarla.
PWM
PWM (Pulse Width Modulation, modulación por ancho de pulso) consiste en encender y apagar un pin cientos de veces por segundo. Variando cuánto tiempo está encendido en cada ciclo, el componente recibe de media una tensión intermedia.
Divisor de tensión
Dos resistencias en serie reparten la tensión entre ellas. En el punto donde se unen aparece una tensión proporcional a sus valores. Es uno de los circuitos más útiles que existen.
Comunicación
Los sensores sencillos dan una tensión o un HIGH/LOW. Los más avanzados (una IMU, un LiDAR, una pantalla) envían datos en forma de bytes. Para eso usan un protocolo de comunicación: unas reglas comunes para hablar por unos pocos cables.
Alimentación
La mayoría de problemas raros en un robot (reinicios, sensores que fallan, motores que tiemblan) vienen de la alimentación. Con unas pocas reglas te los ahorras.
Sensores
Pulsadores
4 artículos
Potenciómetro
4 artículos
LDR (luz)
4 artículos
Temperatura
4 artículos
Ultrasonidos
4 artículos
Sigue-líneas
4 artículos
Finales de carrera
4 artículos
Encoders
4 artículos
IMU (MPU6050)
4 artículos
LiDAR
4 artículos
Actuadores
LED
4 artículos
Zumbador
4 artículos
LED RGB y tiras
4 artículos
Servomotores
4 artículos
Motores DC
4 artículos
Motores paso a paso
4 artículos
Relés
4 artículos
Brushless y ESC
4 artículos
Raspberry Pi
¿Qué es Raspberry Pi?
Raspberry Pi es un ordenador completo en una sola placa: tiene procesador, memoria, USB, red, Wi-Fi, salida de vídeo y un sistema operativo Linux. Le conectas un teclado y una pantalla y funciona como cualquier PC. Y además tiene 40 pines para conectar electrónica, como un Arduino.
Instalación
La Raspberry Pi arranca desde una tarjeta microSD. Instalarla consiste en grabar el sistema operativo en esa tarjeta desde tu ordenador. Después la puedes usar de dos formas: como un ordenador, con pantalla, teclado y ratón, o a distancia, desde tu ordenador por SSH.
Tu primer programa
El "Hola Mundo" de la electrónica también funciona en la Raspberry: hacer parpadear un LED. La diferencia con Arduino es que aquí programas en Python y el programa corre dentro de Linux.
Conceptos básicos
La terminal
Motores y servos
La Raspberry puede mover motores directamente con sus pines, a través de un driver, igual que el Arduino. gpiozero trae clases ya preparadas para servos, motores e incluso robots completos de dos ruedas.
Sensores por I2C
Muchos sensores avanzados se conectan por I2C: IMUs, sensores de distancia láser, de temperatura, pantallas... La Raspberry tiene un bus I2C en los pines 3 (SDA) y 5 (SCL). Como ejemplo, conectamos la misma IMU de la guía de Arduino.
Cámara
Una cámara convierte a la Raspberry en un robot que ve: puede seguir un objeto de un color, leer códigos QR, detectar caras o grabar lo que encuentra. Las cámaras oficiales se conectan con un cable plano a su propio conector.
Raspberry Pi y Arduino
La combinación más habitual en robótica: la Raspberry Pi piensa y el Arduino actúa. Se conectan con un simple cable USB y se hablan por el puerto serie.
NVIDIA Jetson
¿Qué es una Jetson?
Una Jetson es un ordenador pequeño de NVIDIA con una GPU integrada: el mismo tipo de procesador gráfico que usan los ordenadores para entrenar inteligencia artificial, en una placa que cabe en la mano y consume como una bombilla.
Instalación
El sistema de la Jetson se llama JetPack: Ubuntu con todo el software de NVIDIA ya preparado para usar la GPU.
Tu primer programa
Vamos a ver la GPU trabajando: primero vigilarla, luego usar una cámara y, por último, hacer un cálculo en la GPU y compararlo con la CPU.
Detección de objetos
Aquí es donde la Jetson brilla: una red neuronal mira cada fotograma de la cámara y dice qué hay, dónde y con qué seguridad. Con eso, el robot puede seguir a una persona, esquivar a un perro o buscar una taza.
Conceptos básicos
Modos de energía
ROS 2
¿Qué es ROS 2?
ROS (Robot Operating System) es el conjunto de herramientas y librerías con el que se programan la mayoría de robots de investigación y muchos industriales. Su nombre engaña un poco: funciona sobre Linux, como una capa que organiza todos los programas de un robot y los hace hablar entre sí.
Instalación
ROS 2 Humble se instala en Ubuntu 22.04, en un ordenador, una Raspberry Pi o una Jetson. Los pasos son los mismos en los tres.
Nodos y topics
La mejor forma de entender ROS 2 es tocarlo. turtlesim es un simulador mínimo: una tortuga que se mueve por una ventana y que se controla exactamente igual que un robot de verdad, con mensajes de velocidad.
Tu primer paquete
Vamos a escribir dos nodos en Python:
Servicios y parámetros
Los topics son un flujo continuo de mensajes. Para lo demás, ROS 2 tiene otras dos herramientas: servicios para preguntar y recibir respuesta, y parámetros para ajustar un nodo sin tocar su código.
Acciones
Una acción es la forma de pedirle a un nodo una tarea larga: girar hasta un ángulo, llevar el brazo a una posición, navegar hasta la cocina. A diferencia de un servicio, quien la pide recibe avisos de progreso mientras se ejecuta y puede cancelarla a medias.
Mensajes propios
ROS 2 trae cientos de tipos de mensaje (Twist, Range, Image, LaserScan...). Cuando ninguno encaja con lo que quieres enviar, creas el tuyo. Se definen en un paquete de interfaces, separado de los nodos, para que cualquier otro paquete pueda usarlos.
Launch y herramientas
Un robot real tiene decenas de nodos. Abrir una terminal para cada uno no es práctico: para eso están los archivos de launch. Y para entender lo que pasa dentro, ROS 2 trae herramientas para ver, grabar y reproducir datos.
Nodos en C++
Python es la forma más rápida de escribir un nodo. C++ es la que usan los nodos que necesitan la máxima velocidad un nodo en C++ publica y uno en Python escucha, como en la prueba de la instalación.
TF (coordenadas)
Un robot está lleno de "puntos de vista". El LiDAR mide distancias desde el LiDAR; la cámara ve desde la cámara; las ruedas cuentan desde el centro del robot; el mapa está en coordenadas del mundo. Para juntarlo todo, ROS 2 necesita saber dónde está cada pieza respecto a las demás. De eso se encarga TF.
Tu robot en RViz
En la guía de URDF describiste un robot con una base y un brazo. Ahora lo vas a ver en RViz y a mover su brazo desde un nodo de ROS 2.
ROS 2 y Arduino
El Arduino lee sensores y mueve motores; ROS 2 corre en la Raspberry Pi o la Jetson. Para unirlos se escribe un nodo puente: lee el puerto serie y lo publica en topics, y escucha topics y los manda por el puerto serie.
URDF
¿Qué es un URDF?
Un URDF (Unified Robot Description Format) es un archivo de texto en formato XML que describe un robot: de qué piezas está hecho, cómo se conectan entre sí y cómo se mueven.
Links y joints
Todo robot en URDF se construye con links (piezas) unidos por joints (articulaciones). Vamos a ver cada uno.
Visual, colisión e inercia
Para darle cuerpo a un link se usan tres bloques: cómo se ve, cómo choca y cómo pesa. Un link completo lleva los tres.
Tu primer URDF
Vamos a construir un robot completo desde cero: una base fija con un brazo que gira. Solo dos links y un joint, pero es un URDF válido y funcional.
Xacro
Cuando un robot crece, el URDF se llena de piezas casi iguales (cuatro ruedas, dos brazos…) y copiar y pegar XML se vuelve un problema. Xacro (XML Macros) resuelve esto: escribes plantillas y variables, y genera el URDF final por ti.