Uno de los aspectos más complejos al trabajar con vehículos a escala, ya sean autónomos o no, es conseguir una batería con buen almacenamiento y a buen precio. Una buena batería es indispensable para energizar tu proyecto, por lo que en este artículo quiero mostrarte cómo armar una batería con celdas 18650 para un AUV. En realidad, podrías usar esta batería o el método de diseño y construcción para energizar cualquier proyecto que tengas en mente.
Es probable que estés en un país donde importar una batería (por ejemplo, comprarla por Aliexpress) sea una tarea imposible de realizar. Esto debido a las regulaciones existentes que impiden que estos componentes viajen como un envío normal de paquetería. Por otro lado, traer una pequeña cantidad por vía marítima no tiene sentido debido a que el precio se elevaría muchísimo.
Antecedentes
En este punto es importante mencionar que ya he escrito un artículo donde hablo sobre dónde o cómo conseguir celdas 18650, cómo agruparlas y cómo soldarlas. Pero, en ese momento no llegué a profundizar en otros aspectos y detalles que son muy importantes para salir airosos de esta tarea.
Resumiendo, hagamos un paso a paso:
- Adquirir las celdas.
- Comprobar que estén ok y también su capacidad en mAh.
- Empaquetar (agrupar) las celdas: recuerda que los paquetes deben tener una capacidad similar entre ellos.
- Soldar las celdas en paralelo y luego en serie.
- Conectar el BMS (Battery Management System).
De este listado tenemos cubierto lo siguiente: adquirir las celdas, empaquetarlas y soldarlas. Por lo que en este artículo me voy a enfocar en comprobar su capacidad en mAh y la conexión al BMS que la mostraré cuando ensamblemos la batería para el AUV.
Comprobar la capacidad de las celdas
Para comprobar la capacidad de las celdas que has conseguido tenemos que usar un cargador de la marca Opus (modelo BT-C3100) que nos permite cargar y descargar las baterías. Es decir, nos permite pasar del voltaje máximo de 4.2V hacia el voltaje mínimo de 3.2V (no recomiendo bajar de ese voltaje).
El procedimiento es bastante sencillo, empecemos:


- Una vez que has colocado las celdas 18650 presiona el botón MODE por un tiempo prologando hasta que el display empiece a encender y apagar de forma intermitente.
- Presiona el botón MODE nuevamente hasta la opción DISCHARGE.
- Con el display en intermitencia, presiona el botón CURRENT. Si deseas ajustar la corriente de descarga, puedes escoger desde 200 hasta 1000mA.
Esto tomará un tiempo hasta que las celdas estén totalmente descargadas. Una vez que eso sucedió, realizamos el mismo procedimiento pero con el botón MODE escogemos la opción CHARGE TEST. Este modo realizará un ciclo de carga completo y en la pantalla mostrará un valor en mAh en intermitencia con la palabra FULL; ese valor es la capacidad real de la celda en mAh. Es importante que anotes este número sobre la misma celda para que sepas cuál es su capacidad.


Este proceso puede ser demorado ya que hay que repetirlo en varias ocasiones hasta medir la capacidad de cada una de las celdas que tengas y sólo puedes colocar 4 celdas al mismo tiempo, pero es el procedimiento más usado para medir este parámetro.
Detalles adicionales pero importantes
En mi caso, estoy quitando el forro protector de la batería que suele dañarse al momento de destrozar la batería de la laptop – me gustaría decir abrir, pero a veces hay que destrozar la batería de las laptops para obtener las celdas – e imprimiendo unos stickers con la capacidad de carga de la celda y la fecha en la que hice la medición, si además dañaste el protector que aísla el polo positivo del negativo, es muy buena idea reemplazarlo, lo recomiendo mucho; en el sticker hasta podrías colocar la resistencia interna de la celda como información, esto se obtiene con el modo QUICK TEST del cargador, solo lo seleccionas y el número que te dé será la resistencia en mΩ (dato importante: si te da más de 150mΩ es mejor que descartes esa batería).


