Вы находитесь на странице: 1из 347

Propuesta de proyecto

REPORTE AGUAS PROFUNDAS

Diciembre 2016

Buffon No. 46 Piso 5, Colonia Nueva Anzures, C.P. 11590, Ciudad de México D.F. Tel. (0052) 55 55 45 50 00
CONTENIDO

INTRODUCCIÓN ............................................................................................................... 4

DISEÑO DEL UAV .......................................................................................................... 190

MODULO DE ALIMENTACION PIXHAWK PX4 ...................................................... 297

PERMISOS DE VUELO .................................................................................................... 304

MANUALES DE OPERACIÓN ETC ............................................................................. 304

PROTECCIÓN CATÓDICA ........................................ ERROR! BOOKMARK NOT DEFINED.

TOMA DE POTENCIALES ............................................................................................. 82

CONECTORES Y PINES DE SALIDA .................... ERROR! BOOKMARK NOT DEFINED.

DETECCIÓN DE FUGAS ............................................................................................ 332

CORROSIÓN INTERIOR .............................................. ERROR! BOOKMARK NOT DEFINED.

MEDICIÓN DE VELOCIDADES DE CORROSIÓN ( ALDRIC, CARLOS ) ............ ERROR!


BOOKMARK NOT DEFINED.

MEDICIONES DE SUMINISTRO DE QUÍMICOS ( ALDRIC, CARLOS ) ................. ERROR!


BOOKMARK NOT DEFINED.

ANÁLISIS DE RIESGO ( GUSTAVO ) ......................... ERROR! BOOKMARK NOT DEFINED.

DISEÑO DE CUADRÓPTERO A PRUEBA DE EXPLOSIÓN ....... ERROR! BOOKMARK NOT


DEFINED.

IMÁGENES DE ALTA RESOLUCIÓN........................ ERROR! BOOKMARK NOT DEFINED.

MAQUETAS ELECTRÓNICAS ( METODOLOGÍA Y MANUAL DEL PIX4D) ........... ERROR!


BOOKMARK NOT DEFINED.

PATENTE DE METODOLOGÍA ................................ ERROR! BOOKMARK NOT DEFINED.

ESTRATEGIA COMERCIAL JORDI. ................................................................................ 336

ANÁLISIS DE MERCADO JORDI. .............................................................................. 336

Pág.2
www.corrosionyproteccion.com Pág.2
IMAGEN CORPORATIVA DIEGO/ KARINA / ANDREA / JORDI ............................ 336

VIDEOS, PÁGINAS, REVISTA ETC. ANDRES ............................................................. 336

Pág.3
www.corrosionyproteccion.com Pág.3
INTRODUCCIÓN
Este reporte detalla el trabajo realizado durante el año 2016 dentro del proyecto
INGENIERÍA EN CONTROL DE CORROSIÓN DE TUBERÍAS EN AGUAS PROFUNDAS CON
MODELADO NUMÉRICO, 2° PARTE.

La principal actividad desarrollada durante este proyecto fue la elaboración de un


completo plan comercial para lanzar al mercado los servicios referentes al control
de corrosión y monitoreo en sistemas de protección catódica, sistemas de
inyección de químicos y análisis de riesgos aplicados en campos de exploración y
producción de hidrocarburos en aguas profundas. Para este plan comercial, se
decidió utilizar tecnología de punta en exploración e inspección de los sistemas de
monitoreo de corrosión interna y externa, tales como protección catódica,
probetas internas electroquímicas e inyección de químicos. En específico, se
decidió trabajar con vehículos aéreos no tripulados como parte central de los
servicios ofrecidos, considerando que una de

DISEÑO DEL SISTEMA DE MONITOREO


Se diseñó un sistema de monitoreo basado en Vehículos aéreos no tripulados
(VANT). Este sistema cuenta con la capacidad de adaptarse al monitoreo de
ductos sumergidos en aguas profundas, así como a los postes en la base de las
plataformas petroleras.

Para este sistema de monitoreo se desarrolló un sistema embebido específico para


el monitoreo de diferentes potenciales, con la capacidad de transmisión de estos
valores al VANT.

Diseño del sistema embebido para la toma de potenciales en los


postes y su transmisión al drone

Objetivos

Pág.4
www.corrosionyproteccion.com Pág.4
Los objetivos básicos de este sistema son la toma de un potencial eléctrico en los
postes, y la transmisión del valor obtenido por radiofrecuencia al dron.
El sistema debe poder medir los potenciales con un error máximo de 10 mV, en un
rango de 0 V a 10 V.
Además el diseño debe der de bajo consumo, de tal forma que pueda durar dos
años con una batería comercial.
Por otro lado no se pueden utilizar ningún tipo de fotoceldas, fotorresistencias, o
cualquier otro componente que requiera estar fuera del poste (salvo por el cable de
la antena) por las condiciones en las que se instalará el dispositivo.

Selección de componentes

Tomando en cuenta los objetivos se determinó que la principal limitante del sistema
es el consumo energético del mismo. Es por esto que se decidió utilizar
componentes con el menor consumo posible, tratando de mantener el sistema lo
más sencillo y económico posible.
Al ser un sistema de bajo consumo, es conveniente utilizar un voltaje bajo para así
reducir la potencia requerida. La mayoría de los componentes comerciales
funcionan con voltajes estándar de 5V o 3.3V, por lo que se decidió utilizar 3.3V.
En primer lugar se seleccionó el micro controlador Atmega328p, es importante que
sea de la familia ‘p’ ya que este tipo de micro controladores (‘p’ se refiere a
“PicoPower”) son de bajo consumo. Si bien existen otros microcontroladores de
menor consumo, la principal ventaja del Atmega328p es la facilidad de
programación y la amplia documentación que existe, así como su fácil
disponibilidad. El Atmega328p puede operar desde los 1.8V a 4MHz, hasta los 5V
a 16MHz.
Para el módulo de radiofrecuencia se decidió utilizar el RFM12B, que es un módulo
específicamente diseñado para aplicaciones de bajo consumo. Si bien existe la
nueva versión (RFM69HCW) con un mayor rango, el RFM12B es de un menor
consumo. El RFM69HCW tiene un rango de 400m y un consumo de 130mA
encendido, mientras que el RF12B tiene un rango de 200m con un consumo de
23mA encendido. Los 200m de rango del RFM12B se consideraron suficientes y por
lo tanto se decidió utilizarlo pese a sus limitaciones.
Para mantener una correcta operación a lo largo de la duración de la batería, se
requiere un regulador de voltaje. En este caso, al requerir un bajo consumo se
necesita de un regulador como el MCP1702 para voltajes de 3.3V. Este regulador
de bajo consumo consume 2.2 μA de acuerdo a sus especificaciones.
Para las baterías se decidió utilizar una sola celda de LiPo ya que tiene una tasa de
descarga automática (es decir la velocidad a la que la celda se descarga debido a
las reacciones químicas internas) muy baja, aproximadamente un 2% mensual, lo
que equivale a una descarga de aproximadamente 40% en dos años.

Mes Carga %
0 100.00
1 98.00
2 96.04
3 94.12
4 92.24

Pág.5
www.corrosionyproteccion.com Pág.5
5 90.39
6 88.58
7 86.81
8 85.08
9 83.37
10 81.71
11 80.07
12 78.47
13 76.90
14 75.36
15 73.86
16 72.38
17 70.93
18 69.51
19 68.12
20 66.76
21 65.43
22 64.12
23 62.83
24 61.58
1. Descarga de batería

Además una sola celda de LiPo tiene un voltaje entre los 3.5V (descargada) y 4.2V
(a su máxima carga) lo que es más que suficiente para alimentar un circuito de 3.3V
mediante regulador.
En cuanto a la capacidad de la batería, esta depende del consumo de corriente
promedio que se pueda lograr.

Optimización de consumo

Para optimizar el consumo de la batería se diseñó un algoritmo para la medición lo


más eficiente posible. Para lograrlo se determinó primero cuál es la menor
frecuencia a la que se puede tomar una muestra y enviar al dron el voltaje del poste,
ya que entre menos veces se haga el consumo de corriente promedio será menor.
Como no se sabe en qué momento el drone va a estar en un rango adecuando para
recibir la información, es necesario enviar los datos en un intervalo definido de
tiempo. Este tiempo ‘T’ (periodo de muestreo) debe ser lo más largo posible para la
mayor eficiencia, pero no puede ser demasiado largo ya que el avión puede entrar
y salir del rango de comunicación con el poste sin que se envié ningún dato.

-Cálculo del periodo de muestreo T

Para calcular este tiempo se supuso que el avión va a pasar siempre sobre el poste.
Si bien el avión no siempre pasa exactamente sobre el poste, el error de un par de
metros es despreciable contra los 200 m de rango que tiene el módulo de
radiofrecuencia.

Pág.6
www.corrosionyproteccion.com Pág.6
2. Esquema de distancias al avión

La velocidad crucero del avión planeado (SkyWalker) es de 30 km/h, y se planea


volarlo a una altura de (100m) de modo que no tenga peligro de colisión con árboles.
De este modo es fácil calcular la distancia
‘x’ a la cual el avión puede empezar a recibir información.
x=√2002−1002=173.2m

Si el avión viaja a 30 km/h, es decir 8.3 m/s, el tiempo que transcurre desde que el
avión entra en rango, hasta que sale se puede obtener mediante:

t=2x / 8.3 =2(173)/8.3 ≃ 41.7seg

De este modo sabemos que si enviamos un dato cada 47 segundos, el avión va a


recibir al menos una lectura al estar dentro del rango. Sin embargo esto no es
práctico ya que existen varios errores que pueden afectar este tiempo. El rango del
transmisor en el poste puede ser menor, el avión puede no pasar exactamente sobre
el poste, la velocidad del viento puede hacer que el avión pase más rápido de lo
esperado, etc. Es por eso que se decidió enviar un dato cada 10 segundos de forma
tal que el avión puede recibir hasta 4 datos de un solo poste.

Esquema de tiempos de acuerdo al periodo de muestreo T

El sistema debe ser capaz, en el tiempo de muestreo de T=10seg, de realizar las


siguientes operaciones:

-Despertar el Atmega328p del modo sleep

Pág.7
www.corrosionyproteccion.com Pág.7
-Pedir medición de la batería al ADC (MCP3424)
-Leer medición de la batería del ADC y pedir medición de sensor
-Leer medición de del sensor
-Encender el módulo de RF (RFM12B)
-Enviar valores al módulo RF
-Apagar el módulo de RF
-Preparar el timer para despertar dentro de 10 segundos y poner al Atmega328p en
modo sleep

Para diseñar un esquema de tiempos funcional para este periodo de muestreo, es


necesario conocer los componentes principales involucrados, es decir el
Atmega328p, el ADC MCP3424, y el módulo de radiofrecuencia RFM12B.
En cuanto al Atmega328p, se necesita tener en modo sleep el mayor tiempo posible,
despertando únicamente para realizar operaciones de comunicación con los otros
módulos. Al trabajar mediante comunicación I2C, el Atmega328p puede estar
prendido únicamente durante un tiempo máximo de 1
ms. En cuanto el tiempo en sleep, el Atmega328p será el encargado de manejar los
tiempos del circuito, por lo que es importante que pueda medir los tiempos y
despertar en un intervalo de tiempo determinado por el mismo microcontrolador.
Esto se puede lograr mediante el watchdog timer (WDT) le cual puede permanecer
encendido mientras el resto de los módulos del Atmega328p están apagados en
modo sleep. La única desventaja del WDT es que solamente puede trabajar en
múltiplos de 16 ms, y hasta un máximo de 60 segundos. El tiempo máximo no es
problema ya que el tiempo máximo en sleep será de menos de 9.5 segundos. Por
otro lado es importante tomar en cuenta que los tiempos de sleep deberán ser
siempre múltiplos de 16, aun cuando esto signifique desperdiciar algunos
milisegundos.
Para el módulo ADC, de acuerdo a las especificaciones se puede tener una
frecuencia de muestreo de entre 3.75 y 240 Hz, de acuerdo a la resolución deseada.
En este caso como la precisión es muy importante, se trabajará con una resolución
de 18 bits, lo que equivale a una frecuencia máxima de 3.75
Hz. De este modo se puede calcular el tiempo que tardará en tomar una medición:
T=1/f = 1 / 3.75Hz=0.267 seg

La resolución propuesta de 18 bits nos permite en teoría tener una resolución de


218=262144 pasos a lo largo del voltaje máximo esperado. Es decir que para un
voltaje entre 0 y 10V la resolución sería de aproximadamente 10
262144 =0.00003814697, es decir 38.14 uV/bit.

Para el módulo RFM12B es necesario saber el tiempo que requiere la transmisión.


Esto se puede calcular mediante la cantidad de bytes que se desean transmitir.
El protocolo de comunicación del RFM12B, está dado por el siguiente esquema:

Pág.8
www.corrosionyproteccion.com Pág.8
3. Protocolo de comunicación del RFM12B

De acuerdo al protocolo se requieren de 9 bytes para la entronización del


dispositivo. (3 Pre + 2 syn + 2head + 2 CRC). Es decir que a los bytes que se quieran
enviar se debe sumar los 9 bytes de entronización del protocolo. Los datos que se
quieren enviar son, el ID del poste, el voltaje de la medición y el voltaje restante en
la batería. El ID del poste puede ser un solo byte, suponiendo que hay menos de
256 postes en un derecho de vía. Los valores de voltajes deben ser 3 bytes cada
uno, ya que se está trabajando con 18 bits y en 2 bytes (16 bits) no hay suficiente
espacio para enviar la información completa.
De este modo el total de bytes enviados se puede ver en la siguiente tabla:
Información No de Bytes

Total: 16 bytes

La máxima velocidad de transmisión debe ser lo más alta posible, en este caso de
50 kbits/seg. Esto equivale a 0.16ms por byte transmitido.
8 bits/byte / 50000 bits /seg =0.00016 seg/byte

Esto significa que se requieren de al menos 2.56 ms para enviar la información.


Además de acuerdo a las especificaciones se requiere de un tiempo de 30 ms
después de encender el módulo RFM12B para iniciar cualquier transmisión de
datos. Esto nos da un total de 32.56 ms encendido.
De este modo los tiempos necesarios para cada operación son los siguientes

Operación Tiempo requerido


Medición de batería 267ms
Medición del sensor (poste) 267ms

Pág.9
www.corrosionyproteccion.com Pág.9
Transmisión de datos 32.56 ms

El siguiente esquema de tiempos se diseñó entonces para cumplir con los tiempos
requeridos para cada operación, tomando en cuenta que los tiempos en sleep deben
ser múltiplos de los 16ms.

4. Esquema de tiempos de operación del sistema

En este esquema, el Atmega328p despierta primero para solicitar una medición al


ADC (de la batería) y luego vuelve a modo sleep. (El Atmega328p necesita menos
de 1ms para realizar esta operación, utilizando resonador cerámico en lugar de un
cristal, pero 1 ms sirve como un valor conservador de tiempo).
El ADC realiza la conversión en 267ms, el múltiplo de 16 más cercano es de 272ms,
por lo que hasta que se cumplen el Atmega328p no puede despertar. De esta forma
a los 272ms se lee el valor de la pila y se pide una nueva medición al ADC (del
voltaje en el poste).
Nuevamente a los 272ms despierta el Atmega328p y se lee el valor del voltaje del
poste. En este mismo momento se despierta al RFM12B, y el Atmega328p vuelve
a modo sleep.
A los 30ms el módulo RFM12B está listo para transmitir, sin embargo hasta que se
cumplen los 32ms (múltiplo de 16) el Atmega328p despierta. En cuanto despierta
inicia la transmisión que dura únicamente 3ms. El Atmega328p permanece
despierto este tiempo ya que 3ms es muy poco para dormir y volver a despertar.
Después de los 3ms el Atmega328p apaga al RFM12B y luego entra en modo sleep
durante aproximadamente los siguientes 9.4 segundos antes de iniciar el ciclo
nuevamente.
Con este esquema los tiempos en los que permanece prendido cada uno de los
módulos, en el periodo de 10 segundos, son los siguientes.

Módulo Tiempo ON (ms)


Modulo Tiempo ON (ms)

Atmega328p 6

Pág.10
www.corrosionyproteccion.com Pág.10
ADC (MCP3424) 544

RF (RFM12B) 35

Medición de voltajes

Para la medición de voltajes de la batería y del poste es necesario hacer un circuito


que nos permita en el caso de la batería reducir el consumo de esta cuando no se
hacen mediciones, y en el caso de la medición del poste eliminar la mayor cantidad
de ruido proveniente del rectificador (60Hz).
Para la medición de la batería primero se requiere de un divisor de voltaje ya que la
batería puede llegar hasta los 4.2 V completamente cargada. El ADC no es capaz
de realizar mediciones más allá de su voltaje de alimentación, en este caso 3.3V. Al
estar conectado todo el tiempo el divisor de voltaje, debe circular la menor cantidad
de corriente posible para que su efecto sobre el consumo de la batería sea mínimo.
Sin embargo si circula muy poca corriente, el ADC no será capaz de tomar una
medición ya que internamente no podrá cargarse. Es por eso que se decidió agregar
un capacitor, el cual se descargará durante la medición permitiendo al ADC
funcionar correctamente.

5. Circuito para medición de voltaje de batería

De esta manera es posible utilizar resistencias en el divisor de hasta 10 Mega ohms.


Con este divisor la corriente que se va a drenar de la batería está dada por:

Pág.11
www.corrosionyproteccion.com Pág.11
I=VR= 4.2V / 20MΩ=0.21uA

Por otro lado para la medición del valor del poste se necesita un filtro pasa bajas
que permita eliminar la frecuencia de 60 Hz del rectificador. Este filtro debe tener la
frecuencia de corte más baja posible sin ocasionar un alias en las mediciones. En
este caso la frecuencia de muestreo es de un periodo de 10 segundos, es decir
0.1Hz, por lo que se requiere un periodo del doble del periodo de muestreo, es decir
20 segundos o 0.05Hz.

Para diseñar este filtro, podemos calcular el valor de la constante RC

RC= 1 / 2πf = 1 / 2π0.05 = 3.183ΩF


Podemos elegir entonces un capacitor comercial que no sea muy grande. En este
caso se eligió un capacitor de 470uF, lo que indica que es necesaria una resistencia
de 6.722kὨ. Para obtener esta resistencia se puede utilizar entonces un
potenciómetro de precisión trimpot.
Además de este filtro se requiere de un divisor de voltaje. En este caso no importa
el consumo que exista, sin embargo por protección al ducto y a la celda de referencia
se debe utilizar una resistencia de alto valor. El máximo valor de impedancia
recomendado para el ADC es de 2 MὨ, por lo que utilizar resistencias de hasta 1
MὨ no debe ocasionar problemas.
Este divisor debe reducir el voltaje de los 10 V máximos que se esperan de la lectura
del poste, a un máximo de 3.3V. Definiendo entonces el valor máximo de resistencia
como 1 MὨ, la otra resistencia se puede obtener de:

R2= R1 / (Vin / Vout) −1= 1M Ω/ (10V/3.3V) −1 ≈ 500kΩ

De esta forma el circuito para medir voltajes del poste es el siguiente:

Pág.12
www.corrosionyproteccion.com Pág.12
6. Circuito para toma de potenciales del poste

Consumo total de corriente y selección de baterías

El consumo que va a tener el circuito completo se va a calcular a partir de la corriente


promedio de cada uno de los módulos en el periodo de 10 segundos. Para hacer
este cálculo se necesita saber el consumo de corriente de cada uno de los módulos
en modo encendido y en modo de bajo consumo (sleep). Los 5 módulos que van a
consumir corriente de la batería son los siguientes, con su consumo en ambos
modos de acuerdo a las especificaciones y/o cálculos hechos.

Módulo Consumo prendido Consumo apagado

Módulo Consumo Prendido Consumo apagado

Atmega 328p 7mA 4uA

Transmisor RF(RFM12B) 25mA .3uA

ADC(MCP3422) 135uA .3uA

Divisor de voltaje(pila) 0.21 uA 0

Regulador 3.3V(MCP1702) 2uA 0

Por otro lado tenemos los tiempos de encendido y apagado de cada uno de los
módulos en el periodo de 10 segundos:

Módulo Tiempo prendido Tiempo apagado

Modulo Tiempo prendido Tiempo apagado

Atmega 328p 6 ms 9.994 s

Pág.13
www.corrosionyproteccion.com Pág.13
Transmisor RF(RFM12B) 35 ms 9.965 s

ADC(MCP3422) 544 ms 9.456 s

Divisor de voltaje(pila) 10 s 0s

Regulador 3.3V(MCP1702) 10 s 0s

Mediante el cálculo de áreas y dividiendo entre el periodo de tiempo transcurrido de


10 segundos, podemos obtener la corriente promedio de cada uno de los módulos.

Módulo Consumo promedio

Modulo Consumo promedio

Atmega 328p 8.1976 uA

Transmisor RF (RFM12B) 87.799 uA

ADC (MCP3422) 7.6276 uA

Divisor de voltaje (pila) 0.21 uA

Regulador 3.3 V (MCP1702) 2 uA

Como se puede ver, la mayor limitante en reducir el consumo es el módulo de RF,


por eso es muy importante utilizar un módulo de bajo consumo.
Una vez obtenido el consumo de corriente promedio de cada módulo, se puede
calcular la corriente promedio que saldrá de la batería sumando todas las corrientes
promedio. En este caso la corriente promedio total es de 105.8342 uA.
A partir de este valor se puede calcular entonces el consumo que se tendrá en el
tiempo establecido de 2 años. El total de horas en dos años es de 17520,
multiplicado por el consumo de 105.8342 uA, nos da un total de 1854.22 mAh.
Sin embargo para elegir la batería no se puede simplemente utilizar este valor ya
que sabemos que la batería perderá un 2% de su capacidad mensualmente, que en
el caso de 2 años será de aproximadamente un 40%.

Pág.14
www.corrosionyproteccion.com Pág.14
En este caso los 1854.22 mAh deben ser el 60% de la carga máxima de la batería,
lo cual significa que se requiere de una batería de al menos 3090.36 mAh.

Soluciones comerciales y esquema general

Con el fin de facilitar la implementación de este sistema, se propone utilizar


soluciones comerciales diseñadas para este fin. En este caso existen dos
soluciones principales Moteino de lowpowerlab y JeeNode de JeeLabs.

Ambas son tarjetas PCB que contienen el hardware básico para operar el
Atmega328p junto con un módulo de RF. Ambas soluciones son similares, cuentan
con el Atmega328p, el regulador de voltaje de bajo consumo MCP1702 propuesto
y la conexión al módulo RF. La diferencia principal es que el Moteino utiliza un cristal
de cuarzo como resonador, mientras que el JeeNode utiliza un resonador cerámico,
que si bien no es tan preciso como el cristal, permite despertar al Atmega328p en
un tiempo mucho menor.

7. Moteino (izq.) y JeeNode (der)

La otra opción es desarrollar el hardware desde cero con la conexión a los módulos
propuesta. En este caso llevaría más tiempo conseguir los componentes y
desarrollar el PCB, sin embargo la solución podría mejorarse fácilmente en caso de
necesitar modificar el hardware.
De cualquier manera los circuitos de medición y las conexiones al ADC externo se
deberán fabricar en un PCB. El esquema general es de la siguiente manera:

Pág.15
www.corrosionyproteccion.com Pág.15
8. Esquema general del sistema

Dimensiones del sistema propuesto

El sistema propuesto se puede construir como una placa (shield) sobre el JeeNode,
lo cual haría que el tamaño necesario para embeber el sistema en el poste sea muy
pequeño. El JeeNode tiene unas dimensiones de 85.9 x 21.1 x 9.9 mm. Agregando
los componentes externos en una placa del mismo tamaño se requiere un espacio
de al menos 85.9 x 21.1 x 20 mm, que redondeado nos da un espacio de 90 x 30 x
20 mm.
También se requiere embeber la batería en el poste. Para asegurar una duración
de 2 años, se propone utilizar una batería del 150% de capacidad de lo que se
requiere teóricamente. En este caso los cálculos indican 3090.36 mAh por lo que lo
recomendado es utilizar una batería de 4635.54 mAh. La batería comercial más
cercana es de 5000 mAh para 1S (4.2V)

Pág.16
www.corrosionyproteccion.com Pág.16
9. LiPo 5000mAh 1S (4.2V)

Las dimensiones de esta batería de acuerdo a sus especificaciones son de


128x42x10 mm. Por lo que si se coloca el circuito sobre la batería se tiene un
espacio requerido de aproximadamente 130 x 42 x40 mm

10. Layout de componentes en el poste

Oportunidades de mejora

El sistema propuesto cumple con los objetivos planteados de poder monitorear de


manera eficiente y precisa, los potenciales de los postes; bajo las restricciones
previamente mencionadas. Sin embargo es posible mejorar aún más el sistema
reduciendo la corriente promedio pero aumentando la complejidad de
implementación del sistema. Algunas de las opciones que se pueden investigar a
futuro son las siguientes.

-Utilizar una mezcla de módulos de radiofrecuencia. De acuerdo a los protocolos y


frecuencias utilizadas por los dos módulos mencionados (RFM12B y RFM69HCW),
es posible comunicar ambos módulos. De esta manera puede ser posible utilizar el
módulo RFM69HCW, el cual tiene una mayor sensibilidad, en la recepción de
información. En este caso no importa el consumo ya que es el módulo que va sobre
el avión por lo que puede utilizar más corriente. De esta manera se puede ampliar
el rango del RFM12B, lo que permitiría utilizarlo a una frecuencia más baja. La
viabilidad de este método dependería de que tanto se pueda aumentar el rango de
comunicación.

-Implementar un protocolo de pregunta y respuesta. En el caso del sistema


propuesto, el transmisor en el poste envía datos cada 10 segundos sin saber si el
dron está en un rango de recepción. Sin embargo es posible implementar una
comunicación en la que primero el módulo a bordo del dron, envíe una señal de
aviso al poste de que está en rango. El módulo en el poste solamente transmitiría
información si previamente recibió esta señal de alerta. De esta manera se puede
reducir el consumo ya que en modo de recepción el módulo consume 13mA en lugar
de los 25mA que consume transmitiendo. De esta manera se puede reducir

Pág.17
www.corrosionyproteccion.com Pág.17
aproximadamente a la mitad, el consumo del módulo cuando se encuentra en modo
prendido. Sin embargo esto no afecta el consumo en modo sleep, que es la mayoría
del tiempo.

-Modificar los fusibles del Atmega328p. En el microcontrolador seleccionado existen


3 bytes de fusibles que pueden ser modificados dentro del hardware del
microcontrolador. Estos fusibles permiten modificar el funcionamiento interno del
Atmega328p, sin embargo también afectan al software que se puede programar.
Algunos de los fusibles que pueden modificarse para reducir el consumo son:

1) Desactivar el BrownOut detector. Este módulo interno del microcontrolador sirve


de protección en caso de que el voltaje de alimentación baje de un mínimo esperado
(generalmente 1.8V). Sin embargo es peligroso desactivarlo ya que en caso de
existir una caída inesperada de voltaje el sistema se puede volver inestable.

2) Reducir SUTCKSEL a cero, este fusible indica el tiempo necesario para despertar
del modo sleep.
Se puede reducir a cero, sin embargo es recomendable permitir al resonador llegar
a un modo estable después de despertar, antes de realizar cualquier operación.

3) Modificar el prescalador del reloj a CKDIV8. De esta manera el Atmega328p


puede correr a una frecuencia de 2MHz cuando este en modo sleep. Cuando
despierte, debe modificar su frecuencia a 16MHz nuevamente para hacer lecturas
y enviar datos lo más rápido posible y regresar a modo sleep en 2MHz. De esta
manera se puede reducir el consumo de corriente en modo sleep. Implementar un
programa de esta manera es más complicado y no se sabe que tanto pueda reducir
el consumo en modo sleep.
Se debe tener cuidado al modificar los fusibles ya que pueden alterar el
funcionamiento del microcontrolador.

-Eliminar el regulador de voltaje y utilizar baterías de menor voltaje nominal. Esta


alternativa implica utilizar baterías de voltajes inferiores a los 3.3V (Ej. AA, Ni CD,
etc.) y utilizar un DC/DC booster. El booster permite incrementar el voltaje de
alimentación durante un periodo de tiempo limitado, el cual en este caso se utilizaría
para realizar la transmisión de datos y la lectura del ADC, permitiendo al sistema
funcionar en modo sleep con un voltaje inclusive menor a los 2V y únicamente
utilizar el boost a 3.3V durante el tiempo de transmisión. De esta manera el consumo
en sleep se puede reducir mucho, sin embargo implica un módulo externo adicional
y un rediseño del sistema en general.

-Utilizar un RTC (real time clock). Por último probablemente la manera más sencilla
de mejorar el rendimiento sea utilizar un RTC como módulo adicional. El RTC es un
módulo de reloj que se utiliza generalmente para saber la fecha y hora de manera
precisa sin atrasarse o adelantarse en un periodo largo de tiempo. El RTC utiliza su
propia batería (generalmente una batería de reloj) por lo que no generaría ningún
Pág.18
www.corrosionyproteccion.com Pág.18
consumo adicional al sistema. El RTC puede durar hasta 5 años sin atrasarse con
su propia batería. La ventaja de utilizar el RTC es que se puede programar al
Atmega328p para que cheque la hora y el día antes de realizar cualquier medición
y/o transmisión de datos. De esta manera se puede enviar datos únicamente
durante ciertas horas del día (de 6am a 6pm por ejemplo) o durante ciertos días de
la semana (no enviar en fin de semana por ejemplo) De esta manera se puede
reducir el consumo tanto como se desee.

Sin embargo el problema es que se tendría que hacer un calendario previamente de


que días y horas se puede medir lo cual no es lo más práctico.

DESARROLLO DEL SISTEMA EMBEBIDO PARA TOMA DE POTENCIALES Y


SU TRANSMISION AL DRONE

Una vez diseñado el sistema embebido pasamos a la siguiente fase que es el desarrollo
de este por lo tanto es necesario conocer las tarjetas y componentes electrónicos a
utilizar, sus características y capacidades, ya que de ello depende que sea un sistema
eficiente de bajo consumo el cual tenga una duración prolongada de dos años, este
necesita hacer mediciones de la batería de alimentación y de los potenciales en las
plataformas y ductos para posteriormente enviar estos datos vía RF para guardarse en
una tarjeta SD .

El proyecto a desarrollar consta de los siguientes componentes electrónicos utilizados.

JEENODE V6

11. JeeNode v6

El JeeNode es un tablero inalámbrico compacto con un microprocesador Atmel 8-bit RISC.


JeeNode es compatible con la plataforma Arduino y se puede programar en Windows, Mac
OS X o Linux a través de bocetos creados con el Arduino IDE. El JeeNode es una placa de
micro-controlador inalámbrico diseñado para una variedad de tareas de computación física.

Pág.19
www.corrosionyproteccion.com Pág.19
Cada JeeNode tiene 4 "puertos" idénticos para la fijación de la lógica de E / S analógicas
y digitales, dispositivos I2C, y mucho más. La biblioteca JeeLib hace que sea fácil de
interactuar con estos puertos.

El JeeNode posee:

 6-pin FTDI- Puerto serial compatible I/O, usado para alimentación, re-flasheado, y
comunicación.
 3.3V regulador de voltaje que soporta 3.5 … 13V de Fuente externa de
alimentación
 8-pines combinados alimentación / Serial / I2C / Conector Extendido (PSIX)
 ATmega328P microcontrolador Atmel, con 16 MHz resonador cerámico
 2x4-pines conectores combinados SPI / ISP , propósito general I/O
 RFM12B comunicación RF desde 433, 868, o 915 MHz banda ISM
 Antena Radio de (78, 82, 165 mm longitud, para 915, 868, 433 MHz,
respectivamente)

Compatibilidad con Arduino

Los dos poseen el mismo arranque optiboot que les permite ejecutar los bocetos de arduino
IDE, así mismo como el mismo controlador Atmega 328p

Diferencias con Arduino

•Tienen un módulo de comunicación RF de 433, 868, o 915 MHz montado en la placa

•Layout de la placa completamente diferente, incompatible con Arduino “shields”

•JeeNode usa un voltaje interno de 3.3V, esto afecta todos los puertos y pines I/O

•No todos los pines de Arduino son llevados a cabo en los conectores, algunos pines
se le asignan los roles fijos

•El conector ISP tiene dos pines extras, que permite la reutilización del Puerto SPI
para uno o dos dispositivos

•El bus TWI ha sido asignado permanentemente a su propio conector

•Utiliza 16 MHz con un resonador de cristal menos preciso

•No tiene leds, para el uso de bajo consumo cuando se utilizan baterías.

Pág.20
www.corrosionyproteccion.com Pág.20
Selección del JeeNode por su diseño

EL Arduino no es muy conveniente para el uso de dispositivos de 3.3v como el módulo


RFM12B, incluyendo un regulador de 3.3v el JeeNode se puede alimentar desde un USB
con FTDI cable/placa, a adaptador de DC, o distintos tipos de baterías desde 3.6 a 13v

La segunda razón es porque se necesitaba de una unidad que tuviera integrado una
conectividad Wireless default. El RFM12B es una opción de bajo costo con suficiente
potencia y rango confiable que permite la comunicación con un protocolo de comunicación
básico con menos de 3 Kb de código C

La tercera razón es que es bastante común que un arduino se quede sin conectores de
alimentación y tierra al conectar unos sensores a este. En cambio el JeeNode posee en
cada puerto sus propios conectores de alimentación y tierra. Por otra parte, al ser idénticos,
los cuatro puertos JeeNode tienen las mismas características y conexiones, lo que permite
a los sensores puedan volver a utilizarse y volver a combinarse más adelante.

Por último, un objetivo clave del diseño para el JeeNode es para apoyar el uso de consumo
bajo con baterías.

Especificaciones

Microcontrolador: ATmega328P

Frecuencia Máxima: 16 MHz (a 3.3V)

Consumo de corriente: 4 µA ... 35 mA

Voltaje de alimentación: 3.3V ... 13.0V

Dimensiones: 85.9 x 21.1 x 9.9 mm

Peso: 12 g

Pág.21
www.corrosionyproteccion.com Pág.21
Conectores y pines de salida

12. Diagrama de puertos del jeenode

Puertos

Puerto Nombre Extras Arduino Señal Chip

Port 1 DIO1 - Digital 4 PD4 pin 6

AIO1 Analog-in Digital 14 / Analog 0 PC0 pin 23

Port 2 DIO2 PWM (timer 0) Digital 5 PD5 pin 11

AIO2 Analog-in Digital 15 / Analog 1 PC1 pin 24

Port 3 DIO3 PWM (timer 0) Digital 6 PD6 pin 12

AIO3 Analog-in Digital 16 / Analog 2 PC2 pin 25

Port 4 DIO4 - Digital 7 PD7 pin 13

AIO4 Analog-in Digital 17 / Analog 3 PC3 pin 26

Pines de cada Puerto

Pág.22
www.corrosionyproteccion.com Pág.22
Pin Nombre Descripción

1 PWR Alimentación externa

2 DIO digital I/O

3 GND Tierra

4 +3V regulador +3.3V

5 AIO Analog I/O

6 IRQ Interrupción ( INT1)

Conectores SPI e ISP

Pin Nombre Descripción Pin Nombre Descripción

1 MISO master in / Slave out 2 +3V regulador +3.3V

3 SCK Reloj SPI 4 MOSI master out / Slave in

5 RST reset 6 GND Tierra

7 SEL0 Atado a PB0 (A. pin 8) 8 SEL1 Atado a PB1 (A. pin 9)

Conector FTDI

Pin Nombre Descripción

1 GND Tierra

2 N.C. No conectado

Pág.23
www.corrosionyproteccion.com Pág.23
Pin Nombre Descripción

3 PWR Alimentación externa

4 RX Receptor serial

5 TX Transmisor serial

6 RTS Reset

Conector PSIX

Pin Nombre Descripción

1 +3V Regulador +3.3V

2 RXD Receptor serial

3 GND Tierra

4 PWR Alimentación externa

5 SDA TWI/I2C data

6 SCL TWI/I2C clock

7 TXD Transmisor serial

8 RST Reset

Lista de componentes

Pág.24
www.corrosionyproteccion.com Pág.24
componentes valor Detalles Digi-Key#

R1 10 kΩ reset pull-up 10KEBK-ND

C1, C2, C3, C4 0.1 µF Desacoplador BC1160CT-ND

C5 10 µF electrolítico, con polaridad P966-ND

IC1 ATmega328-20 Microcontrolador ATmega168 ATMEGA328P-PU

IC2 MCP1702-33 3.3V LDO regulador lineal MCP1702-3302E/TO

X1 16 MHz resonador 3-pin, capacitores X908-ND

D1 Diodo v6 check bridged on bottom side No requerido para v6

USB BUB

