
MiPendulo
IznF/Pendulo-Invertido
Repositorio correspondiente al proyecto del pendulo invertido de Izán Fernández Moreno

Self-balancing two-wheeled robot built as the final project for the Control Theory course at the Universidade de Santiago de Compostela (2023/2024).
Inverted Pendulum is an open-source printed circuit board by MarcosFontenlos, from the MarcosFontenlos/Inverted_Pendulum repository on GitHub. It is a 2-layer board of 63.5 × 63.5 mm with 9 parts on 45 nets, routed with 69 tracks and 0 vias.
It is built around the ESP32-DEVKITC-VE and ROB-14450. Its parts include 4 ICs, 3 connectors and 2 capacitors. It belongs with the ESP32 boards of this library.
Self-balancing two-wheeled robot built as the final project for the Control Theory course at the Universidade de Santiago de Compostela (2023/2024).
The robot keeps itself upright on two wheels by reading its tilt with an IMU and driving the motors through a PID controller. It also exposes a small Wi-Fi web interface that can be used to move it around or switch the controller on and off.
angle = 0.98 * (angle + gyro_rate * dt) + 0.02 * accelerometer_angle
This yields a smooth and stable estimate of the tilt around the X axis.u = Kp * error + Ki * integral + Kd * derivative
and is saturated to the PWM range (-255..255).Kp, then Ki, and finally Kd (in this build Kd was left at 0 because it did not improve the response).The PID loop runs as fast as possible (small delay), since a high sampling rate is essential for balancing.
| Path | Description |
|---|---|
Base_FreeCAD/ | FreeCAD models and STL files for the 3D-printed chassis. |
PCB/ | KiCad project (schematic, board layout, custom symbols/footprints), Gerber files and fabrication backups. |
Memoria/ | LaTeX report (Memoria.tex / Memoria.pdf) documenting the design, hardware and software. |
Programas/PID/ | Arduino sketches for the balancing controller: basic PID, low-pass filtered PID, IIR-filtered PID and PID with Wi-Fi position control. |
Programas/Programas_auxiliares/ | Helper sketches for motor testing, IMU measurements and sensor calibration. |
Prueba_esp32/ | Minimal sketch used to verify that the ESP32 board and toolchain work. |
Guion_proyecto.txt | Short project log with the first hardware tests. |
Note: the LM7805 needs at least ~7 V at its input, which is why the two 6 V battery packs are connected in series. The motors receive the full 12 V while the ESP32 is fed with regulated 5 V.
Programas/ and select the ESP32 Dev Module board and the correct COM port.Recommended order for a first run:
Prueba_esp32/ - check the board and serial connection.Programas/Programas_auxiliares/Programa_calibracion_sensor/ - calibrate the IMU offsets with the robot perfectly still.Programas/Programas_auxiliares/Marcha_motores/ - verify motor direction and wiring.Programas/PID/Control_PID/ - test and tune the PID.Programas/PID/PID_posicion/ - final version with Wi-Fi control.PID_posicion.ino starts the ESP32 as a Wi-Fi access point. Connect to the network shown in the serial monitor and open the IP address (192.168.4.1 by default) in a browser. The page provides forward/backward/left/right buttons, a stop button and buttons to enable or disable the PID.
The AP credentials are defined at the top of the sketch; change them before publishing or deploying the robot.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 3 | Conn_01x02 | Connector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_Vertical | J1, J2, J3 |
| 1 | 0.1 uF | Capacitor_THT:C_Axial_L3.8mm_D2.6mm_P7.50mm_Horizontal | C2 |
| 1 | 0.33 uF | Capacitor_THT:C_Axial_L3.8mm_D2.6mm_P7.50mm_Horizontal | C1 |
| 1 | ESP32-DEVKITC | Libreria_personal:MODULE_ESP32-DEVKITC | U4 |
| 1 | GY-521 | Libreria_personal:GY-521 | U1 |
| 1 | LM7805_TO220 | Package_TO_SOT_THT:TO-220-3_Vertical | U5 |
| 1 | ROB-14450 | Libreria_personal:MODULE_ROB-14450 | U2 |

IznF/Pendulo-Invertido
Repositorio correspondiente al proyecto del pendulo invertido de Izán Fernández Moreno




GonzaCerv/noah-hardware
This repo contains all the hardware description for the Noah project. Here lies 3D models, electronics PCB and Firmware software of the robot.

bonavirak/Line-Follower-Robot-Using-STM32F103C8T6-with-TCRT-5000
Line Follower Robot powered by STM32F103C8T6 microcontroller, using TCRT5000 5-way sensors for line detection, HC-05 for Bluetooth communication, TB6612FNG motor driver, and N20 motors (1000 RPM).

0x23/BallJointEmbossingMachine
A motorized linear embossing machine designed to precisely press ball joints. It was designed to automate the production of balljoint linkages for the Open-Micro-Manipulator.

It measures 63.5 × 63.5 mm and has 2 copper layers, 1.6 mm thick.
9 parts, built around the ESP32-DEVKITC-VE and ROB-14450. 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.
From the MarcosFontenlos/Inverted_Pendulum repository on GitHub, at the commit this page was made from: the board is PCB/PCB.kicad_pcb and its schematic PCB/PCB.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask MarcosFontenlos before reusing the design.