Montemos una batería para nuestro AUV Ai-Apaec
Hemos abordado varios aspectos importantes para montar una batería con celdas 18650 y hay varios puntos adicionales que se podrían agregar al armado de una batería, pero por el momento sólo usaremos lo aprendido en este y el artículo previo.
Empaquetado de las celdas
Cuando pensamos en una batería conformada por varias celdas, nos imaginamos uno o más paquetes de celdas con una capacidad similar entre ellas, que tiene la misma cantidad de celdas y que se conectan en serie para obtener el voltaje en el que deseas trabajar, hasta ahí creo que podríamos estar de acuerdo. Y en este caso usaríamos una herramienta de empaquetado como rePackr, que te ayudará a agrupar las celdas y podrás armar los paquetes, así que por el momento suena medianamente simple.
Qué pasa si queremos armar paquetes que tengan una capacidad similar entre ellos (esencial al momento de poner los paquetes en serie), pero con una cantidad irregular de celdas 18650. Hace poco me hice esta pregunta y llegué a la conclusión que, posiblemente, las herramientas en línea que existen no sean capaces de ayudarnos en este caso específico y por eso decidí montar mi propio algoritmo, escribirlo en Python y probar a empaquetar las celdas en paquetes irregulares.
Líneas abajo les dejo el código y el resultado que me dio a mí. La información de entrada es una lista con la capacidad de las celdas que tienes a mano ¿anotaste todos esos valores sobre la celda, cierto? ahora toca escribir una lista con todos esos valores, y también necesitas la distribución que quieres darle, así que, entremos en detalle.
import random
# Input data (values for the groups)
values = [
# Insert the list of 18650 cells
]
# Define the desired group sizes
group_sizes = [
# Insert the distribution of the battery
]
# Shuffle the values to randomize the distribution
random.shuffle(values)
# Initialize the groups
groups = [[] for _ in range(len(group_sizes))]
# Assign values to each group based on the group_sizes array
index = 0
for i, size in enumerate(group_sizes):
for _ in range(size):
groups[i].append(values[index])
index += 1
# Function to calculate the sum of each group
def get_sums(groups):
return [sum(group) for group in groups]
# Function to calculate the maximum difference between group sums
def max_diff(sums):
return max(sums) - min(sums)
# Function to attempt to balance the groups
def balance_groups(groups, max_iterations=1000):
for _ in range(max_iterations):
# Calculate the sums of all groups
sums = get_sums(groups)
# Find the indices of the groups with the maximum and minimum sums
max_group_idx = sums.index(max(sums))
min_group_idx = sums.index(min(sums))
# If the difference between the maximum and minimum sums is zero or very small, stop
if max_diff(sums) <= 100:
break
# Try to swap a value from the max sum group to the min sum group
max_val = max(groups[max_group_idx])
min_val = min(groups[min_group_idx])
groups[max_group_idx].remove(max_val)
groups[min_group_idx].append(max_val)
groups[min_group_idx].remove(min_val)
groups[max_group_idx].append(min_val)
return groups
# Balance the groups to reduce the sum difference
balanced_groups = balance_groups(groups)
# Get the final sums of the balanced groups
final_sums = get_sums(balanced_groups)
# Display the balanced groups and their sums
for idx, group in enumerate(balanced_groups):
print(f"Group {idx + 1}: {group}, sum = {sum(group)}")
# Display the maximum difference between the groups
max_difference = max_diff(final_sums)
print(f"\nMaximum difference between groups: {max_difference}")
# Show the unused values (if any)
unused_values = values[index:]
print(f"\nUnused values: {unused_values}")
Características de la batería y las limitaciones de espacio
La batería que estamos armando para el AUV es una batería 6S (~24V) que debe entrar dentro de un cilindro pequeño en donde además, tenemos que incluir el BMS. Al tener un espacio tan reducido es importante que podamos aprovecharlo al máximo y por eso la propuesta para esta batería es armar 2 paquetes de 10 y 4 paquetes de 8 celdas.