12. USB BUB

El USB BUB-II en un USB flexible a conectarse con muchas aplicaciones. Se


utiliza una marca de chips FT232R, lo mismo que en algunas Arduino y Spark que
son placas de desarrollo.

Esta placa tiene características que no se encuentran en algunas otras USB.

- Un polyfuse, fusible de polímero para proteger el USB de cortocircuitos.


- Dos Leds que muestran la actividad serial en las líneas de TX / RX.

Pág.25
www.corrosionyproteccion.com Pág.25
- Una derivación que se puede configurar para cambiar los niveles lógicos de
3,3 a 5 voltios.
- Esta derivación es independiente de la tensión de salida de derivación. Por
defecto = 3,3 V, para la correcta JeeNodes
- Una derivación configurable para cambiar el voltaje de salida de 5 a 3,3
voltios.
- Sitio para añadir un regulador de 3.3V SMD para corrientes de salida más
altas.
- Una header, conectado en el orden del pasador FTDI cable RS232 (esto es
correcto para el JeeNode / BBB / BRD / LilyPad / Arduino Pro cabecera
pines). La línea DTR está presente para generar 'reset' - esto es más fiable
que el uso de la peculiar RTS.
El USB - BUB tiene partes fundamentales ya montadas y probadas.

Se puede usar la BUB para cargar bocetos y luego el nodo tiene su propia
alimentación de energía, se puede desconectar y utilizar en otros nodos.

El USB BUB-II requiere una conexión USB A - a mini cable. Este es el mismo tipo
que se utiliza a menudo como un conector de cámara digital, por lo que se puede
reciclar uno puede que ya tenga.

ADC ANALOG PLUG

Pág.26
www.corrosionyproteccion.com Pág.26
13. ADC (MCP3424)

El ADC Analog Plug es una tarjeta pequeña que contiene el convertidor MCP3424 de
analógico a digital con interfaz de bus I2C. El ADC puede tomar 4…240 muestras por
segundo, dependiendo de la resolución (12...18 bits).Dispone de 4 canales de entrada
diferencial y es compatible con una gama de tensión diferencial de -2.048V a + 2.048V, a
gran escala. Para seleccionar todo el rango de medición se toma el lado "negativo" a tierra
para el uso de un solo extremo y se restringe la entrada de "positivo" para voltios positivos
con respecto a tierra.

De un lado tiene un conector hembra 2x6 pines, con 4 entradas analógicas diferenciales y
además GND, +3V, PWR, and IRQ

Un bus I2C funcionando a 3,3 V se utiliza para E / S, con todas las líneas de alimentación
y de señal a ambos lados de la placa para permitir la conexión en cadena con otras placas
por medio de I2C.

Configuración

Para su configuración cuenta con dos jumpers en la placa para soldarse, lo que permite
elegir entre las direcciones de 7-bit I2C

Pines

Pág.27
www.corrosionyproteccion.com Pág.27
RFM12B BOARD

14. RFM12B

El RFM12B es un módulo de radio compacto esta trabaja con toda una gama de placas de
Arduino (compatibles), tales como de Arduino (tanto 5V y 3.3V versiones), Freeduino, kit
JeeNode SMD, BRD y Boarduino. Para facilitar su uso, los pines del conector están
etiquetados con los nombres de señales, así como los números de pin de Arduino. Sólo
tiene que conectarlo a su tablero y conectarlo como se indica.

El módulo de radio RFM12B soporta un nivel de alimentación de hasta 3.8V. Para usar el
RFM12B en un entorno 5V, esta placa cuenta con un regulador de voltaje de bajada y los
convertidores de nivel de voltaje de resistencia requeridos para los pines de señales
utilizados. Cuando la alimentación es de 3,3 V, los componentes del regulador y el nivel de
conversión se quedan fuera.

Configuración de alimentación

Para su uso en 3,3 V: (los niveles lógicos de señal y el nivel de tensión de alimentación
deben coincidir con 3,3 V)

Omitir R4, R5, R6, R1, R2, R3 del puente a través de la respectiva soldadura de los puentes
de SJ1, SJ2, SJ3. Esto desactiva los convertidores de nivel de voltaje.

Pág.28
www.corrosionyproteccion.com Pág.28
Omitir el regulador de voltaje (VR) y de 3.3V en el pin conector marcado como ' 3V3’.

Insertar C2, C3 para mejorar el desacoplamiento del suministro de 3.3V.

Para el uso a 5 V: (la señal de niveles lógicos desajuste y el voltaje de la fuente de


alimentación de la MCU necesidades de regulación hasta 3,3 V)

Incluyen todos los componentes (C1, C2, C3, VR, R1, R2, R3, R4, R5, R6) para activar los
convertidores de nivel de voltaje de la señal y el regulador de tensión (VR).

El VR reduce el suministro de 5V a 3.3V para el módulo RFM12B. Una salida de 3.3V


regulado está disponible desde la clavija de conexión ' 3V3 ' marcada para cargas ligeras
de otros circuitos que necesitan 3.3V.

Pines

Una antena es necesaria y puede ser un simple pedazo de 1/4 - longitud de onda de cable
soldado en la antena:

De 433 MHz, utilice un cable de 165 mm

De 868 MHz, utilice un cable de 82 mm

De 915 MHz, utilice un hilo de 78 mm

Pág.29
www.corrosionyproteccion.com Pág.29
RTC PLUG CR 1220

15. RTC plug

El RTC Plug es una placa pequeña que contiene un reloj en tiempo real DS1340 con
respaldo de batería, por lo que continúa el seguimiento del momento en que la alimentación
está apagada.

Un bus I2C funcionando a 3,3 V se utiliza para E / S, con todas las líneas de alimentación
y de señal a ambos lados de la junta para permitir la conexión en cadena con otras placas.

No hay nada que configurar. El chip RTC con el bus I2C responde a la dirección 0x68.

Pines

ARDUINO PRO-MINI

16. arduino pro mini

Pág.30
www.corrosionyproteccion.com Pág.30
La Arduino Pro Mini es una placa electrónica basada en el ATmega328.

Cuenta con 14 pines digitales de entrada / salida (de los cuales 6 se podrán utilizar como
salidas PWM), 6 entradas analógicas, un resonador de a bordo, un botón de reinicio, y los
agujeros para montaje de conectores macho. Un encabezado de seis pines puede ser
conectado a un cable FTDI o tablero del desbloqueo de Sparkfun para proporcionar
alimentación USB y la comunicación a la junta.

La Arduino Pro Mini está diseñada para su instalación semi-permanente en objetos o


exposiciones. El tablero viene sin cabeceras de pre-montado, lo que permite el uso de
varios tipos de conectores o soldadura directa de cables. La disposición de las clavijas es
compatible con el Arduino Mini.

Hay dos versiones del Mini Pro. Uno corre a 3.3V y 8 MHz, y el otro a 5 V y 16 MHz.

Características:

- Microcontrolador ATmega328

- Voltaje de operación 3.3 V o 5 V (dependiendo del modelo)

- Voltaje de entrada de 3.35 a 12 V (para el modelo de 3.3 V) o de 5 a 12 V (para el modelo


de 5 V)

- 14 pines de entrada/salida digital (de las cuales 6 se puede usar como salidas PWM)

- 6 pines de entrada analógica

- Corriente DC por pin de entrada/salida: 40 mA

- Memoria Flash de 16 KB (de los cuales 2 KB son usados para el bootloader)

- 1 KB de SRAM 1 KB

- EEPROM de 512 bytes

- Velocidad de reloj de 8 MHz (para el modelo de 3.3 V) o de 16 MHz (para el modelo


de 5 V).

Pág.31
www.corrosionyproteccion.com Pág.31
Una vez conociendo todas las características y capacidades de las placas y componentes
a utilizar se comenzó el desarrollo practico del sistema, a continuación se explican los pasos
realizados durante el desarrollo del mismo.

PROCEDIMIENTO PARA ENSAMBLE DE PLACAS.

Los componentes en la placa del JeeNode vienen por separado así que es necesario
soldarlos por cuenta propia, de manera que para estandarizar su armado se buscó el
procedimiento y la ayuda necesaria para un correcto ensamblado de todas las piezas.

Ensamblando el JeeNode V6.

17. Piezas de ensamble JeeNode

Primero se comienza por el listado de piezas que se sueldan en la placa.

Lista de piezas:
- 4 capacitores cerámicos
- Antena de 82 mm
- Placa JeeNode
- Atmega 328p
- Base de 28 pines
- Resonador de 16 MHz
- Capacitor electrolítico
- Regulador de voltaje
- Placa RFM12B
- Resistencia

Pág.32
www.corrosionyproteccion.com Pág.32
- 4 conectores hembra 6x1 (headers)
- Conector macho 6x1 (FTDI)

Para su ensamble se recomienda poner los componentes de acuerdo al siguiente orden y


soldarse:

1- Resistencia
2- 4 capacitores cerámicos
3- Capacitor electrolítico
4- Regulador de voltaje
5- Base de 28 pines
6- Conectores hembra 6x1 (headers)
7- Placa RFM12B
8- Conector macho 6x1 (FTDI)
9- Antena de 82 mm
10- Atmega 328p
Para mayor información y ayuda visual visitar el siguiente link:
http://jeelabs.org/2010/09/26/assembling-the-jeenode-v5/

Ensamblando el RFM12B

18. RFM12B

Lista de piezas:
- header 9x1 pines
- 2 capacitores cerámicos
- regulador de voltaje
- capacitor electrolítico
- 3 resistencias de 4.7 Kohms
- 3 resistencias de 1 Kohms
- módulo RF12B
- antena de 82 mm

Pág.33
www.corrosionyproteccion.com Pág.33
Para su ensamble se recomienda poner los componentes de acuerdo al siguiente orden y
soldarse:

1- 3 resistencias de 4.7 Kohms parte superior

2- 3 resistencias de 1 Kohms parte inferior

3- 2 capacitores cerámicos

4- regulador de voltaje

5- capacitor electrolítico

6- módulo RF12B

7- - antena de 82 mm

8- header 9x1 pines

Para mayor información y ayuda visual visitar el siguiente link:


http://jeelabs.net/projects/hardware/wiki/RFM12B_Board

Para las demás placas solo es necesario soldar los conectores tipo headers de acuerdo a
la posición que se vayan a utilizar o como sea más cómodo para el usuario.

Configuraciones del ADC

De manera que el objetivo del sistema es que su funcionamiento sea de bajo consumo es
necesario realizar una configuración del ADC para que las mediciones realizadas ayuden a
la optimización del uso de la batería.

Para ello es necesario checar la sección. 5.2 configuración de registro, p. 18 del datasheet
donde viene la siguiente información:

 'modo' = MCP3424 8-bit configuración de registro

Pág.34
www.corrosionyproteccion.com Pág.34
 B7,B6, B5, B4, B3, B2, B1, B0 (bit number)
 RDY, C1, C0, O/C, S1, S0, G1, G0 (bit name)
 [Bit 7] *RDY = 0 siempre esté listo (en modo one-shot se pone '1' para empezar
conversión)
 [Bit 6-5] *C1/C0: canal de entrada # 00 = 0, 01 = 1, 10 = 2, 11 = 3
 [Bit 4] *O/C: 1 modo de conversión continua, 0 = modo de conversión one-shot
 [Bit 3-2] *S1/S0: resolución: 00 = 240 Hz (12 b), 01 = 60 Hz (14 b) 10 = 15 Hz (16
b)
11 = 3.75 Hz (18 b)
 [Bit 1-0] *G1/G0: gain: 00 = x1, 01 = x2, 10 = x4, 11 = x8 Full-scale: 2.048 V,
1.024, 0.512, 0.256

Configuración del registro

El dispositivo tiene 8 bit de configuración del registro que permite seleccionar, entrada de
canal, modo de conversión, resolución, y ganancia PGA, esto permite cambiar las
condiciones de operación y checar el status en la operación del dispositivo.

R/W-1 R/W-0 R/W-0 R/W-1 R/W-0 R/W-0 R/W-0 R/W-0

RDY C1 C0 O/C S1 S0 G1 G0

1* 0* 0* 1* 0* 0* 0* 0*

bit 7 bit 0

* Configuración default después de Power-On Reset

Se pueden seleccionar la configuración y pasarla a hexadecimal para saber cuál le


corresponde, por ejemplo

- [0001 1100] = [0x1C] es canal 1, modo continuo, resolución 18-bit, ganancia x1

- [0011 1100] = [0x3C] es canal 2, modo continuo, resolución 18-bit, ganancia x1

Pág.35
www.corrosionyproteccion.com Pág.35
ONE SHOT

Configuración del registro para el Sistema embebido en modo de un disparo.

En la siguiente tabla podemos ver la configuración de cada bit en qué estado establecerse
para la configuración que se requiere.

B7 B6 B5 B4 B3 B2 B1 B0

RDY C1 C0 o/c S1 S0 G1 G0

1 0 0 0 1 1 0 0

1 0 1 0 1 1 0 0

[0X8C] (canal 1, modo one shot, resolución 18 bit, ganancia x1)


[0xAC] (canal 2, modo one shot, resolución 18 bit, ganancia x1)

Dirección I2C 0x69 default

I2C Direcciones

Adr0 Adr1 I2C Dirección

Low-float Low-float 0x68

Pág.36
www.corrosionyproteccion.com Pág.36
Low Float 0x69

Low High 0x6A

Float Low 0x6B

High Low 0x6C

High Float 0x6D

High High 0x6E

Float High 0x6F

Tiempos de muestreo a una resolución de 18 bits


3.75 FPS a 18 bits
Resolución de 18 bits=262144/4.14=.015 mili volts

Pág.37
www.corrosionyproteccion.com Pág.37
Circuitos empleados en el ADC para la medición de la batería y
potenciales.

Para realizar las mediciones correctas por medio del sistema embebido fue
necesario realizar circuitos electrónicos que nos ayuden al acoplamiento de las
señales y la protección de la placas, aquí se muestran los circuitos empleados

Para la medición de la batería primero se requiere de un divisor de voltaje ya que la


batería puede llegar hasta los 4.2 V completamente cargada. El ADC no es capaz
de realizar mediciones más allá de su voltaje de alimentación, en este caso 3.3V. Al
estar conectado todo el tiempo el divisor de voltaje, debe circular la menor cantidad
de corriente posible para que su efecto sobre el consumo de la batería sea mínimo.
Sin embargo si circula muy poca corriente, el ADC no será capaz de tomar una
medición ya que internamente no podrá cargarse. Es por eso que se decidió agregar
un capacitor, el cual se descargará durante la medición permitiendo al ADC
funcionar correctamente

19. circuito para medición de bateria y placa electrónica

Pág.38
www.corrosionyproteccion.com Pág.38
Para la medición de los potenciales se necesita un filtro pasa bajas que permita
eliminar la frecuencia de 60 Hz del rectificador. Este filtro debe tener la frecuencia
de corte más baja posible sin ocasionar un alias en las mediciones.

20. Circuito para medición de potenciales y placa electronica

Primero se realizaron los circuitos por separado en distintas placas para hacer
pruebas de funcionamiento con cada uno y posteriormente ensamblarse los dos en
una sola placa.

Pág.39
www.corrosionyproteccion.com Pág.39
21. Circuito medidor de batería + medidor de potencial.

PROGRAMAS

Para el desarrollo de los programas fue necesario realizar pruebas del


funcionamiento de las placas, como lo es la comunicación entre dispositivos,
medición de voltajes, envió de datos, almacenamiento de estos, y funcionamiento
en modo sleep, a continuación se muestra la programación desarrollada e
implementada en el sistema embebido.

Comunicación entre JeeNodes

El primer programa consta del transmisor y la configuración del JeeNode con el RFM12B
para él envió de dos variables contenidas en un buffer.

Pág.40
www.corrosionyproteccion.com Pág.40
RF SEND
#include <JeeLib.h>

Byte seqnum; //variable tipo byte para secuencia


Static int myInt1 = 23; // variables para test de radio
Static int myInt2 = 57; // variables para test de radio

