

Robotshield V2.1
Proyecto de programación de robots educativos sobre la placa Robotshield V2.1 (shield para Arduino UNO). Cada grupo arma uno de estos dos robots y le carga su programa correspondiente:
- Size
- 68.6 × 53.3 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 57
- Nets
- 43
- Pads
- 124
- Tracks, vias
- 123, 6
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 20 Aug 2026
- Updated
- 24 Sep 2026
Overview
Robotshield V2.1 is an open-source printed circuit board by KBZoNiX, from the KBZoNiX/robotshield repository on GitHub. It is a 2-layer board of 68.6 × 53.3 mm with 57 parts on 43 nets, routed with 123 tracks and 6 vias.
Its parts include 15 connectors, 8 resistors, 5 diodes, 3 capacitors and 3 switches.
README
README.mdRobotshield V2.1 — ESETP N°703
Proyecto de programación de robots educativos sobre la placa Robotshield V2.1 (shield para Arduino UNO). Cada grupo arma uno de estos dos robots y le carga su programa correspondiente:
- 🎮 Fútbol — controlado a distancia por Bluetooth desde el celular.
- 🤖 Mini Sumo — autónomo, busca al rival y evita salirse del ring.
Qué hay en este repositorio
robotshield/
├── ROBOTSHIELD_V2.1_CONTEXTO_TECNICO.md → mapa de pines y hardware de la placa
├── docs/
│ └── FSD.md → diseño completo de los dos programas
├── hardware/ → esquemático, PCB y BOM (KiCad)
└── src/
├── Futbol/Futbol.ino → programa del robot de Fútbol
├── MiniSumo/MiniSumo.ino → programa del robot de Mini Sumo
└── TestPlaca/TestPlaca.ino → test de la placa antes del armado finalSi algo de este README no alcanza para entender una decisión de diseño (por qué un pin es tal cosa, por qué el robot se comporta así), la explicación completa está en docs/FSD.md.
1. Lo que necesitás antes de empezar
- Arduino IDE (versión 2.x) instalado en la notebook del grupo. Descarga: https://www.arduino.cc/en/software
- Cable USB para conectar el Arduino UNO a la notebook.
- El Robotshield ya armado y con el DRV8833 enchufado (J5/J6).
- Batería para el robot — ⚠️ no debe superar los 10V (ver
ROBOTSHIELD_V2.1_CONTEXTO_TECNICO.md). - Fútbol: módulo HC-05 enchufado en J4, y en el celular alguna app de terminal Bluetooth (o joystick simple que mande caracteres por Bluetooth clásico — no BLE).
- Mini Sumo: sensor HC-SR04 en J2 y los tres sensores de línea/borde en J9/J10/J11.
No hace falta instalar ninguna librería adicional: los dos programas usan solamente funciones estándar de Arduino.
2. Configurar el Arduino IDE (una sola vez por notebook)
- Abrir el Arduino IDE.
- Conectar el Arduino UNO por USB.
- Arriba, en el selector de placa, elegir Arduino Uno.
- Al lado, elegir el puerto serie donde apareció el Arduino (en Windows suele ser
COMx, en Linux/Mac/dev/ttyUSBxo/dev/cu.usbmodemxxxx).
Si el Arduino no aparece en la lista de puertos, probar con otro cable USB (muchos cables solo cargan y no transmiten datos) o reinstalar el driver CH340/FTDI según el clon de Arduino que tengan.
3. Robot de Fútbol
3.1 Antes de subir el programa
⚠️ Desconectar el HC-05 del Robotshield antes de subir el sketch por USB. El módulo Bluetooth está cableado directo a los pines D0/D1, que son los mismos que usa el Arduino para programarse por USB — si el HC-05 queda enchufado, la carga va a fallar o quedarse colgada.
3.2 Subir el sketch
- Abrir
src/Futbol/Futbol.inocon el Arduino IDE (doble clic al archivo). - Con el HC-05 desconectado, hacer clic en Subir (flecha →).
- Esperar el mensaje de "Subida completa".
- Volver a conectar el HC-05 al Robotshield.
3.3 Probar el control remoto
- En el celular, emparejar el HC-05 por Bluetooth (contraseña por defecto suele ser
1234o0000). - Abrir la app de terminal Bluetooth y conectarse al HC-05.
- Mandar estos caracteres, uno por vez, y verificar que el robot responda:
| Carácter | Acción esperada |
|---|---|
F | Avanza |
B | Retrocede |
L | Gira a la izquierda |
R | Gira a la derecha |
S | Se detiene |
H | Suena la bocina |
- Si el robot dobla para el lado contrario al que esperaban, es la asignación de motor izquierdo/derecho la que está invertida. En el código, cerca del principio, están los
#define PIN_MOTOR_IZQ_Aetc. — ver el comentario ahí mismo para saber cómo corregirlo. - El botón físico en D2 (SW2) hace sonar la bocina, y el botón en D12 (SW3) activa/desactiva el modo turbo (más velocidad, LED D13 prendido mientras está activo).
Más detalle del protocolo y del diseño en docs/FSD.md, sección 3.
4. Robot de Mini Sumo
4.1 Subir el sketch
- Abrir
src/MiniSumo/MiniSumo.inocon el Arduino IDE. - Conectar el Arduino por USB y subirlo con Subir (no hace falta desconectar nada para este robot).
4.2 Calibrar los sensores de borde (obligatorio antes de competir)
Los sensores de línea/borde vienen con un umbral de fábrica en el código (UMBRAL_BORDE) que casi seguro no va a servir tal cual para la superficie real de la cancha. Hay que calibrarlo:
- En el código, cambiar la línea
const bool MODO_DEBUG_SENSORES = false;atrue. - Volver a subir el sketch.
- Abrir el Monitor Serie del Arduino IDE (velocidad 9600).
- Con el robot apoyado sobre la superficie negra de la cancha, anotar los tres valores que aparecen.
- Apoyar el robot sobre la línea blanca del borde y anotar los tres valores de nuevo.
- Elegir un valor de
UMBRAL_BORDEque quede a mitad de camino entre lo que midieron sobre negro y sobre blanco. - Volver a poner
MODO_DEBUG_SENSORESenfalsey subir el sketch de nuevo (con el Monitor Serie abierto el robot gasta tiempo mandando texto en vez de reaccionar rápido — para competir tiene que quedar enfalse).
4.3 Verificar la ubicación de los sensores
En el código, SENSOR_BORDE_IZQUIERDO, SENSOR_BORDE_DERECHO y SENSOR_BORDE_FRONTAL asumen dónde está montado cada sensor en el chasis. Confirmar que coincide con cómo armó cada grupo su robot; si no, cambiar los pines (A1/A2/A3) en esos #define para que coincidan con la ubicación real.
4.4 Cómo correrlo
- Apoyar el robot en el ring.
- Apretar el botón D2 (SW2) para armarlo.
- El robot va a hacer una cuenta regresiva de 5 bips (no se mueve todavía) y después arranca a buscar solo.
- El botón D12 (SW3) funciona en cualquier momento como parada de emergencia: lo detiene y lo vuelve a dejar esperando. Probarlo antes de la primera prueba en cancha.
Más detalle de la máquina de estados (búsqueda, ataque, evasión) en docs/FSD.md, sección 4.
5. Test de placa (antes del armado final)
Antes de armar el robot definitivo, conviene probar que el Robotshield ya soldado/cableado funciona: LEDs, pulsadores, sensor ultrasónico, motores y módulo Bluetooth. Para eso está src/TestPlaca/TestPlaca.ino, que prueba todo eso en un solo programa corto, sin depender de la lógica de Fútbol ni de Mini Sumo.
5.1 Subir el sketch
- Si el HC-05 está conectado, desconectarlo — comparte los pines D0/D1 con el Monitor Serie, y si queda enchufado la carga por USB puede fallar (mismo motivo que en el robot de Fútbol).
- Abrir
src/TestPlaca/TestPlaca.inocon el Arduino IDE y subirlo. - Abrir el Monitor Serie a 9600 baudios.
5.2 Qué esperar
Al arrancar, el programa corre solo, una sola vez, narrando cada paso por el Monitor Serie:
- LEDs — se prenden en secuencia (D4, D7, D13). Verificar que los tres enciendan.
- Pulsadores — pide apretar el botón D2 y después el D12 (10 segundos de margen cada uno). Si no detecta el apriete a tiempo, avisa "no se detectó, revisar cableado".
- Sensor ultrasónico — hace 5 mediciones de distancia y las imprime en cm. Si dice "sin eco", revisar que el HC-SR04 esté bien conectado.
- Motores — cada motor gira adelante y atrás brevemente. Confirmar visualmente que los dos giran en el sentido esperado.
Para repetir estos cuatro tests, alcanza con resetear la placa (botón reset del Arduino).
5.3 Test de Bluetooth
Al terminar la secuencia automática, el programa queda esperando caracteres por Serial indefinidamente (no hace falta resetear para esto):
- Sin HC-05 a mano todavía: escribir cualquier cosa en el Monitor Serie y enviarla — el Arduino la devuelve (eco), prende un LED y hace un beep. Sirve como prueba rápida aunque no tengan el módulo Bluetooth conectado.
- Con el HC-05: volver a conectarlo al Robotshield, emparejarlo desde el celular con una app de terminal Bluetooth, y mandar caracteres desde ahí — deberían aparecer de vuelta en la app (eco) junto con el LED y el beep.
6. Problemas comunes
| Problema | Posible causa |
|---|---|
| La carga del sketch de Fútbol falla o se cuelga | El HC-05 sigue conectado — desenchufarlo y volver a intentar |
| El robot no aparece en la lista de puertos | Cable USB solo de carga, o falta el driver del chip USB-serie |
| El robot dobla para el lado contrario | Asignación motor izquierdo/derecho invertida — ver comentario en el código junto a los #define de motores |
| El Mini Sumo se sale del ring o no reacciona a la línea | UMBRAL_BORDE mal calibrado, o los sensores están asignados al pin equivocado — repetir el paso 4.2 |
| El HC-05 no aparece para emparejar | Verificar alimentación (LED del HC-05 titilando) y que esté en J4 con la polaridad correcta |
Para cualquier otra duda sobre el diseño del código (por qué está estructurado así, qué hace cada función), la referencia completa es docs/FSD.md.
Parts
57| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | MountingHole_3.2mm | Arduino_MountingHole:MountingHole_3.2mm | MH1, MH2, MH3, MH4 |
| 3 | 470 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R4, R5, R6 |
| 3 | Conn_01x03 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J9, J10, J11 |
| 3 | LED | LED_THT:LED_D5.0mm | D3, D4, D5 |
| 2 | 100uF | Capacitor_THT:CP_Radial_D5.0mm_P2.00mm | C1, C2 |
| 2 | 10K | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R1, R8 |
| 2 | SW_Push | Button_Switch_THT:SW_PUSH_6mm | SW2, SW3 |
| 1 | 100nF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C3 |
| 1 | 1K | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R3 |
| 1 | 1N4007 | Diode_THT:D_DO-41_SOD81_P10.16mm_Horizontal | D2 |
| 1 | 22K | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R2 |
| 1 | 39K | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R7 |
| 1 | Analog | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J13 |
| 1 | BT / UART | Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Vertical | J4 |
| 1 | Buzzer | Buzzer_Beeper:Buzzer_12x9.5RM7.6 | BZ1 |
| 1 | Digital/PWM | Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical | J15 |
| 1 | Digital/PWM | Connector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_Vertical | J14 |
| 1 | G*** | kibuzzard-6A53EDDA | kibuzzard-6A53EDDA |
| 1 | G*** | kibuzzard-6A53D98A | kibuzzard-6A53D98A |
| 1 | G*** | kibuzzard-6A53E243 | kibuzzard-6A53E243 |
| 1 | G*** | kibuzzard-675711CB | kibuzzard-675711CB |
| 1 | G*** | kibuzzard-6A53E214 | kibuzzard-6A53E214 |
| 1 | G*** | kibuzzard-6A53E41F | kibuzzard-6A53E41F |
| 1 | G*** | kibuzzard-6A53ED8F | kibuzzard-6A53ED8F |
| 1 | G*** | kibuzzard-675711D0 | kibuzzard-675711D0 |
| 1 | G*** | kibuzzard-6850FB1B | kibuzzard-6850FB1B |
| 1 | G*** | kibuzzard-6A53E27C | kibuzzard-6A53E27C |
| 1 | G*** | kibuzzard-6A53E518 | kibuzzard-6A53E518 |
| 1 | G*** | kibuzzard-6852314D | kibuzzard-6852314D |
| 1 | G*** | kibuzzard-6A53F17D | kibuzzard-6A53F17D |
| 1 | LED | LED_THT:LED_D3.0mm_Clear | D1 |
| 1 | LOGO | Graphics:USB-connector-drawing-8mm | G*** |
| 1 | LOGO | Graphics:club-robotica-icon_10x10mm | G*** |
| 1 | LOGO | Graphics:club-robotica-icon_14x14mm | G*** |
| 1 | LOGO | Graphics:Bluetooth-logo-10x5mm | G*** |
| 1 | M1 | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J7 |
| 1 | M2 | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J8 |
| 1 | Power | Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical | J12 |
| 1 | SW_POWER | Custom_Packages:SW_Push_2P2T_Toggle_7x7mm | SW1 |
| 1 | ULTRA_1 / ENC | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J2 |
| 1 | ULTRA_2 / I2C | Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Vertical | J3 |
| 1 | VBAT | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J1 |
| 1 | driver_in | Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical | J5 |
| 1 | driver_out | Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical | J6 |
The 56 most common of 57 parts.
Questions
How big is the Robotshield V2.1 PCB?
It measures 68.6 × 53.3 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Robotshield V2.1 use?
57 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Robotshield V2.1 KiCad files?
From the KBZoNiX/robotshield repository on GitHub, at the commit this page was made from: the board is hardware/Robotshield_V2.1.kicad_pcb and its schematic hardware/Robotshield_V2.1.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Robotshield V2.1 design in my own project?
Its repository states no licence, so its author keeps all rights: ask KBZoNiX before reusing the design.
Similar boards
- 2 layers59.2 × 52.9 mm

- 2 layers100 × 70.3 mm

- 2 layers165.1 × 120.7 mm

- 2 layers

- 2 layers121.1 × 104.7 mm

Sepia officinalis
tapioki/cephalopoda
Low profile split ergonomic mechanical keyboards
57 parts240GPL-3.0 - 2 layers100 × 96.5 mm

Keyboard ch32x-36-lhs
rgoulter/keyboard-labs
Repo with my PCB designs and keyboard firmware
57 parts236 - 2 layers178 × 39 mm

AddOnA
freeDSP/freeDSP-aurora
freeDSP ADAU1452 with 8 analog input, 8 analog outputs, S/P-DIF I/O, ADAT I/O, USB Audio Class2, WiFi, Bluetooth
57 parts226CC-BY-SA-4.0 - 2 layers58 × 110 mm