Ingresemos toda esta información en el código y veamos el resultado, estos son los datos de entrada:
values = [2205, 2358, 2021, 2046, 2258, 2073, 2053, 2194, 2179, 2067, 2262, 2000, 2112, 2178, 2256, 2144, 2212, 2283, 2164, 2214, 2180, 2212, 2005, 2299, 2259, 2005, 2180, 2196, 2239, 2388, 2058, 2308, 1945, 1995, 1903, 2011, 1981, 2360, 2180, 1909, 2008, 1918, 1976, 2077, 2044, 2044, 2141, 2165, 2140, 2125, 2059, 2130, 2075, 1763, 1768, 1724, 1782, 1427, 1666, 1595, 1555, 1383, 1372, 1273, 1269, 1178, 1190, 1122, 1141]
group_sizes = [8, 8, 8, 8, 10, 10]
Y los resultados los podemos ver aquí:
Group 1: [2194, 2021, 2180, 2005, 2388, 2180, 2144, 2112], sum = 17224
Group 2: [2205, 2239, 2180, 2178, 1918, 2212, 2179, 2140], sum = 17251
Group 3: [1981, 2141, 2196, 2259, 2358, 2212, 2005, 2075], sum = 17227
Group 4: [2258, 2053, 2283, 2308, 1724, 2214, 2256, 2125], sum = 17221
Group 5: [2046, 2073, 1909, 2044, 1383, 1122, 1427, 1269, 1945, 1976], sum = 17194
Group 6: [1555, 2044, 1782, 2067, 2058, 1372, 1141, 1595, 1666, 1995], sum = 17275
Maximum difference between groups: 81
Unused values: [1273, 1178, 2011, 2130, 1763, 2164, 2165, 2299, 2008, 1190, 2000, 2059, 1768, 1903, 2077, 2262, 2360]
Para obtener este resultado he corrido el código en varias ocasiones tratando de que me de la Máxima diferencia entre paquetes más pequeña posible. El algoritmo hace combinaciones al azar y no siempre te brinda el resultado óptimo a la primera, imagínense, hay demasiadas combinaciones posibles como para que el código corra todas las posibles. Más bien, el código hace una cantidad limitada de intentos y luego te retorna la combinación con menor máxima diferencia entre paquetes.
Yo he encontrado esta combinación después de unos 20 intentos, así que no se rindan a la primera, sigan intentando y anotando la mejor combinación por aparte (yo usé un bloc de notas y cada que encontraba algo menor, reemplazaba el resultado por el más reciente).
Armado de la batería
Hay que imprimir los soportes para las baterías y armar los paquetes insertando una celda en cada ranura del soporte.
STL de los espaciadores para baterías 18650
STL de las piezas para el armado de la batería 18650
Versión FDM
Entra al link y descarga los archivos, de esta forma nos ayudas a mantener el proyecto andando.


Aquí arriba te dejo el link para que descargues los STL para armar esta batería. Y a partir de aquí te dejo una secuencia de pasos del armado de los paquetes.


Hasta ahí lo veo bastante fácil de entender. Tenemos un espaciador que sirve para insertar las celdas y luego taparlas con un espaciador similar para que mantenga la posición y la forma de la batería. Observemos el detalle de los espaciadores:


Observando las imágenes podemos notar que, solamente en el espaciador de 10 celdas tenemos una distribución heterogénea. En este caso el espaciador del otro lado tiene las posiciones invertidas y por lo tanto todo va a encajar perfectamente.


Conexiones internas de la batería
En este paso empezamos a tomar algunas decisiones importantes respecto a si la batería va a soportar la descarga que se necesita para alimentar al AUV. Así que hagamos algunas cuentas:
- Nuestro vehículo submarino cuenta con tres propulsores que, según el fabricante, tienen un consumo máximo de 11.7A, entonces ahí vamos 11.7 x 3 = 35.1A,
- por otro lado, dentro del vaso de control tenemos principalmente una Raspberry Pi y una placa Pixhawk. Entre ambos especulo que podría consumir hasta 3A, sumado a lo anterior vamos 38.1A.
- Finalmente, tenemos instalados 2 servomotores que, también según el fabricante, tienen un consumo máximo de 3A cada uno. Sumando todo, tendríamos en total 44.1A.
Ahora, seamos conscientes de que este sería un pico de consumo y que se daría por tiempo limitado mientras se realiza alguna maniobra en específico. Yo esperaría que, en condiciones de navegación de crucero, el consumo de los motores disminuyan a un 40% ~ 60% del nominal, es decir, unos 14A a 21A. Esto nos daría un consumo de 23A a 30A en condiciones normales de navegación.