Void setup () {

rf12_initialize (20, RF12_868MHZ, 212); // comando de inicio


// parametros (byte nodeId, byte freqBand, byte netGroup)
// Frecuencia de bandas RF12_868MHZ, RF12_915MHZ, o RF12_433MHZ
// nodeId rango desde 1-26
// netGroup rango desde 1-212

Void loop () {
delay (300);
int buf [3];
buf [0] = ++seqnum;
buf [1] = myInt1;
buf [2] = myInt2;

While (! rf12_canSend ()) // espera hasta que él envió pueda establecerse

rf12_recvDone (); // procesa algún dato de regreso

rf12_sendStart (0, buf, sizeof buf); // envía los datos

Pág.41
www.corrosionyproteccion.com Pág.41
El siguiente programa es la configuración del receptor y la impresión de los datos recibidos

RF RECEIVE
#include <JeeLib.h>

void setup() {
Serial.begin (57600);
Serial.println ("\n[simpleReceive]");
rf12_initialize (18, RF12_868MHZ, 212);
Serial.print ("SimpleReceive");
}

void loop() {

if (rf12_recvDone() && rf12_crc == 0) {

int* buf = (int*) rf12_data;

Serial.print(buf[0]);
Serial.print(" ");
Serial.print(buf[1]);
Serial.print(" ");
Serial.println(buf[2]);

}
}

Después de las pruebas de transmisión de datos, se hizo la prueba de lectura de un canal del
ADC, y su configuración

ANALOG PLUG READ


#include <JeeLib.h>

PortI2C myI2C(1);
AnalogPlug adc (myI2C,0x69); //registro por default a utilizar

void setup() {
Serial.begin(57600);
if(adc.isPresent())
Serial.println("Analog Plug found");
adc.send();
adc.write(0x8C); //configuracion de adc , 18 bits, mode one-shot,gain x1
adc.stop();}
void loop() {
adc.select(1);
delay(500);
long uvolts = ((adc.reading() >> 8)*1000)/64;
Serial.print(' ');

Pág.42
www.corrosionyproteccion.com Pág.42
Serial.print(uvolts);
Serial.print(" ");
}
Serial.println();
delay(1000);}
El siguiente programa es para hacer un recorrido de la lectura de los cuatro canales que posee el
ADC

RF SEND ADC 4 CHANNELS

#include <JeeLib.h>

PortI2C myI2C(1);
AnalogPlug adc (myI2C);
byte seqnum;

void setup() {
rf12_initialize(20, RF12_868MHZ, 212);

Serial.begin(57600);
if(adc.isPresent())
Serial.println("Analog Plug found");

void loop() {

delay(300);

int buf[5];

buf[0] = ++seqnum;

for(byte i=1; i<= 4; ++i){


adc.select(i);
delay(270);
buf[i]=(int)adc.reading();
}
Serial.println ();
delay (1000);

while (!rf12_canSend())
rf12_recvDone ();

rf12_sendStart (0, buf, sizeof buf);


}

Pág.43
www.corrosionyproteccion.com Pág.43
Después lo siguiente fue realizar la medición del voltaje de la batería por medio del ADC

ANALOG PLUG READ VOLTAJE PILA


#include <JeeLib.h>

PortI2C myI2C(1);
AnalogPlug adc (myI2C,0x69);

void setup() {
Serial.begin(57600);
if(adc.isPresent())
Serial.println("Analog Plug encontrado");
adc.send();
adc.write(0x8C);
adc.stop();
}

void loop() {
adc.select(1);
delay(500);
long uvolts = ((adc.reading() >> 8)*1000)/64;
Serial.print(' ');
Serial.print(uvolts);
Serial.print(" ");

uvolts=(uvolts*2.55);
Serial.print("voltaje de pila ");
Serial.print(uvolts);

Serial.println();
delay(1000);
}

Una vez obtenido el valor del voltaje de la batería, se hizo una prueba para enviar este dato y ver
su funcionamiento, este programa consta en la configuración del transmisor y lectura del voltaje en
el ADC

ANALOG PLUG READ VOLTAJE PILA_ RF SEND


#include <JeeLib.h>

PortI2C myI2C(1); // seleccion de puerto 1 para comunicacion i2c


AnalogPlug adc (myI2C,0x69); //direccion de ad0 y ad1

Pág.44
www.corrosionyproteccion.com Pág.44
byte seqnum;
void setup() {

rf12_initialize(20, RF12_868MHZ, 212); // inicializacion de RF y configuracion

Serial.begin(57600);
if(adc.isPresent())
Serial.println("Analog Plug found");
adc.send(); //configuracion ADC
adc.write(0x8C);
adc.stop();
}

void loop() {

delay(300);
long buf[3];
buf[0]= ++seqnum;

adc.select(1);
delay(500);
long uvolts = ((adc.reading() >> 8)*1000)/64;
Serial.print(' ');
Serial.print(uvolts);
Serial.print(" ");
buf[1]=uvolts;
long uvolt2=(uvolts*2.55);
Serial.print("voltaje de pila ");
Serial.print(uvolt2);

buf[2]=uvolt2;

Serial.println();
delay(1000);

while (!rf12_canSend())
rf12_recvDone();

rf12_sendStart(0,buf,sizeof buf);
delay(200);
buf[1]=0;
buf[2]=0;
delay(200);
}

Este programa consta de la configuración del receptor y la impresión de los datos enviados del valor del voltaje de la batería

Pág.45
www.corrosionyproteccion.com Pág.45
ANALOG PLUG READ VOLTAJE PILA_RF RECEIVE

#include <JeeLib.h>
void setup() {
Serial.begin(57600);
Serial.println("\n[simpleReceive]");
rf12_initialize(18, RF12_868MHZ, 212);
Serial.print("SimpleReceive");
}

void loop() {

if (rf12_recvDone() && rf12_crc == 0) {


long* buf = (long*) rf12_data;

Serial.print(" Poste:");
Serial.print(buf[0]);
delay(100);
Serial.print(" Valor ADC: ");
Serial.print(buf[1]);
delay(100);
Serial.print(" Voltaje PILA: ");
Serial.print(buf[2]);
Serial.print(" ");
Serial.println();
delay(100);

}
}

Se estructuro el programa para una mejor organización de este y corregir un problema de ruido
que se presentaba en los datos enviados por vía RF

RFSEND_ANALOG STRUCTURE
#include <JeeLib.h>

PortI2C myI2C(1); // seleccion de puerto 1 para comunicacion i2c


AnalogPlug adc (myI2C,0x69); //direccion de ad0 y ad1
byte seqnum;

static void AP2init (DeviceI2C& dev, byte mode = 0x8C) {


// default mode is channel 1, one shot, 18-bit, gain x1
dev.send();
dev.write(mode);
dev.stop();
}

static long AP2read (DeviceI2C& dev) {


dev.receive();
long raw = (long) dev.read(0) << 16;
raw |= (word) dev.read(0) << 8;
raw |= dev.read(0);
byte status = adc.read(1);
return (raw * 1000) / 64;

Pág.46
www.corrosionyproteccion.com Pág.46
}

void setup()
{
Serial.begin(57600);
rf12_initialize(20, RF12_868MHZ, 212); // inicializacion de RF y configuracion
rf12_config();
rf12_easyInit(0);
AP2init(adc);
if(adc.isPresent())
Serial.println("Analog Plug found");

void loop() {

delay(300);
long buf[3];

///////////////////
long val = AP2read(adc);

rf12_easyPoll();
rf12_easySend(&val, sizeof val);
buf[0]= ++seqnum;
buf[1]=val;
long val2 = val*2.68;
buf[2]=val2;
delay(2000);

////////////////////ENVIO DE DATA
while (!rf12_canSend())
rf12_recvDone();

rf12_sendStart(0,buf,sizeof buf);

De acuerdo a que es necesario almacenar los datos enviados del voltaje de la batería y
los potenciales, se realizó una prueba de almacenamiento en una tarjeta SD, y para
conocer su modo de configuración.

READ/WRITE SD CARD
/* SD card read/write
The circuit:
* SD card attached to SPI bus as follows:
** MOSI - pin 11
** MISO - pin 12
** CLK - pin 13
** CS - pin 4*/

#include <SPI.h>
#include <SD.h>

File myFile;
void setup() {

Pág.47
www.corrosionyproteccion.com Pág.47
Serial.begin(9600);
while (!Serial) {
; }
Serial.print("Initializing SD card...");

if (!SD.begin(4)) {
Serial.println("no inicializo!");
return;
}
Serial.println("inicializaicon correcta.");

myFile = SD.open("texto.txt", FILE_WRITE);

if (myFile) {
Serial.print("Escribiendo en text.txt...");
myFile.println("Prueba 1, 2, 3.");
myFile.close();
Serial.println("done.");
} else {
Serial.println("error abriendo text.txt");
}
myFile = SD.open("text.txt");
if (myFile) {
Serial.println("text.txt:");
while (myFile.available()) {
Serial.write(myFile.read());
}
myFile.close();
} else {
Serial.println("error abriendo text.txt");
} } void loop() {
CONFIGURACION SDCARD + RFM12B CONEXIONES ENTRE PINES

Se emplean dos dispositivos que utilizan comunicación SPI, por lo cual es necesario la correcta conexión de los pines entre
ellos que permita el funcionamiento correcto al momento de usarse.

RFM12B

5V GND SCK SDO SDI SEL IRQ

** * PIN 13 PIN 12 PIN 11 PIN 10 PIN 2

SD CARD

Pág.48
www.corrosionyproteccion.com Pág.48
GND CD DO SCK DI CS VCC

* NC PIN 12 PIN 13 PIN 11 PIN 4,8 **

El siguiente programa consta de la unión de los programas desarrollados anteriormente, para


poder realizar la base del sistema embebido, que consta de la lectura de la batería y los
potenciales, su transmisión vía RF y el almacenamiento de estas variables para su posterior
análisis, así mismo como la configuración de la tarjeta SD y el módulo de RF, con sus respectivas
conexiones.

READWRITE SD+RF

/*
RF card attached to SPI bus as follows:
** MOSI - pin 11
** MISO - pin 12
** CLK - pin 13
** CS - pin 10

SD card attached to SPI bus as follows:


** MOSI - pin 11
** MISO - pin 12
** CLK - pin 13
** CS - pin 4
*/

#include <JeeLib.h>
#include <SPI.h>
#include <SD.h>

File myFile;
long volt;
int id;
int CS;
int aux = 0;

void setup() {

pinMode(10, OUTPUT);
pinMode(4, OUTPUT);
digitalWrite (10, HIGH);
digitalWrite (4, HIGH);

Serial.begin(57600);
while (!Serial) {
; }
//////////////RF12B////////////////
rf12_initialize(18, RF12_868MHZ, 212);
Serial.print("SimpleReceive");

//////////////
if (!SD.begin(4)) {

Pág.49
www.corrosionyproteccion.com Pág.49
Serial.println("initialization failed!");
return;
}
}

void loop() {

delay(100);
digitalWrite (10, LOW);
digitalWrite (4, HIGH);
if (rf12_recvDone() && rf12_crc == 0) {
long* buf = (long*) rf12_data;

delay(100);
Serial.print(" Poste:");
Serial.print(buf[0]);
delay(100);
Serial.print(" Valor ADC: ");
Serial.print(buf[1]);
delay(100);
Serial.print(" Voltaje PILA: ");
Serial.print(buf[2]);
Serial.print(" ");
Serial.println();
delay(100);
id = buf[0];
volt = buf[2];
}

digitalWrite (10, HIGH);


digitalWrite (4, LOW);
if (volt > 0)
{
Serial.println("SD");
myFile = SD.open("voltaje.txt", FILE_WRITE);
if (myFile) {
Serial.print("Writing volt.txt...");
myFile.print("poste :");
myFile.print(id);
myFile.print(" ");
myFile.print("voltaje :");
myFile.println(volt);
myFile.println("------");
myFile.close();
Serial.println("done.");
}
else {
Serial.println("fail.");
}

volt = 0;
}

digitalWrite (10, HIGH);

Pág.50
www.corrosionyproteccion.com Pág.50
digitalWrite (4, HIGH);
}

MONITOR SERIAL DATOS RECIBIDOS

A continuación se muestran los datos de las lecturas realizadas por el ADC, y por medio de un monitor serial se despliegan
los datos obtenidos vía RF para corroborar que se enviaran correctamente.

22. datos recibidos y desplegados en monitor serial

Pág.51
www.corrosionyproteccion.com Pág.51
ONESHOT_RF

#include <JeeLib.h>
#include <Ports.h>
#include <RF12.h>

PortI2C myI2C(1);
AnalogPlug adc(myI2C,0x69);
byte seqnum;
byte Config;
int ack;

void setup()
{
ack = 0;
// Serial
Serial.begin(57600);
//RF12B
rf12_initialize(20, RF12_868MHZ, 212); // inicializacion de RF y configuracion
rf12_config();
rf12_easyInit(0);
////////////////
Serial.println("POSTES");
ack = adc.send();
if(ack)
Serial.println("Got Ack");
//adc.write(0x8F); // channel 1, 18 bit, 8x gain, one-shot conversion
adc.stop();
}

void loop() {
long buf[3];
buf[0]= ++seqnum;
Serial.print(buf[0]);
Serial.print(" | ");
long raw;
ack = adc.send();
if(ack){

adc.write(0x8C);

adc.receive();
raw = (long) adc.read(0) << 16;
raw |= (word) adc.read(0) << 8;
raw |= adc.read(0);
Config = adc.read(0);

while(Config != 0x0C) { // espera de conversion

Pág.52
www.corrosionyproteccion.com Pág.52
Config = adc.read(0);
}
adc.read(1);
adc.receive();
long data = adc.read(0);
raw = data << 16;
raw |= (word) adc.read(0) << 8;
raw |= adc.read(0);
raw |= (raw * 1000) / 64;

Serial.print(" ADC Poste: ");


Serial.print(raw);
Serial.print(" uV ");
Serial.print(" | ");

long poste = ((raw*3.125)/1000);


Serial.print(" Voltaje del Poste: ");
Serial.print(poste);
Serial.print(" mV ");
Serial.print(" | ");
buf[1]=poste;
adc.read(1);
adc.stop();
}
delay(500);

ack = adc.send();
if(ack){
adc.write(0xAC);

adc.receive();
raw = (long) adc.read(0) << 16;
raw |= (word) adc.read(0) << 8;
raw |= adc.read(0);
Config = adc.read(0);

while(Config != 0x2C) {
Config = adc.read(0);
}
adc.read(1);
adc.receive();
long data = adc.read(0);
raw = data << 16;
raw |= (word) adc.read(0) << 8;
raw |= adc.read(0);
raw |= (raw * 1000) / 64;
Serial.print(" ADC BAT: ");
Serial.print(raw);
Serial.print(" uV ");
Serial.print(" | ");
long uvolts = ((raw*2.44)/1000);
Serial.print(" Voltaje bat: ");
Serial.print(uvolts);

Pág.53
www.corrosionyproteccion.com Pág.53
Serial.print(" mV ");
Serial.print(" | ");
buf[2]=uvolts;
adc.read(1);
adc.stop();
}
Serial.println();
////////////envio de data/////////////////////////
while (!rf12_canSend())
rf12_recvDone();
rf12_sendStart(0,buf,sizeof buf);

buf[1]=0;
buf[2]=0;
delay(8700);

}
ReadWrite SD+RF+BATERIA+POSTES_FINAL

/*
* RF card attached to SPI bus as follows:
** MOSI - pin 11
** MISO - pin 12
** CLK - pin 13
** CS - pin 10

* SD card attached to SPI bus as follows:


** MOSI - pin 11
** MISO - pin 12
** CLK - pin 13
** CS - pin 4
*/

#include <JeeLib.h>
#include <SPI.h>
#include <SD.h>

File myFile;
long volt;
long poste;
int id;
int CS;
int aux=0;

void setup() {
pinMode(10,OUTPUT);
pinMode(4,OUTPUT);

digitalWrite (10,HIGH);
digitalWrite (4,HIGH);

Serial.begin(57600);
while (!Serial) { ; }
//////////////RF12B////////////////
rf12_initialize(18, RF12_868MHZ, 212);
Serial.print("SimpleReceive");

Pág.54
www.corrosionyproteccion.com Pág.54
//////////////
if (!SD.begin(4)) {
Serial.println("initialization failed!");
return;}
}

void loop() {
///////////////RF12B//////////////////////////
delay(100);
digitalWrite (10,LOW);
digitalWrite (4,HIGH);
if (rf12_recvDone() && rf12_crc == 0) { // received good data if true
long* buf = (long*) rf12_data;
delay(100);
Serial.print(" ID Poste:");
Serial.print(buf[0]);
delay(100);
Serial.print(" Voltaje Poste: ");
Serial.print(buf[1]);
delay(100);
Serial.print(" Voltaje Bateria: ");
Serial.print(buf[2]);
Serial.print(" ");
Serial.println();
delay(100);
id=buf[0];
poste=buf[1];
volt=buf[2];
}

////////////////////////////////////////

if (volt>0)
{
digitalWrite (10,HIGH);
digitalWrite (4,LOW);

Serial.println("SD");
myFile = SD.open("voltaje.txt", FILE_WRITE);

if (myFile) {
Serial.print("Writing voltaje.txt...");
myFile.print("poste :");
myFile.print(id);
// myFile.print("| ");
myFile.print("voltaje poste :");
myFile.print(poste);
myFile.print(" mV ");
//myFile.print(" | ");
myFile.print("voltaje bateria :");
myFile.print(volt);
myFile.print(" mV ");
myFile.println("_________ ");
// close the file:
myFile.close();
Serial.println("done.");

Pág.55
www.corrosionyproteccion.com Pág.55
}
else {
Serial.println("fail.");
}
volt=0;
}
digitalWrite (10,HIGH);
digitalWrite (4,HIGH);
}

ONESHOT_RF_SLEEPMODEPWRDOWN

#include <avr/sleep.h>
#include <avr/wdt.h>
#include <avr/power.h>
#include <JeeLib.h>
#include <Ports.h>
#include <RF12.h>

PortI2C myI2C(1);
AnalogPlug adc(myI2C,0x69);
byte seqnum;
byte Config;
int ack;
//////////SLEEPMODE_CONFIG/////////////
ISR(WDT_vect)
{
wdt_disable(); //deshabilitda watchdog
}

void myWatchdogEnable(const byte interval)


{
MCUSR = 0;
WDTCSR |= 0b00011000;
WDTCSR = 0b01000000 | interval;
wdt_reset();
power_all_disable (); //apaga varios módulos

set_sleep_mode (SLEEP_MODE_PWR_DOWN);
sleep_mode();

Pág.56
www.corrosionyproteccion.com Pág.56
}

void setup()
{
ack = 0;
//RF12B
Sleepy::loseSomeTime(32);
rf12_initialize(20, RF12_868MHZ,212);
rf12_config();
rf12_easyInit(0);
rf12_sleep(RF12_SLEEP);
Sleepy::loseSomeTime(1000);
////////////////
ack = adc.send();
if(ack)
adc.stop();
}

void loop() {
power_all_enable ();
Sleepy::loseSomeTime(200);
long buf[3];
buf[0]= ++seqnum;
long raw;
ack = adc.send();
if(ack){
adc.write(0x8C);
adc.receive();
raw = (long) adc.read(0) << 16;
raw |= (word) adc.read(0) << 8;
raw |= adc.read(0);
Config = adc.read(0);

while(Config != 0x0C) {
Config = adc.read(0);
}
adc.read(1);
adc.receive();
long data = adc.read(0);
raw = data << 16;
raw |= (word) adc.read(0) << 8;
raw |= adc.read(0);
raw |= (raw * 1000) / 64;
long poste = ((raw*3.125)/1000);

buf[1]=poste;
adc.read(1);
adc.stop();
}
Sleepy::loseSomeTime(300);
ack = adc.send();
if(ack){
adc.write(0xAC);

adc.receive();
raw = (long) adc.read(0) << 16;

Pág.57
www.corrosionyproteccion.com Pág.57
raw |= (word) adc.read(0) << 8;
raw |= adc.read(0);
Config = adc.read(0);

while(Config != 0x2C) {
Config = adc.read(0);
}

adc.read(1);
adc.receive();
long data = adc.read(0);
raw = data << 16;
raw |= (word) adc.read(0) << 8;
raw |= adc.read(0);
raw |= (raw * 1000) / 64;
long uvolts = ((raw*2.44)/1000);

buf[2]=uvolts;
adc.read(1);
adc.stop();}
////////////envio de data/////////////////////////
rf12_sleep(RF12_WAKEUP);
rf12_sendNow(0,buf, sizeof buf);
rf12_sendWait(0);
rf12_sleep(RF12_SLEEP);
buf [1]=0;
buf [2]=0;
int p;
for (p = 0; p <9; p++)/// duerme por 9 segundos
{
myWatchdogEnable (0b000110); // 1 seconds
}
}

Datos enviados y almacenados en tarjeta SD

Pág.58
www.corrosionyproteccion.com Pág.58
23. Datos enviados y almacenados en la SD

Pág.59
www.corrosionyproteccion.com Pág.59
RTC PLUG PROPUESTA DE MEJORA DEL AHORRO DE CONSUMO

Por medio del rtc podemos configurar el día y la hora en que trabajara el sistema, de esta manera podemos aumentar el
tiempo de uso de la batería programando para que este en modo de sueño cuando no esté en uso.

PROGRAMA PRUEBA PARA CONFIGURACION DEL RTC

#include <JeeLib.h>
PortI2C myport (1 /*, PortI2C::KHZ400 */);
DeviceI2C rtc (myport, 0x68);
static byte bin2bcd (byte val) {
return val + 6 * (val / 10);}

static byte bcd2bin (byte val) {


return val - 6 * (val >> 4);}
static void setDate (byte yy, byte mm, byte dd, byte h, byte m, byte s) {
rtc.send();
rtc.write(0);
rtc.write(bin2bcd(s));
rtc.write(bin2bcd(m));
rtc.write(bin2bcd(h));
rtc.write(bin2bcd(0));
rtc.write(bin2bcd(dd));
rtc.write(bin2bcd(mm));
rtc.write(bin2bcd(yy));
rtc.write(0);
rtc.stop();
}
static void getDate (byte* buf) {
rtc.send();
rtc.write(0);
rtc.stop();
rtc.receive();
buf[5] = bcd2bin(rtc.read(0));

Pág.60
www.corrosionyproteccion.com Pág.60
buf[4] = bcd2bin(rtc.read(0));
buf[3] = bcd2bin(rtc.read(0));
rtc.read(0);
buf[2] = bcd2bin(rtc.read(0));
buf[1] = bcd2bin(rtc.read(0));
buf[0] = bcd2bin(rtc.read(1));
rtc.stop();}
void setup() {
Serial.begin(57600);
Serial.println("\n[rtc_demo]");
// test code:
setDate(16, 11, 10, 10, 00, 0); //año,mes,dia,hora,min,seg}
void loop() {
byte now[6];
getDate(now);
Serial.print("rtc");
for (byte i = 0; i < 6; ++i) {
Serial.print(' ');
Serial.print((int) now[i]);}
Serial.println();
delay(1000);
}

Programa prueba día de la semana con RTC PLUG

#include <JeeLib.h>
#include <Wire.h>
PortI2C myport (1 /*, PortI2C::KHZ400 */);
DeviceI2C rtc (myport, 0x68);

byte diaA;
byte diaN;
byte i;
byte diaActual;
byte a;
byte c;

char* dia[]={"Lunes", "Martes", "Miercoles",


"Jueves", "Viernes","Sabado","Domingo"};

static byte bin2bcd (byte val) {


return val + 6 * (val / 10);
}

static byte bcd2bin (byte val) {


return val - 6 * (val >> 4);
}

static void setDate (byte yy, byte mm, byte dd, byte h, byte m, byte s) {
rtc.send();
rtc.write(0);
rtc.write(bin2bcd(s));

Pág.61
www.corrosionyproteccion.com Pág.61
rtc.write(bin2bcd(m));
rtc.write(bin2bcd(h));
rtc.write(bin2bcd(0));
rtc.write(bin2bcd(dd));
rtc.write(bin2bcd(mm));
rtc.write(bin2bcd(yy));
rtc.write(0);
rtc.stop();
}

static void getDate (byte* buf) {


rtc.send();
rtc.write(0);
rtc.stop();

rtc.receive();
buf[5] = bcd2bin(rtc.read(0));
buf[4] = bcd2bin(rtc.read(0));
buf[3] = bcd2bin(rtc.read(0));
rtc.read(0);
buf[2] = bcd2bin(rtc.read(0));
buf[1] = bcd2bin(rtc.read(0));
buf[0] = bcd2bin(rtc.read(1));
rtc.stop();
}

void setup() {
Serial.begin(57600);
Serial.println("\n[rtc_demo]");
/*
Lunes=0
Martes=1
Miercoles=2
Jueves =3
Viernes=4
Sabado=5
Domingo=6
*/
diaActual=5;

a=1;
// test code:
setDate(16, 12, 3, 23, 59,0 ); //año,mes,dia,hora,min,seg
}

void loop() {

byte now[6];
getDate(now);{

Serial.print("rtc");

Serial.print(" ");

Pág.62
www.corrosionyproteccion.com Pág.62
Serial.print(now[2]);//dia
Serial.print(" / ");
Serial.print(now[1]);//mes
Serial.print(" / ");
Serial.print(now[0]);//año
Serial.print(" . ");
Serial.print(now[3]);//hora
Serial.print(" : ");
Serial.print(now[4]);//minuto
Serial.print(" : ");
Serial.print(now[5]);//segundo

diaN=diaA+1;
diaA=now[2];
Serial.print(" ");
// Serial.print(diaA);
Serial.print(" ");
//Serial.print(diaN);
Serial.print(" ");

if(diaN==diaA){
c=a;

if(c==1){
diaActual=(diaActual+1);
for (i = diaActual; i < 7; i++){
a=a+1;
break;
}

if(c==2){
for (i = diaActual; i < 7; i++){
break;
}

}
}
}

Serial.println(dia[i]);
Serial.println();

delay(1000);
}

Programa de Envió de múltiples datos

#include <JeeLib.h>
int b=500;

Pág.63
www.corrosionyproteccion.com Pág.63
byte seqnum;

void setup() {
Serial.begin(57600);
Serial.print("simple");
rf12_initialize(20, RF12_868MHZ, 212);
}

void loop() {
delay(300);

int buf[30];

int a=0;
for(a=0;a<=30;a++)
buf[a]=b++;

/*
buf[0]=10;
buf[1]=11;
buf[2]=12;
buf[3]=13;
buf[4]=14;
buf[5]=15;
buf[6]=16;
*/
while (!rf12_canSend())
rf12_recvDone();
rf12_sendStart(0, buf, sizeof buf);

Serial.print("enviado");
delay(5000);
}

Programa de recepción de múltiples datos

#include <JeeLib.h>

void setup() {
Serial.begin(57600);
Serial.println("\n[simpleReceive]");
rf12_initialize(18, RF12_868MHZ, 212);
Serial.print("SimpleReceive");
}

void loop() {

if (rf12_recvDone() && rf12_crc == 0) {


int* buf = (int*) rf12_data;
for (byte i=0; i<= 29; ++i)
{Serial.println(buf[i]);
delay(100);
}

Pág.64
www.corrosionyproteccion.com Pág.64
Serial.print(" ");

}
}

DISEÑO DEL CILINDRO PARA EL POSTE

Pág.65
www.corrosionyproteccion.com Pág.65
24. cilindro de nylamid

PROPUESTA

La primera propuesta para guardar el circuito dentro de un estuche que pudiera protegerlo de las condiciones del medio
ambiente y que fuera fácil de instalarse en los postes fue un cilindro de Nylamid y tomando en cuenta las medidas del
circuito se diseñaron los siguientes planos y modelos 3d

Pág.66
www.corrosionyproteccion.com Pág.66
Planos

Pág.67
www.corrosionyproteccion.com Pág.67
25. planos y medidas del cilindro

Pág.68
www.corrosionyproteccion.com Pág.68
Modelos 3D

Vista Frontal Vista Isométrica

Vista Superior Vista Lateral

26. Vistas de diferentes ángulos del cilindro

Pág.69
www.corrosionyproteccion.com Pág.69
Por medio de la simulación 3D podemos ver qué medidas y ajustes hacer para que los componentes queden lo mejor
posibles acomodados y que las dimensiones sean correctas.

Objetos dentro del cilindro

27. JeeNode y Circuitos Electrónicos

Pág.70
www.corrosionyproteccion.com Pág.70
28. Batería LiPo

Ensamblaje dentro del cilindro

Pág.71
www.corrosionyproteccion.com Pág.71
29. Cilindro de nylamid con los componentes

Pág.72
www.corrosionyproteccion.com Pág.72
30. cilindro ensamblado

PROPUESTAS DE MEJORA PARA CAJA DEL SISTEMA EMBEBIDO

Partiendo del primer diseño y haciendo un análisis de cómo realizar una mejora que permita crear un estuche de menor
costo y que se adecue más al poste donde se instale se dieron las siguientes propuestas.

Propuesta 1

Para esta primer propuesta se diseñó una caja y una tapadera con las medidas del ancho del poste que es de 15cm y con
un espacio suficiente para poder colocar el sistema embebido a como se desee.

Planos

En la siguiente imagen se muestran los planos con medidas de la caja propuestos.

Pág.73
www.corrosionyproteccion.com Pág.73
31. planos de propuesta 1

Modelos 3D

Para tener una idea final de la caja a continuación se muestran los modelos 3D creados en solidworks

Pág.74
www.corrosionyproteccion.com Pág.74
32. modelos 3D de propuesta 1

Propuesta 2

La segunda propuesta consistió en diseñar la caja con la forma octagonal que posee el poste, de esta manera se mantiene
la estética y además posee el espacio suficiente para almacenar el sistema embebido.

Planos

En la siguiente imagen se muestran las medidas de la caja propuesta

Pág.75
www.corrosionyproteccion.com Pág.75
33. planos de propuesta 2

Modelos 3D

A continuacion se muestran los modelos 3D de la caja octagonal.

Pág.76
www.corrosionyproteccion.com Pág.76
34 modelos 3D de propuesta 2

Por medio del diseño podemos ver las alternativas a desarrollar, esto nos permite tomar en cuenta todos los factores que
conllevan para su realización, así como medidas y lo que podemos encontrar en el mercado para hacer nuestra caja

Diseño de pcb para sistema dentro del drone

También se diseñó un pcb donde se pudieran soldar todos los componentes del sistema embebido que va dentro del Drone
el cual es el que recibe los datos enviados por RF, de esta manera pueda soportar los movimientos ejercidos por el avión.

Primera propuesta

Se diseñó un circuito que tuviera todas las conexiones necesarias para el sistema que consta de un arduino Pro mini,
RF12b y tarjeta SD.

Pág.77
www.corrosionyproteccion.com Pág.77
35. Placa 1 pcb para sistema embebido en el drone

Se diseñó una segunda propuesta y se decidió por mejorar la distribución y el espacio de cómo se acomodarían los
componentes para una mejor ergonomía dentro de la aeronave.

36. Placa 2 pcb para sistema embebido en el drone

Resultado final de la placa pcb

Pág.78
www.corrosionyproteccion.com Pág.78
En la siguiente imagen se muestra el resultado final de la placa con los componentes soldados.

37. placa pcb

Pág.79
www.corrosionyproteccion.com Pág.79
Caja para sistema embebido en el drone

Los siguientes planos y modelos 3D se realizaron para guardar la placa pcb que se monta en el drone.

Planos

Pág.80
www.corrosionyproteccion.com Pág.80
38. Planos para caja del pcb

Modelos 3D

39. Modelos 3D de caja del pcb

Pág.81
www.corrosionyproteccion.com Pág.81
Al mismo tiempo se diseñó otro circuito similar para la toma de potenciales.

TOMA DE POTENCIALES
El objetivo de este tema es recaudar la toma de un potencial eléctrico en los
postes, integrado a eso va un circuito eléctrico, capaz de leer el diferencial del
potencial, mandarlo al UAV (Unmanned Aerial Vehicle), y comunicándose con el
UAV en tiempo real, en un rango de 200mts.

Todo este circuito tiene que ir embebido en un cilindro de nylamid, llamado nylalloy,
este tipo de material, tiene propiedades mecánicas, térmicas, eléctricas, dureza.
Sus dimensiones son 3” de diámetro, y 5.9” de largo.

También la batería debe soportar la alimentación del circuito por 1 año sin que se
le de mantenimiento.

Toma de potenciales V.1

Tomando en cuenta que necesitamos leer un voltaje, necesitamos algún


Microcontrolador que pueda procesar señales analógicas, para esto se utilizó en
Arduino mega figura 1 , que tiene un lenguaje en C, para mayor facilidad de
programación, se le integro un módulo de frecuencia de 900mhz Xbee pro 900
figura 2, con un módulo de Xbee Explorer figura 3, también para programar los
Xbee se utilizó el programa XCTU, este programa nos ayuda a poner los Xbee como
coordinadores y como esclavo, se utilizaron dos resistencias una de un 10kohm y
100kohms, con el motivo de que el Arduino nada más recibe 5v de input, con este
divisor de voltaje, nos ayuda a tener mayor resolución. Como se muestra en la figura
4

XCTU

XCTU es una aplicación multi-plataforma libre diseñada para permitir a los


desarrolladores interactuar con módulos Digi RF (radio frecuencia) a través de una
interfaz gráfica fácil de usar. Incluye nuevas herramientas que hacen más fácil de
configurar, configurar y probar módulos RF XBee

Pág.82
www.corrosionyproteccion.com Pág.82
Figura 1 Arduino Mega

Figura 2 Xbee pro 900 (16 millas).

Pág.83
www.corrosionyproteccion.com Pág.83
Figura 3 Sparkfun Xbee Explorer

Figura 4 formula de divisor de voltaje.

El código en Arduino quedaría de la siguiente manera tomando en cuenta el divisor


de voltaje.

float v1 = 5; // valor real de la alimentacion de Arduino


float r1 = 100000; // valor de las resistencia
float r2 = 10000; // valor de la resistencia

void setup() {
Serial.begin(9600);
}

void loop() {
float v = (analogRead(0) * v1) / 1024.0;
float v2 = v / (r2 / (r1 + r2));

Pág.84
www.corrosionyproteccion.com Pág.84
Serial.print("001, ");
Serial.println(v2);

delay(300);
}

Con este código lo que hace el circuito es, siempre estar leyendo lo que le entra
en el puerto analógico, y siempre mandarlo por el puerto serial, esto causa que la
batería consuma mucha energía, por esa razón es uno de los puntos a mejorar.

CONEXIONES

Las conexiones del Xbee con el Arduino son de la siguiente manera.

Para la conexión del Arduino mega con el Shield de Xbee Explorer es de la siguiente
manera, como se muestra en la siguiente figura.

Figura se muestra como se conecta el Xbee con el Microcontrolador Arduino


mega.

Arduino Xbee Explorer

5v - 5v

GND GND

TX DIN

Pág.85
www.corrosionyproteccion.com Pág.85
RX DOUT

Para alimentar todo el circuito se utilizó una batería de 12voltios a 7 Amperes,


dentro de las especificaciones del Arduino muestra que soporta la carga ya que
tiene reguladores de voltaje.

La cantidad de energía que consume este circuito, es mucho mayor al que se


espera, se tiene que el Microcontrolador consume 50mAh, y con el Xbee
conectado consume 256mAh,

Arduino Mega

0.05𝐴ℎ 𝑥 5𝑣𝑜𝑙𝑡𝑠 = .25𝑊

0.25𝑊 𝑥 24ℎ = 6𝑤ℎ 𝑑𝑒 𝑐𝑜𝑛𝑠𝑢𝑚𝑜 𝑎𝑙 𝑑𝑖𝑎

6𝑊ℎ 𝑥 365 𝑑𝑖𝑎𝑠 𝑑𝑒𝑙 𝑎ñ𝑜 = 2190𝑊ℎ

2190𝑊ℎ 𝑎𝑙 𝑎ñ𝑜
= 438𝐴
5𝑣

El puro Microcontrolador consume 438Ah en un año, mientras que el Xbee pro 900
consume 2242.42Ah. Revisando los cálculos, es excesiva la demanda de energía
que se necesita para que el circuito funcione adecuadamente, y sería un arreglo
de baterías muy grande, y no estaría embebido en el poste, utilizando la pila que
le proporcionamos ya tomando en cuenta que la batería va perdiendo el voltaje,
mientras se descarga, duraría aproximadamente 1 día con una hora de consumo.

Desventajas

 El circuito no te entrega con la precisión que se necesitaba.


 El circuito está muy grande ya que utiliza el Arduino Mega.

Pág.86
www.corrosionyproteccion.com Pág.86
 No cabe dentro de las especificaciones del poste.
 Mayor consumo de batería.
 Los Xbee no soportaban los protocolos de comunicación que se
necesitaban.
 No cabe en el cilindro de Nylalloy figura 5.

Figura 5 tubo de nylalloy.

Pág.87
www.corrosionyproteccion.com Pág.87
Toma de potenciales V.2

Tomando en cuenta que necesitamos mejorar las desventajas del circuito anterior,
lo primero que se mejoró en cuanto al diseño del circuito fue, cambiar el
Microcontrolador, por uno de menor puertos, ya que en el Arduino mega se
desperdiciaban muchos puertos de analógico y digital.

Así que por esa razón decidimos usar el Arduino uno figura 6, gracias a este
Microcontrolador reducimos el espacio del circuito, reducimos los puertos
analógicas y digitales, también reducimos el consumo de energía de este
Microcontrolador, lo que se busca es obtener el proyecto es tener el menor
consumo de energía, reduciendo al igual el tamaño del circuito acoplándolo a las
dimensiones marcadas por el cilindro.

El tipo de comunicación no cambio, lo que si cambio fue la comunicación de radio


frecuencia, se sustituyó la radio frecuencia de 900mhz, a una frecuencia de 2.4Ghz
(Xbee serie 2) wire antena como coordinator figura 7, y como Router quedo el Xbee
S2 2mv RPSMA figura 8, con su respectiva antena Tp link TL-ANT2405C figura 9 este
tipo de comunicación se puede configurar como coordinator, y Router, esto quiere
decir que no importa cuántos Routers se tengan siempre los va a leer un mismo
Coordinator, esto nos ayuda a generar como una red, y toda la información se va
a poder leer en un mismo punto.

Pág.88
www.corrosionyproteccion.com Pág.88
Figura 6 Arduino uno

Figura 7 Xbee Serie 2 antena incluida. (120m)

Pág.89
www.corrosionyproteccion.com Pág.89
Figura 8 Xbee RPSMA (120m).

Figura 9 antena Tp link TL-ANT2405C

CONEXIONES

Pág.90
www.corrosionyproteccion.com Pág.90
En este se muestra como se conecta los dos circuitos, como los dos comparten la
parte del Xbee Explorer, se conectan de igual forma, no importa si es receptor, o
el emisor de los datos, como se muestra en la figura de abajo

Como se puede observar en la imagen de arriba se alcanza a apreciar las


conexiones que quedarían de la siguiente manera.

Arduino Xbee Explorer

5v - 5v

GND GND

TX DIN

RX DOUT

CONFIGURACION DEL XBEE

La configuración del Xbee comienza con bajar el programado llamado XCTU,


este programa con ayuda del Xbee USB Explorer, nos permite la configuración del
Xbee tanto como el de emisor que es el serie 2 con antena incluida, como el
emisor Xbee serie 2 RPSMA.

Ya que tengamos instalado el programa XCTU, lo abrimos y aparecerá de la


siguiente manera.

Pág.91
www.corrosionyproteccion.com Pág.91
Ya que está abierto el programa, conectamos el Xbee Explorer USB, con el
dispositivo Xbee que deseamos configurar.

Pág.92
www.corrosionyproteccion.com Pág.92
Después, le damos clic en la parte superior izquierda donde aparece el icono

, después de darle clic nos desplegara un menú.

Pág.93
www.corrosionyproteccion.com Pág.93
Debemos seleccionar el puerto COM que se les asignó a los Xbee Explorer USB,
después le damos en next y nos desplegara otro menú.

Pág.94
www.corrosionyproteccion.com Pág.94
En el siguiente menú nos mostrara los parámetros, bites de paridad, serial, etc.

Le damos en finish.

Pág.95
www.corrosionyproteccion.com Pág.95
Después de escanear los dispositivos conectados, le damos en add selected
devices, seleccionas el que vayas a configurar, en este caso configuraremos el

Router, una vez que se abra le damos clic en el icono y se desplegara un


menú ese menú es el que te va a indicar el tipo de comunicación.

En este caso el tipo de comunicación será Zigbee Router/end Decive AT, a


continuación le damos clic en continuar y se cargara el firmware al Xbee.

Pág.96
www.corrosionyproteccion.com Pág.96
Hacemos el mismo proceso con el coordinador.

Y como se puede observar en la imagen vemos que dice Xbee coordinator AT,
después de configurarlo tenemos que observar que tengan la misma
configuración los dos Xbee tanto el coordinador como el Router, ojo cada vez
que vayas a cambiar los parámetros del Xbee no se te vaya a olvidar escribirlos
para ello se recomienda que después de las configuraciones le des clic en el

icono write para que queden guardados las configuraciones.

Pág.97
www.corrosionyproteccion.com Pág.97
En esta imagen se puede observar que del lado izquierdo tenemos el Router y del
lado derecho tenemos el Coordinador, para esto también se observa que tienen
el mismo ID, por esa razón se van a comunicar entre ellos, para poder observar
que hay comunicación, hicimos una prueba.

Para esto nos vamos al monitor serial que está representado con este icono

, una vez ahí le agregamos una serie de paquetes que enviaremos, en


este caso mandaremos la palabra hola mundo como se muestra en la siguiente
imagen.

Pág.98
www.corrosionyproteccion.com Pág.98
A continuación se verá que el coordinador recibirá el paquete de letras y se verá
reflejado en el monitor serial del lado derecho, como se muestra en la imagen de
abajo.

El código que se utilizo es el mismo que se utilizó en el prototipo pasado, solo que
ahora se integró un nuevo código que es para la parte del coordinator, este código
en Arduino nos ayuda visualizar los datos que se están mandando del Router.

char vout;

void setup(){

Serial.begin(9600); //Inicialzar el serial


}

void loop(){
if (Serial.available()>0);{//se revisa si hay algo en el serial

char vout=Serial.read();// si hay algo en el serial se lee


Serial.print(vout);//y lo imprime
delay (100);// tiempo en milisegundos

}
}

Lo que sucede con este código es iniciar el serial, después ver si hay algo en ese
serial, si hay algo dentro de ese rango del serial imprimirlo, y después esperar un
tiempo.

Pág.99
www.corrosionyproteccion.com Pág.99
En cuanto a la alimentación del circuito se quedó como en el prototipo anterior,
una batería de 12voltios a 7 amperes figura 10.

Figura 10 Batería 12V a 7A.

Con este circuito logramos reducir el consumo de energía esto es gracias a que se
cambió el Microcontrolador por uno de menor consumo, al igual que los RF (radio
frecuencia), aunque también se disminuyó el rango de recepción, pero no se
necesita mucho rango para detectar el UAV, con el circuito en el poste.

Los cálculos de consumo de energía del Arduino uno es de 40mA, y el consumo de


los Xbee es de 40mA.

0.08𝐴ℎ 𝑥 5𝑣𝑜𝑙𝑡𝑠 = 0.4𝑊

Pág.100
www.corrosionyproteccion.com Pág.100
0.4𝑊 𝑥 24ℎ = 9.6𝑤ℎ 𝑑𝑒 𝑐𝑜𝑛𝑠𝑢𝑚𝑜 𝑎𝑙 𝑑𝑖𝑎

9.6𝑊ℎ 𝑥 365 𝑑𝑖𝑎𝑠 𝑑𝑒𝑙 𝑎ñ𝑜 = 3504𝑊ℎ

3504𝑊ℎ 𝑎𝑙 𝑎ñ𝑜
= 700.8𝐴
5𝑣

Arduino uno junto con el Xbee son de 700.8 A al año, esto quiere decir que aunque
se redujo la cantidad de energía que se utilizara aun no es suficiente.

Desventajas

 Aún es demasiado grande para entrar en el nylalloy.


 La batería sigue siendo de excesivas dimensiones.
 Aun genera mucho gasto de energía, por parte del Arduino y de los RF.
 Aun no se obtiene la precisión que se requiere.

Toma de PotencialesV3.

Pág.101
www.corrosionyproteccion.com Pág.101
Tomando en cuenta, las desventajas del circuito anterior, nos dimos a la tarea de
mejorar en cuanto a consumo de energía, en esta versión de toma de potenciales,
reducimos el tamaño del circuito, ya que se cambió el Microcontrolador por el
Arduino nano, esta versión de Arduino viene un poco más compacta como se
muestra en la figura 11. Pero aparte de reducir el tamaño, también se redujo el
consumo de energía del circuito.

Este circuito aparte de que queda embebido en el poste, se diseñó en Proteus una
placa en pcb, esto ayuda a reducir espacios, para los dos circuitos, tanto el
coordinator, como el Router como se muestra en la figura 12 y 13. Esto nos ayuda
a no generar cables o algún falso, ya que este tipo de placas tiene una aleación y
un recubrimiento que no te permite que hagan corto.

Figura 11 Arduino nano.

CONEXIONES

Pág.102
www.corrosionyproteccion.com Pág.102
Conexiones entre arduino nano y Xbee Explorer.

Arduino Xbee Explorer

5v - 5v

GND GND

TX DIN

RX DOUT

Pág.103
www.corrosionyproteccion.com Pág.103
Figura 12 pcb de Router, con los circuitos eléctricos.

Pág.104
www.corrosionyproteccion.com Pág.104
Figura 13 PCB de Coordinator.

Lo que se logra apreciar en esta versión del circuito, que el objetivo se cumplió que
fue reducir el consumo de energía, reduciendo un 50% de energía. También se
logró reducir las dimensiones del circuito esto nos ayuda a que el circuito este más
compacto y quede embebido en el poste, otra de las ventajas de los circuitos es
que ya están sincronizados como Coordinador y Reuter. Esto nos ayuda a generar
una red de comunicación.

Desventajas

 Que aún no se tiene la precisión que se necesita.


 La batería sigue siendo en excesivas dimensiones

Pág.105
www.corrosionyproteccion.com Pág.105
Toma de potenciales V4

Esta versión del circuito de toma de potenciales nos dimos a la tarea, de hacer que
guardara los datos recibidos del poste, y los almacenara en una memoria SD, del
mismo modo se generó una placa en pcb como se muestra en la figura 14, también
se ven los componentes eléctricos adaptados con la placa PCB en la figura 15,
adaptado a la placa PCB se encuentra el Xbee serie 2 figura 7 y el Microcontrolador
nano figura 11.

para esto se generó el siguiente código que hace que lea lo que se reciba del
poste, adaptado a que guarde lo detectado en una memoria micro SD, lo que se
ve dentro de la SD, es un documento en .txt, con el ID del poste, y el potencial del
poste como se muestra en la figura 16.

#include <SD.h>
const int chipSelect = 4;
void setup(){
Serial.begin(9600);
pinMode(10, OUTPUT);
if (!SD.begin(chipSelect)){
Serial.println("Error al leer la tarjeta.");
return;
}
}
void loop(){
int dato;
if(Serial.available()>0)
{
char dato=Serial.read();
File dataFile = SD.open("voltaje.txt", FILE_WRITE);

if (dataFile) {

dataFile.print(dato);
dataFile.close();

Serial.print(dato);

}
}
delay(100);
}

Con este circuito, dice que trabaja de la siguiente manera, el circuito que va
embebido en el poste, siempre está mandando los datos por el puerto serial, en el

Pág.106
www.corrosionyproteccion.com Pág.106
momento que el circuito que va en el UAV lo detecta lo lee y después lo guarda
en la memoria SD, también se puede observar lo que se está guardando en el
monitor serial de la computadora.
Pero al momento de correr el programa, el único detalle que se observa, es que
no se guarda adecuadamente los datos en la SD, como se muestra en la figura 16
los guarda de manera vertical, esto se debe al programa.

CONEXIONES

Conexiones entre arduino nano , Xbee Explorer y módulo de SD.

Pág.107
www.corrosionyproteccion.com Pág.107
Arduino Xbee Explorer Arduino MODULO SD

5v - 5v D4 CS

GND GND 13 SCK

TX DIN 11 MOSI

RX DOUT 12 MISO

5V VCC

GND GND

Figura 14 se muestra el pcb, con la adaptación del puerto SD.

Pág.108
www.corrosionyproteccion.com Pág.108
Figura 15 adaptaciones de componentes eléctricos al pcb.

Pág.109
www.corrosionyproteccion.com Pág.109
Figura 16 documento de texto con los valores recopilados del poste.

Pero aparte de mejorar la recepción de datos, también hicimos que guardara los
datos recopilados, esto nos ayuda a ver qué es lo que sucede en cada uno de los
postes instrumentados, y nos demos cuenta que ducto necesita mantenimiento, o
que ducto esta corroído.

Hay dos tipos de circuitos, uno que va a estar instrumentado en el poste como se
muestra en la figura 17 y otro que ira en la Aeronave no tripulada, el circuito que
ira en la aeronave, es el que cuenta con la memoria SD como se muestra en la
figura 15, para el almacenamiento de datos, para esto el circuito cuenta con una
carcasa de acrílico para protegerlo de cualquier daño como se muestra en la
figura 18.

Pág.110
www.corrosionyproteccion.com Pág.110
Figura 17 circuito embebido en el tubo de nylalloy.

Pág.111
www.corrosionyproteccion.com Pág.111
Figura 18 carcasa protectora del circuito del UAV.

Dentro de esta versión de toma de potencial V4 también se adaptó el circuito


dentro de la aeronave, como se muestra en la figura 19, se adaptó para no afectar
en el centro de gravedad de la aeronave.

Figura 19 circuito adaptado en la aeronave.

También se le adapto una clavija figura 20, para la conexión a una batería de Lipo
de 2celdas a 7.4 voltios, de 1300mAh como se muestra en la figura 21.

Pág.112
www.corrosionyproteccion.com Pág.112
Figura 20 clavija para la adaptación de batería Lipo.

Figura 21 batería de Lipo de 1.3 Ah.

Desventajas

 No da aun la precisión deseada


 La batería sigue siendo en excesivas dimensiones
 Aun no da los datos correctos impresos en el bloc de notas

Pág.113
www.corrosionyproteccion.com Pág.113
Toma de potenciales V5

En esta versión de toma de potenciales V5, nos dimos a la tarea de mejorar la


precisión de la toma de potencial, como también la precisión de los datos en el
bloc de notas.

Primero empezamos con mejorar la precisión de los datos para la toma de


potencial de los postes.

Para la medición del valor del poste se necesita un filtro pasa bajas que permita
eliminar la frecuencia de 60 Hz del rectificador. Este filtro debe tener la frecuencia
de corte más baja posible sin ocasionar un alias en las mediciones. En este caso la
frecuencia de muestreo es de un periodo de 10 segundos, es decir 0.1Hz, por lo que
se requiere un periodo del doble del periodo de muestreo, es decir 20 segundos o
0.05Hz.

Para diseñar este filtro, podemos calcular el valor de la constante RC

1 1
RC= 2 π f = 2 π 0.05 =3.183 ΩF

Podemos elegir entonces un capacitor comercial que no sea muy grande. En este
caso se eligió un capacitor de 470uF, lo que indica que es necesaria una resistencia
de 6.722kὨ. Para obtener esta resistencia se puede utilizar entonces un
potenciómetro de precisión trimpot.

Además de este filtro se requiere de un divisor de voltaje. En este caso no importa


el consumo que exista, sin embargo por protección al ducto y a la celda de
referencia se debe utilizar una resistencia de alto valor. El máximo valor de
impedancia recomendado para el ADC es de 2 MὨ, por lo que utilizar resistencias
de hasta 1 MὨ no debe ocacionar problemas.

Pág.114
www.corrosionyproteccion.com Pág.114
Este divisor debe reducir el voltaje de los 10 V máximos que se esperan de la lectura
del poste, a un máximo de 3.3V. Definiendo entonces el valor máximo de resistencia
como 1 MὨ, la otra resistencia se puede obtener de:

R 2= R1 = 1 M Ω ≈500 k Ω
Vin −1 10 V −1
Vout 3.3 V
De esta manera se muestra cómo quedaría el circuito de toma de potenciales,
figura 22.

Figura 22 Circuito de toma de potenciales.

Lo segundo que se mejoro es la precisión en que guardaba los datos en el bloc de


notas.

Lo que sucede con el programa anterior, es que el circuito que va embebido en el


poste al momento de mandar los datos lo manda, digito por digito, entonces al

Pág.115
www.corrosionyproteccion.com Pág.115
momento de llegar al circuito que v en la aeronave, comprueba que hay en el
serial, con el siguiente comando if(Serial.available()>0), entonces después viene la
otra parte del código que es leer el tipo de dato del serial como lo indica con el
siguiente comando char dato=Serial.read(), después lo manda a la SD, imprime el
dato en la SD y en el monitor serial de la computadora, y regresa al principio del
ciclo if.

if(Serial.available()>0) //Comprobamos si en el buffer hay datos


{
char dato=Serial.read();
File dataFile = SD.open("voltaje.txt", FILE_WRITE);
if (dataFile) {
dataFile.print(dato);
dataFile.close();
Serial.print(dato);
}
}
if(Serial.available()>0) //Comprobamos si en el buffer hay datos
{
char dato=Serial.read();
File dataFile = SD.open("voltaje.txt", FILE_WRITE);
if (dataFile) {
dataFile.print(dato);
dataFile.close();
Serial.print(dato);
}
}
if(Serial.available()>0) //Comprobamos si en el buffer hay datos
{
char dato=Serial.read();
File dataFile = SD.open("voltaje.txt", FILE_WRITE);
if (dataFile) {
dataFile.print(dato);
dataFile.close();
Serial.print(dato);
}
}
if(Serial.available()>0) //Comprobamos si en el buffer hay datos
{
char dato=Serial.read();
File dataFile = SD.open("voltaje.txt", FILE_WRITE);
if (dataFile) {
dataFile.print(dato);
dataFile.close();
Serial.print(dato);
}
}
if(Serial.available()>0)
{
char dato=Serial.read();

Pág.116
www.corrosionyproteccion.com Pág.116
File dataFile = SD.open("voltaje.txt", FILE_WRITE);
if (dataFile) {
dataFile.print(dato);
dataFile.close();
Serial.print(dato);
}
}
if(Serial.available()>0)
{
char dato=Serial.read();
File dataFile = SD.open("voltaje.txt", FILE_WRITE);
if (dataFile) {
dataFile.print(dato);
dataFile.close();
Serial.print(dato);
}
}
if(Serial.available()>0) //Comprobamos si en el buffer hay datos
{
char dato=Serial.read();
File dataFile = SD.open("voltaje.txt", FILE_WRITE);
if (dataFile) {
dataFile.print(dato);
dataFile.close();
Serial.print(dato);
}
}
if(Serial.available()>0) //Comprobamos si en el buffer hay datos
{
char dato=Serial.read();
File dataFile = SD.open("voltaje.txt", FILE_WRITE);
if (dataFile) {
dataFile.println(dato);
dataFile.close();
Serial.println(dato);
}
}
delay(100);
}

Entonces para resolver el problema de la precisión de los datos en el bloc de


notas, y los de horizontalmente y adecuadamente, se crearon más ciclos if,
dentro del ciclo if, como se observa en la parte de arriba, esto ayuda a recopilar
todos los datos que arroja el circuito del poste, como se muestra en la parte de
abajo en la figura 23

Pág.117
www.corrosionyproteccion.com Pág.117
Figura 23 datos recibidos del bloc de notas, del circuito del poste, como se
muestra en la imagen del lado izquierdo se alcanza a apreciar el id que se le
genero al poste, y del lado derecho se muestra la toma de potencial recopilada
del circuito del poste.

Como se alcanza a observar en la figura 23, nos damos cuenta que el circuito
recibe de manera correcta todos los datos recibidos del circuito del poste, de
manera ordenada.

Después de realizar los cálculos necesarios, se comenzó con el armado del circuito
de acuerdo a los diagramas antes mencionados, como se muestra en la figura 24

Pág.118
www.corrosionyproteccion.com Pág.118
Figura 24 armado del circuito pasa bajas.

A continuación del armado del circuito se dieron varias pruebas en campo como
se muestra en la figura 25, en esta se puede observar cómo van las conexiones del
circuito, ya que si por alguna razón se invierte la polaridad de la celda y de la tierra
del poste, se puede llegar a dañar el circuito, ya que el Arduino no puede leer
cargas negativas y esto conllevaría a la quema de componentes eléctricos.

Pág.119
www.corrosionyproteccion.com Pág.119
Figura 25 pruebas en campo del circuito pasa bajas.

Luego de realizar las pruebas necesarias dentro del circuito, nos dimos a la tarea
de colocarlo en un lugar muy reducido con ayuda de mini placas pcb como
protoboard, se introdujo todo el circuito se acomodó y se colocó en el circuito que
ya se tenía. Como se muestra en las figuras 26 y 27.

Pág.120
www.corrosionyproteccion.com Pág.120
Figura 26 adaptación de circuito pasa bajas al circuito de toma de potenciales

Pág.121
www.corrosionyproteccion.com Pág.121
Figura 27 adaptación de circuito pasa bajas, al circuito de toma de potenciales.

Con esta mejora que se le aplico a la toma de potencial V5, se obtiene la exactitud
que se planteó desde un principio.

Desventajas

 Aun la batería esta en excesivas dimensiones.

Pág.122
www.corrosionyproteccion.com Pág.122
 Una de las desventajas que se observó con este circuito que una vez
probada en campo, ya con los circuitos montados en el UAV y en el poste,
fue que el rango de detención de los dos era muy pequeña por el tipo de
antena que tenía el Xbee serie 2 wire antena como se muestra en la figura
7. Sus rangos son muy pequeños y por esa razón no alcanzaban a
detectarse.

Pág.123
www.corrosionyproteccion.com Pág.123
Toma de potenciales V6

Dentro de esta versión de toma de potencial nos dimos a la tarea de modificar el


rango de señal de los Xbee para que su rango aumentara y no hubiera problemas
con la detección.

Lo que hicimos es modificar la configuración del Xbee serie 2 wire antena, y lo


cambiamos por el Xbee serie 2 RPSMA, esto nos ayuda a obtener más rango. Como
se muestran en las figuras 28, 29, 30,31.

Las configuraciones son exactamente las mismas, como en la Toma de potenciales


V2, ya que se tiene que conectar de igual forma como se muestra en la figura 28,
con ayuda del Xbee Explorer USB, ya que nos permite la configuración del Xbee
serie 2, con ayuda de la herramienta XCTU.

Pág.124
www.corrosionyproteccion.com Pág.124
Figura 28 conexiones de Xbee con adaptador Xbee Explorer USB, para su
configuración.

Primero se hace la conexión como se muestra en la figura 28, después de


conectarlo abrimos el programa XCTU, como se muestra en la figura 29.

Pág.125
www.corrosionyproteccion.com Pág.125
Figura 29 representa el programa XCTU para configurar los Xbee SERIE 2 RPSMA.

Después de abrir el programa damos clic en el icono , después te desplegara


un menú como se muestra a continuación en la figura 30, este menú es para saber
en puerto está conectado el Xbee serie 2 RPSMA.

Figura 30 representa el puerto donde está conectado el Xbee.

Pág.126
www.corrosionyproteccion.com Pág.126
A continuación le damos en el icono de finish, y a continuación se abrirá la
configuración del Xbee serie 2 RPSMA, como se muestra en la figura 31.

Figura 31 representa que configuración tiene el Xbee mostrado en la parte


superior izquierda.

Ya que se despliegue el menú se puede observar todos los parámetros a


configurar, haremos lo mismo como en él toma de potencial v2, de configurar el
ID, también se configuraran el DH( Destination Adress High), y el DL( Destination
Adress Low).

En esta versión del circuito nos dimos cuenta que el cambio nos favoreció ya que
en pruebas de campo, el circuito tanto el que va en la aeronave, como el que va
en el poste, están dentro del rango y alcanzan la comunicación que esperábamos
dentro del rango de los 120mts.

Desventajas

 Aun no se encuentra la batería adecuada para alimentar el circuito.

Pág.127
www.corrosionyproteccion.com Pág.127
Toma de potenciales V7

En esta versión de toma de potenciales nos dimos a la tarea de mejorar el


rendimiento del circuito, en cuanto al consumo de energía, por esta razón
optamos por reducir aún más el tamaño del circuito para esto nos dimos a la
tarea de investigar que Microcontrolador, es el que consume menos energía y
encontramos que el ATmega 328p como se muestra en la figura 32, es uno de los
Microcontroladores más pequeños y de menor consumo de energía.

Figura 32 ATmega328p-pu Microcontrolador 8 bits AVR

El Microcontrolador ATmega 328 p-pus es un Microcontrolador de 8 bits


monocomponente de la familia AVR .

Un ATmega328 en encapsulado DIP, pre-cargado con el Optiboot Bootloader.


Esto le permitirá cargar el código del proyecto personalizado sin tener que utilizar
ningún circuito de programación especial.

Pág.128
www.corrosionyproteccion.com Pág.128
Este chip trabaja en modo IDE, necesitará un cristal de 16MHz externo o
resonador, una alimentación de 5V, y una conexión en serie.

El Microcontrolador de 8 bits ATMega328 de Atmel viene en un encapsulado DIP


de 28 pins. Es como el ATmega168, con el doble de espacio flash. 32K de espacio
de programa. 23 I / O líneas, 6 de las cuales son los canales para el ADC de 10
bits. Funciona hasta 20MHz con cristal externo. El Microcontrolador puede ser
programado en el mismo circuito. 1.8V a 5V de Tensión de funcionamiento.

Gracias a este Microcontrolador de bajo consumo nos dimos a la tarea de


cargarle el programa del poste, pero antes de cargarle cualquier programa se
tiene que cargar el firmware para que funcione la placa de ATmega 328p.

Los materiales que se necesitaran son los siguientes:

 un 16 MHz cristal,
 Arduino uno
 ATmega328p
 una resistencia de 10K, y
 dos de 18 a 22 picofaradios capacitores (cerámica).
 Protoboard

Figura Crystal de 16Mhz

Pág.129
www.corrosionyproteccion.com Pág.129
Figura resistencia de 10kohms

Figura capacitor de 18 a 22 picofaradios cerámico

Pág.130
www.corrosionyproteccion.com Pág.130
Pero antes de que se haga algo mas solo conectas el Arduino uno con la
computadora como se muestra en la siguiente figura.

Figura conexión de Arduino uno con la computadora

Una vez que ya se haya conectado el Arduino uno a la computadora se le


cargara un programa llamado Arduino ISP, este es el tipo de comunicación para
poder quemar la placa ATmega328p.

El código del Arduino ISP es el siguiente:

// ArduinoISP //
// Copyright (c) 2008-2011 Randall Bohn // On some Arduinos (Uno,...), pins MOSI,
// If you require a license, see MISO and SCK are the same pins
// http://www.opensource.org/licenses/ // as digital pin 11, 12 and 13,
bsd-license.php respectively. That is why many tutorials
// // instruct you to hook up the target to
// This sketch turns the Arduino into a these pins. If you find this wiring
AVRISP // more practical, have a define
// using the following arduino pins: USE_OLD_STYLE_WIRING. This will work even
// // even when not using an Uno. (On an Uno
// Pin 10 is used to reset the target this is not needed).
microcontroller. //
// // Alternatively you can use any other
// By default, the hardware SPI pins MISO, digital pin by configuring software
MOSI and SCK pins are used ('BitBanged')
// to communicate with the target. On all // SPI and having appropriate defines for
Arduinos, these pins can be found PIN_MOSI, PIN_MISO and PIN_SCK.
// on the ICSP/SPI header: //
// // IMPORTANT: When using an Arduino that
// MISO °. . 5V (!) Avoid is not 5V tolerant (Due, Zero, ...)
this pin on Due, Zero... // as the programmer, make sure to not
// SCK . . MOSI expose any of the programmer's pins to 5V.
// . . GND

Pág.131
www.corrosionyproteccion.com Pág.131
// A simple way to accomplish this is to #define PIN_MISO 12
power the complete system (programmer #define PIN_SCK 13
// and target) at 3V3.
// #endif
// Put an LED (with resistor) on the
following pins: // HOODLOADER2 means running sketches on
// 9: Heartbeat - shows the programmer the atmega16u2
is running // serial converter chips on Uno or Mega
// 8: Error - Lights up if something boards.
goes wrong (use red if that makes sense) // We must use pins that are broken out:
// 7: Programming - In communication with #else
the slave
// #define RESET 4
#define LED_HB 7
#include "Arduino.h" #define LED_ERR 6
#undef SERIAL #define LED_PMODE 5

#endif
#define PROG_FLICKER true
// By default, use hardware SPI pins:
// Configure SPI clock (in Hz). #ifndef PIN_MOSI
// E.g. for an attiny @128 kHz: the #define PIN_MOSI MOSI
datasheet states that both the high #endif
// and low spi clock pulse must be > 2 cpu
cycles, so take 3 cycles i.e. #ifndef PIN_MISO
// divide target f_cpu by 6: #define PIN_MISO MISO
// #define #endif
SPI_CLOCK (128000/6)
// #ifndef PIN_SCK
// A clock slow enough for an attiny85 @ #define PIN_SCK SCK
1MHz, is a reasonable default: #endif

#define SPI_CLOCK (1000000/6) // Force bitbanged SPI if not using the


hardware SPI pins:
#if (PIN_MISO != MISO) || (PIN_MOSI !=
// Select hardware or software SPI, MOSI) || (PIN_SCK != SCK)
depending on SPI clock. #undef USE_HARDWARE_SPI
// Currently only for AVR, for other archs #endif
(Due, Zero,...),
// hardware SPI is probably too fast
anyway. // Configure the serial port to use.
//
#if defined(ARDUINO_ARCH_AVR) // Prefer the USB virtual serial port
(aka. native USB port), if the Arduino has
#if SPI_CLOCK > (F_CPU / 128) one:
#define USE_HARDWARE_SPI // - it does not autoreset (except for
#endif the magic baud rate of 1200).
// - it is more reliable because of USB
#endif handshaking.
//
// Configure which pins to use: // Leonardo and similar have an USB
virtual serial port: 'Serial'.
// The standard pin configuration. // Due and Zero have an USB virtual serial
#ifndef ARDUINO_HOODLOADER2 port: 'SerialUSB'.
//
#define RESET 10 // Use pin 10 to // On the Due and Zero, 'Serial' can be
reset the target rather than SS used too, provided you disable autoreset.
#define LED_HB 9 // To use 'Serial': #define SERIAL Serial
#define LED_ERR 8
#define LED_PMODE 7 #ifdef SERIAL_PORT_USBVIRTUAL
#define SERIAL SERIAL_PORT_USBVIRTUAL
// Uncomment following line to use the old #else
Uno style wiring #define SERIAL Serial
// (using pin 11, 12 and 13 instead of the #endif
SPI header) on Leonardo, Due...

// #define USE_OLD_STYLE_WIRING // Configure the baud rate:

#ifdef USE_OLD_STYLE_WIRING #define BAUDRATE 19200


// #define BAUDRATE 115200
#define PIN_MOSI 11 // #define BAUDRATE 1000000

Pág.132
www.corrosionyproteccion.com Pág.132
return b;
}
#define HWVER 2
#define SWMAJ 1 private:
#define SWMIN 18 unsigned long pulseWidth; // in
microseconds
// STK Definitions };
#define STK_OK 0x10
#define STK_FAILED 0x11 static BitBangedSPI SPI;
#define STK_UNKNOWN 0x12
#define STK_INSYNC 0x14 #endif
#define STK_NOSYNC 0x15
#define CRC_EOP 0x20 //ok it is a void setup() {
space... SERIAL.begin(BAUDRATE);

void pulse(int pin, int times); pinMode(LED_PMODE, OUTPUT);


pulse(LED_PMODE, 2);
#ifdef USE_HARDWARE_SPI pinMode(LED_ERR, OUTPUT);
#include "SPI.h" pulse(LED_ERR, 2);
#else pinMode(LED_HB, OUTPUT);
pulse(LED_HB, 2);
#define SPI_MODE0 0x00
}
class SPISettings {
public: int error = 0;
// clock is in Hz int pmode = 0;
SPISettings(uint32_t clock, uint8_t // address for reading and writing, set by
bitOrder, uint8_t dataMode) : 'U' command
clock(clock){ unsigned int here;
(void) bitOrder; uint8_t buff[256]; // global block storage
(void) dataMode;
}; #define beget16(addr) (*addr * 256 +
*(addr+1) )
private: typedef struct param {
uint32_t clock; uint8_t devicecode;
uint8_t revision;
friend class BitBangedSPI; uint8_t progtype;
}; uint8_t parmode;
uint8_t polling;
class BitBangedSPI { uint8_t selftimed;
public: uint8_t lockbytes;
void begin() { uint8_t fusebytes;
digitalWrite(PIN_SCK, LOW); uint8_t flashpoll;
digitalWrite(PIN_MOSI, LOW); uint16_t eeprompoll;
pinMode(PIN_SCK, OUTPUT); uint16_t pagesize;
pinMode(PIN_MOSI, OUTPUT); uint16_t eepromsize;
pinMode(PIN_MISO, INPUT); uint32_t flashsize;
} }
parameter;
void beginTransaction(SPISettings
settings) { parameter param;
pulseWidth = (500000 + settings.clock
- 1) / settings.clock; // this provides a heartbeat on pin 9, so
if (pulseWidth == 0) you can tell the software is running.
pulseWidth = 1; uint8_t hbval = 128;
} int8_t hbdelta = 8;
void heartbeat() {
void end() {} static unsigned long last_time = 0;
unsigned long now = millis();
uint8_t transfer (uint8_t b) { if ((now - last_time) < 40)
for (unsigned int i = 0; i < 8; ++i) { return;
digitalWrite(PIN_MOSI, (b & 0x80) ? last_time = now;
HIGH : LOW); if (hbval > 192) hbdelta = -hbdelta;
digitalWrite(PIN_SCK, HIGH); if (hbval < 32) hbdelta = -hbdelta;
delayMicroseconds(pulseWidth); hbval += hbdelta;
b = (b << 1) | analogWrite(LED_HB, hbval);
digitalRead(PIN_MISO); }
digitalWrite(PIN_SCK, LOW); // slow
pulse static bool rst_active_high;
delayMicroseconds(pulseWidth);
} void reset_target(bool reset) {

Pág.133
www.corrosionyproteccion.com Pág.133
digitalWrite(RESET, ((reset && if (CRC_EOP == getch()) {
rst_active_high) || (!reset && SERIAL.print((char)STK_INSYNC);
!rst_active_high)) ? HIGH : LOW); SERIAL.print((char)b);
} SERIAL.print((char)STK_OK);
} else {
void loop(void) { error++;
// is pmode active? SERIAL.print((char)STK_NOSYNC);
if (pmode) { }
digitalWrite(LED_PMODE, HIGH); }
} else {
digitalWrite(LED_PMODE, LOW); void get_version(uint8_t c) {
} switch (c) {
// is there an error? case 0x80:
if (error) { breply(HWVER);
digitalWrite(LED_ERR, HIGH); break;
} else { case 0x81:
digitalWrite(LED_ERR, LOW); breply(SWMAJ);
} break;
case 0x82:
// light the heartbeat LED breply(SWMIN);
heartbeat(); break;
if (SERIAL.available()) { case 0x93:
avrisp(); breply('S'); // serial programmer
} break;
} default:
breply(0);
uint8_t getch() { }
while (!SERIAL.available()); }
return SERIAL.read();
} void set_parameters() {
void fill(int n) { // call this after reading paramter
for (int x = 0; x < n; x++) { packet into buff[]
buff[x] = getch(); param.devicecode = buff[0];
} param.revision = buff[1];
} param.progtype = buff[2];
param.parmode = buff[3];
#define PTIME 30 param.polling = buff[4];
void pulse(int pin, int times) { param.selftimed = buff[5];
do { param.lockbytes = buff[6];
digitalWrite(pin, HIGH); param.fusebytes = buff[7];
delay(PTIME); param.flashpoll = buff[8];
digitalWrite(pin, LOW); // ignore buff[9] (= buff[8])
delay(PTIME); // following are 16 bits (big endian)
} while (times--); param.eeprompoll = beget16(&buff[10]);
} param.pagesize = beget16(&buff[12]);
param.eepromsize = beget16(&buff[14]);
void prog_lamp(int state) {
if (PROG_FLICKER) { // 32 bits flashsize (big endian)
digitalWrite(LED_PMODE, state); param.flashsize = buff[16] * 0x01000000
} + buff[17] *
} 0x00010000
+ buff[18] *
uint8_t spi_transaction(uint8_t a, uint8_t 0x00000100
b, uint8_t c, uint8_t d) { + buff[19];
SPI.transfer(a);
SPI.transfer(b); // avr devices have active low reset,
SPI.transfer(c); at89sx are active high
return SPI.transfer(d); rst_active_high = (param.devicecode >=
} 0xe0);
}
void empty_reply() {
if (CRC_EOP == getch()) { void start_pmode() {
SERIAL.print((char)STK_INSYNC);
SERIAL.print((char)STK_OK); // Reset target before driving PIN_SCK
} else { or PIN_MOSI
error++;
SERIAL.print((char)STK_NOSYNC); // SPI.begin() will configure SS as
} output,
} // so SPI master mode is selected.
// We have defined RESET as pin 10,
void breply(uint8_t b) {

Pág.134
www.corrosionyproteccion.com Pág.134
// which for many arduino's is not the }
SS pin. }
// So we have to configure RESET as
output here, unsigned int current_page() {
// (reset_target() first sets the if (param.pagesize == 32) {
correct level) return here & 0xFFFFFFF0;
reset_target(true); }
pinMode(RESET, OUTPUT); if (param.pagesize == 64) {
SPI.begin(); return here & 0xFFFFFFE0;
SPI.beginTransaction(SPISettings(SPI_CLO }
CK, MSBFIRST, SPI_MODE0)); if (param.pagesize == 128) {
return here & 0xFFFFFFC0;
// See avr datasheets, chapter }
"SERIAL_PRG Programming Algorithm": if (param.pagesize == 256) {
return here & 0xFFFFFF80;
// Pulse RESET after PIN_SCK is low: }
digitalWrite(PIN_SCK, LOW); return here;
delay(20); // discharge PIN_SCK, value }
arbitrally chosen
reset_target(false);
// Pulse must be minimum 2 target CPU void write_flash(int length) {
clock cycles fill(length);
// so 100 usec is ok for CPU speeds if (CRC_EOP == getch()) {
above 20KHz SERIAL.print((char) STK_INSYNC);
delayMicroseconds(100); SERIAL.print((char)
reset_target(true); write_flash_pages(length));
} else {
// Send the enable programming command: error++;
delay(50); // datasheet: must be > 20 SERIAL.print((char) STK_NOSYNC);
msec }
spi_transaction(0xAC, 0x53, 0x00, 0x00); }
pmode = 1;
} uint8_t write_flash_pages(int length) {
int x = 0;
void end_pmode() { unsigned int page = current_page();
SPI.end(); while (x < length) {
// We're about to take the target out of if (page != current_page()) {
reset commit(page);
// so configure SPI pins as input page = current_page();
pinMode(PIN_MOSI, INPUT); }
pinMode(PIN_SCK, INPUT); flash(LOW, here, buff[x++]);
reset_target(false); flash(HIGH, here, buff[x++]);
pinMode(RESET, INPUT); here++;
pmode = 0; }
}
commit(page);
void universal() {
uint8_t ch; return STK_OK;
}
fill(4);
ch = spi_transaction(buff[0], buff[1], #define EECHUNK (32)
buff[2], buff[3]); uint8_t write_eeprom(unsigned int length)
breply(ch); {
} // here is a word address, get the byte
address
void flash(uint8_t hilo, unsigned int unsigned int start = here * 2;
addr, uint8_t data) { unsigned int remaining = length;
spi_transaction(0x40 + 8 * hilo, if (length > param.eepromsize) {
addr >> 8 & 0xFF, error++;
addr & 0xFF, return STK_FAILED;
data); }
} while (remaining > EECHUNK) {
void commit(unsigned int addr) { write_eeprom_chunk(start, EECHUNK);
if (PROG_FLICKER) { start += EECHUNK;
prog_lamp(LOW); remaining -= EECHUNK;
} }
spi_transaction(0x4C, (addr >> 8) & write_eeprom_chunk(start, remaining);
0xFF, addr & 0xFF, 0); return STK_OK;
if (PROG_FLICKER) { }
delay(PTIME); // write (length) bytes, (start) is a byte
prog_lamp(HIGH); address

Pág.135
www.corrosionyproteccion.com Pág.135
uint8_t write_eeprom_chunk(unsigned int }
start, unsigned int length) { return STK_OK;
// this writes byte-by-byte, }
// page writing may be faster (4 bytes
at a time) void read_page() {
fill(length); char result = (char)STK_FAILED;
prog_lamp(LOW); int length = 256 * getch();
for (unsigned int x = 0; x < length; length += getch();
x++) { char memtype = getch();
unsigned int addr = start + x; if (CRC_EOP != getch()) {
spi_transaction(0xC0, (addr >> 8) & error++;
0xFF, addr & 0xFF, buff[x]); SERIAL.print((char) STK_NOSYNC);
delay(45); return;
} }
prog_lamp(HIGH); SERIAL.print((char) STK_INSYNC);
return STK_OK; if (memtype == 'F') result =
} flash_read_page(length);
if (memtype == 'E') result =
void program_page() { eeprom_read_page(length);
char result = (char) STK_FAILED; SERIAL.print(result);
unsigned int length = 256 * getch(); }
length += getch();
char memtype = getch(); void read_signature() {
// flash memory @here, (length) bytes if (CRC_EOP != getch()) {
if (memtype == 'F') { error++;
write_flash(length); SERIAL.print((char) STK_NOSYNC);
return; return;
} }
if (memtype == 'E') { SERIAL.print((char) STK_INSYNC);
result = (char)write_eeprom(length); uint8_t high = spi_transaction(0x30,
if (CRC_EOP == getch()) { 0x00, 0x00, 0x00);
SERIAL.print((char) STK_INSYNC); SERIAL.print((char) high);
SERIAL.print(result); uint8_t middle = spi_transaction(0x30,
} else { 0x00, 0x01, 0x00);
error++; SERIAL.print((char) middle);
SERIAL.print((char) STK_NOSYNC); uint8_t low = spi_transaction(0x30,
} 0x00, 0x02, 0x00);
return; SERIAL.print((char) low);
} SERIAL.print((char) STK_OK);
SERIAL.print((char)STK_FAILED); }
return; //////////////////////////////////////////
} //////////////////////////////////////////

uint8_t flash_read(uint8_t hilo, unsigned


int addr) { ////////////////////////////////////
return spi_transaction(0x20 + hilo * 8, ////////////////////////////////////
(addr >> 8) & void avrisp() {
0xFF, uint8_t ch = getch();
addr & 0xFF, switch (ch) {
0); case '0': // signon
} error = 0;
empty_reply();
char flash_read_page(int length) { break;
for (int x = 0; x < length; x += 2) { case '1':
uint8_t low = flash_read(LOW, here); if (getch() == CRC_EOP) {
SERIAL.print((char) low); SERIAL.print((char) STK_INSYNC);
uint8_t high = flash_read(HIGH, here); SERIAL.print("AVR ISP");
SERIAL.print((char) high); SERIAL.print((char) STK_OK);
here++; }
} else {
return STK_OK; error++;
} SERIAL.print((char) STK_NOSYNC);
}
char eeprom_read_page(int length) { break;
// here again we have a word address case 'A':
int start = here * 2; get_version(getch());
for (int x = 0; x < length; x++) { break;
int addr = start + x; case 'B':
uint8_t ee = spi_transaction(0xA0, fill(20);
(addr >> 8) & 0xFF, addr & 0xFF, 0xFF); set_parameters();
SERIAL.print((char) ee); empty_reply();

Pág.136
www.corrosionyproteccion.com Pág.136
break;
case 'E': // extended parameters -
ignore for now
fill(5);
empty_reply();
break;
case 'P':
if (!pmode)
start_pmode();
empty_reply();
break;
case 'U': // set address (word)
here = getch();
here += 256 * getch();
empty_reply();
break;

case 0x60: //STK_PROG_FLASH


getch(); // low addr
getch(); // high addr
empty_reply();
break;
case 0x61: //STK_PROG_DATA
getch(); // data
empty_reply();
break;

case 0x64: //STK_PROG_PAGE


program_page();
break;

case 0x74: //STK_READ_PAGE 't'


read_page();
break;

case 'V': //0x56


universal();
break;
case 'Q': //0x51
error = 0;
end_pmode();
empty_reply();
break;

case 0x75: //STK_READ_SIGN 'u'


read_signature();
break;

// expecting a command, not CRC_EOP


// this is how we can get back in sync
case CRC_EOP:
error++;
SERIAL.print((char) STK_NOSYNC);
break;

// anything else we will return


STK_UNKNOWN
default:
error++;
if (CRC_EOP == getch())
SERIAL.print((char)STK_UNKNOWN);
else
SERIAL.print((char)STK_NOSYNC);
}
}

Pág.137
www.corrosionyproteccion.com Pág.137
Después de cargar el código ISP al Arduino realizamos las siguientes conexiones.

Conexiones

Figura uso del Arduino uno para grabar el gestor de arranque en el ATmega.

Después de cargarle la comunicación ISP al Arduino uno, se le tendrá que cargar


al ATmega 328, se realizan las conexiones de la figura de arriba, después se le da
clic en quemar bootloader como se muestra en la siguiente figura.

Pág.138
www.corrosionyproteccion.com Pág.138
Después de darle clic en quemar bootloader, te aparecerá un escrito que dice
que está quemando la placa como se muestra en la siguiente figura.

Después te saldrá que ya se quemó correctamente, después desconectar todo, y


conectar de la siguiente manera para poder cargar algún programa a la placa
de ATmega328.

Pág.139
www.corrosionyproteccion.com Pág.139
Figura diagrama de conexiones para cargar algún programa a la placa
ATmega328

Y le cargamos el siguiente programa para poder leer lo del poste, con el filtro
pasa bajas.

float analogPin = 0;
float val = 0;
float valV;

void setup(){
Serial.begin(9600);
}

void loop(){
val = analogRead(analogPin);
valV = (float)val*5/1024;
Serial.print("001,");
Serial.println(valV);

delay (800);// debug value


}

Pág.140
www.corrosionyproteccion.com Pág.140
Una vez que carguemos el programa en el ATmega 328p, se hicieron pruebas
como se muestra en las siguientes figuras

Figura conexiones del ATmega 328 con el Xbee Explorer.

Como se muestra en las siguientes figuras, cuando está mandando información


la energía que consume es de 18mAh.

Pág.141
www.corrosionyproteccion.com Pág.141
Figura se muestra las pruebas cuando el ATmega 328 está mandando información
por medio del Xbee.

Como se muestra en las figuras de arriba, se logró el objetivo de consumir menos


energía, gracias a que o necesitamos muchos puertos el ATmega 328 logro el
objetivo de consumir muy poca energía.

El siguiente programa es la configuración del receptor y la impresión de los datos


recibidos

Pág.142
www.corrosionyproteccion.com Pág.142
RF RECEIVE
#include <JeeLib.h>

void setup() {
Serial.begin (57600);
Serial.println ("\n[simpleReceive]");
rf12_initialize (18, RF12_868MHZ, 212);
Serial.print ("SimpleReceive");
}

void loop() {

if (rf12_recvDone() && rf12_crc == 0) { // received good data if true


// rf12_recvDone() is true if new information has been received.
// re12_crc == 0 indicates good transmission, checks validity data

int* buf = (int*) rf12_data; // buf is a pointer to our data


// the same as an array name

Serial.print(buf[0]); // this is the sequence number


Serial.print(" ");
Serial.print(buf[1]); // first "int" of our data
Serial.print(" ");
Serial.println(buf[2]); // second "int" of our data

}
}

Después de las pruebas de transmisión de datos, se hizo la prueba de lectura de un canal del
ADC, y su configuración

ANALOG PLUG READ


#include <JeeLib.h>

PortI2C myI2C(1);
AnalogPlug adc (myI2C,0x69); //registro por default a utilizar

void setup() {
// put your setup code here, to run once:
Serial.begin(57600);
if(adc.isPresent())
Serial.println("Analog Plug found");
adc.send();
adc.write(0x8C); //configuracion de adc , 18 bits, mode one-shot,gain x1
adc.stop();
}

void loop() {
adc.select(1);
delay(500);
long uvolts = ((adc.reading() >> 8)*1000)/64;
Serial.print(' ');
Serial.print(uvolts);

Pág.143
www.corrosionyproteccion.com Pág.143
Serial.print(" ");

}
Serial.println();
delay(1000);
}

El siguiente programa es para hacer un recorrido de la lectura de los cuatro canales que posee el
ADC

RF SEND ADC 4 CHANNELS

#include <JeeLib.h>

PortI2C myI2C(1);
AnalogPlug adc (myI2C);
byte seqnum;

void setup() {
rf12_initialize(20, RF12_868MHZ, 212);

Serial.begin(57600);
if(adc.isPresent())
Serial.println("Analog Plug found");

void loop() {

delay(300);

int buf[5];

buf[0] = ++seqnum;

for(byte i=1; i<= 4; ++i){


adc.select(i);
delay(270);
buf[i]=(int)adc.reading();
}
Serial.println ();
delay (1000);

while (!rf12_canSend())
rf12_recvDone ();

Pág.144
www.corrosionyproteccion.com Pág.144
rf12_sendStart (0, buf, sizeof buf);
}

Después lo siguiente fue realizar la medición del voltaje de la batería por medio del ADC

ANALOG PLUG READ VOLTAJE PILA


#include <JeeLib.h>

PortI2C myI2C(1);
AnalogPlug adc (myI2C,0x69);

void setup() {
Serial.begin(57600);
if(adc.isPresent())
Serial.println("Analog Plug found");
adc.send();
adc.write(0x8C);
adc.stop();
}

void loop() {
adc.select(1);
delay(500);
long uvolts = ((adc.reading() >> 8)*1000)/64;
Serial.print(' ');
Serial.print(uvolts);
Serial.print(" ");

uvolts=(uvolts*2.55);
Serial.print("voltaje de pila ");
Serial.print(uvolts);

Serial.println();
delay(1000);
}

Pág.145
www.corrosionyproteccion.com Pág.145
Una vez obtenido el valor del voltaje de la batería, se hizo una prueba para enviar este dato y ver
su funcionamiento, este programa consta en la configuración del transmisor y lectura del voltaje en
el ADC

ANALOG PLUG READ VOLTAJE PILA_ RF SEND


#include <JeeLib.h>

PortI2C myI2C(1); // seleccion de puerto 1 para comunicacion i2c


AnalogPlug adc (myI2C,0x69); //direccion de ad0 y ad1
byte seqnum;
void setup() {

rf12_initialize(20, RF12_868MHZ, 212); // inicializacion de RF y


configuracion

Serial.begin(57600);
if(adc.isPresent())
Serial.println("Analog Plug found");
adc.send(); //configuracion ADC
adc.write(0x8C);
adc.stop();
}

void loop() {

delay(300);
long buf[3];
buf[0]= ++seqnum;

adc.select(1);
delay(500);
long uvolts = ((adc.reading() >> 8)*1000)/64;
Serial.print(' ');
Serial.print(uvolts);
Serial.print(" ");
buf[1]=uvolts;
long uvolt2=(uvolts*2.55);
Serial.print("voltaje de pila ");
Serial.print(uvolt2);

buf[2]=uvolt2;

Serial.println();
delay(1000);

while (!rf12_canSend())
rf12_recvDone();

rf12_sendStart(0,buf,sizeof buf);
delay(200);
buf[1]=0;

Pág.146
www.corrosionyproteccion.com Pág.146
buf[2]=0;
delay(200);
}

Este programa consta de la configuración del receptor y la impresión de los datos enviados del valor del voltaje de la batería

ANALOG PLUG READ VOLTAJE PILA_RF RECEIVE

#include <JeeLib.h>
void setup() {
Serial.begin(57600);
Serial.println("\n[simpleReceive]");
rf12_initialize(18, RF12_868MHZ, 212);
Serial.print("SimpleReceive");
}

void loop() {

if (rf12_recvDone() && rf12_crc == 0) {


long* buf = (long*) rf12_data;

Serial.print(" Poste:");
Serial.print(buf[0]);
delay(100);
Serial.print(" Valor ADC: ");
Serial.print(buf[1]);
delay(100);
Serial.print(" Voltaje PILA: ");
Serial.print(buf[2]);
Serial.print(" ");
Serial.println();
delay(100);

}
}

Se estructuro el programa para una mejor organización de este y corregir un problema de ruido
que se presentaba en los datos enviados por vía RF

Pág.147
www.corrosionyproteccion.com Pág.147
RFSEND_ANALOG STRUCTURE
#include <JeeLib.h>

PortI2C myI2C(1); // seleccion de puerto 1 para comunicacion i2c


AnalogPlug adc (myI2C,0x69); //direccion de ad0 y ad1
byte seqnum;

static void AP2init (DeviceI2C& dev, byte mode = 0x8C) {


// default mode is channel 1, one shot, 18-bit, gain x1
dev.send();
dev.write(mode);
dev.stop();
}

static long AP2read (DeviceI2C& dev) {


dev.receive();
long raw = (long) dev.read(0) << 16;
raw |= (word) dev.read(0) << 8;
raw |= dev.read(0);
byte status = adc.read(1);
return (raw * 1000) / 64;
}

void setup()
{
Serial.begin(57600);
rf12_initialize(20, RF12_868MHZ, 212); // inicializacion de RF y
configuracion
rf12_config();
rf12_easyInit(0);
AP2init(adc);
if(adc.isPresent())
Serial.println("Analog Plug found");

void loop() {

delay(300);
long buf[3];

///////////////////
long val = AP2read(adc);

rf12_easyPoll();
rf12_easySend(&val, sizeof val);
buf[0]= ++seqnum;
buf[1]=val;
long val2 = val*2.68;
buf[2]=val2;
delay(2000);

////////////////////ENVIO DE DATA
while (!rf12_canSend())
rf12_recvDone();

Pág.148
www.corrosionyproteccion.com Pág.148
rf12_sendStart(0,buf,sizeof buf);

De acuerdo a que es necesario almacenar los datos enviados del voltaje de la batería y
los potenciales, se realizó una prueba de almacenamiento en una tarjeta SD, y para
conocer su modo de configuración.

READ/WRITE SD CARD
/* SD card read/write
The circuit:
* SD card attached to SPI bus as follows:
** MOSI - pin 11
** MISO - pin 12
** CLK - pin 13
** CS - pin 4*/

#include <SPI.h>
#include <SD.h>

File myFile;
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; }
Serial.print("Initializing SD card...");

if (!SD.begin(4)) {
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");

// open the file. note that only one file can be open at a time,
// so you have to close this one before opening another.
myFile = SD.open("test.txt", FILE_WRITE);

// if the file opened okay, write to it:


if (myFile) {
Serial.print("Writing to test.txt...");
myFile.println("testing 1, 2, 3.");
// close the file:
myFile.close();
Serial.println("done.");
} else {
// if the file didn't open, print an error:
Serial.println("error opening test.txt");
}
// re-open the file for reading:
myFile = SD.open("test.txt");
if (myFile) {
Serial.println("test.txt:");
// read from the file until there's nothing else in it:
while (myFile.available()) {
Serial.write(myFile.read());

Pág.149
www.corrosionyproteccion.com Pág.149
}
// close the file:
myFile.close();
} else {
// if the file didn't open, print an error:
Serial.println("error opening test.txt");
}
}

void loop() {
}

CONFIGURACION SDCARD + RFM12B CONEXIONES ENTRE PINES

Se emplean dos dispositivos que utilizan comunicación SPI, por lo cual es necesario la correcta conexión de los pines entre
ellos que permita el funcionamiento correcto al momento de usarse.

RFM12B

5V GND SCK SDO SDI SEL IRQ

** * PIN 13 PIN 12 PIN 11 PIN 10 PIN 2

SD CARD

GND CD DO SCK DI CS VCC

* NC PIN 12 PIN 13 PIN 11 PIN 4,8 **

El siguiente programa consta de la unión de los programas desarrollados anteriormente, para


poder realizar la base del sistema embebido, que consta de la lectura de la batería y los
potenciales, su transmisión vía RF y el almacenamiento de estas variables para su posterior
análisis, así mismo como la configuración de la tarjeta SD y el módulo de RF, con sus respectivas
conexiones.

READWRITE SD+RF

Pág.150
www.corrosionyproteccion.com Pág.150
/*
RF card attached to SPI bus as follows:
** MOSI - pin 11
** MISO - pin 12
** CLK - pin 13
** CS - pin 10

SD card attached to SPI bus as follows:


** MOSI - pin 11
** MISO - pin 12
** CLK - pin 13
** CS - pin 4
*/

#include <JeeLib.h>
#include <SPI.h>
#include <SD.h>

File myFile;
long volt;
int id;
int CS;
int aux = 0;

void setup() {

pinMode(10, OUTPUT);
pinMode(4, OUTPUT);
digitalWrite (10, HIGH);
digitalWrite (4, HIGH);

Serial.begin(57600);
while (!Serial) {
; }
//////////////RF12B////////////////
rf12_initialize(18, RF12_868MHZ, 212);
Serial.print("SimpleReceive");

//////////////
if (!SD.begin(4)) {
Serial.println("initialization failed!");
return;
}
}

void loop() {

delay(100);
digitalWrite (10, LOW);
digitalWrite (4, HIGH);
if (rf12_recvDone() && rf12_crc == 0) {
long* buf = (long*) rf12_data;

delay(100);

Pág.151
www.corrosionyproteccion.com Pág.151
Serial.print(" Poste:");
Serial.print(buf[0]);
delay(100);
Serial.print(" Valor ADC: ");
Serial.print(buf[1]);
delay(100);
Serial.print(" Voltaje PILA: ");
Serial.print(buf[2]);
Serial.print(" ");
Serial.println();
delay(100);
id = buf[0];
volt = buf[2];
}

digitalWrite (10, HIGH);


digitalWrite (4, LOW);
if (volt > 0)
{
Serial.println("SD");
myFile = SD.open("voltaje.txt", FILE_WRITE);
if (myFile) {
Serial.print("Writing volt.txt...");
myFile.print("poste :");
myFile.print(id);
myFile.print(" ");
myFile.print("voltaje :");
myFile.println(volt);
myFile.println("------");
myFile.close();
Serial.println("done.");
}
else {
Serial.println("fail.");
}

volt = 0;
}

digitalWrite (10, HIGH);


digitalWrite (4, HIGH);
}

Pág.152
www.corrosionyproteccion.com Pág.152
MONITOR SERIAL DATOS RECIBIDOS

A continuación se muestran los datos de las lecturas realizadas por el ADC, y por medio de un monitor serial se despliegan
los datos obtenidos vía RF para corroborar que se enviaran correctamente.

Ilustración 1

ONESHOT_RF

#include <JeeLib.h>
#include <Ports.h>
#include <RF12.h>

PortI2C myI2C(1);
AnalogPlug adc(myI2C,0x69);
byte seqnum;
byte Config;
int ack;

void setup()
{
ack = 0;
// Serial
Serial.begin(57600);

Pág.153
www.corrosionyproteccion.com Pág.153
//RF12B
rf12_initialize(20, RF12_868MHZ, 212); // inicializacion de RF y
configuracion
rf12_config();
rf12_easyInit(0);
////////////////
Serial.println("POSTES");
ack = adc.send();
if(ack)
Serial.println("Got Ack");
//adc.write(0x8F); // channel 1, 18 bit, 8x gain, one-shot conversion
adc.stop();
}

void loop() {
long buf[3];
buf[0]= ++seqnum;
Serial.print(buf[0]);
Serial.print(" | ");
long raw;
ack = adc.send();
if(ack){
// Start new conversion
adc.write(0x8C);

adc.receive(); // Sets R/W bit high


raw = (long) adc.read(0) << 16;
raw |= (word) adc.read(0) << 8;
raw |= adc.read(0);
Config = adc.read(0);

while(Config != 0x0C) { // espera de conversion


Config = adc.read(0);
}
adc.read(1); // last poll
adc.receive(); // Sets R/W bit high
long data = adc.read(0);
raw = data << 16;
raw |= (word) adc.read(0) << 8;
raw |= adc.read(0);
raw |= (raw * 1000) / 64;

Serial.print(" ADC Poste: ");


Serial.print(raw);
Serial.print(" uV ");
Serial.print(" | ");

long poste = ((raw*3.125)/1000);


Serial.print(" Voltaje del Poste: ");
Serial.print(poste);
Serial.print(" mV ");
Serial.print(" | ");
buf[1]=poste;
adc.read(1);
adc.stop();
}

Pág.154
www.corrosionyproteccion.com Pág.154
delay(500);

ack = adc.send();
if(ack){
adc.write(0xAC);

adc.receive(); // Sets R/W bit high


raw = (long) adc.read(0) << 16;
raw |= (word) adc.read(0) << 8;
raw |= adc.read(0);
Config = adc.read(0);

while(Config != 0x2C) { // Loop waiting for the conversion to


be finished
Config = adc.read(0);
}
adc.read(1); // last poll
adc.receive(); // Sets R/W bit high
long data = adc.read(0);
raw = data << 16;
raw |= (word) adc.read(0) << 8;
raw |= adc.read(0);
raw |= (raw * 1000) / 64;
Serial.print(" ADC BAT: ");
Serial.print(raw);
Serial.print(" uV ");
Serial.print(" | ");
long uvolts = ((raw*2.44)/1000);
Serial.print(" Voltaje bat: ");
Serial.print(uvolts);
Serial.print(" mV ");
Serial.print(" | ");
buf[2]=uvolts;
adc.read(1);
adc.stop();
}
Serial.println();
////////////envio de data/////////////////////////
while (!rf12_canSend())
rf12_recvDone();
rf12_sendStart(0,buf,sizeof buf);

buf[1]=0;
buf[2]=0;
delay(8700);

ReadWrite SD+RF+BATERIA+POSTES_FINAL

/*
* RF card attached to SPI bus as follows:
** MOSI - pin 11
** MISO - pin 12

Pág.155
www.corrosionyproteccion.com Pág.155
** CLK - pin 13
** CS - pin 10

* SD card attached to SPI bus as follows:


** MOSI - pin 11
** MISO - pin 12
** CLK - pin 13
** CS - pin 4
*/

#include <JeeLib.h>
#include <SPI.h>
#include <SD.h>

File myFile;
long volt;
long poste;
int id;
int CS;
int aux=0;

void setup() {
pinMode(10,OUTPUT);
pinMode(4,OUTPUT);

digitalWrite (10,HIGH);
digitalWrite (4,HIGH);
// Open serial communications and wait for port to open:
Serial.begin(57600);
while (!Serial) { ; }
//////////////RF12B////////////////
rf12_initialize(18, RF12_868MHZ, 212);
Serial.print("SimpleReceive");
//////////////
if (!SD.begin(4)) {
Serial.println("initialization failed!");
return;}
}

void loop() {
///////////////RF12B//////////////////////////
// rf12_recvDone() is true if new information has been received.
// re12_crc == 0 indicates good transmission, checks validity of data
delay(100);
digitalWrite (10,LOW);
digitalWrite (4,HIGH);
if (rf12_recvDone() && rf12_crc == 0) { // received good
data if true
long* buf = (long*) rf12_data;
delay(100);
Serial.print(" ID Poste:");
Serial.print(buf[0]);
delay(100);
Serial.print(" Voltaje Poste: ");
Serial.print(buf[1]);
delay(100);
Serial.print(" Voltaje Bateria: ");

Pág.156
www.corrosionyproteccion.com Pág.156
Serial.print(buf[2]);
Serial.print(" ");
Serial.println();
delay(100);
id=buf[0];
poste=buf[1];
volt=buf[2];
}
////////////////////////////////////////
if (volt>0)
{
digitalWrite (10,HIGH);
digitalWrite (4,LOW);

Serial.println("SD");
myFile = SD.open("voltaje.txt", FILE_WRITE);

// if the file opened okay, write to it:


if (myFile) {
Serial.print("Writing voltaje.txt...");
myFile.print("poste :");
myFile.print(id);
// myFile.print("| ");
myFile.print("voltaje poste :");
myFile.print(poste);
myFile.print(" mV ");
//myFile.print(" | ");
myFile.print("voltaje bateria :");
myFile.print(volt);
myFile.print(" mV ");
myFile.println("_________ ");
// close the file:
myFile.close();
Serial.println("done.");
}
else {
Serial.println("fail.");
}
volt=0;
}
digitalWrite (10,HIGH);
digitalWrite (4,HIGH);
}

ONESHOT_RF_SLEEPMODEPWRDOWN

Pág.157
www.corrosionyproteccion.com Pág.157
#include <avr/sleep.h>
#include <avr/wdt.h>
#include <avr/power.h>
#include <JeeLib.h>
#include <Ports.h>
#include <RF12.h>

PortI2C myI2C(1);
AnalogPlug adc(myI2C,0x69);
byte seqnum;
byte Config;
int ack;
//////////SLEEPMODE_CONFIG/////////////
ISR(WDT_vect)
{
wdt_disable(); // disable watchdog
}

void myWatchdogEnable(const byte interval)


{
MCUSR = 0; // reset various flags
WDTCSR |= 0b00011000; // see docs, set WDCE, WDE
WDTCSR = 0b01000000 | interval; // set WDIE, and appropriate delay
wdt_reset();
power_all_disable (); //apaga varios modulos

set_sleep_mode (SLEEP_MODE_PWR_DOWN);
sleep_mode(); // now goes to Sleep and waits for the interrupt
}

void setup()
{
ack = 0;
//RF12B
Sleepy::loseSomeTime(32);
rf12_initialize(20, RF12_868MHZ,212);
rf12_config();
rf12_easyInit(0);
rf12_sleep(RF12_SLEEP);
// wait another second for the power supply to settle
Sleepy::loseSomeTime(1000);
////////////////
ack = adc.send();
if(ack)
adc.stop();
}

void loop() {
power_all_enable ();
Sleepy::loseSomeTime(200);
long buf[3];
buf[0]= ++seqnum;
long raw;
ack = adc.send();
if(ack){
// Start new conversion
adc.write(0x8C);

Pág.158
www.corrosionyproteccion.com Pág.158
adc.receive(); // Sets R/W bit high
raw = (long) adc.read(0) << 16;
raw |= (word) adc.read(0) << 8;
raw |= adc.read(0);
Config = adc.read(0);

while(Config != 0x0C) {
Config = adc.read(0);
}
adc.read(1); // last poll
adc.receive(); // Sets R/W bit high
long data = adc.read(0);
raw = data << 16;
raw |= (word) adc.read(0) << 8;
raw |= adc.read(0);
raw |= (raw * 1000) / 64;
long poste = ((raw*3.125)/1000);

buf[1]=poste;
adc.read(1);
adc.stop();
}
Sleepy::loseSomeTime(300);
ack = adc.send();
if(ack){
adc.write(0xAC);

adc.receive(); // Sets R/W bit high


raw = (long) adc.read(0) << 16;
raw |= (word) adc.read(0) << 8;
raw |= adc.read(0);
Config = adc.read(0);

while(Config != 0x2C) {
Config = adc.read(0);
}

adc.read(1); // last poll


adc.receive(); // Sets R/W bit high
long data = adc.read(0);
raw = data << 16;
raw |= (word) adc.read(0) << 8;
raw |= adc.read(0);
raw |= (raw * 1000) / 64;
long uvolts = ((raw*2.44)/1000);

buf[2]=uvolts;
adc.read(1);
adc.stop();}
////////////envio de data/////////////////////////
rf12_sleep(RF12_WAKEUP); //turn on radio
rf12_sendNow(0,buf, sizeof buf); //transmit packet
rf12_sendWait(0);
rf12_sleep(RF12_SLEEP);
buf [1]=0;
buf [2]=0;
int p;

Pág.159
www.corrosionyproteccion.com Pág.159
for (p = 0; p <9; p++)/// duerme por 9 segundos
{
myWatchdogEnable (0b000110); // 1 seconds
}}//end of loop
Datos enviados y almacenados en tarjeta SD

3D

Diseños en 3D

Pág.160
www.corrosionyproteccion.com Pág.160
Todos los diseños del circuito, se generaron en un documento en solidWorks, para
medir los espacios y las dimensiones que necesitaba, esto con el fin de llegar al
objetivo que es reducir el tamaño del circuito, para que el circuito quede
embebido en el poste, y no tenga problemas de humedad, o de algún fallo
eléctrico.

Los componentes del circuito del toma de potencial V4 se diseñó y se


representaron en Solid Works como se muestran en las siguientes figuras.

Figura donde se muestra el Xbee explorer y el el Xbee RPSMA

Pág.161
www.corrosionyproteccion.com Pág.161
Figura antena del circuito embebido en el poste.

Figura Arduino nano V3, componente del circuito embebido en el poste.

Pág.162
www.corrosionyproteccion.com Pág.162
Figura conector para la alimentación del circuito, también conector para la
toma de potencial

Figura vista explosionada del circuito embebido en el poste.

Pág.163
www.corrosionyproteccion.com Pág.163
Figura ensamble de componentes en el circuito embebido en el poste

Pág.164
www.corrosionyproteccion.com Pág.164
Pág.165
www.corrosionyproteccion.com Pág.165
Figura poste de concreto donde se colocara el circuito del poste.

Se diseñó el circuito dentro del nylalloy, esto para que el circuito este protegido, de
cualquier variación térmica, y quede completamente sellado, como se muestra en
la figura 31

Pág.166
www.corrosionyproteccion.com Pág.166
Figura 31 diseño de circuito en el nylalloy.

Se diseñó una caja de acrílico para cubrir el circuito, y quedara embebido en el


cilindro cylalloy, esto permite que el circuito no se dañe, también como el cilindro,
tiene propiedades térmicas impide el paso de la humedad y de otros factores del
ambiente que haga que el circuito colisione. Como se muestra en la figura 15

Pág.167
www.corrosionyproteccion.com Pág.167
Figura 15 Caja de acrílico, para la protección del circuito.

Pág.168
www.corrosionyproteccion.com Pág.168
Figura 16 el nylalloy rotulado IDUCTOS

Pág.169
www.corrosionyproteccion.com Pág.169
Figura 16 nylalloy rotulado de

Patente del sistema desarrollado

A partir del sistema embebido desarrollado durante esta etapa, fue posible
ingresar una patente que protegiera este desarrollo. La patente ingresada
en diciembre del 2016, se titula Dispositivo de Bajo consumo para el
monitoreo remoto de sistemas de protección catódica en derechos de vía.
Sin embargo, si bien en la patente se hace un enfoque al monitoreo
terrestre de derechos de vía, este mismo dispositivo es el que se utilizó para
el monitoreo de protección catódica en sistemas de exploración de aguas
profundas.

Pág.170
www.corrosionyproteccion.com Pág.170
DISPOSITIVO DE BAJO CONSUMO PARA EL MONITOREO REMOTO DE
SISTEMAS DE PROTECCIÓN CATÓDICA EN DERECHOS DE VÍA

Campo de la técnica

La presente invención pertenece a los campos técnicos de las industrias que


involucran el transporte y distribución de fluidos valiosos y/o peligrosos, como
lo son la petrolera y petroquímica. Así mismo involucra a los campos técnicos
de electrónica e instrumentación de bajo consumo eléctrico. La presente
invención hace énfasis en un dispositivo de monitoreo para sistemas
existentes de protección catódica, ubicados en lugares remotos o de difícil
acceso, con el menor consumo eléctrico posible para incrementar su
autonomía y facilitar su instalación.

Objeto de la invención

La presente invención consiste en un dispositivo de bajo consumo para el


monitoreo remoto de sistemas de protección catódica en derechos de vía,
útil para facilitar su instalación en derechos de vía existentes, así como para
monitorear de manera remota el sistema de protección catódica instalados
en los ductos sumergidos en derechos de vía de difícil acceso, cuyo
monitoreo permita la inspección periódica de su integridad estructural.

Antecedentes

En el transporte de fluidos valiosos y/o peligrosos por ductos metálicos


sumergidos bajo tierra, o en medios marinos existen amenazas de corrosión,
tanto interior como exterior, que afectan la integridad del mismo ducto. Los
elementos aleantes y la propia microestructura que constituyen el tipo de
acero del ducto funcionan como un ánodo y cátodo que, al estar en

Pág.171
www.corrosionyproteccion.com Pág.171
contacto con el electrolito sea este el propio terreno donde está alojado el
ducto o un medio ambiente exterior incluyendo el marino, integran la
totalidad de elementos que constituyen la celda electroquímica, la cual da
lugar al deterioro y la pérdida de masa del ducto, originando el proceso
corrosivo del ducto y a su afectación estructural.

Las amenazas de corrosión citadas anteriormente originan daños sobre el


ducto, que a su vez conlleven a accidentes de alto impacto. Cuyas
consecuencias son del tipo ecológico, social, humano e inherentemente
económico, además de las afectaciones en relación a tiempos de entrega
y compromisos comerciales ya adquiridos.

Existen una variedad de sistemas de protección y mitigación con la


capacidad de contrarrestar los procesos de deterioro interior y exterior,
anteriormente mencionados. El más común consiste en un rectificador de
protección catódica, el cual genera un voltaje de DC entre el metal del
ducto y un ánodo de sacrificio, de tal forma que el proceso de deterioro
ocurra en el ánodo de sacrificio y no en el ducto.

Los sistemas de protección catódica, como el mencionado anteriormente,


requieren de un monitoreo periódico. Generalmente estos ductos se
encuentran en lugares remotos, o de difícil acceso, lo que dificulta su
monitoreo.

Existen una variedad de patentes relacionadas con el monitoreo remoto de


sistemas de protección catódica.

La patente US 5216370 A de 1993 se refiere a un sistema de monitoreo de


protección catódica. El sistema controla los intervalos de tiempo en los que
se realiza la medición, asegurándose de que el potencial únicamente sea
medido en un estado estable.

Pág.172
www.corrosionyproteccion.com Pág.172
Este sistema elimina el ruido eléctrico capacitivo e inductivo de este tipo de
mediciones, además de que plantea utilizar un electrodo de referencia fijo,
colocado apropiadamente cerca de la estructura metálica.

La patente US 5469048 A de 1995 se refiere a un dispositivo de medición para


metales sumergidos. Este dispositivo consiste en un cable de prueba
conectado al ducto sumergido y a un switch normalmente cerrado en una
estación sobre la superficie. A este switch también se conecta un electrodo
de referencia en contacto con el suelo cercano al punto de acceso. Se
utiliza un voltímetro conectado al switch y se abre el switch para realizar las
mediciones necesarias. La patente previamente mencionada requiere que
un técnico recorra el derecho de vía por la superficie, realizando las
mediciones necesarias con el voltímetro, lo cual dificulta la medición en
lugares de difícil acceso.

La patente US 5446369 A de 1995 se refiere a un dispositivo de monitoreo de


corrosión de un material en áreas remotas. La patente plantea el uso de
sensores que reaccionan a un ambiente corrosivo. Este dispositivo
previamente mencionad consiste en una tarjeta controladora, múltiples
tarjetas de pre amplificación, baterías sensores y cables. El sistema genera
una corriente eléctrica y la pasa sobre el metal que se va a medir de forma
que mediante la medición del voltaje obtenido se sepa el cambio en la
resistencia del metal y por lo tanto la corrosión del mismo. Los valores
obtenidos son procesados por el controlador y guardados en una memoria.
Este dispositivo sin embargo requiere de la recopilación manual de los datos
de memoria.

La patente US 5999107 A de 1999 se refiere a un dispositivo de monitoreo de


protección catódica para metales enterrados. Este dispositivo consiste de
un transpondedor conectado al ánodo de sacrificio y a un electrodo de
referencia, enterrados cerca del metal enterrado. El dispositivo también

Pág.173
www.corrosionyproteccion.com Pág.173
cuenta con otro transpondedor portátil que utiliza la misma frecuencia y se
puede comunicar de manera remota con el transpondedor enterrado. El
dispositivo enterrado se alimenta eléctricamente a través del circuito de
protección catódica. Este dispositivo facilita la medición en lugares de difícil
acceso mediante la conexión inalámbrica al transpondedor enterrado. Sin
embargo requiere de ubicarse cercano al rectificador para obtener la
corriente necesaria que alimente el transpondedor.

La patente CN 203715727 U de 2014 se refiere a un dispositivo digital de


monitoreo remoto, en un gabinete, de protección catódica anticorrosiva. El
gabinete propuesto en este dispositivo, consiste en los instrumentos de
medición, un switch de modulación de pulsos para la alimentación de
potencia, y una unidad remota terminal (RTU). El dispositivo conecta,
mediante RS485, al RTU con los instrumentos de medición. El RTU a su vez
realiza la transmisión inalámbrica de datos para su monitoreo. Este dispositivo
requiere de su instalación en conjunto con la del metal sumergido, así como
del rectificador de protección; por lo que no se puede adaptar a
instalaciones ya existentes.

La patente CN 204779823 U de 2015 se refiere a un dispositivo de monitoreo


remoto de protección catódica. Este dispositivo utiliza un modelo para
relacionar diferentes sondas de polarización en distintos extremos del metal
sumergido. Las sondas se conectan a un equipo de tele transmisión cercano
a un extremo del metal sumergido. Este dispositivo al igual que el dispositivo
mencionado arriba, requiere de una instalación en conjunto con el metal
sumergido, por lo que no se puede adaptar a instalaciones existentes.

Es muy importante señalar que las patentes anteriormente mencionadas no


consideraron avances tecnológicos inexistentes en la época de su
realización. Ninguna de las patentes referidas arriba se focaliza en
desarrollar un sistema que pueda ser implementado en instalaciones

Pág.174
www.corrosionyproteccion.com Pág.174
existentes de ductos sumergidos en derechos de vía. Asimismo las patentes
previamente mencionadas requieren de una alimentación eléctrica
externa, por lo que se dificulta su instalación en lugares remotos. Además,
ninguna de las patentes reportadas, considera el consumo energético de su
sistema de medición, por lo que requiere de una conexión eléctrica externa.
En particular la presente invención tiene una gran utilidad en el monitoreo
de ductos sumergidos, en lugares remotos y de difícil acceso, donde ya hay
instalaciones presentes por lo que no es posible un suministro eléctrico
externo al sistema de medición y transmisión de datos.

Descripción detallada de la invención

La presente invención consiste en un dispositivo de bajo consumo para el


monitoreo remoto de sistemas de protección catódica en derechos de vía,
útil para monitorear de manera remota el sistema de protección catódica
instalado en los ductos sumergidos en derechos de vía de difícil acceso. Este
dispositivo no requiere de ningún tipo de alimentación externa ya que al ser
de bajo consumo puede alimentar toda la electrónica necesaria con una
batería interna incluida en el dispositivo. En especial este dispositivo es
particularmente útil para derechos de vía de difícil acceso y/o en una
ubicación remota, donde ya existe una instalación actualmente, por lo que
no es posible alimentar un sistema de monitoreo remoto mediante una
corriente eléctrica externa.

La presente invención consiste en un dispositivo de monitoreo formado por


una batería, electrónica de adecuación de señales eléctricas para
sensado, sensores, microcontroladores para procesamiento y manejo de
datos, radiotransmisores para monitoreo remoto, así como módulos de reloj
para la valoración de tiempos de operación. En conjunto, el dispositivo
previamente mencionado mide potenciales de protección catódica y
Pág.175
www.corrosionyproteccion.com Pág.175
transmite dichas mediciones, utilizando un consumo energético eficiente, lo
que permite que la batería tenga mucha mayor duración, situación
necesaria sobre todo cuando se trata de derechos de vía de difícil acceso
por motivos sociales, geográficos o meteorológicos.

La presente invención está diseñada para realizar el monitoreo y transmisión


de potenciales de polarización de ductos de manera eficiente en cuanto al
consumo energético. El dispositivo consiste en la separación en módulos de
un sistema de medición y transmisión de datos obtenidos a partir de diversos
sensores. Esta separación mediante módulos, permite al dispositivo en
conjunto, apagar y prender los distintos módulos cuando sean requeridos.
Esto permite incrementar la eficiencia del sistema en general, disminuyendo
el consumo de corriente promedio e incrementando la autonomía de la
batería del dispositivo. Los tiempos de operación para cada uno de los
módulos están previamente establecidos mediante un esquema de tiempos
eficiente, el cuál utiliza los módulos en su modo de mayor consumo, el menor
tiempo posible. El incremento en la autonomía de la batería previamente
mencionada, permite al dispositivo mantenerse desconectado
completamente de cualquier red eléctrica externa que pudiera ser
necesaria, con un tiempo de vida útil suficiente para no necesitar de un
mantenimiento constante. Así mismo el dispositivo no requiere de una
alimentación energética ambiental externa, como pudiera ser por ejemplo
un panel solar, o algún otro método de recuperación o generación de
energía eléctrica que requiera estar expuesto al medio ambiente para su
funcionamiento. Esto es especialmente útil, en lugares donde las
condiciones ambientales no son favorables para los dispositivos electrónicos,
como pudiera ser por ejemplo en lugares de alta humedad o temperaturas
extremas. Así mismo, resulta de gran utilidad en lugares donde el dispositivo
pudiera ser dañado por accidentes humanos o vandalismo, como por
ejemplo en carreteras o zonas rurales. El dispositivo está diseñado para ser

Pág.176
www.corrosionyproteccion.com Pág.176
embebido en bloques de concreto resistentes, ubicados en instalaciones
existentes de monitoreo de protección catódica en derechos de vía.

La principal limitante del sistema es el consumo energético del mismo. Es por


esto que utiliza componentes con el menor consumo posible, tratando de
mantener el sistema lo más sencillo y económico. Al ser un sistema de bajo
consumo, utiliza un voltaje bajo de alimentación en este caso de 3.3V
obtenidos a partir de una sola celda de LiPo. Así mismo el sistema es
controlado mediante un microcontrolador de la familia tipo ‘p’ (PicoPower),
el cuál puede funcionar hasta los 1.8V. Para la radiofrecuencia el sistema
consiste en un módulo de bajo consumo pero también corto alcance con
23mA y 200m de rango.

Para mantener una correcta operación a lo largo de la duración de la


batería, se requiere un regulador de voltaje. En este caso, al requerir un bajo
consumo se necesita de un regulador para voltajes de 3.3V. Este regulador
de bajo consumo consume 2.2 µA de acuerdo a sus especificaciones.

Para las baterías el sistema utiliza una sola celda de LiPo ya que tiene una
tasa de descarga automática (es decir la velocidad a la que la celda se
descarga debido a las reacciones químicas internas) muy baja,
aproximadamente un 2% mensual, lo que equivale a una descarga de
aproximadamente 40% en dos años.

Además una sola celda de LiPo tiene un voltaje entre los 3.5V (descargada)
y 4.2V (a su máxima carga) lo que es más que suficiente para alimentar un
circuito de 3.3V mediante regulador.

Para optimizar el consumo de la batería el dispositivo cuenta con un


algoritmo para la medición lo más eficiente posible. Para lograrlo utiliza la
menor frecuencia a la que se puede tomar una muestra y enviar al receptor

Pág.177
www.corrosionyproteccion.com Pág.177
el voltaje del poste, ya que entre menos veces se haga el consumo de
corriente promedio será menor.

El periodo de muestreo adecuado para este tipo de sistemas debe ser 10


segundos, por lo que el sistema es capaz de realizar las siguientes
operaciones en este tiempo.

-Despertar el microcontrolador del modo sleep

-Pedir medición de la batería al ADC

-Leer medición de la batería del ADC y pedir medición de sensor

-Leer medición de del sensor

-Encender el módulo de RF

-Enviar valores al módulo RF

-Apagar el módulo de RF

-Preparar el timer para despertar dentro de 10 segundos y poner al


microcontrolador en modo sleep.

El microcontrolador se necesita tener en modo sleep el mayor tiempo


posible, despertando únicamente para realizar operaciones de
comunicación con los otros módulos. Al trabajar mediante comunicación
I2C, el microcontrolador puede estar prendido únicamente durante un
tiempo máximo de 1 ms. En cuanto el tiempo en sleep, el microcontrolador
es el encargado de manejar los tiempos del circuito, por lo que es
importante que pueda medir los tiempos y despertar en un intervalo de
tiempo determinado por el mismo microcontrolador. Esto se logra mediante
el watchdog timer (WDT) le cual puede permanecer encendido mientras el
resto de los módulos del microcontrolador están apagados en modo sleep.
La única desventaja del WDT es que solamente puede trabajar en múltiplos

Pág.178
www.corrosionyproteccion.com Pág.178
de 16 ms, y hasta un máximo de 60 segundos. El tiempo máximo no es
problema ya que el tiempo máximo en sleep es de menos de 9.5 segundos.
Por otro lado es importante tomar en cuenta que los tiempos de sleep deben
ser siempre múltiplos de 16, aun cuando esto signifique desperdiciar algunos
mili segundos.

Para el módulo ADC, de acuerdo a las especificaciones se puede tener una


frecuencia de muestreo de entre 3.75 y 240 Hz, de acuerdo a la resolución
deseada. En este caso como la precisión es muy importante, se trabaja con
una resolución de 18 bits, lo que equivale a una frecuencia máxima de 3.75
Hz. De este modo se puede calcular el tiempo que tardará en tomar una
medición:

1 1
𝑇= = = 0.267𝑠𝑒𝑔
𝑓 3.75𝐻𝑧

La resolución de 18 bits nos permite tener una resolución de 218 =


262144pasos a lo largo del voltaje máximo esperado. Es decir que para un

voltaje entre 0 y 10V la resolución es de aproximadamente 10262144 =


0.00003814697, es decir 38.14 uV/bit.

Para el módulo de radiofrecuencia se requieren 9 bytes para la


sincronización del dispositivo. (3 Pre + 2 syn + 2head + 2 CRC). Es decir que a
los bytes que se quieran enviar se debe sumar los 9 bytes de entronización
del protocolo. Los datos que se envían son, el ID del poste, el voltaje de la
medición y el voltaje restante en la batería. El ID del poste es un solo byte,
suponiendo que hay menos de 256 postes en el derecho de vía. Los valores
de voltajes son 3 bytes cada uno, ya que se está trabajando con 18 bits y en
2 bytes (16 bits) no hay suficiente espacio para enviar la información
completa. De esta forma el dispositivo envía un total de 16 bytes.

La máxima velocidad de transmisión en este caso es de 50 kbits/seg. Esto


equivale a 0.16ms por byte transmitido.
Pág.179
www.corrosionyproteccion.com Pág.179
8 𝑏𝑖𝑡𝑠⁄𝑏𝑦𝑡𝑒
= 0.00016 𝑠𝑒𝑔⁄𝑏𝑦𝑡𝑒
50000 𝑏𝑖𝑡𝑠⁄𝑠𝑒𝑔

Esto significa que el sistema requiere de al menos 2.56 ms para enviar la


información. Además se requiere de un tiempo de 30 ms después de
encender el módulo para iniciar cualquier transmisión de datos. Por lo cual
el módulo de radiofrecuencia permanece encendido por un total de 32.56
ms.

Los tiempos necesarios en encendido para la operación de mediciones y


transmisión son de 267ms para la medición de batería, 267ms para la
medición del sensor en el poste, y 32.56ms para la transmisión de datos.

Para organizar las operaciones en el intervalo de 10 segundos se utiliza de


un esquema de tiempos. En este esquema, el microcontrolador despierta
primero para solicitar una medición al ADC (de la batería) y luego vuelve a
modo sleep.

El ADC realiza la conversión en 267ms, el múltiplo de 16 más cercano es de


272ms, por lo que hasta que se cumplen el microcontrolador no puede
despertar. De esta forma a los 272ms se lee el valor de la pila y se pide una
nueva medición al ADC (del voltaje en el poste).

Nuevamente a los 272ms despierta el microcontrolador y se lee el valor del


voltaje del poste. En este mismo momento se despierta al módulo de
radiofrecuencia, y el microcontrolador vuelve a modo sleep.

A los 30ms el módulo de radiofrecuencia está listo para transmitir, sin


embargo hasta que se cumplen los 32ms (múltiplo de 16) el
microcontrolador despierta. En cuanto despierta inicia la transmisión que
dura únicamente 3ms. El microcontrolador permanece despierto este
tiempo ya que 3ms es muy poco para dormir y volver a despertar.

Pág.180
www.corrosionyproteccion.com Pág.180
Después de los 3ms el microcontrolador apaga al módulo de
radiofrecuencia y luego entra en modo sleep durante aproximadamente los
siguientes 9.4 segundos antes de iniciar el ciclo nuevamente.

Para la medición de voltajes de la batería y del poste, el dispositivo cuenta


con un circuito que le permite en el caso de la batería reducir el consumo
de esta cuando no se hacen mediciones, y en el caso de la medición del
poste eliminar la mayor cantidad de ruido proveniente del rectificador
(60Hz).

Para la medición de la batería primero utiliza un divisor de voltaje ya que la


batería puede llegar hasta los 4.2 V completamente cargada. El ADC no es
capaz de realizar mediciones más allá de su voltaje de alimentación, en este
caso 3.3V. Al estar conectado todo el tiempo el divisor de voltaje, debe
circular la menor cantidad de corriente posible para que su efecto sobre el
consumo de la batería sea mínimo. Sin embargo si circula muy poca
corriente, el ADC no es capaz de tomar una medición ya que internamente
no puede cargarse. Es por eso que el dispositivo cuenta con un capacitor,
el cual se descarga durante la medición permitiendo al ADC funcionar
correctamente.

De esta manera es posible utilizar resistencias en el divisor de hasta 10 Mega


ohms. Con este divisor la corriente que se drena de la batería está dada por:

𝑉 4.2𝑉
𝐼 = 𝑅 = 20𝑀𝛺 = 0.21𝑢𝐴

Por otro lado para la medición del valor del poste el sistema utiliza un filtro
pasa bajas que le permite eliminar la frecuencia de 60 Hz del rectificador.
Este filtro tiene la frecuencia de corte más baja posible sin ocasionar un alias

Pág.181
www.corrosionyproteccion.com Pág.181
en las mediciones. En este caso la frecuencia de muestreo es de un periodo
de 10 segundos, es decir 0.1Hz, por lo que se requiere un periodo del doble
del periodo de muestreo, es decir 20 segundos o 0.05Hz.

Para diseñar este filtro, el valor de la constante RC es

1 1
𝑅𝐶 = = = 3.183𝛺𝐹
2𝜋𝑓 2𝜋0.05

El dispositivo utiliza un capacitor de 470uF, lo que indica que es necesaria


una resistencia de 6.722kὨ. Para obtener esta resistencia cuenta con un
potenciómetro de precisión trimpot.

Además de este filtro, el dispositivo cuenta con un divisor de voltaje. En este


caso no importa el consumo que exista, sin embargo por protección al
ducto y a la celda de referencia se debe utilizar una resistencia de alto valor.
El máximo valor de impedancia recomendado para el ADC es de 2 MὨ, por
lo que utilizar resistencias de hasta 1 MὨ no ocasiona problemas.

Este divisor reduce el voltaje de los 10 V máximos que se esperan de la


lectura del poste, a un máximo de 3.3V. Definiendo entonces el valor
máximo de resistencia como 1 MὨ, la otra resistencia es de:

𝑅1 1𝑀𝛺
𝑅2 = 𝑉𝑖𝑛 = 10𝑉 ≈ 500𝑘𝛺
−1 −1
𝑉𝑜𝑢𝑡 3.3𝑉

El consumo del sistema completo a partir de la corriente promedio de cada


uno de los módulos en el periodo de 10 segundos determina la batería
necesaria. Para hacer este cálculo se necesita saber el consumo de
corriente de cada uno de los módulos en modo encendido y en modo de

Pág.182
www.corrosionyproteccion.com Pág.182
bajo consumo (sleep). Los 5 módulos que van a consumir corriente de la
batería son los siguientes, con su consumo en ambos modos.
Microcontrolador 7mA encendido y 4uA apagado, radiotransmisor 25mA
encendido y 0.3uA apagado, ADC 135uA encendido y 0.3uA apagado,
divisor de voltaje 0.21uA encendido y regulador de 3.3V 2uA encendido. Los
tiempos de encendido y apagado durante el periodo de 10 segundos son:
microcontrolador 6ms prendido 9.994s apagado, radiotransmisor 35ms
prendido y 9.965 S apagado, ADC 544ms prendido y 9.456s apagado, divisor
de voltaje y regulador siempre prendidos.

De esta manera la corriente promedio de cada módulo es de: 8.1976 uA


para el microcontrolador, 87.799uA para el módulo de radiofrecuencia,
7.6276 uA para el ADC, 0.21uA para el divisor de voltaje y 2uA para el
regulador. La corriente promedio total es entonces de 105.8342 uA.

De esta manera en dos años se utilizará aproximadamente 1854.22 mAh,


tomando en cuenta la perdida mensual de la batería se requiere de una
capacidad de al menos 3090.36 mAh. El dispositivo cuenta con una batería
de 5000mAh para poder funcionar a lo largo de los 2 años sin problema.

En la figura 1 se hace una representación esquemática de la


implementación mediante módulos configurables para encendido y
apagado. Al estar separados los distintos módulos de manera estratégica,
es posible conectar y desconectar cada uno de ellos independientemente
según se requiera su uso. Este esquema de utilización de módulos, permite a
la batería suministrar la menor cantidad de corriente posible al dispositivo en
conjunto.

En la figura 2 se muestra el diagrama optimizado de tiempos de operación


del sistema en conjunto. Este sistema está gobernado por tiempos periódicos
en los que el microcontrolador principal despierta de su modo de bajo

Pág.183
www.corrosionyproteccion.com Pág.183
consumo para encender y apagar los distintos módulos según el diagrama
previamente establecido.

En la figura 3 se muestra el esquema del dispositivo completamente


embebido en el bloque de concreto previamente mencionado. Esta
manera de embeber el sistema dentro del concreto, permite un aislamiento
de toda la electrónica interna de cualquier tipo de medio ambiente hostil.

En la figura 4 se muestra el circuito de medición de potenciales del poste


con el filtro pasa bajas, así como el divisor de voltaje adecuado.

En la figura 5 se muestra el divisor de voltaje con el capacitor de carga para


el ADC previamente mencionado.

Descripción de figuras

Figura 1. Representación esquemática de la implementación mediante


módulos configurables para encendido y apagado. Los componentes
descritos son 1(1) batería; 1(2) módulo de reloj de tiempo real (RTC); 1(3)
microcontrolador principal maestro; 1(4) circuito para monitoreo de la
batería; 1(5) módulo de sensores de conversión analógicos digitales; 1(6)
circuito para monitoreo del potencial del ducto; 1(7) módulo transceptor de
radiofrecuencia; 1(8) celda de corrosión ejemplificando las conexiones al
ducto.

Figura 2. Diagrama optimizado de tiempos de operación del sistema en


conjunto. Se representan los tiempos de encendido y apagado para los
siguientes módulos; 2(1) microcontrolador principal maestro; 2(2) módulo de
sensores de conversión analógicos digitales; 2(3) módulo transceptor de
radiofrecuencia.

Pág.184
www.corrosionyproteccion.com Pág.184
Figura 3. Esquema del dispositivo completamente embebido en el bloque
de concreto. Los componentes descritos son 3(1) batería; 3(2) módulo de
reloj de tiempo real (RTC); 3(3) microcontrolador principal maestro; 3(4)
circuito para monitoreo de la batería; 3(5) módulo de sensores de conversión
analógicos digitales; 3(6) circuito para monitoreo del potencial del ducto;
3(7) módulo transceptor de radiofrecuencia.

Figura 4. Circuito para toma de potenciales de los postes con filtro para
rectificador. Los componentes descritos son 4(1) referencia positiva desde el
poste, 4(2) referencia negativa desde el poste, 4(3) resistencia de 1 mega
ohm para el divisor de voltaje, 4(4) resistencia de 500 kilo ohms para el divisor
de voltaje, 4(5) potenciómetro de precisión en 6.772 kilo ohms para el filtro
pasa bajas, 4(6) capacitor de 470 microfaradios para el filtro pasa bajas, 4(7)
salida del circuito hacia el ADC.

Figura 5. Circuito para medición de voltaje de la batería, con capacitor de


carga. Los componentes descritos son 5(1) resistencia de 10 mega ohms
para el divisor de voltaje, 5(2) resistencia de 10 mega ohms para divisor de
voltaje, 5(3) salida del circuito hacia el ADC, 5(4) capacitor de 0.1
microfaradios para carga.

Pág.185
www.corrosionyproteccion.com Pág.185
Reivindicaciones

1. Un dispositivo de bajo consumo con una batería para su desconexión de


la red eléctrica, capaz de monitorear de manera remota un sistema de
protección catódica, caracterizado porque comprende una batería
electrónica de adecuación de señales eléctricas para censado,
sensores, microcontroladores para procesamiento y manejo de datos,
radiotransmisores para monitoreo remoto, así como módulos de reloj
para la valoración de tiempos de operación; en donde

la reducción del consumo energético del sistema previamente descrito


en la figura 1, mediante la optimización te tiempos de operación de los
módulos principales que lo componen;
el aislamiento del medio ambiente del dispositivo, así como su correcta
operación al estar embebido dentro de un poste de concreto, situado
sobre el derecho de vía;
la aplicación del dispositivo en derechos de vía con instalaciones
existentes que no permiten el acceso a la red eléctrica y/o a
recuperación energética del medio ambiente, para la alimentación de
un dispositivo de monitoreo;

Pág.186
www.corrosionyproteccion.com Pág.186
Resumen de la invención

La presente invención consiste en un dispositivo de bajo consumo para el


monitoreo remoto de sistemas de protección catódica en derechos de vía,
útil para monitorear de manera remota el sistema de protección catódica
instalado en los ductos sumergidos en derechos de vía de difícil acceso.

La presente invención consiste en un dispositivo de monitoreo formado por


una batería, electrónica de adecuación de señales eléctricas para
censado, sensores, microcontroladores para procesamiento y manejo de
datos, radiotransmisores para monitoreo remoto, así como módulos de reloj
para la valoración de tiempos de operación.

La presente invención tiene utilidad principalmente para el monitoreo


remoto de sistemas de protección catódica en lugares de difícil acceso. Es
especialmente útil, en lugares donde las condiciones ambientales no son
favorables para los dispositivos electrónicos, así como en lugares donde el
dispositivo pudiera ser dañado por accidentes humanos o vandalismo. El
dispositivo está diseñado para ser embebido en bloques de concreto
resistentes, ubicados en instalaciones existentes de monitoreo de protección
catódica en derechos de vía. Por lo que su instalación es especialmente
sencilla y eficiente.

Pág.187
www.corrosionyproteccion.com Pág.187
Figuras

Figura 1

Figura 2

Pág.188
www.corrosionyproteccion.com Pág.188
Figura 3

Figura 4

Pág.189
www.corrosionyproteccion.com Pág.189
Figura 5

DISEÑO DEL VANT


Una vez diseñado el circuito se procedió al diseño del Vehículo aéreo no tripulado
(VANT) y al análisis completo de la aerodinámica y electrónica necesaria para su
aplicación.

DISEÑO DEL AVION (VANT)

MODELO 3D BIXLER

Pág.190
www.corrosionyproteccion.com Pág.190
40. Modelo 3D Bixler

Se procedió a realizar un modelo 3D de los aviones que utilizamos, esto nos permite realizar simulaciones de esfuerzos,
aerodinámicas, centros de masa entre otros que nos permita tener mayor conocimiento sobre el comportamiento que tenga
el avión ante colisiones, o durante el vuelo.

Para la realización del modelo 3D se utilizó el programa de solidworks, el diseño de este se tomó en base a las
especificaciones del avión.

ESPECIFICACIONES
Material: EPO Foam
Wingspan: 1500mm
Length: 963mm
Flying Weight: 760g
ESC: 20A
Motor: 2620-1300kv Brushless Out runner
Servo: 4 x 9g
Radio System: HK-T6A V2 2.4GHz transmitter and receiver (Mode 2 transmitter - left stick throttle)
Prop: 7x5

Pág.191
www.corrosionyproteccion.com Pág.191
MEDIDAS

De acuerdo a las especificaciones del avión se realizó el modelado 3d, a continuación las siguientes imágenes muestran la
longitud y el tamaño de las alas del avión, dependiendo del uso que le queramos dar, debemos tomar en cuenta las
capacidades que nos pueden ofrecer cada aeronave

Pág.192
www.corrosionyproteccion.com Pág.192
41. Longitud del Avión

42. Longitud de envergadura

Pág.193
www.corrosionyproteccion.com Pág.193
Vistas del avión

Diferentes vistas que permiten apreciar la forma y el tipo de aeronave a emplear.

43. vista superior, vista lateral, vista frontal, vista isométrica

Pág.194
www.corrosionyproteccion.com Pág.194
Pág.195
www.corrosionyproteccion.com Pág.195
CENTRO DE MASA

El centro de masa es un dato importante a conocer de la aeronave, este debe estar situado correctamente para que el avión
pueda despegar, volar y aterrizar adecuadamente, un centro de masa fuera de la zona adecuada provoca complicaciones
para el vuelo y para ajustarse a veces es necesario poner peso adicional o mover los componentes internos que lleva.

Por medio de la simulación 3D podemos saber dónde se encuentra el centro de masa y al momento de adicionar al avión
con accesorios que necesitamos como lo son cámaras, GPS o sistemas de navegación saber hacia dónde se mueve el
centro y poder corregir alguna posición que lo saque fuera de la zona establecida que permita un vuelo óptimo.

En las siguientes imágenes se muestra la posición que tiene el centro de masa ubicado en el avión

44. centro de masa vista lateral

Pág.196
www.corrosionyproteccion.com Pág.196
45. centro de masa vista superior

ESFUERZOS

Por medio de una simulación estática de elemento finito queremos conocer el comportamiento de las piezas de la aeronave
sometidas a un esfuerzo.

Simulación Estática

La estructura del avión se someterá a dos pruebas, la primera será una fuerza ejercida sobre la nariz y la segunda sobre un
extremo del ala. Esta simulación nos permitirá saber cómo es el comportamiento de la aeronave ante algún impacto, y así
darnos una idea de que puede suceder ante tal situación.

Dentro de la simulación de elemento finito es necesario la creación de un mallado el cual subdivide el modelo en partes
pequeñas llamadas elementos, que están conectadas en puntos comunes llamados nodos.

Pág.197
www.corrosionyproteccion.com Pág.197
46. mallado

Después se fijan las fuerzas que actuaran sobre este, una de estas fuerzas es un empotramiento y la otra la fuerza es la
que se ejercerá sobre el modelo

47. cargas y sujeciones en el avión bixler

RESULTADOS

Después de terminar la simulación estos fueron los resultados que arrojaron, realmente estos resultados nos sirven para
conocer la deformación de la pieza ante una fuerza ejercida, esto con fines didácticos, ya que en un impacto real intervienen
más variables que provocan distintos resultados, pero por medio de esta simulación sería una situación ideal.

Pág.198
www.corrosionyproteccion.com Pág.198
48. fuerza ejercida sobre la nariz

El tipo de material con el que está hecho el avión es EPO FOAM, un tipo de hielo seco de mayor densidad, los resultados
arrojados de una fuerza ejercida sobre la nariz indican que este se compactaría, aunque la simulación representa de
manera exagerada lo que sucedería, nos podemos dar una idea de esto, también nos arroja un gráfico de colores que nos
indican los esfuerzos ejercidos sobre la pieza, aunque este no es de importancia para este caso ya que sirve para calcular
esfuerzos máximos para el diseño de piezas, y para lo cual este avión ya viene fabricado y esos datos son propios del
diseño que utilizo la empresa para elaborar la aeronave.

Para una fuerza ejercida sobre el ala en la siguiente imagen vemos la deformación, la cual vemos que por la curvatura del
ala presenta un tipo de amortiguación ante un impacto, también dependiendo de la fuerza del impacto es lo que puede
suceder tanto que no presente ningún daño o se fracture una parte del ala, ya que esta por la parte interna presenta un tubo
de carbono que le da la firmeza suficiente para aguantar impactos.

Pág.199
www.corrosionyproteccion.com Pág.199
49. fuerza ejercida sobre el ala

En la siguiente imagen podemos ver que del lado izquierdo presenta un una tonalidad diferente en un área del ala, esta
área por medio del grafico indica la magnitud del esfuerzo ejercido, como se mencionaba anteriormente este sirve para
cálculos de factor de seguridad o esfuerzo máximo que soporte la pieza, aquí nosotros podemos concluir que en esta región
del ala es donde se concentra mayores esfuerzos ante un impacto, también por lo cual es donde está situado el tubo de
carbón.

50. fuerza ejercida sobre el ala vista superior

Pág.200
www.corrosionyproteccion.com Pág.200
AERODINÁMICA

La aerodinámica es la ciencia que estudia el movimiento del aire y su interacción con objetos que
se mueven y que generan con su desplazamiento una circulación de este.

Un cuerpo en movimiento inmerso en un fluido experimenta fuerzas ocasionadas por la acción del fluido. Para los estudios
de aerodinámica intervienen muchas variables pero se consideran dos fuerzas resultantes de mayor importancia: el
arrastre y la sustentación.

Pág.201
www.corrosionyproteccion.com Pág.201
El arrastre es la fuerza ejercida por el fluido en dirección contraria a la fuerza que ejerce el cuerpo en movimiento. Es decir,
es una fuerza que el fluido opone, contrarrestando el movimiento de un cuerpo. La fuerza de arrastre debe contrarrestarse
con una fuerza de propulsión que vaya en dirección opuesta al arrastre. Para obtener esta fuerza, se requiere el empleo de
algún tipo de energía, por lo que siempre se busca disminuir el arrastre.

Sustentación es la fuerza ocasionada por el fluido en dirección perpendicular a la dirección del movimiento del cuerpo. Su
aplicación más importante se encuentra en el diseño de partes de aviones y aeronaves. En base al análisis de fuerzas, se
obtiene cierta geometría que permite que exista fuerza de sustentación tanto encima como por debajo del aeroplano. A la
vez, se debe considerar que la fuerza de sustentación debe ser al menos igual que el peso de la aeronave para que esta
vuele.

Simulación de la aerodinámica del avión

51. simulación aerodinámica

Partiendo de los conceptos anteriores se procedió a realizar simulaciones aerodinámicas a los modelos 3D de los aviones,
de esta manera queremos conocer distintos datos que nos proporcionen información útil sobre la interacción del aire sobre
la aeronave, para así poder hacer instalaciones de accesorios como cámaras para tomar video y fotografía, así como
algunos sistemas de navegación y ver que regiones son óptimas para su posicionamiento y que no afecten mucho en la
aerodinámica del avión y permitiendo de esta manera un ahorro en el consumo de energía.

Pág.202
www.corrosionyproteccion.com Pág.202
Presiones en el Avion

Cuando un cuerpo está en contacto con un fluido en movimiento, éste se mueve alrededor del objeto y tiende a adherirse
en la longitud del cuerpo. En algún punto de la longitud, esta capa delgada se separa de la superficie y forma una estela
turbulenta. La presión en este punto es mucho menor que la presión en el punto de estancamiento en el frente del objeto.
Podemos decir entonces que se genera una fuerza neta que actúa en dirección contraria al movimiento del cuerpo. A esta
fuerza se le conoce como arrastre de presión. Si se logra que el punto en el que la capa límite se separa ocurra en un punto
lejano de la parte posterior del cuerpo, entonces se podrá disminuir el arrastre, debido a la disminución de la estela
turbulenta

La primera simulación consiste en las diferentes regiones donde encontramos un cambio de la presión que ejerce el aire
sobre la aeronave, debemos tener en cuenta que una alta velocidad es igual a una baja presión, y que una baja velocidad
es debido a una alta presión.

En las siguientes imágenes se muestra la aeronave antes y después de entrar en contacto con el aire, con diferentes vistas
que nos permitan ver los efectos desde distintos ángulos.

52. Simulación de presión antes del contacto, vista lateral

Pág.203
www.corrosionyproteccion.com Pág.203
53. Simulación de presión después del contacto con el modelo 3d, vista lateral

54. Simulación de presión antes del contacto, vista superior

Pág.204
www.corrosionyproteccion.com Pág.204
55. Simulación de presión después del contacto, vista superior

Como podemos ver en las imágenes anteriores se presenta un gráfico del lado derecho que indica la presión atmosférica
normalizada que se utiliza al nivel del mar que sería de 101 325 pa, partiendo de esa presión podemos ver conforme
cambia el grafico si hay un aumento o disminución de esta, analizando las regiones donde entra en contacto el aire, en la
parte frontal vemos un aumento de la presión donde cambia a un color azul más claro con una presión entre 101327pa
a101341pa, esto nos indica que por un aumento de presión tendremos una disminución de la velocidad debido a las fuerzas
resultantes por el arrastre de presión.

56. reacciones de la presión en perfil alar

Pág.205
www.corrosionyproteccion.com Pág.205
En la imagen anterior esta una representación de lo que sucede en un perfil del ala, el cual nos indica que por la parte
superior se genera una baja presión lo cual indica un aumento de velocidad, como podemos ver en la imagen de vista
superior sobre el perfil del ala por la parte posterior vemos que el grafico indica que la presión disminuyo en esa región lo
cual nos asegura que el comportamiento de la simulación es el adecuado.

Cambios de velocidad y arrastre

Ahora pasamos a la simulacion de la velocidad del aire con respecto al avion cuando este incide sobre el fuselaje y las alas,
de aquí partiremos a otro analisi el cual conlleva a saber la velocidades obtenidas cuando este presenta los accerorios que
modifican la aerodinamica del avion, a continuacion estas las imágenes de la simulacion.

57. Simulacion de velocidad antes del contacto, vista lateral

Pág.206
www.corrosionyproteccion.com Pág.206
58.Simulacion de velocidad despues del contacto, vista lateral

59. simulacion de velocidad antes del contacto,Vista Superior

Pág.207
www.corrosionyproteccion.com Pág.207
60. simulaicon de velocidad despues del contacto, vista superior

En las imágenes podemos darnos cuenta respecto al grafico de colores la variaciones de velocidad que existen cuando el
aire impacta contra el avion, en la simulacion se manejo que la velocidad promedio seria de 8.3 m/s que equivale
aproximadamente a 30 km/h, el arrastre que se presenta es tal que la disminucion respecto al grafico que se presenta indica
que lo que predomina es el color amarillo este indica que la velocidad promedio de esa region es entre 6.6 m/s a 7.3 m/s
que equivale a una variacion entre 23 a 26 km/h, en la parte central podemos ver que esta de color verde, en esta region
esta ubicado el motor que impulsa al avion, lo que a nosotros nos interesa es saber la velocidad promedio alrededor de las
alar y partes del fuselaje donde nosotros tengamos los datos de las velocidades que se presentan, asi cuando se instale
alguna camara en estas partes del avion ver que tanto arrastre nos genera y poder decidir si esta es un area optima para
colocacion o encontrar una mejor zona.

Posicion de camaras

Para nuestro analisis de arrastre y cambios de velocidad se agregaron al modelo lo que serian las camaras y se
posicionaron en distintas partes del avion donde estas puedan hacer capturas de fotografias o videos que sean utiles.

Pág.208
www.corrosionyproteccion.com Pág.208
Posterior a esto se realizo nuevamente un analisis y se compararon los resultados anteriores con los obtenidos
nuevamente.

61. Posicion de camaras vista lateral

62. Posicion de camaras vista isometrica

63. Posicion de camaras vista frontal

Pág.209
www.corrosionyproteccion.com Pág.209
Resultados de la simulacion

Para la simulacion se realizaron distintas pruebas, la primera consiste en conocer la velocidad del aire respecto alas
camaras , y la segunda hacer una simulacion de las camaras junto con el fuselaje y las alas para despues comparar los
resultados obtenidos.

Pág.210
www.corrosionyproteccion.com Pág.210
64. Vista isométrica simulación cámaras

65. Vista lateral simulación cámaras

Como nos podemos dar cuenta, la velocidad del aire arrojada por la simulación nos presenta que el promedio esta entre 4.1
m/s hasta 6.2 m/s, parte de esta estela generada por las cámaras presentan un área que está cerca de los 2 m/s.

Comparación

Pág.211
www.corrosionyproteccion.com Pág.211
Haciendo una comparación de las dos imágenes vemos las diferencias de velocidad una con respecto a la otra, la primera
imagen seria el avión sin cámaras y la segunda con las cámaras, podemos ver que en la parte central se genera una mayor
desaceleración del aire con la cámara puesta en la parte superior, por medio de esto podemos concluir que la mejor
posición para nuestras cámaras seria en la parte interna debajo del ala ya que genera un arrastre menor.

66. Simulación de velocidad sin cámaras

Pág.212
www.corrosionyproteccion.com Pág.212
67. Simulación de velocidad con cámaras

MODELO 3D RANGER VOLANTEX

68. Modelo 3D Ranger Volantex

Pág.213
www.corrosionyproteccion.com Pág.213
ESPECIFICACIONES

Wingspan: 1980mm (77.9 in)


Overall Length: 1170mm (46 in)
Flying Weight(without battery): 1500g
Prop Size: 1060 Propeller
Motor Size: 3715 powerful outrunner brushless motor
Speed Control : Easy-Plug 40A Switch-mode BEC brushless ESC
Servo 9-gram Servo * 6pcs included
Recommended Battery: 11.1V/14.8V 3300mAh ~ 10000mAh LiPo
Charger: Included
Flaps: Yes
Retracts: No

MEDIDAS

Estas son las medidas del modelo 3D que indican las especificaciones de la aeronave las siguientes imágenes muestran la
longitud y el largo de las alas.

69. longitud del avion

Pág.214
www.corrosionyproteccion.com Pág.214
70. envergadura del avion

VISTAS

Pág.215
www.corrosionyproteccion.com Pág.215
Se presentan las diferentes vistas del avión el cual se aprecia su estructura

71. vista superior, vista lateral, vista frontal, vista isométrica.

CENTROS DE MASA

El centro de masa como se mención anteriormente es importante conocer la ubicación óptima para el vuelo del avión, aquí
se muestra el centro de masa del Ranger el cual debemos tener en cuenta donde debe estar posicionado ya que este avión
se utiliza para hacer las misiones de vuelo más extensas y el cual lleva accesorios de mayor tamaño los cuales provocan
que el centro de masa se mueva aún más de su lugar.

Pág.216
www.corrosionyproteccion.com Pág.216
72. centro de masa vista lateral

73. centro de masa vista superior

Pág.217
www.corrosionyproteccion.com Pág.217
ESFUERZOS

Para este modelo 3D también se sometió a simulaciones de elemento finito para conocer el comportamiento del avión ante
impactos, así como en el anterior se hicieron dos pruebas, la primera será una fuerza ejercida sobre la nariz y la segunda
sobre un extremo del ala. Esta simulación nos permitirá saber cómo es el comportamiento de la aeronave ante algún
impacto, y así darnos una idea de que puede suceder ante tal situación.

74. cargas y sujeciones en el avión Ranger volantex

Resultados

Para este avión el material es distinto a diferencia del EPO este tiene una carcasa de plástico lo cual tiene un reacción
diferente ante una fuerza en la nariz, como podemos ver se flexiona de la parte donde hay un cambio de sección.

Pág.218
www.corrosionyproteccion.com Pág.218
75. resultado de simulación estática vista lateral

En la siguiente imagen podemos ver la fuerza que se ejerce sobre el ala, y podemos apreciar el comportamiento de esta
ante el esfuerzo provocado.

Pág.219
www.corrosionyproteccion.com Pág.219
76. resultado de simulación estática vista isométrica

En la región del ala donde se ve un cambio de color es donde se concentra el esfuerzo ante la fuerza actuante, aquí en esta
parte es donde se encuentra el tubo de carbón que refuerza esta parte del ala.

77. resultado de simulación estática vista superior

Pág.220
www.corrosionyproteccion.com Pág.220
AERODINAMICA

Para este avión también se realizaron pruebas aerodinámicas las cuales son necesarias para un análisis comparativo de la
diferencia de velocidades que se generan cuando estos presentan accesorios externos en su fuselaje y así poder concluir
cual es la zona para posicionamiento que genera menos arrastre.

Presión

La primera simulación consiste en las diferencias de presión alrededor del avión mostrando un antes y después de la
incidencia del aire sobre el fuselaje y las alas.

78. Simulacion de presion antes del contacto, vista lateral

Pág.221
www.corrosionyproteccion.com Pág.221
79. simulacion de presion despues del contacto, vista lateral

80. simulacion de presion antes del contacto,vista superior

Pág.222
www.corrosionyproteccion.com Pág.222
81. simulacion de presion despues del contacto, vista superior

En esta simulacion aerodinamica en la cual podemos apreciar las diferencias de presion ejercidas por el contacto del aire
sobre el avion podemos destacar que la region de alta presion que se genera sobre el ala es menor que el avion anterior lo
cual indica un menor presion de arrastre lo cual es bueno.

Velocidad

En la siguiente simulación realizada se pueden apreciar los cambios de velocidad del aire cuando el aire pasa a través de
él, estos nos servirán para posteriormente hacer un comparativo de las partes donde es recomendable poner una cámara la
cual no genere demasiado arrastre en el avión.

Pág.223
www.corrosionyproteccion.com Pág.223
82. simulación de velocidad antes del contacto, vista superior

Pág.224
www.corrosionyproteccion.com Pág.224
83. simulación de velocidad después del contacto, vista superior

84. simulación de velocidad antes del contacto, vista lateral

Pág.225
www.corrosionyproteccion.com Pág.225
85. simulación de velocidad después del contacto, vista lateral

Los resultados obtenidos de esta simulación muestran en las imágenes que la aerodinámica del avión hace variar la
velocidad inicial que va desde 8.3 m/s a un promedio de entre 6 y 7 m/s, podemos notar que la variación de la velocidad del
aire se presenta de manera más uniforme.

Pág.226
www.corrosionyproteccion.com Pág.226
Análisis de arrastre respecto

El siguiente análisis tiene por objetivo realizar una comparación entre el arrastre generado por un avión con y sin
accesorios integrados, esto nos permitirá conocer las mejores áreas para integrar ciertos tipos de accesorios que
necesitemos a lo largo de la misión que se vaya a desarrollar, para este caso es importante realizar vuelo de distancia
largas y es bueno conocer las características que nos entrega el avión durante un vuelo.

Para los vuelos de inspección con fotografía y video es necesario utilizar una cámara que va puesta sobre un gimball el cual
permite girar la cámara en diferentes direcciones, para esto nosotros deseábamos conocer donde era mejor situarla y que
cumpliera con el lugar que proporcionara una buena protección y a su vez generara el menor arrastre posible.

Por lo cual se procedió con la siguiente simulación.

El posicionamiento de las cámaras es el siguiente, la primera se ubica por debajo de la nariz y la segunda cámara se
encuentra por el lateral del fuselaje debajo del ala y la tercera cámara está posicionada en un extremo del ala por debajo
como se muestra en las imágenes.

Posición de cámaras

Pág.227
www.corrosionyproteccion.com Pág.227
86. Posición de cámaras, Vista frontal

87. Posición de cámaras, Vista isométrica

Resultados

Estos son los resultados obtenido de la simulación aerodinámica, se presentan los gráficos que arrojan los valores de
cambios de velocidad del aire que interactúa con las cámaras, primeramente se evalúa el nivel de arrastre y disminución de
velocidad de cada una de ellas para conocer su comportamiento aerodinámico.

En las siguientes imágenes se observan los datos arrojados por la simulación.

Pág.228
www.corrosionyproteccion.com Pág.228
88. Resultado de velocidad en cámaras, Vista isométrica

89. Resultado de velocidad en cámaras, Vista superior

Pág.229
www.corrosionyproteccion.com Pág.229
90 Resultado de velocidad en cámaras, Vista isométrica

91. Resultado de velocidad en cámaras, Vista lateral

CONCLUSION DE RESULTADOS

Después de analizar las simulaciones y comparar los datos obtenidos, podemos darnos cuenta que de las tres cámaras
solo una de ellas presenta un arrastre mayor en comparación a las demás, esto nos lo indica el grafico que nos marca la
velocidad del aire después de interactuar con las partes en la que entra en contacto, si asignamos una numeración a cada
cámara de la siguiente manera, la numero uno seria la que se encuentra por debajo de la nariz del avión, la segunda seria
la que está por debajo del ala muy cerca del fuselaje y la tercera la más pequeña que está más alejada del fuselaje por
debajo del ala, después de esta asignación cabe destacar la reacción del viento ante cada una, haciendo la comparación

Pág.230
www.corrosionyproteccion.com Pág.230
del color del grafico notamos que la cámara uno y tres su velocidad promedio esta los 6 m/s y 7 m/s mientras la segunda
cámara su velocidad oscila entre los 5 m/s a 6 m/s, esto nos indica que la mejor posición para la cámara se situaría por
debajo de la nariz, que es la zona donde se genera menos arrastre.

Así mismo el Ranger volantex presenta mejores condiciones para el vuelo que el bixler.

Análisis y selección del sistema de propulsión.

Para la selección de los motores propelas y baterías adecuados para optimizar el


vuelo de los diferentes VANT, se realizaron varías pruebas mediante las cuales se
obtuvo una metodología de diseño y evaluación.

Este análisis consistió en una parte experimental, así como en un desarrollo teórico
de análisis. Al finalizar se hicieron comparaciónes de los valores obtenidos en la
teoría y la práctica para determinar el mejor modelo matemático que nos permita
tomar decisiónes de cálculo y selección de los distintos componentes del sistema
de propulsión del VANT.

Experimentación

La experimentación se llevó a cabo con diferentes combinaciones de motores


propelas y baterías. Los parámetros de medición que se hicieron en cada prueba
fueron:

El diámetro de la propela en pulgadas.

El paso de la propela en pulgadas

El número de hélices en la propela

El conteo de celdas de voltaje de la batería

El voltaje en la batería durante la operación del motor

La corriente que requiere el motor durante el experimento

La potencia requerida por el motor

Las revoluciones por minuto a las que gira la héice

Pág.231
www.corrosionyproteccion.com Pág.231
La fuerza que genera la combinación del sistema de propulsión como empuje.

Figura 1. Estación de pruebas para la toma de mediciones experimentales del


sistema batería, motor, propela.

Pág.232
www.corrosionyproteccion.com Pág.232
Figura 2. Muestra de toma del voltaje, corriente, potencia y gramos de empuje
generados al 50%.

Figura 3. Muestra de toma del voltaje, corriente, potencia y gramos de empuje


generados al 100%.

Pág.233
www.corrosionyproteccion.com Pág.233
Figura 4. Muestra de toma revoluciones por minuto mediante el tacómetro óptico
digital.

Resultados de la fase experimental.

Como resultado de la experimentación con diversos motores, baterías y propelas;


se obtuvo una base de datos lo suficientemente amplia para desarrollar un análisis
correcto de los sistemas de propulsión de VANT.

A continuación se muestran todos los resultados de las pruebas realizadas.

Motor SunnySky 2204

Parámetro físico del motor Dimensión

Diámetro estator (mm) 22

Longitud estator (mm) 4

Pág.234
www.corrosionyproteccion.com Pág.234
KV (rpm/v) 2300

Prueba 1

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 3

Propelas (blades) 2

Voltaje(S) 4

Voltaje 50% (V) 16.52

Corriente 50% (A) 2.78

Potencia 50% (W) 45.93

Rpm 50% 18592

Thrust 50% (g) 262

Voltaje 100% (V) 16.4

Corriente 100% (A) 12.08

Potencia 100% (W) 198.11

Rpm 100% 30362

Thrust 100% (g) 719

Prueba 2

Pág.235
www.corrosionyproteccion.com Pág.235
Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 4.5

Propelas (blades) 2

Voltaje(S) 4

Voltaje 50% (V) 16.53

Corriente 50% (A) 4.42

Potencia 50% (W) 73.06

Rpm 50% 15727

Thrust 50% (g) 346

Voltaje 100% (V) 16.39

Corriente 100% (A) 17.31

Potencia 100% (W) 283.71

Rpm 100% 25582

Thrust 100% (g) 831

Prueba 3

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 4

Propelas (blades) 2

Pág.236
www.corrosionyproteccion.com Pág.236
Voltaje(S) 4

Voltaje 50% (V) 16.4

Corriente 50% (A) 3.76

Potencia 50% (W) 61.66

Rpm 50% 17252

Thrust 50% (g) 310

Voltaje 100% (V) 16.3

Corriente 100% (A) 15.99

Potencia 100% (W) 260.64

Rpm 100% 27036

Thrust 100% (g) 755

Prueba 4

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 4

Propelas (blades) 3

Voltaje(S) 4

Voltaje 50% (V) 16.48

Corriente 50% (A) 4.59

Pág.237
www.corrosionyproteccion.com Pág.237
Potencia 50% (W) 75.64

Rpm 50% 15851

Thrust 50% (g) 357

Voltaje 100% (V) 16.34

Corriente 100% (A) 18.95

Potencia 100% (W) 309.64

Rpm 100% 24144

Thrust 100% (g) 834

Prueba 5

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 6

Prop paso (in) 4

Propelas (blades) 2

Voltaje(S) 4

Voltaje 50% (V) 16.41

Corriente 50% (A) 5.35

Potencia 50% (W) 87.79

Rpm 50% 14852

Thrust 50% (g) 413

Pág.238
www.corrosionyproteccion.com Pág.238
Voltaje 100% (V) 16.18

Corriente 100% (A) 21.73

Potencia 100% (W) 351.59

Rpm 100% 21524

Thrust 100% (g) 931

Motor Emax 2205

Parámetro físico del motor Dimensión

Diámetro estator (mm) 22

Longitud estator (mm) 5

KV (rpm/v) 2300

Prueba 1

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 4.5

Propelas (blades) 2

Voltaje(S) 4

Pág.239
www.corrosionyproteccion.com Pág.239
Voltaje 50% (V) 16.65

Corriente 50% (A) 6.52

Potencia 50% (W) 108.55

Rpm 50% 19525

Thrust 50% (g) 580

Voltaje 100% (V) 16.34

Corriente 100% (A) 23.52

Potencia 100% (W) 384.31

Rpm 100% 29854

Thrust 100% (g) 1100

Prueba 2

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 4

Propelas (blades) 2

Voltaje(S) 4

Voltaje 50% (V) 16.59

Corriente 50% (A) 6.42

Potencia 50% (W) 106.5

Pág.240
www.corrosionyproteccion.com Pág.240
Rpm 50% 17253

Thrust 50% (g) 398

Voltaje 100% (V) 16.38

Corriente 100% (A) 21.52

Potencia 100% (W) 352.49

Rpm 100% 29652

Thrust 100% (g) 998

Prueba 3

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 4

Propelas (blades) 3

Voltaje(S) 4

Voltaje 50% (V) 16.62

Corriente 50% (A) 7.72

Potencia 50% (W) 128.3

Rpm 50% 17524

Thrust 50% (g) 493

Voltaje 100% (V) 16.32

Corriente 100% (A) 26.62

Pág.241
www.corrosionyproteccion.com Pág.241
Potencia 100% (W) 434.43

Rpm 100% 27556

Thrust 100% (g) 1104

Prueba 4

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 6

Prop paso (in) 4

Propelas (blades) 2

Voltaje(S) 4

Voltaje 50% (V) 16.52

Corriente 50% (A) 7.93

Potencia 50% (W) 131

Rpm 50% 16557

Thrust 50% (g) 643

Voltaje 100% (V) 16.12

Corriente 100% (A) 30.52

Potencia 100% (W) 491.98

Rpm 100% 25652

Thrust 100% (g) 1350

Pág.242
www.corrosionyproteccion.com Pág.242
Prueba 5

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 3

Propelas (blades) 2

Voltaje(S) 4

Voltaje 50% (V) 16.61

Corriente 50% (A) 6.38

Potencia 50% (W) 105.97

Rpm 50% 18534

Thrust 50% (g) 436

Voltaje 100% (V) 16.42

Corriente 100% (A) 18.25

Potencia 100% (W) 299.66

Rpm 100% 30572

Thrust 100% (g) 952

Motor Lumenier 2206

Parámetro físico del motor Dimensión

Pág.243
www.corrosionyproteccion.com Pág.243
Diámetro estator (mm) 22

Longitud estator (mm) 6

KV (rpm/v) 2450

Prueba 1

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 4.5

Propelas (blades) 3

Voltaje(S) 4

Voltaje 50% (V) 15.76

Corriente 50% (A) 9.15

Potencia 50% (W) 144.2

Rpm 50% 16652

Thrust 50% (g) 484

Voltaje 100% (V) 15.18

Corriente 100% (A) 30.4

Potencia 100% (W) 461.4

Rpm 100% 26875

Thrust 100% (g) 1247

Pág.244
www.corrosionyproteccion.com Pág.244
Prueba 2

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 4.5

Propelas (blades) 2

Voltaje(S) 4

Voltaje 50% (V) 15.83

Corriente 50% (A) 7.32

Potencia 50% (W) 115.87

Rpm 50% 18121

Thrust 50% (g) 442

Voltaje 100% (V) 15.35

Corriente 100% (A) 25.2

Potencia 100% (W) 386.8

Rpm 100% 29354

Thrust 100% (g) 1134

Prueba 3

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Pág.245
www.corrosionyproteccion.com Pág.245
Prop paso (in) 4

Propelas (blades) 2

Voltaje(S) 4

Voltaje 50% (V) 15.84

Corriente 50% (A) 7.26

Potencia 50% (W) 114.99

Rpm 50% 18433

Thrust 50% (g) 373

Voltaje 100% (V) 15.39

Corriente 100% (A) 23.5

Potencia 100% (W) 361.66

Rpm 100% 30395

Thrust 100% (g) 1045

Prueba 4

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 4

Propelas (blades) 3

Voltaje(S) 4

Pág.246
www.corrosionyproteccion.com Pág.246
Voltaje 50% (V) 15.81

Corriente 50% (A) 8.12

Potencia 50% (W) 128.37

Rpm 50% 17074

Thrust 50% (g) 468

Voltaje 100% (V) 15.27

Corriente 100% (A) 28.63

Potencia 100% (W) 437.18

Rpm 100% 28288

Thrust 100% (g) 1199

Prueba 5

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 6

Prop paso (in) 4

Propelas (blades) 2

Voltaje(S) 4

Voltaje 50% (V) 15.75

Corriente 50% (A) 7.26

Potencia 50% (W) 114.34

Pág.247
www.corrosionyproteccion.com Pág.247
Rpm 50% 15985

Thrust 50% (g) 565

Voltaje 100% (V) 15.16

Corriente 100% (A) 34.25

Potencia 100% (W) 519.23

Rpm 100% 26525

Thrust 100% (g) 1437

Motor Blackout Tiger 2206

Parámetro físico del motor Dimensión

Diámetro estator (mm) 22

Longitud estator (mm) 6

KV (rpm/v) 2350

Prueba 1

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 3

Propelas (blades) 2

Voltaje(S) 2

Pág.248
www.corrosionyproteccion.com Pág.248
Voltaje 50% (V) 7.57

Corriente 50% (A) 2.76

Potencia 50% (W) 20.8

Rpm 50% 13920

Thrust 50% (g) 120

Voltaje 100% (V) 7.43

Corriente 100% (A) 3.56

Potencia 100% (W) 26.4

Rpm 100% 15600

Thrust 100% (g) 182

Prueba 2

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 3

Propelas (blades) 2

Voltaje(S) 3

Voltaje 50% (V) 11.53

Corriente 50% (A) 4.93

Potencia 50% (W) 56.32

Pág.249
www.corrosionyproteccion.com Pág.249
Rpm 50% 19356

Thrust 50% (g) 244

Voltaje 100% (V) 11.41

Corriente 100% (A) 6.61

Potencia 100% (W) 74

Rpm 100% 22879

Thrust 100% (g) 386

Prueba 3

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 3

Propelas (blades) 2

Voltaje(S) 4

Voltaje 50% (V) 15.91

Corriente 50% (A) 7.59

Potencia 50% (W) 120.6

Rpm 50% 25618

Thrust 50% (g) 410

Voltaje 100% (V) 15.76

Pág.250
www.corrosionyproteccion.com Pág.250
Corriente 100% (A) 10.92

Potencia 100% (W) 172

Rpm 100% 30619

Thrust 100% (g) 648

Prueba 4

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 4

Propelas (blades) 3

Voltaje(S) 2

Voltaje 50% (V) 7.51

Corriente 50% (A) 3.61

Potencia 50% (W) 26.81

Rpm 50% 12613

Thrust 50% (g) 150

Voltaje 100% (V) 7.38

Corriente 100% (A) 4.12

Potencia 100% (W) 30.6

Rpm 100% 14662

Pág.251
www.corrosionyproteccion.com Pág.251
Thrust 100% (g) 210

Prueba 5

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 4

Propelas (blades) 3

Voltaje(S) 3

Voltaje 50% (V) 11.26

Corriente 50% (A) 5.81

Potencia 50% (W) 65.42

Rpm 50% 18261

Thrust 50% (g) 269

Voltaje 100% (V) 11.37

Corriente 100% (A) 7.69

Potencia 100% (W) 86.2

Rpm 100% 21632

Thrust 100% (g) 392

Prueba 6

Pág.252
www.corrosionyproteccion.com Pág.252
Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 4

Propelas (blades) 3

Voltaje(S) 4

Voltaje 50% (V) 15.82

Corriente 50% (A) 8.62

Potencia 50% (W) 136.36

Rpm 50% 26191

Thrust 50% (g) 462

Voltaje 100% (V) 15.69

Corriente 100% (A) 12.6

Potencia 100% (W) 183

Rpm 100% 28512

Thrust 100% (g) 865

Prueba 7

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 4.5

Pág.253
www.corrosionyproteccion.com Pág.253
Propelas (blades) 3

Voltaje(S) 2

Voltaje 50% (V) 7.43

Corriente 50% (A) 4.41

Potencia 50% (W) 32.76

Rpm 50% 13121

Thrust 50% (g) 174

Voltaje 100% (V) 7.19

Corriente 100% (A) 6.54

Potencia 100% (W) 47

Rpm 100% 13629

Thrust 100% (g) 232

Prueba 8

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 4.5

Propelas (blades) 3

Voltaje(S) 3

Voltaje 50% (V) 11.26

Pág.254
www.corrosionyproteccion.com Pág.254
Corriente 50% (A) 5.93

Potencia 50% (W) 66.77

Rpm 50% 16251

Thrust 50% (g) 325

Voltaje 100% (V) 11.15

Corriente 100% (A) 9.32

Potencia 100% (W) 92.6

Rpm 100% 18613

Thrust 100% (g) 402

Prueba 9

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 4.5

Propelas (blades) 3

Voltaje(S) 4

Voltaje 50% (V) 15.56

Corriente 50% (A) 6.81

Potencia 50% (W) 105.96

Rpm 50% 20615

Pág.255
www.corrosionyproteccion.com Pág.255
Thrust 50% (g) 485

Voltaje 100% (V) 15.39

Corriente 100% (A) 13.8

Potencia 100% (W) 201

Rpm 100% 22619

Thrust 100% (g) 865

Prueba 10

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 6

Prop paso (in) 4

Propelas (blades) 2

Voltaje(S) 2

Voltaje 50% (V) 7.32

Corriente 50% (A) 5.18

Potencia 50% (W) 37.91

Rpm 50% 10324

Thrust 50% (g) 203

Voltaje 100% (V) 7.26

Corriente 100% (A) 7.62

Pág.256
www.corrosionyproteccion.com Pág.256
Potencia 100% (W) 63.5

Rpm 100% 12649

Thrust 100% (g) 315

Prueba 11

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 6

Prop paso (in) 4

Propelas (blades) 2

Voltaje(S) 3

Voltaje 50% (V) 11.15

Corriente 50% (A) 6.82

Potencia 50% (W) 76

Rpm 50% 13512

Thrust 50% (g) 306

Voltaje 100% (V) 11.02

Corriente 100% (A) 10.1

Potencia 100% (W) 101.6

Rpm 100% 16329

Thrust 100% (g) 529

Pág.257
www.corrosionyproteccion.com Pág.257
Prueba 12

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 6

Prop paso (in) 4

Propelas (blades) 2

Voltaje(S) 4

Voltaje 50% (V) 15.48

Corriente 50% (A) 7.95

Potencia 50% (W) 123

Rpm 50% 15623

Thrust 50% (g) 659

Voltaje 100% (V) 15.26

Corriente 100% (A) 15.92

Potencia 100% (W) 215

Rpm 100% 19985

Thrust 100% (g) 1052

Motor Cobra 2207

Parámetro físico del motor Dimensión

Diámetro estator (mm) 22

Pág.258
www.corrosionyproteccion.com Pág.258
Longitud estator (mm) 7

KV (rpm/v) 2300

Prueba 1

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 4.5

Propelas (blades) 3

Voltaje(S) 4

Voltaje 50% (V) 15.76

Corriente 50% (A) 9.52

Potencia 50% (W) 150.04

Rpm 50% 17052

Thrust 50% (g) 485

Voltaje 100% (V) 15.18

Corriente 100% (A) 34.6

Potencia 100% (W) 525.23

Rpm 100% 28662

Thrust 100% (g) 1333

Prueba 2

Pág.259
www.corrosionyproteccion.com Pág.259
Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 4

Propelas (blades) 2

Voltaje(S) 4

Voltaje 50% (V) 15.84

Corriente 50% (A) 7.1

Potencia 50% (W) 112.46

Rpm 50% 18254

Thrust 50% (g) 344

Voltaje 100% (V) 15.34

Corriente 100% (A) 24.6

Potencia 100% (W) 377.36

Rpm 100% 31523

Thrust 100% (g) 1042

Prueba 3

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 6

Prop paso (in) 4

Pág.260
www.corrosionyproteccion.com Pág.260
Propelas (blades) 2

Voltaje(S) 4

Voltaje 50% (V) 15.8

Corriente 50% (A) 9.25

Potencia 50% (W) 146.15

Rpm 50% 17254

Thrust 50% (g) 552

Voltaje 100% (V) 15.1

Corriente 100% (A) 38.9

Potencia 100% (W) 587.39

Rpm 100% 27662

Thrust 100% (g) 1590

Prueba 4

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 4

Propelas (blades) 4

Voltaje(S) 4

Voltaje 50% (V) 15.76

Pág.261
www.corrosionyproteccion.com Pág.261
Corriente 50% (A) 9.3

Potencia 50% (W) 146.57

Rpm 50% 17125

Thrust 50% (g) 518

Voltaje 100% (V) 15.18

Corriente 100% (A) 37.2

Potencia 100% (W) 564.70

Rpm 100% 28852

Thrust 100% (g) 1390

Prueba 5

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 6

Prop paso (in) 4.5

Propelas (blades) 2

Voltaje(S) 4

Voltaje 50% (V) 15.79

Corriente 50% (A) 11.1

Potencia 50% (W) 175.27

Rpm 50% 16352

Pág.262
www.corrosionyproteccion.com Pág.262
Thrust 50% (g) 619

Voltaje 100% (V) 14.97

Corriente 100% (A) 42.45

Potencia 100% (W) 635.48

Rpm 100% 26455

Thrust 100% (g) 1538

Motor DYS 2208

Parámetro físico del motor Dimensión

Diámetro estator (mm) 22

Longitud estator (mm) 8

KV (rpm/v) 2550

Prueba 1

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 4

Prop paso (in) 4.5

Propelas (blades) 2

Voltaje(S) 4

Voltaje 50% (V) 16.65

Pág.263
www.corrosionyproteccion.com Pág.263
Corriente 50% (A) 4.4

Potencia 50% (W) 73.3

Rpm 50% 22052

Thrust 50% (g) 194

Voltaje 100% (V) 16.53

Corriente 100% (A) 14.6

Potencia 100% (W) 241.34

Rpm 100% 37524

Thrust 100% (g) 632

Prueba 2

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 4.5

Propelas (blades) 2

Voltaje(S) 4

Voltaje 50% (V) 16.52

Corriente 50% (A) 8.2

Potencia 50% (W) 135.5

Rpm 50% 19452

Pág.264
www.corrosionyproteccion.com Pág.264
Thrust 50% (g) 454

Voltaje 100% (V) 16.16

Corriente 100% (A) 27.2

Potencia 100% (W) 439.55

Rpm 100% 31252

Thrust 100% (g) 1184

Prueba 3

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 4

Propelas (blades) 2

Voltaje(S) 4

Voltaje 50% (V) 16.55

Corriente 50% (A) 6.8

Potencia 50% (W) 112.5

Rpm 50% 19435

Thrust 50% (g) 393

Voltaje 100% (V) 16.09

Corriente 100% (A) 26.1

Pág.265
www.corrosionyproteccion.com Pág.265
Potencia 100% (W) 419.95

Rpm 100% 33094

Thrust 100% (g) 1107

Prueba 4

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 4

Prop paso (in) 4.5

Propelas (blades) 3

Voltaje(S) 4

Voltaje 50% (V) 16.58

Corriente 50% (A) 4.8

Potencia 50% (W) 79.6

Rpm 50% 21252

Thrust 50% (g) 237

Voltaje 100% (V) 16.34

Corriente 100% (A) 16.9

Potencia 100% (W) 276.15

Rpm 100% 35254

Thrust 100% (g) 752

Pág.266
www.corrosionyproteccion.com Pág.266
Prueba 5

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 4

Prop paso (in) 4

Propelas (blades) 2

Voltaje(S) 4

Voltaje 50% (V) 16.66

Corriente 50% (A) 6.7

Potencia 50% (W) 111.6

Rpm 50% 21786

Thrust 50% (g) 264

Voltaje 100% (V) 16.36

Corriente 100% (A) 18.6

Potencia 100% (W) 304.30

Rpm 100% 35863

Thrust 100% (g) 766

Motor RCTimer 2210

Parámetro físico del motor Dimensión

Diámetro estator (mm) 22

Pág.267
www.corrosionyproteccion.com Pág.267
Longitud estator (mm) 10

KV (rpm/v) 2400

Prueba 1

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 4.5

Propelas (blades) 3

Voltaje(S) 4

Voltaje 50% (V) 16.47

Corriente 50% (A) 8.3

Potencia 50% (W) 136.70

Rpm 50% 17426

Thrust 50% (g) 474

Voltaje 100% (V) 16.22

Corriente 100% (A) 30.1

Potencia 100% (W) 488.22

Rpm 100% 27685

Thrust 100% (g) 1264

Prueba 2

Pág.268
www.corrosionyproteccion.com Pág.268
Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 4.5

Propelas (blades) 2

Voltaje(S) 4

Voltaje 50% (V) 16.66

Corriente 50% (A) 7.1

Potencia 50% (W) 118.29

Rpm 50% 18596

Thrust 50% (g) 422

Voltaje 100% (V) 16.23

Corriente 100% (A) 24.3

Potencia 100% (W) 394.39

Rpm 100% 30395

Thrust 100% (g) 1141

Prueba 3

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 4

Pág.269
www.corrosionyproteccion.com Pág.269
Propelas (blades) 2

Voltaje(S) 4

Voltaje 50% (V) 16.65

Corriente 50% (A) 6.9

Potencia 50% (W) 114.89

Rpm 50% 18862

Thrust 50% (g) 371

Voltaje 100% (V) 16.26

Corriente 100% (A) 22.9

Potencia 100% (W) 372.35

Rpm 100% 31284

Thrust 100% (g) 1084

Prueba 4

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 4

Propelas (blades) 3

Voltaje(S) 4

Voltaje 50% (V) 16.55

Pág.270
www.corrosionyproteccion.com Pág.270
Corriente 50% (A) 7.2

Potencia 50% (W) 119.16

Rpm 50% 17675

Thrust 50% (g) 449

Voltaje 100% (V) 16.25

Corriente 100% (A) 28.5

Potencia 100% (W) 463.13

Rpm 100% 2866

Thrust 100% (g) 1212

Prueba 5

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 6

Prop paso (in) 4.5

Propelas (blades) 2

Voltaje(S) 4

Voltaje 50% (V) 16.44

Corriente 50% (A) 9.8

Potencia 50% (W) 161.11

Rpm 50% 15625

Pág.271
www.corrosionyproteccion.com Pág.271
Thrust 50% (g) 586

Voltaje 100% (V) 15.95

Corriente 100% (A) 35.2

Potencia 100% (W) 561.44

Rpm 100% 24532

Thrust 100% (g) 1406

Prueba 6

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 5

Prop paso (in) 4

Propelas (blades) 4

Voltaje(S) 4

Voltaje 50% (V) 16.66

Corriente 50% (A) 7.9

Potencia 50% (W) 131.61

Rpm 50% 17045

Thrust 50% (g) 512

Voltaje 100% (V) 16.09

Corriente 100% (A) 28.5

Pág.272
www.corrosionyproteccion.com Pág.272
Potencia 100% (W) 458.57

Rpm 100% 27562

Thrust 100% (g) 1302

Prueba 7

Parámetro de prueba Resultado obtenido en la prueba

Prop diam (in) 6

Prop paso (in) 4

Propelas (blades) 2

Voltaje(S) 4

Voltaje 50% (V) 16.37

Corriente 50% (A) 8.5

Potencia 50% (W) 139.15

Rpm 50% 16346

Thrust 50% (g) 550

Voltaje 100% (V) 15.97

Corriente 100% (A) 32.2

Potencia 100% (W) 514.23

Rpm 100% 25954

Thrust 100% (g) 1481

Pág.273
www.corrosionyproteccion.com Pág.273
Entrenamiento de modelo mediante red neuronal predictiva

Para nuestra propuesta de análisis, se consideró un modelo físico de las variables


utilizadas y medidas durante la experimentación. Sin embargo dada la complejidad
y no linealidad del sistema, se decidió tomar un acercamiento diferente al problema.

En este caso se optó por analizar el sistema utilizando inteligencia artificial, para
predecir los valores esperados con cualquier combinación de propela, motor y
batería.

La red neuronal esta basada en el modelo de pensamiento humano, utilizando


varios sistemas sencillos (Neuronas o perceptrones) en conjunto para resolver un
sistema complejo.

En el caso de la red neuronal artificial los perceptrones funcionan simulando una


neurona real de la siguiente manera.

Imagen del libro Neural Networks and Deep Learning de Michael Nielsen

Esta neurona, toma los valores de entrada X, y los suma y multiplica por pesos
definidos dentro de la neurona individualmente. Al final genera una única salida de
un valor procesado dentro de la neurona, de la siguiente manera en el caso de una
neurorona con función de activación sigmoidiana:

Pág.274
www.corrosionyproteccion.com Pág.274
Mediante la combinación de varios perceptrones en diversas capas se puede
obtener una red capas de separar y predecir diversos problemas mucho más
complejos

La arquitectura de la red esta dada por el número de neuronas en cada capa, y el


número de capas ocultas:

Entrenamiento

Pág.275
www.corrosionyproteccion.com Pág.275
La red neuronal por si sola genera resultados aleatoreos y sin sentido a una entrada
dada. Es por eso que es necesario entrenar a la neurona para reconocer patrones
en el problema que le permitan predecir y resolver otros problemas similares.

A grandes rasgos, el entrenamiento funciona de la siguiente forma. Se le da a la red


una serie de parámetros de entrada. Se observa la salida y se compara con la salida
esperada de los parámetros de entrada. Se retroalimenta a la red con los errores
obtenidos de esta comparación y se vuelve a iniciar el proceso con otro problema
similar.

Dadas suficientes iteraciones de este entrenamiento, la red se adaptará


internamente para cumplir lo mejor posible con todas las soluciones esperadas. De
esta manera la red aprende a resolver el problema dado y mejora en sus soluciones
con forme avanza el entrenamiento.

Por último se le presenta a la red un problema completamente nuevo de


características similares al entrenamiento, y la red tratará de resolverlo.

Arquitectura de red neuronal

En este caso se programó y utilizo una red neuronal con la arquitectura siguiente.

Parámetro de arquitectura Valor utilizado

Entradas 7

Capas ocultas 1

Parámetro de aprendizaje 0.4

Momento 0

Número de salidas 1

Neuronas en la capa oculta 1 3

Neuronas en la capa oculta 2 3

Pág.276
www.corrosionyproteccion.com Pág.276
Rango de pesos iniciales 0.5

Ciclos de entrenamiento 150

Se utilizó un 10% aleatoreo de los valores medidos, como validación al


entrenamiento. El resto de los valores obtenidos en la etapa de experimentación se
utilizó como entrenamiento.

A continuación se muestra el proceso de entrenamiento durante 150 iteraciónes.

Ciclo de Error Error percentil Error Error percentil


entrenamiento cuadrático cuadrático
(entrenamiento) (validación)
medio medio
(entrenamiento) (validación)

1 138978.844 57.84% 86673.961 49.68%

2 137525.547 60.15% 101344.586 53.60%

3 137900.516 60.93% 107960.273 54.93%

4 134427.922 58.62% 93332.609 51.67%

5 136032.453 60.76% 109385.453 55.02%

6 131285.406 57.62% 89328.055 50.61%

7 129475.938 57.66% 90875.859 50.98%

8 129159.063 55.27% 78117.547 47.27%

9 125663.445 57.33% 92382.336 51.16%

10 124797.898 54.05% 74223.383 46.10%

11 120432.055 54.14% 76675.695 47.01%

Pág.277
www.corrosionyproteccion.com Pág.277
12 117403.516 55.24% 86130.328 49.33%

13 114616.078 52.41% 71255.578 45.35%

14 111217.211 53.90% 83913.766 48.38%

15 107686.063 52.97% 81554.172 47.59%

16 102793.492 50.33% 68450.141 44.26%

17 98817.492 49.16% 65321.063 43.20%

18 96684.344 46.77% 55618.375 40.01%

19 93086.438 49.17% 74690.938 44.76%

20 86586.711 45.90% 59224.031 40.65%

21 82463.641 44.19% 53908.992 38.86%

22 78998.500 42.27% 47830.074 36.73%

23 75038.305 42.76% 56056.594 38.36%

24 71258.289 41.51% 53737.301 37.32%

25 67679.227 40.22% 51249.559 36.26%

26 64081.645 38.81% 48395.047 35.01%

27 60671.770 35.95% 37454.609 31.54%

28 57386.758 35.26% 38607.672 31.37%

29 54736.859 34.62% 39133.750 30.97%

30 52268.484 33.83% 39182.488 30.57%

31 49928.699 31.46% 31044.371 27.86%

Pág.278
www.corrosionyproteccion.com Pág.278
32 48292.535 32.44% 39710.676 30.21%

33 45787.328 29.31% 27412.715 25.91%

34 43168.430 28.95% 29331.229 26.11%

35 41671.570 29.15% 33579.949 27.00%

36 40001.238 28.42% 33403.570 26.63%

37 38023.527 27.34% 31214.209 25.48%

38 36021.746 25.93% 27133.785 23.97%

39 34710.672 24.52% 23388.488 22.63%

40 33347.457 23.74% 22318.881 22.01%

41 31607.020 23.57% 23981.418 22.20%

42 30300.020 23.01% 23541.521 21.80%

43 29745.934 23.44% 27164.178 22.49%

44 27847.783 21.86% 22450.879 20.97%

45 26697.443 21.22% 21392.990 20.44%

46 25688.963 20.91% 21607.594 20.25%

47 24649.938 19.88% 18384.379 19.13%

48 23602.367 19.53% 18444.246 18.96%

49 22914.842 18.94% 16988.410 18.30%

50 21803.094 18.88% 18624.717 18.66%

51 20988.572 18.33% 17058.904 18.01%

Pág.279
www.corrosionyproteccion.com Pág.279
52 20506.449 17.68% 15240.589 17.19%

53 19808.930 18.36% 18908.443 18.15%

54 18726.246 17.25% 15635.747 17.09%

55 18163.750 16.72% 14082.682 16.39%

56 17448.219 16.84% 15072.768 16.61%

57 16825.422 16.28% 13677.880 16.02%

58 16381.709 16.41% 14448.237 16.12%

59 16027.204 16.35% 14680.206 16.04%

60 15229.520 15.38% 12150.659 15.09%

61 14776.015 15.41% 12551.995 15.14%

62 14332.977 15.17% 12168.519 14.89%

63 13965.240 15.02% 11930.617 14.68%

64 13481.848 14.31% 10268.221 13.90%

65 13078.980 14.30% 10299.038 13.84%

66 12707.123 14.07% 9782.885 13.53%

67 12554.827 13.43% 8737.223 12.81%

68 12071.399 13.66% 8964.022 12.98%

69 12072.247 12.85% 7998.810 12.14%

70 11812.481 13.85% 9562.186 13.02%

71 11650.912 12.43% 7616.892 11.65%

Pág.280
www.corrosionyproteccion.com Pág.280
72 11036.642 12.54% 7411.626 11.74%

73 10730.096 12.84% 7659.241 11.96%

74 10825.670 13.18% 8388.354 12.20%

75 10393.090 12.74% 7487.948 11.73%

76 10120.027 12.48% 6973.624 11.40%

77 9851.773 12.05% 6239.134 10.84%

78 9661.897 11.98% 6032.995 10.68%

79 9574.270 11.55% 5664.901 10.16%

80 9332.308 11.78% 5660.375 10.35%

81 9320.141 11.23% 5359.853 9.71%

82 9052.441 11.61% 5269.002 10.02%

83 8885.741 11.41% 5032.562 9.77%

84 8757.692 11.14% 4820.216 9.44%

85 8626.695 11.09% 4681.355 9.33%

86 8586.601 11.31% 4701.144 9.48%

87 8393.513 11.02% 4359.980 9.11%

88 8298.633 10.68% 4176.749 8.66%

89 8284.348 10.50% 4246.069 8.37%

90 8380.270 10.35% 4462.649 8.07%

91 7974.460 10.46% 3925.141 8.33%

Pág.281
www.corrosionyproteccion.com Pág.281
92 7874.646 10.48% 3803.783 8.35%

93 7875.559 10.26% 3881.875 7.92%

94 7794.134 10.20% 3834.003 7.82%

95 7635.710 10.32% 3468.697 7.99%

96 7610.542 10.38% 3307.874 7.94%

97 7493.291 10.10% 3316.810 7.54%

98 7760.510 10.05% 3970.906 6.97%

99 7423.482 9.96% 3352.189 7.15%

100 7300.063 10.01% 3081.949 7.33%

101 7322.615 10.13% 2950.801 7.46%

102 7618.994 9.94% 4045.005 6.70%

103 7331.423 9.85% 3512.366 6.59%

104 7266.406 9.82% 3481.091 6.53%

105 7257.720 9.79% 3601.791 6.47%

106 6972.426 9.78% 2743.690 6.74%

107 7240.119 10.05% 2651.871 7.14%

108 6882.573 9.69% 2690.490 6.45%

109 6863.949 9.65% 2760.348 6.18%

110 6860.922 9.62% 2883.574 6.01%

111 6883.311 9.59% 3035.714 6.04%

Pág.282
www.corrosionyproteccion.com Pág.282
112 6917.099 9.57% 3237.283 6.11%

113 6681.679 9.55% 2393.643 5.94%

114 6653.002 9.54% 2273.066 5.93%

115 6722.275 9.48% 2925.790 5.88%

116 6576.699 9.48% 2275.176 5.64%

117 6861.602 9.64% 1901.311 6.05%

118 6689.484 9.41% 3042.888 5.84%

119 6504.833 9.41% 2076.484 5.53%

120 6461.452 9.38% 2186.630 5.47%

121 6484.160 9.40% 1905.838 5.46%

122 6406.010 9.33% 2203.979 5.38%

123 6383.929 9.30% 2273.572 5.40%

124 6357.366 9.29% 2043.054 5.25%

125 6365.472 9.25% 2505.518 5.48%

126 6630.920 9.41% 1658.508 5.50%

127 6444.809 9.31% 1632.165 5.22%

128 6255.114 9.19% 2162.177 5.23%

129 6416.843 9.27% 1639.485 5.21%

130 6211.379 9.16% 2061.433 5.15%

131 6522.314 9.16% 3538.781 5.69%

Pág.283
www.corrosionyproteccion.com Pág.283
132 6367.548 9.21% 1539.942 5.00%

133 6187.697 9.11% 1764.442 4.91%

134 6139.456 9.08% 1866.276 4.96%

135 6123.144 9.06% 1850.587 4.93%

136 6098.156 9.04% 1858.772 4.92%

137 6073.426 9.01% 2066.606 5.00%

138 6158.504 9.03% 1527.067 4.64%

139 6245.015 9.06% 1410.151 4.63%

140 6033.009 8.97% 1753.887 4.79%

141 6006.269 8.93% 2108.065 4.96%

142 6127.335 8.89% 2923.731 5.25%

143 5972.523 8.89% 2117.932 4.92%

144 5991.728 8.90% 1616.671 4.62%

145 5941.261 8.86% 1804.630 4.72%

146 5958.675 8.81% 2413.305 4.97%

147 5951.121 8.84% 1528.709 4.53%

148 6213.457 8.84% 3568.098 5.60%

149 6050.427 8.76% 3030.404 5.13%

150 5872.607 8.75% 2110.981 4.73%

Pág.284
www.corrosionyproteccion.com Pág.284
Las siguientes gráficas muestran como fue reduciendo el error durante el
entrenamiento.

Error cuadrático medio en entrenamiento

Error cuadrático medio en validación

Pág.285
www.corrosionyproteccion.com Pág.285
Como se puede observar, el error se redujo considerablemente a lo largo del
entrenamiento.

Comparación de modelos

Se comparo la red neuronal con otros dos modelos matemáticos ampliamente


utilizados en el análisis de sistemas de propulsión para VANT.

Modelo 1,

Ecuación dinámica de Dickey

Esta ecuación describe en términos de arraste y potencia al sistema de empuje.

Pág.286
www.corrosionyproteccion.com Pág.286
Modelo 2,

Ecuación de Staples

La ecuación de Staples es un poco más complicada ya que parte del análisis teórico
pero agrega diversas constantes empíricas que modifican y ajustan de una mejor
manera el resultado teórico a la escala de VANTs.

Theorical thrust

Final Theorical

Pág.287
www.corrosionyproteccion.com Pág.287
Empirical Thrust

Final Empirical Thrust

Comparación

Primero se realizó una prueba de control para comparación de modelos, con el


motor utilizado en entrenamiento

Motor DYS 2208

Parámetro físico del motor Dimensión

Diámetro estator (mm) 22

Longitud estator (mm) 8

KV (rpm/v) 2550

A continuación se muestran los resultados obtenidos con diferentes combinaciónes


de este motor, tanto en Thrust medido, como para cada uno de los diferentes
modelos. También se incluye el error contra el Thrust medido.

Prop Prop Propel Thrust


Ecuación Ecuación Error%
diam paso as Voltaje Potencia 100% Error% Error%
ANN
(in) (in) (cant) (S) 100% (W) (g) Dickey Dickey Staples Staples ANN

Pág.288
www.corrosionyproteccion.com Pág.288
4 4.5 2 4 241.34 632 1070.11 69.32 724.69 14.67 672.21 6.36

1167.7
5 4.5 2 4 439.55 1184 1851.93 56.41 1097.67 7.29 9 1.37

1134.4
5 4 2 4 419.95 1107 1796.46 62.28 1160.48 4.83 6 2.48

4 4.5 3 4 276.15 752 1170.68 55.68 639.66 14.94 762.81 1.44

4 4 2 4 304.30 766 1248.94 63.05 624.09 18.53 742.24 3.10

Error promedio de cada una de los modelos matemáticos para todas las pruebas.

Modelo Matemático Error promedio en prueba

Ecuación de Dickey 61.35%

Ecuación de Staples 12.05%

Red Neuronal Artificial 2.95%

En este caso se puede observar una clara ventaja de la red neuronal contra los otros
modelos, sin embargo este fue uno de los motores utilizados en el desarrollo y
entrenamiento de la red por lo que es un problema para el cuál la red neuronal ya
está preparada para resolver.

A continuación se realizó una prueba de validación utilizando un nuevo motor que


no se había utilizado en ninguna prueba previa.

Motor LdPower 2206

Parámetro físico del motor Dimensión

Pág.289
www.corrosionyproteccion.com Pág.289
Diámetro estator (mm) 22

Longitud estator (mm) 6

KV (rpm/v) 2200

Prop Prop Thrust


Ecuación Ecuación Error%
diam paso Propelas Potencia 100% Error% Error%
ANN
(in) (in) (blades) Voltaje(S) 100% (W) (g) Dickey Dickey Staples Staples ANN

5 4.5 3 4 534.482 1133 2109.80 86.21 551.30 51.34 1263.27 11.50

5 4.5 2 4 370.99 1082 1653.97 52.86 975.07 9.88 1030.14 4.79

5 4 2 4 335.961 1010 1548.14 53.28 958.41 5.11 970.45 3.92

5 4 3 4 412.0064 1117 1773.73 58.79 847.90 24.09 1123.81 0.61

6 4 2 4 482.294 1344 2224.75 65.53 1223.78 8.94 1316.84 2.02

Modelo Matemático Error promedio en prueba

Ecuación de Dickey 63.34%

Ecuación de Staples 19.87%

Red Neuronal Artificial 4.57%

En este caso se puede ver que la red neuronal tuvo un error promedio ligeramente
mayor, sin embargo en comparación a los otros modelos analizados, la ventaja
competitiva que ofrece la red neuronal artificial, es muy amplia.

Pág.290
www.corrosionyproteccion.com Pág.290
Conclusión

La red neuronal artificial planteada cumple de una mucho mejor manera con los
resultados prácticos de un análisis del sistema de propulsión para los VANT que
otros modelos matemáticos disponibles.

Si bien siempre será mucho más preciso el utilizar mediciones de los sistemas de
propulsión previo a un vuelo, la red neuronal artificial planteada demostró que puede
ser utilizada sin ningún problema como análisis de un sistema de propulsión previo
a la selección de componentes. Esta ventaja nos permite analizar varios sistemas
de manera mucho más precisa, sin la necesidad de comprar los componentes.

Diseño del PILOTO AUTOMÁTICO.

Un VANT, es una aeronave 100% autónoma con una amplia variedad de Commented [AILVA1]: En estricta teoría es automática
no autónoma ya que no toma decisiones por si mismo
tecnologías para cumplir una misión, la palabra autónoma se le da es gracias a un fuera de su sistema de control.

piloto automático que absorbe información de múltiples sensores. En éste caso se


utilizó el PIXHAWK desarrollado por la empresa 3DR.

1. Pixhawk

Funcionamiento del piloto automático

Pág.291
www.corrosionyproteccion.com Pág.291
Pixhawk es una plataforma “Opensource” , diseñada para multiples
configuraciones desde un cuadricóptero hasta una aeronave de ala fija, con la
ayuda de una serie de sensores de posición tales como giroscopio, acelerómetro
, magnetómetro , barómetro y GPS se puede corregir errores en pleno vuelo de
manera instantánea. Commented [AILVA2]: Hay que reestructurar este
párrafo, no se entiende bien.

Una aeronave integrada con pixhawk tiene la oportunidad de mejorar sus Commented [AILVA3]: Y en general cualquier
estabilizador de vuelo
características de vuelo, sin importar las condiciones externas. Por ejemplo, al
impactar ráfagas de viento con la aeronave, éstas crean un desplazamiento en la
ruta, inclinación y dirección del avión. Es en esta situación donde entra el piloto
automático que procesa los diferentes datos y crea una acción para corregir el
ángulo de inclinación, la altitud y las coordenadas de rutas.

Los sensores que conforman Pixhawk y sus funciones son:

 Giroscopio:. Commented [AILVA4]: No, el giroscopio mide la


velocidad angular que se utiliza, en el caso del código
APM, como parte del filtro complementario/Kalman,
junto con el acelerómetro, para obtener los ángulos de
inclinación. Pero también se utiliza como
retroalimentación directa en el primer PID del APM y
como retroalimentación derivativa del segundo PID
externo.
También es de 3 ejes

2. Giroscopio
 Acelerómetro 3 ejes: Este sensor mide la aceleración estática (en el eje
vertical, como la gravedad) y la aceleración dinámica (en el eje horizontal,
Commented [AILVA5]: Y también como dije arriba, se
en un plano XY).
utiliza junto con el giroscopio para calcular el ángulo de
inclinación.

Pág.292
www.corrosionyproteccion.com Pág.292
3. Acelerómetro

 Magnetómetro: Este sensor mide la intensidad y la dirección de un campo Commented [AILVA6]: Son Gauss no Newtons

magnético. En los UAV (tanto aéreos como terrestres y marítimos), se utilizan


para poder orientar el aparato respecto a los puntos cardinales (tomando
como referencia el polo Norte) a modo de brújula digital. Commented [AILVA7]: También es de 3 ejes, se ve
claramente cuando lo calibras, por lo que es más que
una simple brújula. Está bien considerarlo brújula pero
para que sepas que es mejor.

Pág.293
www.corrosionyproteccion.com Pág.293
4. Magnetómetro

Los sensores mencionados previamente vienen embebidos en el hardware con el


motivo de minimizar conexiones, pixhawk tiene como objetivo que su plataforma
sea fácil para los usuarios. Commented [AILVA8]: Fácil de utilizar, o sencillo para
los usuarios

Enfocando el piloto automático a nuestra aeronave, debemos seguir al pie de la


letra la configuración que debe de llevar Commented [AILVA9]: En tercera persona sería mejor.
Explica más a detalle en texto las conexiones si puedes.

5. Diagrama de conexiones

Pág.294
www.corrosionyproteccion.com Pág.294
6. Pines de entrada

Pixhawk cuenta con 14 entradas con conectores tipo molex, el cual podemos
conectar modulos como:

Modulo Gps

7. GPS/COMPASS

Pág.295
www.corrosionyproteccion.com Pág.295
El módulo GPS indica por medio de satélites la ubicación de la aeronave, tiene
como características. Commented [AILVA10]: Estaría bien detallar esto un
poco más

 Alta precisión digital barómetro (10 cm de resolución de altitud).


 3 ejes brújula digital.
 Autodiagnósticos continuos y detección de fallos.

Fuente de alimentación

Parámetro Mínimo Típico Máximo Unidades

Tensión de V
4.5 5.0 5.5
alimentación

Pines de Entrada

GPS lleva un conector output molex dentro del módulo, el cual es conectado a
dos conectores input molex, que es I2C Y GPS.

GPS port

Pin Señal Voltaje


1 (Rojo) VCC +5V

2 (Negro) TX (Salida) +3.3V

3 (Negro) RX (Entrada) +3.3V

4 (Negro) CAN2 TX +3.3V

5 (Negro) CAN2 RX +3.3V

6 (Negro) GND GND

Pág.296
www.corrosionyproteccion.com Pág.296
I2C

Pin Señal Voltaje


1 (Rojo) VCC +5V

2 (Negro) SCL +3.3 (pullups)

3 (Negro) SDA +3.3 (pullups)

4 (Negro) GND GND

Modulo de alimentacion PixHawk PX4

Pág.297
www.corrosionyproteccion.com Pág.297
8. Módulo de batería.

El PixHawk PX4 requiere de una alimentación de 5volts estables.


Para ello es necesario un cable en T que va directo a la dando el voltaje necesario
para el control de velocidad y motores, agregando además una extensión de
Commented [AILVA11]: No entendí esta parte, el
5volts regulada y monitoreada que alimenta al PX4. módulo de batería es no solamente un regulador, sino
también filtro y sensor de voltaje y corriente.

Buzzer and Safety Switch (Pixhawk)

9. BUZZER/ SAFETY SWITCH

Pixhawk cuenta con algunas medidas de seguridad para evitar accidentes, en


este caso el Swtich de seguridad nos ayuda para deshabilitar temporalmente el
motor y servomotores de la aeronave . El buzzer nos avisa antes de hacer una
acción, como por ejemplo el armadado con el switch, batería baja, error al armar
etc…

Telemetria

Contamos con módulos de radiofrecuencia de 915mhz el cual podemos lograr un


monitoreo en tiempo real de todos los datos de vuelo, asignación de cualquier

Pág.298
www.corrosionyproteccion.com Pág.298
acción desde el software Mission Planner , cada módulo cuenta con conexión
micro usb que lo hace compatible con Windows y dispositivos Android.

10. Módulo de telemetría 3DR.

Al igual tienen un conector molex de 6 pines.

11. Pines de módulo de telemetría

La antena predeterminada es omnidireccional esto quiere decir la forma en


la que la señal se direcciona.

Pág.299
www.corrosionyproteccion.com Pág.299
12. Antena omnidireccional

El rango de estos módulos está limitado a los 600 metros por ser de 100mw de
potencia y por la antena de bajos db, al ser código abierto hace que sea más
sencillo sustituir por módulos con una mayor potencia para un mayor rango.

Pixhawk cuenta con dos pines de telemetría que se pueden habilitar desde el
software para la conexión de otros módulos los cuales utilicen los datos de vuelo
como el módulo OSD.

Software

Mission planner es el software con el cual podemos procesar datos de la aeronave


con el ordenador, al igual Mission Planner desarrolla firmware para las diferentes
plataformas, cuenta con la opción de modificar múltiples parámetros
dependiendo el modelo de cada aeronave, la configuración de los sensores,
configuración de servos extra como por ejemplo gimbal, parachute y pinzas,
joystick etc…

Ensamble en la aeronave.

La aeronave que se utilizara es un Ranger, es una plataforma hecha con


material EPO, tiene una envergadura de 1980mm,longitud total de 1170mm
Commented [AILVA12]: Pon un rango de cuanto
el cual hace que pueda llevar una gran carga en vuelo.

Pág.300
www.corrosionyproteccion.com Pág.300
13. Vista trasera

14. Vista frontal

Pág.301
www.corrosionyproteccion.com Pág.301
15. Interior de la aeronave

Para dicho montaje se identificó el centro de gravedad del avión, se colocó el


pixhawk con cinta anti vibraciones en los 4 extremos del controlador,. La
orientación del controlador y el avión debe de ser la misma. Se instaló en el fuselaje
el switch de seguridad, buzzer, módulo de batería, telemetría 915 mhz y GPS.

16. Orientacion de pixhawk.

Pág.302
www.corrosionyproteccion.com Pág.302
17. Colocación de GPS.

Observación

 El GPS debe estar colocado en un área en la cual no intervenga al


desarmar el avión, es decir el GPS no debe de moverse por ninguna razón
y debe tener la misma orientación que el pixhawk. En la plataforma
Ranger no pudimos encontrar algún área la cual pudiera tener la
orientación correcta, por lo que creamos una base la cual va atornillada
en la parte superior del fuselaje, la base fue hecha para no tenerla que
mover en ningún momento, sin importar si desarmamos el avión o si
Commented [AILVA13]: En realidad el problema no es
necesitamos modificar algo en el interior. el GPS, si el GPS se mueve no pasa nada ya que la
 El switch de seguridad se colocó o instaló en un lugar alejado de la hélice tolerancia que tiene es mucho mayor a cualquier
movimiento sobre el avión. Lo importante es el
para evitar algún accidente. magnetómetro que tiene una tolerancia mucho menor
y cualquier desviación de menos de un grado lo puede
des calibrar. Para el GPS lo que sí importa es que no se
encuentre cubierto, es decir que no haya nada encima,
Teniendo los modulos conectados, se instaló el firmware de ala fija de forma tal que pueda adquirir la mayor cantidad de
satélites.
“Arduplane v3.6.0” que es la que tiene menos errores y es la más actual,
existen dos formas de actualizar el firmware vía telemetría que usa un
serial de 5700 o por el puerto micro-usb con un serial de 115200, al instalar
tuvimos dificultad por los módulos de telemetría por el puerto serial, la
Commented [AILVA14]: No se puede actualizar
mejor opción es puerto micro-usb que no da ningún problema. firmware por telemetría solo por usb. Telemetría
solamente sirve para calibrar, modificar parámetros y
cargar misiones.

Pág.303
www.corrosionyproteccion.com Pág.303
SENSORES ( detección de fugas: (Juan Carlos ) ( cámara video, Gimbals )
Diagramas de conexiones etc (Gustavo)

ELECTRÓNICA DEL AVIÓN ( matriz experimental de baterías ) ( matriz experimental


de velocidad óptima ) (Gustavo). ( matriz experimental de relación óptima
peso/pila)

ANTENAS ( matriz experimental de antenas ) diseño de tracker.

PATENTE….. Metodología de optimización de compontes de impulso de vehículos


no tripulados.

PERMISOS DE VUELO
Para poder utilizar de manera comercial los VANT en operaciones regulares de
monitoreo, es necesario contar con los permisos y seguros necesarios. Durante este
proyecto se trabajo de igual manera en la obtención de estos permisos. Como
parte de esta obtención de permisos se ingresaron los manuales de operación,
bitácoras de vuelo, así como todos los documentos administrativos de la compra
de los VANT y el equipo a utilizar.

MANUALES DE OPERACIÓN
procedimientos de vuelo (fotos)

Antes de cada misión de vuelo es necesario estar seguro de que todo esté en
orden, con el propósito de evitar algún riego innecesario, accidentes etc… se debe
de llevar acabo un procedimiento el cual estipula que si no cumple con al menos
uno, dicho aeronave no podrá despegar sin excepción alguna.

Pág.304
www.corrosionyproteccion.com Pág.304
I. Todo el personal deberá contar con las medidas de seguridad personal:
 Overol.
 Botas.
 Casco.
 Lentes obscuros y lentes transparentes.
 Chaleco reflejante.
 Guantes.

Observación: Cualquier persona que no tenga los aditamentos antes mencionados


no podrá estar en el aérea de armado y despegue, todo el personal debe de llevar
credenciales.

Pág.305
www.corrosionyproteccion.com Pág.305
II. Verificar que el fuselaje no tenga algún daño, al igual revisar
cuidadosamente el área del timón, elevador, alerones. En caso de posible
fractura en dichas partes se colocara bisagras para evitar un
desprendimiento.

III. Verificar tornillería de cada servomotor del avión, conexiones entre viga y
partes movibles. Colocar seguro de manguera dentro de las vigas.

IV. Verificar baterías que se usaran para el vuelo tengan una carga completa,
que estén balanceadas(todas sus celdas con el mismo voltaje) y añadir a la
bitácora:

Pág.306
www.corrosionyproteccion.com Pág.306
 Numero de batería.

 Voltaje de batería.

 Estado físico de la batería.

Observación: para realizar una misión la batería deberá tener una carga completa
si no podrá ser usada al igual que si la batería muestra rastros que está en mal
estado no podrá ser usada hasta que sea revisada.

Pág.307
www.corrosionyproteccion.com Pág.307
V. Como siguiente punto a realizar paso es realizar el armado completo del
avión, es decir:

 Colocación de alas.

 Realizar conexiones de gimbal y alerones (sin ser alimentas).

Pág.308
www.corrosionyproteccion.com Pág.308
 Colocación de batería. (la batería debe de estar bien sujetada).

 Verificar que el avión muestre un centro de gravedad totalmente en


cero grados.

Pág.309
www.corrosionyproteccion.com Pág.309
 Prender el Control junto con módulo TBS.

 Alimentar el controlador de vuelo.

 Establecer conexión entre el ordenador y la aeronave.

Pág.310
www.corrosionyproteccion.com Pág.310
 Identificar satélites GPS y verificar que el GPS no muestre ningún error
dentro de sus parámetros.

 Conectar gimbal (Soporte de cámara)

Pág.311
www.corrosionyproteccion.com Pág.311
 Liberar botón de seguridad para habilitar el movimiento de
servomotores, para verificar que todos los mandos estén correcto
junto con el control RC.

Pág.312
www.corrosionyproteccion.com Pág.312
 Se volverá a verificar la dirección de los servomotores con la ayuda
del modo FBW el cual se inclinara el avión en diferentes posiciones, el
piloto deberá identificar que la acción que está realizando el
controlador de vuelo sea el correcto para que la aeronave se pueda
enderezar.

Como se muestra en la imagen el avión está siendo inclinado por lo que el avión
crea acciones en el alerón para que el avión gire hacia el lado contrario y se pueda
corregir, si el avión no presenta las acciones indicadas, se debe de corregir desde
el software misión planner.

Pág.313
www.corrosionyproteccion.com Pág.313
Observación: La configuración de los mandos dentro del RC puede variar a la
calibración hecha en misión planner como “calibración de radio”.

Pág.314
www.corrosionyproteccion.com Pág.314
 Se montara la hélice verificando que sea la adecuada, además de
que la posición sea la correcta, se habilitara el motor de la aeronave
desde el ordenador para revisar que no tenga vibraciones.

 Se volverá a deshabilitar el motor con la ayuda del botón desarmado


que se encuentra en misión planner.

Pág.315
www.corrosionyproteccion.com Pág.315
 Se alimentara el transmisor de video junto con la cámara con una
batería diferente de la del controlador.

 Identificar la sincronización de FPV entre la aeronave y el control en


tierra.

Pág.316
www.corrosionyproteccion.com Pág.316
 Se verificara que el switch de cámaras esté funcionando, la calidad
de video sea buena, y el módulo OSD este transmitiendo en el monitor
los datos necesarios para la misión. En el monitor debemos poder ver:
 Nivel de batería.
 Latitud y altitud.
 Distancia a casa.
 Velocidad.
 Orientación.
 Angulo de inclinación.
 Modo de vuelo.

Pág.317
www.corrosionyproteccion.com Pág.317
VI. Se deshabilitara servmotores y motor de la aeronave con la ayuda del
botón de seguridad.(Como se muestra en la imagen anterior).

VII. Desde el ordenador se diseñara la ruta de la misión teniendo en cuenta


distancia en kilómetros (limitada a 10kilometros), verificar altitud de cada
parte de la ruta evitando cambios de relieve. Está completamente
prohibido volar sobre aeropuertos, penitenciarias o áreas que tengan un
acceso restringido si por alguna razón la ruta será dividida evitando dichas
áreas a una distancia de 2 km.

Pág.318
www.corrosionyproteccion.com Pág.318
VIII. Procedimientos de despegue

Teniendo ya el avión listo es necesario delimitar el área de despegue con


banderillas en 4 extremos, es necesario una manga de viento a un extremo del área
delimitada con el objetivo de proporcionar al piloto la dirección de despegue, la
aeronave necesita una distancia libre de obstáculos de entre 10 y 25 metros,
dependiendo del terreno se definirá el despegue, contamos con tres formas
diferentes.

Pág.319
www.corrosionyproteccion.com Pág.319
 Despegue con tren de aterrizaje, este método dependerá de la superficie
del terreno, las condiciones óptimas es en pavimento.

Pág.320
www.corrosionyproteccion.com Pág.320
 Despegue con bungie, método el cual la aeronave es lanzada con una
liga elástica de 2 metros de largo sin esfuerzo y de hasta 3.5 metros con
esfuerzo, es necesario que el avión cumplan con el peso máximo de carga
es decir, el bungie está diseñado para aguantar un peso de hasta 4.5 kilos.
El peso de la aeronave depende de la misión, si la misión abarca
monitoreo debería llevar las cámaras óptimas para dicha misión, si no son
necesario serán removidas para quitar peso, depende mucho de la
batería, si necesitamos que la autonomía del avión sea mayor es necesario
una batería con una mayor capacidad y por lo tanto con un peso mayor,
Si el peso sobrepasa 4.5 kilos el avión no podrá usar el bungie por motivos
de seguridad.

Pág.321
www.corrosionyproteccion.com Pág.321
 Despegue con asistente de piloto, es decir el asistente deberá de aventar
la aeronave con el esfuerzo necesario, el asistente debe de usar casco y
guantes en todo momento para evitar algún contacto accidentalmente
con la hélice. Este método es el más usado por la mínima distancia que
necesita para el despegue.

Pág.322
www.corrosionyproteccion.com Pág.322
Antes de cualquier despegue se debe de notificar a toda persona cerca.

IX. Procedimientos de aterrizaje

Al igual que en despegue el área del aterrizaje de la aeronave deberá estar


delimitada por 4 banderillas en sus extremos, la orientación del área deberá
ser proporcionada por una manga de viento, todo aterrizaje deberá ser en
contra del viento, y se deberá notificar a todo el personal cerca, todas el
personal deberá de contar con los aditamentos se seguridad como casco
guantes y chaleco reflejante. En el aterrizaje contamos con dos formas de
aterrizaje:

 Aterrizaje directo, es decir si se cuenta con área libre de obstáculos


con una distancia de entre 20 y 30 metros se podrá lograr un aterrizaje
eficiente con el tren de aterrizaje o de panza.

Pág.323
www.corrosionyproteccion.com Pág.323
 Aterrizaje con red, trata de una red diseñada para soportar un peso
de 80 kilos recomendados y 100 kilos para tener una fractura ,
hecha de Nylon reforzado, con una longitud de 5 metros es decir 1.5
metros extras de cada lado comparado con la envergadura del
avión, con una altura de 3 metros, dos soportes a los extremos
empotrados al suelo, cada soporte cuenta con el exterior hule
espuma para evitar daños al avión, la aeronave cuenta con un
gancho en la parte frontal, el objetivo de dicha red es dar la
oportunidad de un aterrizaje con una distancia libre de obstáculos
de 5 metros, consta que el avión vuele directo a la red , al estrellarse
con la red la aeronave disminuirá su velocidad a 0, la red disminuirá
el golpe, evitando daños, el gancho atrapara la red evitando que el
avión caiga al suelo.

X. Procedimiento de apagado de la aeronave.


Al ya estar en el suelo,
 Con el botón de seguridad se deshabilitara los mandos del control
dentro del avión para evitar accidentes.
 El avión debe de ser revisado y se debe generar un reporte, es
decir se identificarán daños en el fuselaje, servomotores, estado de
la hélice, revisar que la temperatura del motor no sea mayor al igual
que el de speed control.

Pág.324
www.corrosionyproteccion.com Pág.324
 Se desconecta la alimentación de todo el avión al igual que el del
fpv.

 La pila se debe de quitar en el avión, y se debe de colocar dentro


de la bolsa protectora hasta que la batería se en frie y deberá de
estar alejada de otras

Pág.325
www.corrosionyproteccion.com Pág.325
 Después de 20 min se debe de medir la batería y colocar dentro de
la bitácora el tiempo de uso el voltaje inicial, voltaje final, y número
de batería.

Pág.326
www.corrosionyproteccion.com Pág.326
XI. Tipos de vuelo

Pixhawk cuenta con múltiples tipos de vuelo, los cuales tienen como objetivo
mejor la técnica de vuelo, los modos de vuelos utilizados dentro de nuestro
proyecto son

 RTL
 FBWA
 LOITER
 AUTO
 MANUAL
 ESTABILIZADOR
 CIRCLE

RTL que significa “Return to lunch” esta acción es una de las más importantes, al
estar en este modo de vuelo pixhawk dará la orden de regresar al punto Home de

Pág.327
www.corrosionyproteccion.com Pág.327
forma totalmente autónoma, la aeronave al ser encendida identifica gracias al
GPS las coordenadas y son reconocidas como “home” es decir el avión guardara
las coordenadas de donde fue prendido para que si la persona a cargo llega a
perder de vista el avión automáticamente identifique, RTL es utilizado como modo
de seguridad, una gran parte de que un avión caiga es la perdida de señal del
control, pixhawk te da la opción de configurar que no importe el modo de vuelo si
la señal del control se pierde automáticamente el avión regresar, nosotros como
manejamos diferentes altitudes programamos que al entrar en modo RTL la altitud
será de entre 200 y 400 metros de la altitud del terreno es decir no parejo si no va
a variar sus altitudes en el regreso, al llegar al punto “home” el avión empezara a
dar vueltas a 200 metros de altura hasta que se le indique otra misión u otro modo
de vuelo.

FBWA obtendrá un 60% de los mandos del avión, el usuario no podrá hacer movimientos
rápidos ni vueltas tan cerradas, pixhawk ayudara al usuario a estabilizar al avión con el
motivo de que el avión mantenga un vuelo controlado, estable en todo momento. Este
modo de vuelo es favorable en los despegues con bungie y cuando el operador lo avienta,
normalmente el avión puede llegar a tener más entrada de aire de un lado que del otro
haciendo que el avión tenga un despegue demasiado brusco o bajando mucha altura,
con FBWA pixhawk determinara si se necesitan hacer movimientos para estabiliazar el avión
en cuesion de microsegundos.

Loiter

Pág.328
www.corrosionyproteccion.com Pág.328
Es algo similar a RTL, da círculos en el momento en que le tu pones este modo sin importar
que este alejado de punto “HOME” esto con la finalidad de que si estamos haciendo
monitoreo y llega a ver algo extraño al activar este modo el avión dará vueltas en ese
punto para ver más detalladamente el área,

Auto

Mission planner te da la opción de generar un plan de vuelo desde tu ordenador ,

Como podemos observar en la imagen, pixhawk nos proporciona imágenes e información


actualizada para que nosotros podamos realizar nuestro plan de vuelo, al igual nos da
coordenadas de los puntos señalados en el mapa, altitud de dicha coordenada lo cual es
de mucha ayuda ya que puedes ver si de un momento a otro el relieve llega a cambiar,
este modo tiene no tiene un limite de puntos de referencia, nos da la opción de poder
seleccionar varios tipos de modos como loiter o alguna otra acción como paracaídas,
aterrizaje, despegue,

Pág.329
www.corrosionyproteccion.com Pág.329
Los puntos que podemos encontrar en cada punto seleccionado son las coordenadas
(latitud, longitud, altitud, grados, ángulo, distancia entre ese punto y el anterior, distancia
entre ese punto y “home”).

En un vuelo es recomendado no tener vueltas muy cerradas por lo que en Mission planner
puedes configurar el diámetro de cada punto seleccionado para que el avión tenga la
opcion de que si los puntos están muy juntos pueda tener mayor rango para dar la vuelta
o si es todo lo contrario y se necesitan vueltas muy cerradas podamos hacer que el avión
pueda dar vuelta en cuestión de 1 o 2 metros.

Pág.330
www.corrosionyproteccion.com Pág.330
Manual

El modo manual deja que el operador tenga totalmente el control de la aeronave, siempre
es bueno que el avión tenga cargado este modo de vuelo ya que en el momento en el
que el pixhawk pueda a llegar tener un error o este ejecutando un plan de vuelo mal
diseñado como una acción de un cambio de altitud con un Angulo descendiente
elevado el operador pueda tomar el control y darle alguna otra orden como RTL.

Estabilizador

Modo muy similar a FBWA la diferencia es el pixhawk tiene un menor porcentaje de control,
el operador tiene todo el rango de movimientos, es decir el avión podrá hacer una vuelta
muy cerrada y lo que buscara el controlador es que al salir de la vuelta el avión mantenga
una orientación y Angulo equilibrado.

Circle

Pág.331
www.corrosionyproteccion.com Pág.331
Modo en el que es similar a Loiter la diferencia es que circle usa los sensores internos del
pixhawk y no el GPS, como lo hace loiter, si el gps sufre de algún error circle podrá dar
vueltas gracias a su giroscopio.

3.-) tipos de vuelo. (pixhawk) (Instrucciones e imágenes)

4.-) procedimiento de aterrizaje (avión).

5.-) procedimiento de apagado (avión).

6.) baterías (características técnicas) procedimientos de seguridad (fuego)

DETECCIÓN DE FUGAS
SELECCIÓN DE TECNOLOGÍAS

Para la detección de fugas se exploró utilizar Cámaras Infrarojas.

Los diferentes espectros que se pueden detectar mediante sensores que se pueden
montar sobre el VANT son:

UV

10nm a 400 nm

Visible

de 400nm a 700nm

Pág.332
www.corrosionyproteccion.com Pág.332
Infrarojo

de 700 nm a 1 mm

de 700 nm a 1000000nm

Microonda

de 1mm a 1m

Radio

1m+

Además es importante conocer la emisión de cuerpos obscuros (Blackbody


Emision) tanto del espectro visible como infrarojo.

Visible Blackbody Emmision

Azul (10000K)

Blanco (6000K)

Rojo (1000K)

IR Subdiv

NIR(nearIR) 750nm a 1400nm (vision nocturna)(1797C a 3591C)

SWIR(ShortWave) 1400nm a 3000nm (telecom) (693C a 1797C)

MWIR(MidWave) 3000nm a 8000nm (Thermal Hot 89C a 690C )

LWIR(LongWave) 8000nm a 15000nm (Thermal -80C a 89C)

Pág.333
www.corrosionyproteccion.com Pág.333
FIR(farIR) 15000nm a 1000000nm (LaserIR Cold -270C a -80C)

Con base en la emisión de cuerpo obsucro y el análisis del espectro


electromagnético, se compararon diferentes soluciónes comerciales de cámaras
capaces de ser montadas sobre el VANT.

Sensor ProSpecTIR

Visible, NIR and SWIR from 390nm to 2450nm

FLIR Vue Pro

MWIR to LWIR from 7500nm to 13500nm

Sequoia

Visible(Green,Red), RedEdge, NIR from 530nm to 810nm

Separados en 4, Green(530-570nm), Red(640-680nm), REdge (730-740nm), NIR (770-


810nm)

Flir TauSWIR

NIR y SWIR de 900nm a 1700nm

Tetracam ADC (agricultural digital camera)

Visible y NIR, 520nm a 920nm

Pág.334
www.corrosionyproteccion.com Pág.334
Tetracam RGB+3

Visible, RedEdge, NIR. 4 bandas Visible, 680nm,700nm, 800nm

SensorSinc UTC Aerospace Sys

NIR and SWIR from 700nm to 1700nm

FLIR GasFinder

MWIR from 3200nm to 3400nm

CloudCap TASE500

SWIR and MWIR 900nm to 1700nm and 3000nm to 5000nm

---------------------------------------------------------------

Agriculture

NDVI= (NIR-Red)/(NIR+Red) Normalized Diff Vegetation index

Pág.335
www.corrosionyproteccion.com Pág.335
ESTRATEGIA COMERCIAL.
ANÁLISIS DE MERCADO Jordi.

IMAGEN CORPORATIVA Diego/ Karina / Andrea / Jordi

VIDEOS, PÁGINAS, REVISTA ETC. Andres

MP’s Corrosion Innovation of the Year Awards

Pág.336
www.corrosionyproteccion.com Pág.336
Nomination Form for 2017
E-mail this completed form to: MPInnovationAwards@nace.org

Deadline for submission: Monday, October 31, 2016

To qualify for consideration, the innovation must have been in some sort of development
phase on or after January 1, 2012; the technology must be feasible; and nominations must
be submitted on this official nomination form. The nomination process opens on July 1,
2016 and the nomination form must be submitted by e-mail to
MPInnovationAwards@nace.org on or before Monday, October 31, 2016 at 11:59 p.m.
Eastern time. There is no fee to submit a nomination.

Please limit the summary description to 300 words or less and one photo, and limit the
full description to no more than 10 pages.

Each innovation will be rated by a panel of leading corrosion experts using a numerical
scoring system based on the rating criteria listed below. The highest-rated innovations will
receive the awards.

Rating criteria

 Does the description provided adequately describe the innovation—how it works,


its purpose, and what makes it innovative?

 Does the innovation improve an existing corrosion-control solution or provide a


new solution where none previously existed?

 Has the nominator sufficiently demonstrated that the innovation works as


described, either by providing laboratory or field test results?

 Can the innovation be incorporated into existing corrosion prevention and control
activities?

 Does the innovation benefit the corrosion-control industry?

For questions about the awards, please contact MP Editor Kathy Riggs Larsen at
MPInnovationAwards@nace.org.

Contact Information:

Name of person Aldric Ian López Vergara Anaya


submitting nomination:

Pág.337
www.corrosionyproteccion.com Pág.337
Job title: Drone Engineer

Organization: Corrosión y Protección

Mailing Address: Mexico City, DF, 03100, Mexico


City, State, Postal Code
Country
Telephone: +52 1 55 2263 8661
(If outside the United
States and Canada, please
include country code)

E-mail: aldric.lopez@corrosionyproteccion.com

Is this the primary contact Yes


for the Award program?

Nominee(s)

Title of Innovation: UAV Cathodic Protection Monitoring System

Nominee’s name: Jorge Joaquin Cantó Ibañez

Job title: CEO

Organization: Corrosión y Protección

Mailing Address:
Street, City, State, Postal
Code, Country

Telephone: +52 1 55 4522 0834


(If outside the United
States and Canada, please
include country code)
E-mail: canto@corrosionyproteccion.com

Is this the primary contact Yes


for the Award program?

Additional Aldric Ian López Vergara Anaya


Nominee’s name:

Pág.338
www.corrosionyproteccion.com Pág.338
Job title: Drone Engineer

Organization: Corrosión y Protección

Mailing Address: Mexico City, DF, 03100, Mexico

Telephone: +52 1 55 2263 8661

E-mail: aldric.lopez@corrosionyproteccion.com

Is this the primary contact Yes


for the Award program?

Additional Lorenzo Martínez Martínez de la Escalera


Nominee’s name:

Job title: Administration Council Vice-president

Organization: Corrosión y Protección

Mailing Address: Jr Hegel 132, Colonia Polanco, Delegación Miguel Hidalgo, CP.
11490.
Telephone:

E-mail: lmm@corrosionyproteccion.com.mx

Is this the primary contact No


for the Award program?

Additional Miguel Angel Arizmendi Villaseñor


Nominee’s name:

Job title: Drone Trainee

Organization: Corrosion y Protection

Mailing Address: Calle 3 #114-A ampliacion Vista Hermosa

Pág.339
www.corrosionyproteccion.com Pág.339
Telephone: 7772142656

E-mail: miguelarizvilla@gmail.com

Is this the primary contact No


for the Award program?

Additional Carlos Felipe Escalante Amezquita


Nominee’s name:
Job title: Embedded System Engineer

Organization: Corrosion y Proteccion

Mailing Address: Cedros 8B Santa Maria Tomatlan, Cd de Mexico

Telephone: 6672317796

E-mail: Carlosf.escalante@hotmail.com

Is this the primary contact no


for the Award program?

NOTE: The above contact information will not be made public except the nominees’ names, job
titles, and organizations. However, all information submitted on the following pages will be
submitted to the panel of corrosion experts and posted on the MP Corrosion Innovtion of the
Year Awards Web site.

Pág.340
www.corrosionyproteccion.com Pág.340
2017 Award Nomination
Title of Innovation:
UAV Cathodic Protection Monitoring System

Nominee(s)
Corrosión y Protección

Category:
(select one below)

Coatings and Linings Instrumentation


Cathodic Protection Testing
Materials Design Integrity Assessment
Chemical Treatment Other—fill in

Dates of Innovation Development:


January 2016 – October 2016

Web site: www.corrosionyproteccion.com/


1.
Summary Description:
The innovation consists of an instrumentation system, which allows Unmanned
Aerial Vehicles (UAV), to not only provide aerial video and thermal supervision of
the pipeline, but also cathodic protection measurements. The innovation arises
from the need of a system capable of efficient cathodic protection monitoring
system, specifically in our geographical and social environment.

Pág.341
www.corrosionyproteccion.com Pág.341
Full Description:
(Please provide complete answers to the questions below. Graphs, charts, and photos can
be inserted to support the answers.)

1. What is the innovation?


It’s a complete instrumentation system that makes it possible for unmanned aerial vehicles
(UAVs) to monitor cathodic protection (CP) in a pipeline.

2. How does the innovation work?


The innovation works by incorporating dedicated instrumentation electronics into existing
pipeline installations, as well as to currently available UAV technology.

Fixed wing UAVs are capable of very fast and efficient aerial inspection and surveillance of
gas and oil pipelines, they are being used to inspect assets which are normally difficult to
access. It’s also possible to equip UAVs with multiple technologies like high definition and
multispectral cameras and sensors. However, in many countries, the only way to collect CP
readings is to send personnel to manually collect this data.

The system works by adding low cost and low consumption, short range transceivers to
the existing pipeline CP measurement installations. The installations, as well as the
rectifiers, are instrumented with equipment that collects, stores and transmits data to the
UAV when it passes by. The UAV is equipped as well, with the corresponding electronics
that communicate with the CP measuring installations. The UAV can store that information
and then correlate and integrate it with other data it provides, for example: video and
photography images, infrared images (including thermal), GPS coordinates, among others.

The following schematic, shows an example of the application of this system.

Pág.342
www.corrosionyproteccion.com Pág.342
The UAV flies autonomously at a safe height to clear the tree line, as well as any other
constructions that may be present. As the UAV approaches a measuring station at a
remote location, it sends a short range radio signal to the instrumented transceiver at the
ground station. At that moment, the electronics in the measuring station take all the
recorded data taken from the pipeline, and transmit it to the UAV. The UAV receives and
stores that information with its dedicated electronics. The UAV then proceeds to
autonomously fly using GPS to the next point where it can find a measuring station,
following the buried pipeline to gather visual information as well.

Since safety is of mayor importance, the UAV is always communicated with the pilot via
long range ultra-high frequency (UHF) radio telemetry, which allows the pilot to control
the aircraft in case of emergency. Included in this UHF communication, the operator at the
ground station receives a life feed of information critical to pipeline inspection. This
includes: life video from the UAV (with the option of infrared/thermal video), the
measured CP data and flight information such as maps, attitude, altitude, GPS, among
other needed information. This information is viewed in a ground station as seen in the
following image.

Pág.343
www.corrosionyproteccion.com Pág.343
This system allows a complete monitoring solution for CP pipelines. The information
gathered by this UAV based system allows a better assesment of CP needs for the pipeline.

3. Describe the corrosion problem or technological gap that sparked the development of
the innovation? How does the innovation improve upon existing methods/technologies
to address this corrosion problem or provide a new solution to bridge the technology
gap?

Due to the sociopolitical and geographical environment of many regions in Mexico and
latin-america, there are pipelines in areas where driving in a truck or walking is not
possible. Taking CP data measurements from test stations located in such areas is very
dangerous and inefficient. This areas include swamps, jungles and mountains; as well as
socially violent areas.

Currently, most of this high risk areas are not being monitored at all. This is very dangerous
since CP measurements are the vital signs of the pipeline, and without them its impossible
to operate correctly the pipeline.

Pág.344
www.corrosionyproteccion.com Pág.344
The only existing method to inspect dangerous and inaccessible pipelines is with the use of
manned airplanes. There are several problems with this approach. First, its not possible to
take CP readings directly from the pipelines, which limits the monitoring of the pipeline to
purely visual information. Second, the manned airplane needs to fly at a much higher
altitude than the UAV would, that lowers the quality of gathered visual information. Also,
operating a manned aerial vehicle, is inherently more dangerous than operating a UAV.
Finally the cost, continuously operating a manned airplane requires a lot more investment
in fuel and maintenance, than operating an UAV.

This problem inspired a new more technologically advanced and practical solution. With
the use of a completely integrated UAV based cathodic protection monitoring system, it
will be possible to monitor difficult inaccessible areas more efficiently and frequently than
ever. The system is specifically designed for inaccessible areas, but it provides much more
information than it would be possible to acquire in commonly accessible areas. Aerial
video footage at close range, provides a better evaluation of the surrounding areas of the
pipeline. Infrared cameras can help detect gas and oil leaks, as well as human intruders in
the pipeline. Automated CP measurement data acquisition makes it possible to collect
data more frequently to better assess the pipeline situation. On top of all this advantages,
having it all the information in an integrated service will completely change the way we
inspect and take CP measurements from pipelines.

4. Has the innovation been tested in the laboratory or in the field? If so, please describe
any tests or field demonstrations and the results that support the capability and
feasibility of the innovation.

There have been several tests both in simulated controlled environments, as well as
sections of real instrumented pipelines.

The system was first tested separately. The UAV has been tested through progressively
longer flights, which provide a reliability test of mechanical and electronical components
of the UAV as well as the communications link. Through this test´s it was demonstrated
that the UAV can safely work a distance of more than 40 km per flight, which makes it
feasible as a surveillance platform.

The instrumentation system, the transceiver, and data recollection systems have been
proven as a separate unit as well. This systems have been proven to work together
perfectly with a resolution of less than 0.05 mV for CP measurements, which is more than
enough resolution to make a correct pipeline protection assessment. The transceiver was
also tested with the UAV, with a correct reliable transmission distance of up to 200m,

Pág.345
www.corrosionyproteccion.com Pág.345
considering the well-known GPS coordinates of CP measurement stations in pipelines, its
more than enough distance to take measurements reliably.

5. How can the innovation be incorporated into existing corrosion prevention and
control activities and how does it benefit the industry/industries it serves (i.e., does it
provide a cost and/or time savings; improve an inspection, testing, or data collection
process; help to extend the service life of assets or corrosion-control systems, etc.)?

The innovation is designed to be easily incorporated into existing facilities. The transceiver
units would need to be installed on CP monitoring stations during the next inspection.
After that the UAV could be easily deployed for future inspections. UAV need to be
programmed to follow the specified GPS coordinates of the pipeline, which are already
available and known to the pipeline inspection personnel. The operation is then very
simple, since the UAV can fly completely autonomously and the operating team would
only focus on gathering visual information from the UAV cameras.

The cost and time savings using this system will quickly be noticed, and pipeline inspection
will be faster and more reliable than ever. With the additional available correlated
information, assessing the pipeline needs will be easier and will provide better results,
thus extending the life of the assets.

6. Is the innovation commercially available? If yes, how long has it been utilized? If not,
what is the next step in making the innovation commercially available? What are the
challenges, if any, that may affect further development or use of this innovation and
how could they be overcome?

Currently the innovation is in its last validation steps, however the product is commercially
available as an experimental feature in our pipeline inspection services. The next steps to
make this innovation commercially available include final validation test´s, especially of the
complete integrated system, as well as product advertisement. Regulations and security
are the main challenges that will affect further development. In terms of regulations, we
currently comply with all the legislations having a permit from the department of
communications and transport (SCT). All of our pilots and aircraft have an insurance for
any damages that may be accidentally caused in the event of an accident.

7. Are there any patents related to this work? If yes, please provide the patent title,
number, and inventor.

This innovation is based on two patents, both submitted to the Mexican Institute of
Intellectual Property. The first one is titled “SISTEMA INTEGRAL AUTOMATIZADO DE
ALERTAS DE OPERACIÓN Y MANTENIMIENTO DE INTEGRIDAD DE DUCTOS EN DERECHOS

Pág.346
www.corrosionyproteccion.com Pág.346
DE VÍA”, it consists of an integrated alert, operation and maintenance system, completely
integrated and to be used in pipeline inspection. The second one is titled “DISPOSITIVO DE
BAJO CONSUMO PARA EL MONITOREO REMOTO DE SISTEMAS DE PROTECCIÓN CATÓDICA
EN DERECHOS DE VÍA”, and it is basically the electronics transceiver system that monitors
CP in the pipeline and sends that information to the UAV.

Referencias

Neural Networks and Deep Learning, Michael Nielsen


http://neuralnetworksanddeeplearning.com/chap1.html

Datasheet Atmega328p: http://www.atmel.com/images/atmel-8271-8-bit-avr-


microcontrolleratmega48a-48pa-88a-88pa-168a-168pa-328
328p_datasheet_summary.pdf
Datasheet RFM12B:
http://cdn.sparkfun.com/datasheets/Wireless/General/RFM12B.pdf
Datasheet MCP3422:
http://ww1.microchip.com/downloads/en/DeviceDoc/22088c.pdf
Datasheet MCP1702: http://www.farnell.com/datasheets/1268701.pdf
LiPo:http://www.hobbyking.com/hobbyking/store/__18560__Turnigy_5000mAh_1S
_20C_Lipoly_Single_Cell_.html
Datasheet RFM69HCW: http://www.orcam.eu/res/Datablad/rfm69hcwv11.pdf
JeeLabs: http://jeelabs.org/
Moteino: http://lowpowerlab.com/moteino/
Blog de low power: https://hallard.me/
JeeNode http://jeelabs.net/projects/hardware/wiki/JeeNode
ADC MCP3424 [http://jeelabs.net/projects/hardware/wiki/Analog_Plug]
RF12Bhttp://www.digitalsmarties.net/products/rfm12b-board
http://jeelabs.net/projects/hardware/wiki/RFM12B_Board
RTC Plug http://jeelabs.net/projects/hardware/wiki/RTC_Plug
http://jeelabs.org/2009/10/05/clock-fixed/
Arduino Pro mini https://www.arduino.cc/en/Main/ArduinoBoardProMini
https://www.330ohms.com/products/arduino-pro-mini-5v-16mhz
http://jeelabs.net/projects/hardware/wiki

Datasheet MCP3424 http://ww1.microchip.com/downloads/en/DeviceDoc/22088c.pdf

Pág.347
www.corrosionyproteccion.com Pág.347

Вам также может понравиться