Skip to the content
PCBKitNew board
2 layers68.6 × 53.3 mmRobotshield V2.1, the printed circuit board in 3D

Robotshield V2.1

KBZoNiX/robotshield

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.md

Robotshield 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

text
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 final

Si 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)

  1. Abrir el Arduino IDE.
  2. Conectar el Arduino UNO por USB.
  3. Arriba, en el selector de placa, elegir Arduino Uno.
  4. Al lado, elegir el puerto serie donde apareció el Arduino (en Windows suele ser COMx, en Linux/Mac /dev/ttyUSBx o /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

  1. Abrir src/Futbol/Futbol.ino con el Arduino IDE (doble clic al archivo).
  2. Con el HC-05 desconectado, hacer clic en Subir (flecha →).
  3. Esperar el mensaje de "Subida completa".
  4. Volver a conectar el HC-05 al Robotshield.

3.3 Probar el control remoto

  1. En el celular, emparejar el HC-05 por Bluetooth (contraseña por defecto suele ser 1234 o 0000).
  2. Abrir la app de terminal Bluetooth y conectarse al HC-05.
  3. Mandar estos caracteres, uno por vez, y verificar que el robot responda:
CarácterAcción esperada
FAvanza
BRetrocede
LGira a la izquierda
RGira a la derecha
SSe detiene
HSuena la bocina
  1. 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_A etc. — ver el comentario ahí mismo para saber cómo corregirlo.
  2. 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

  1. Abrir src/MiniSumo/MiniSumo.ino con el Arduino IDE.
  2. 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:

  1. En el código, cambiar la línea const bool MODO_DEBUG_SENSORES = false; a true.
  2. Volver a subir el sketch.
  3. Abrir el Monitor Serie del Arduino IDE (velocidad 9600).
  4. Con el robot apoyado sobre la superficie negra de la cancha, anotar los tres valores que aparecen.
  5. Apoyar el robot sobre la línea blanca del borde y anotar los tres valores de nuevo.
  6. Elegir un valor de UMBRAL_BORDE que quede a mitad de camino entre lo que midieron sobre negro y sobre blanco.
  7. Volver a poner MODO_DEBUG_SENSORES en false y 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 en false).

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

  1. Apoyar el robot en el ring.
  2. Apretar el botón D2 (SW2) para armarlo.
  3. El robot va a hacer una cuenta regresiva de 5 bips (no se mueve todavía) y después arranca a buscar solo.
  4. 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

  1. 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).
  2. Abrir src/TestPlaca/TestPlaca.ino con el Arduino IDE y subirlo.
  3. 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:

  1. LEDs — se prenden en secuencia (D4, D7, D13). Verificar que los tres enciendan.
  2. 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".
  3. 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.
  4. 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

ProblemaPosible causa
La carga del sketch de Fútbol falla o se cuelgaEl HC-05 sigue conectado — desenchufarlo y volver a intentar
El robot no aparece en la lista de puertosCable USB solo de carga, o falta el driver del chip USB-serie
El robot dobla para el lado contrarioAsignació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íneaUMBRAL_BORDE mal calibrado, o los sensores están asignados al pin equivocado — repetir el paso 4.2
El HC-05 no aparece para emparejarVerificar 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
QtyValueFootprintReferences
4MountingHole_3.2mmArduino_MountingHole:MountingHole_3.2mmMH1, MH2, MH3, MH4
3470Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR4, R5, R6
3Conn_01x03Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ9, J10, J11
3LEDLED_THT:LED_D5.0mmD3, D4, D5
2100uFCapacitor_THT:CP_Radial_D5.0mm_P2.00mmC1, C2
210KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1, R8
2SW_PushButton_Switch_THT:SW_PUSH_6mmSW2, SW3
1100nFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC3
11KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR3
11N4007Diode_THT:D_DO-41_SOD81_P10.16mm_HorizontalD2
122KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR2
139KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR7
1AnalogConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ13
1BT / UARTConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ4
1BuzzerBuzzer_Beeper:Buzzer_12x9.5RM7.6BZ1
1Digital/PWMConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ15
1Digital/PWMConnector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_VerticalJ14
1G***kibuzzard-6A53EDDAkibuzzard-6A53EDDA
1G***kibuzzard-6A53D98Akibuzzard-6A53D98A
1G***kibuzzard-6A53E243kibuzzard-6A53E243
1G***kibuzzard-675711CBkibuzzard-675711CB
1G***kibuzzard-6A53E214kibuzzard-6A53E214
1G***kibuzzard-6A53E41Fkibuzzard-6A53E41F
1G***kibuzzard-6A53ED8Fkibuzzard-6A53ED8F
1G***kibuzzard-675711D0kibuzzard-675711D0
1G***kibuzzard-6850FB1Bkibuzzard-6850FB1B
1G***kibuzzard-6A53E27Ckibuzzard-6A53E27C
1G***kibuzzard-6A53E518kibuzzard-6A53E518
1G***kibuzzard-6852314Dkibuzzard-6852314D
1G***kibuzzard-6A53F17Dkibuzzard-6A53F17D
1LEDLED_THT:LED_D3.0mm_ClearD1
1LOGOGraphics:USB-connector-drawing-8mmG***
1LOGOGraphics:club-robotica-icon_10x10mmG***
1LOGOGraphics:club-robotica-icon_14x14mmG***
1LOGOGraphics:Bluetooth-logo-10x5mmG***
1M1Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ7
1M2Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ8
1PowerConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ12
1SW_POWERCustom_Packages:SW_Push_2P2T_Toggle_7x7mmSW1
1ULTRA_1 / ENCConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ2
1ULTRA_2 / I2CConnector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalJ3
1VBATConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ1
1driver_inConnector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_VerticalJ5
1driver_outConnector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_VerticalJ6

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 mmMagic epaper, the printed circuit board in 3D

    Magic epaper

    fossasia/magic-epaper-hardware

    Magic ePaper Hardware

    57 parts1kApache-2.0
  • 2 layers100 × 70.3 mmModulAdapter universal, the printed circuit board in 3D

    ModulAdapter universal

    GaudiLabs/OpenDrop

    Open Source Digital Microfluidics Bio Lab

    57 parts492GPL-3.0
  • 2 layers165.1 × 120.7 mmIfei, the printed circuit board in 3D

    Ifei

    jrsteensen/OpenHornet

    OpenHornet 1:1 F/A-18C Simulator Repository

    57 parts431
  • 2 layersFabricated boards, the printed circuit board in 3D

    Fabricated boards

    justbuchanan/oasis

    3d-printed smart terrarium

    57 parts270Apache-2.0
  • 2 layers121.1 × 104.7 mmSepia officinalis, the printed circuit board in 3D

    Sepia officinalis

    tapioki/cephalopoda

    Low profile split ergonomic mechanical keyboards

    57 parts240GPL-3.0
  • 2 layers100 × 96.5 mmKeyboard ch32x-36-lhs, the printed circuit board in 3D

    Keyboard ch32x-36-lhs

    rgoulter/keyboard-labs

    Repo with my PCB designs and keyboard firmware

    57 parts236
  • 2 layers178 × 39 mmAddOnA, the printed circuit board in 3D

    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 mmBrain ui, the printed circuit board in 3D

    Brain ui

    shmoergh/moduleur

    Fully analog DIY-friendly modular synth

    57 parts222