Conexión en paralelo
Observemos esta tabla y enfoquémonos inicialmente en la línea 0.1mm x 5mm ya que serán las tiras de níquel que usaré para conectar las celdas en paralelo. Hagamos una segunda suposición (la primera fue sobre los porcentajes de consumo en condiciones normales), el consumo en navegación de crucero será el punto medio del rango que hemos mencionado líneas arriba, es decir, el punto medio entre 23A y 30A, o mejor dicho 26.5A.
Estamos definiendo que el consumo en cada paquete será de 26.5A y por paquete tenemos como mínimo 8 celdas, entonces cada celda estaría aportando ~3.3A (esto según mi razonamiento, puedo estar equivocado). Si divido estos 3.3A entre la corriente óptima para una tira de 0.1mm x 5mm, que es 2.1A, obtenemos que para las conexiones en paralelo necesito poner doble tira de níquel (3.3 / 2.1 = 1.57 tiras). En resumen, colocaremos doble tira de níquel para las conexiones en paralelo.


Conexión en serie
Volvamos a observar la tabla y veamos la línea 0.2mm x 7mm ya que serán las tiras que usaré para conectar los paquetes en serie (las tiras que yo tengo son de 8mm de ancho pero usaremos el valor que tenemos en la tabla). Consideremos nuevamente que el consumo de corriente será de 26.5A y, si divido esto entre 6.4A (que es la corriente que soporta la tira que usaremos) nos da 4.14. Por lo tanto, necesitamos 4 tiras como mínimo para la conexión en serie.
A continuación, se presenta un esquema que ilustra la estructura interna de la batería en construcción, destacando el tipo y la cantidad de tiras de níquel que usaremos.

Y por aquí te dejo algunas fotos de los paquetes de celdas y dela batería ya armada. En la primera foto he marcado una línea discontinua en color rojo, es necesario que cortes ese sobrante de la tira de níquel.



Soldar los paquetes al BMS
Ha llegado el momento de conectar cada uno de los paquetes con el BMS ¿Qué hace el BMS? Principalmente, el BMS o Sistema de Gestión de Baterías controla la carga y la descarga de la batería, y garantiza un funcionamiento seguro de la misma. Básicamente, incluimos un BMS por temas de seguridad y durabilidad de la batería.

En este proyecto, estamos utilizando un BMS 6S de hasta 60A. Por lo que para facilitar su adquisición, les dejo el siguiente enlace donde podrán comprarlo fácilmente.
BMS 6S de 60A
BMS 6S – 60A
Protección en la carga y la descarga
Sistema de Gestión de Baterías (BMS), diseñado para proteger y gestionar baterías 18650 en aplicaciones de alta potencian.
Click para comprar
En la imagen inferior, les muestro el esquema de conexión del BMS.

Conclusiones y siguientes pasos
Construir una batería para un AUV requiere de componentes adecuados para garantizar su rendimiento y seguridad. A lo largo del proceso, nos hemos enfocado en la importancia de seleccionar celdas en buen estado, agruparlas de manera equilibrada y utilizar un BMS que regule la carga y la descarga del sistema.
El ensamblaje adecuado y las pruebas previas serán fundamentales para evitar fallos que puedan comprometer la integridad del AUV. Además, al seguir este paso a paso, podrás diseñar soluciones energéticas personalizadas y también te asegurarás de que se adapten a tus necesidades específicas. De hecho, esto resulta especialmente útil cuando la importación de baterías es limitada o costosa, lo que hace más valioso contar con alternativas locales.
Por otro lado, aunque la fabricación de una batería para un AUV es un desafío complejo, hemos logrado abordarlo de manera estructurada, aplicando el conocimiento adecuado y utilizando las herramientas convenientes. Como resultado, ahora estamos mejor preparados para proporcionar a nuestro vehículo una mayor autonomía y una eficiencia energética optimizada.
Más adelante, se abordará el proceso de sellado del cilindro que contiene las baterías, un aspecto crucial para garantizar su funcionamiento seguro bajo el agua. Este tema no fue incluido en este artículo para evitar extenderlo demasiado y permitir un enfoque más detallado en cada etapa del proyecto.