Paso 1: Paso 1: información
USNA Seaperch
Conjunto de sensores
Por: J.C. Johnson
Modificaciones a la estructura de Seaperch, técnica y alambre las conexiones de montaje
Aumentar el ancho de la seaperch cruzar miembros de 4.5" a 5.5" para dar cabida a una placa de montaje de aluminio de 5 "x 6" y 5 "x 7" x 3", recinto impermeable que alberga un Arduino Uno, el escudo del Motor V2 Adafruit, un módulo de arranque de corriente/voltaje INA219, Arduino Wireless SD Shield, un módulo de salida 9DOF y la batería de Ion de litio de 12V-9800mah.
La superficie de montaje del motor fue modificada mediante la presentación de los miembros horizontales y verticales con archivo de media a una profundidad y anchura para acomodar la estructura circular del motor. Reemplazar existente bancada – ataduras con cuarto-veinte - 3 "x 1-3/8" roscados pernos en U, metal forro plateado y tuercas belleza para proteger las roscas expuestas de los pernos en U y tubería de contracción aplicada a los pernos en U para minimizar la oxidación de las superficies expuestas.
Cortar la conexión de anclaje de Ethernet del Seaperch extremo del cable Ethernet a una longitud de aproximadamente 18". Quitar 6" la chaqueta externa del cable. Inserte el extremo cortado del cable en una de las glándulas de cable instaladas en la cubierta a prueba de agua. Tira ½" apagado, luego doblar y estañar los extremos de los pares de cable de exponer y Conecte cada par las correspondientes conexiones del motor (M) del protector de Motor V2 como sigue:
Orn/Orn-Wht par al conector de la izquierda de M1
Blu-Blu/Wht par al conector de la izquierda de M2
GRN/Grn-Wht par al conector de la izquierda de M3
Par de BRN/Brn-Wht a conector de cargador de batería externa
Coloque un conector RJ-45, utilizando la tabla 1 como guía, al otro extremo de la soga de Ethernet que se cortó. Este extremo se conectará luego a la hacia fuera-tablero lateral de una glándula de cable de Ethernet-a prueba de agua instalada en el recinto. Esto permite la seaperch desconectar el controlador cuando no esté en uso. Corte y utilice un cable Ethernet, aproximadamente de 6" de largo, que tiene un RJ-45 (Jack) conector macho en un extremo y nada en el otro extremo. Retire aproximadamente 3" de la chaqueta externa del extremo cortado de este pedazo de cable para exponer los pares de hilos del cable. Tira de 1/2" de los extremos de cada alambre pares teniendo cuidado de no nick el conductor de cobre. Doble y estañar los extremos expuestos de cada conductor. Esto añade fuerza a los pequeños cables del cable Ethernet. Conecte el extremo RJ-45 del cable Ethernet al lado en el tablero de la glándula de Ethernet y conecte los extremos estañados a entrada Digital pins-los respectivos V2 escudo refiriéndose a lo siguiente como una guía.
RJ-45 pin # alambre Color V2 perno D/O
1 D3 ORN/WHT
ORN 2 D2
3 D5 GRN/WHT
4 D7 BLU/WHT
BLU 5 D6
GRN 6 D4
BRN/WHT 7 + 5V
BRN 8 GND
Cableado del Sensor de MPX5500
Utilice 6" pieza de cable de Ethernet con la chaqueta completamente removido para conectar el MPX5500 a la correspondiente entrada analógica del escudo Motor V2 como sigue.
(Ver hoja de datos MPX-5500)
PIN1 - (ranurada) salida de cable-Sensor WHT/ORN a entrada de escudo (A0)
PIN2 - azul cable de tierra del sistema
PIN3: alambre ORN a + 12V de la fuente positiva de V2 escudo pin Vref
Descripción del recinto impermeable y circuitos
Recinto impermeable (PID 905, SID 95.1) compró a industrias Adafruit. Las dimensiones de L 6,75" x W 5.0" H X 3.0" se encontraron necesario para dar cabida a todos los componentes internos y cables. El recinto requiere de la perforación de tres orificios para conectar los diferentes cables y tubería a través de varias glándulas de cable a prueba de agua. La glándula de Ethernet requiere un agujero de aproximadamente ¾" de diámetro (exacta. 794"). Los otros dos, glándulas más pequeñas requieren orificios de aproximadamente ½" de diámetro (exacta. 494").
Modificación al controlador de Seaperch
En orden para un Seaperch existente controlador para trabajar con el Arduino Uno y Adafruit V2 Motor Shield será necesario realizar varias modificaciones en el controlador. Nota: Se decidió modificar y existentes caja de interruptor del regulador en lugar de pasar por el esfuerzo de diseñar y construir uno totalmente nuevo. Además, ya que existe la posibilidad de que puede ser el siguiente paso en el desarrollo de sensores controlar la dirección de Seaperch mediante el uso de un girocompás o brújula puede mejorar este enfoque se presta hacia esa dirección.
Las modificaciones del controlador se logran cortando rastros de soldadura de circuitos varios y agregando varios cables de puente. Estas modificaciones son necesarias, puesto que la función original del regulador, que iba a dar +-12V a la Seaperch motores de avance/retroceso y control de dirección arriba/abajo cambia. En su lugar se ofrecerá ahora el regulador + 5v, que representa un "1" lógico y la tierra, que representa un "0" lógico a la Arduino a la dirección de control de Seaperch via el escudo del Motor V2. Nota: las modificaciones que pueden realizar mucho más fácil si la platina está despoblada, es decir uno donde no están instalados los componentes
Para empezar, el Brn-Brn/Wht repuesto cable par de Ethernet cable ahora suministra + 5v y tierra del escudo Arduino Uno y V2 a la fuente el lado controlador de su carrera, así proporcionando las entradas lógicas necesarias para el Arduino Uno por el escudo del Motor V2. En primer lugar, desoldar y quitar los cables rojo y negro a la batería externa del controlador. A continuación, conectar y soldar un cable de puente desde el pin 8 (GND) del conector RJ-45 a-12V ojete conexión etiquetada (negro) en el controlador en la parte inferior. Añadir un segundo cable de puente desde el pad de soldadura (negro) a la conexión de soporte del fusible más cercana al interruptor del lado de estribor. Añadir un tercer cable de puente entre los contactos de dos del puerto switch-SW2. Esta modificación se utilizará ahora proporcionar una "tierra", por el trazado de circuito de Arduino Uno R2/V2 Motor Shield, al apropiado cambiar contactos de SW1 (estribor) y SW2 (puerto) cambia y a los contactos de (NC) del SW3/4 & SW5/6 (UP/Down) interruptores, que originalmente fueron conectados con el lado negativo de la batería externa 12V. Esta nueva conexión se utilizará para proporcionar lógica "0" para entradas digitales D4-D7 a Arduino Uno. Nota: Es importante para eliminar el fusible (F1), como ya no se requiere para la protección y si la izquierda en lugar causará un cortocircuito entre el + 5V y GND. Sin embargo, el portafusibles puede utilizarse ahora para conectar un LED (L1) a través de un ohm 330 actual limitación de resistencia. LED L1 que se utiliza como un indicador visual que recibe el regulador de + 5v y tierra de la Arduino Uno.
Las modificaciones de corte de regulador circuito rastro requieren el corte cuidadoso de varios rastros al ácido de la placa de circuito de la soldadura. Esto puede lograrse usando un cuchillo Xacto o similar corte afilado de la herramienta como sigue: cortar el rastro inmediatamente adyacente a la anilla de conexión (NO) de SW5/6 en la parte superior del tablero del circuito. También es necesario cortar el rastro de soldadura de placa de circuito que originalmente fue conectado con el + 12V lado del fusible inmediatamente entre C2 y C3 ojales e inmediatamente al lado de la etiqueta de estribor. A continuación, cortar los rastros inmediatamente adyacentes a (NO) orificio de conexión de SW3/4 en la parte inferior del tablero del circuito. Conexión y cable de puente del pin 7 del conector RJ-45 a SW3/4 & SW5/6 circuito almohadilla del tablero con la etiqueta (NO) y a los + 12V ojete. Estas modificaciones permiten ahora + 5V de Arduino Uno para conectarse a los contactos (NO) de SW3/4 y 5/6 SW con el fin de ser utilizado como "1 lógico" de estos pasa a la Digital entradas D2 y D3 de Arduino Uno... Esto también elimina la necesidad de una conexión de batería externa para el controlador, 12Vdc necesaria para conducir los motores seaperch ahora será proporcionado por la batería de Li-Io ubicada internamente en el gabinete impermeable en el seaperch. Interruptores SW3/4 y SW5/6 ahora tendrán sus contactos (NC) conectados a tierra y su contacto (NO) conectado a + 5v para un "0" lógico o "1" para entradas digitales D2 y D3 de la Arduino Uno. SW1 y SW2 ahora tendrán todos sus contactos conmutados conectados a GND proporcionar lógica "0" a las entradas normalmente "Pulled Up" de D4-D7 del Arduino Uno.
Descripción de componentes, circuitos y conexiones
La glándula de Ethernet es un conector de RJ-45 hembra-hembra y permite conexión/desconexión de la Seaperch del controlador según sea necesario. Una de las pequeñas glándulas de cable se utiliza para insertar el extremo del cable Ethernet que está conectado internamente a la V2 motor salidas de impulsión del motor del escudo (M1-M3) a través de cabezales. El protector de Motor V2 tiene una cuarta salida de salida del motor (M4) que ahora es un repuesto de que la glándula de cable, más pequeño se utiliza para insertar una longitud de Tygon o similares de la tubería sobresale a través de una de las glándulas más pequeñas y es expuesto a la presión de agua. El otro extremo de la tubería se conecta al lado de la presión positiva del sensor de presión diferencial montado internamente MPX5500. Este sensor mide la presión atmosférica a diferentes profundidades y fuentes de una señal analógica que está conectada a analógico entrada A0 de la Arduino Uno mediante una conexión de la cabecera de escudo del Motor V2 y servirá de retroalimentación para controlar la profundidad de la Seaperch deseada. El escudo del Motor de V2 se une a la Arduino Uno a través de hombres cabezales que requieran soldadura al escudo V2. También es necesario soldar varios conectores hembra encabezado a la V2 para conectar varias entradas y salidas a/desde el microcontrolador de Uno. Atención y cuidado se requiere al soldar las cabeceras para el escudo de la V2, ya que son muy pequeños, muy juntos y derriten fácilmente. Un 12V, 9800mah, batería de Ion de litio recargable con un interruptor ON/OFF e interna carga circuito ahora estará ubicado en el recinto impermeable utilizado para alimentar el microcontrolador Arduino Uno, Adafruit v2 Motor Shield y suministrará suficiente energía para conducir que Seaperch motores. El escudo del Motor V2 proporciona un punto de conexión para entradas y salidas desde y hasta el regulador de seaperch, el sensor de presión MPX5500 y seaperch conducen motores. Escudo de V2 empleados un TB6612 MOSFET conductor con 1, 2A por canal y 3A capacidad de corriente de pico. Esto debe proporcionar suficiente energía para conducir eficientemente los motores seaperch. Estos PWM, polaridad reversible salidas son conectadas a terminales M1-M4 del escudo, donde se conectan los motores verticales, puerto y de estribor de la Seaperch. El escudo de piggy-back en el Arduino Uno por medio de conectores del cabezal, como se describió anteriormente. Entradas del controlador seaperch modificado ahora proporcionan entradas lógicas 1 y 0 (+ 5v = GND true = false) para las entradas digitales del Arduino, D2-D7, para controlar la dirección del motor. La señal del sensor de presión, como se describió anteriormente, proporciona una señal analógica a las entradas analógicas del Arduino, A0 y A1, proporcionando retroalimentación que trabaja en conjunto con la señal vertical de motor para establecer y controlar la profundidad de la seaperch. Las señales lógicas desde el del interruptor controlador puerto y estribor, dependiendo de su posición/estado, conducirá cada motor en la dirección de avance o retroceso y no confían con algún comentario. Tabla 2 se describen las posiciones de interruptor regulador, el estado resultante de la lógico y la acción resultante de tomar:
Tabla 2
Posición de estribor SW1 Pin RJ-45 V2 Pin estado acción
Centro de D4/D5-tiró-para arriba no hacen nada
Avance 3 D4 - 0 M2-CW
D5 hacia atrás 6 - 0 M2-CCW
SW2-puerto
Centro de D6/D7-tiró-para arriba no hacen nada
D7 de adelante 5 - 0 M3-CW
D6 al revés 4 - 0 M3-CCW
SW3/SW4
DE D2 - GND no
2 D2 - + 5V M1-CW
SW5/SW6
DE D3 - GND
EN 1 D3 - + 5V M1-CCW
SW3/SW4 y SW5/SW6
ON / ON D2/D3-1 / 1 leer o almacene el sensor de presión de entrada
Circuito de alimentación de Control remoto
Con el fin de reducir la necesidad de abrir la caja de plástico para apagar el encendido y apagado en los circuitos internos un control RF, interruptor de control remoto 12v 15amp fue utilizado. Este interruptor tiene + 12Vdc en su entrada (par rojo y negro) que se conecta a su salida (par-negro) cuando se presiona el botón de "Encendido" del transmisor remoto. Cuando se presiona el interruptor "OFF" de la emisora los + 12Vdc se retira forman su salida.
Software:
El microcontrolador de Arduino Uno y el escudo del Motor V2 Adafruit se programan usando "Bocetos" escritas en código C/C++. Mientras que el código no muy complicado, sin embargo requieren extensa lectura de los fundamentos del código, la revisión de los tutoriales en línea y muestra bocetos disponibles desde numerosas fuentes. El código para el Arduino y el escudo del Motor es «Código abierto»-lo que significa que puede ser copiado y utilizado sin costo desde el Arduino Adafruit y varios otros sitios web de licencias. Para "Novatos" no programador tipos, investigación en profundidad de cómo escribir, compilación y cargar el código críticamente es importar el éxito presente y futuro de este proyecto. Esto es y puede ser un esfuerzo muy desperdiciador de tiempo. El código desarrollado para el conjunto de sensores de USNA Seaperch no se incluirán en este documento, pero se proporcionará en formato electrónico a la directora del programa madre de USNA y demás personal de la madre. Futuras modificaciones del código y circuitos electrónicos será necesarias como otros sensores o dispositivos electrónicos se agregan en cualquier esfuerzo para mejorar el rendimiento de Seaperch y para alcanzar la meta de la USNA Seaperch "autonomía".
Lista de piezas
Descripción proveedor costo
Amazonas de microcontrolador Arduino Uno R2 $13,28
Arduino Wireless SD Shield Arduino $20,00
Motor Adafruit V2 protector Adafruit industrias $19,95
MPX5500-005DV presión Sensor Omega $10,00
Impermeable de RJ-45 Cable glándula Adafruit industrias $9,95
Impermeable pequeño Cable glándula Adafruit industrias $1,95
12V batería de Li-Po de 9800mah Amazonas $26,00
Caja de plástico grande Adafruit $34,00
Pernos en U, 3 @ $2 .39ea Ace Hardware $7,17
Herramienta de la encrespadura de RJ-45 y conectores es $20,00
Interruptor de Control remoto de RF MSD-INC eBay $15,60
2 cada Adafruit FTDI de adaptador XBEE $40,00
2 cada módulos XBEE Serie1 Adafruit $20,00
2 cables de cada USB-Serial FTDI Adafruit $40,00
1NA219 corriente/voltaje Sensor Adafruit $20,00
9DOF Breakout módulo Adafruit $40,00
Costo total: $337,90
Referencias de proveedor:
Sitio web de Hardware ACE: http://www/ace.com/index
Adafruit sitio web: http://www.adafruit.com
Sitio web de Amazon: http://www.amazon.com/ref=ap_frn_logo
Página Web de Arduino: http://arduino.cc/
Sitio web es: http://www.lowes.com
Página Web de Omega: http://www.omega.com/index.html
Seaperch sitio web: http://www.seaperch.org/index
Referencias de piezas:
http://www.Adafruit.com/products/163
http://www.Adafruit.com/products/1120
http://www.Adafruit.com/products/1018
http://www.Adafruit.com/products/1032
http://www.Adafruit.com/products/1604
http://www.Adafruit.com/Product/1714
http://www.Adafruit.com/products/905
http://Arduino.CC/en/Main/ArduinoWirelessShield
http://www.Adafruit.com/products/70
http://www.Adafruit.com/products/126
http://www.Adafruit.com/products/128
http://www.Amazon.com/DP/B008QKJNOA/Ref=pe_385040_30332190_TE_3p_M3T1_ST1_dp_1
Diagrama de cableado del controlador modificado de Seaperch
Modificaciones de estructura Seaperch
Controlador parte traza cortes
Controlador inferior puentes y cortes de rastro
V2 Escudo del Motor
V2 Esquema de escudo del Motor
Arduino Uno R2 1
Envase impermeable 1
Batería de Li-Io, cargador y Cable de extensión
Descripción del producto
9800mAh DC 12V Super-Ion de litio batería
Descripciones:
Esta batería es una batería de Li-ion de 12V 9800mah y está especialmente diseñado para accionar el dispositivo de sistema que utilizan corriente continua 12V.
Especificaciones:
Color: negro
Capacidad: 9800mAh.
Tipo: DC 12680
Tamaño: 115 x 62 x 21 (mm)
Interruptor de encendido/apagado incorporado para ahorrar consumo de energía
Voltaje de entrada: 12.6
Voltaje: 10.8 ~ 12.6 cc
Vida del producto: la circulación de carga y descarga ≥500 veces
El paquete incluye:
1 x adaptador de CA
Batería de ion de litio recargable de 1 x 6800mAh
cable de extensión de 1 x 3'
Glándula de RJ-45 1
Glándula de RJ-45 2
Glándula de RJ-45 3
INA219 Corriente/voltaje Sensor 1
9DOF Breakout 1
Trabajando en la perca de mar conjunto de sensores ha sido una verdadera experiencia de aprendizaje. En los párrafos siguientes que intentaré explicar algunas de mis experiencias, observaciones y conclusiones sobre el uso de un microcontrolador de Arduino, un escudo de Adafruit Motor, un sensor de presión de MPX5500 y otros sensores electrónicos utilizan para control y perca de mar en coche motores.
Inicialmente, se decidió usar 12 voltios, batería de Ion de litio 4500mah para alimentar todos los circuitos electrónicos. La batería de este tipo fue elegida ya que es recargable, peso ligero y tiene un pequeño factor de forma. Sin embargo, pronto después de agregar algunos dispositivos de electrónica adicional era necesario desmontar (rotura aparte) de la batería para tener acceso a sus circuitos internos y reducir su altura por lo que podría más fácilmente entra en el recinto de la prueba del agua junto con la otra electrónica.
Se decidió además que en orden de aliviar la necesidad de abrir la caja cada vez que era necesario activar la energía de la batería encendido/apagado, un RF 12V disponible comercialmente, se incorporó interruptor teledirigido. Esto permitió que el sistema sea remotamente energizado/de-desenergizado sin tener que abrir la caja. Para cargar externamente la batería, sin tener que abrir la caja, que conectado un extremo del par de cable BRN/BRN-WHT internamente a la batería y el extremo externo de la par-usando un conectador impermeable AMP SUPERSEAL 1.5 serie de conectorizado. El cargador también fue modificado-agregar el mate conector en el extremo de salida del cargador.
Para efectos visuales, desarrolló una serie de blanco LEDS fueron agregados y son accionados por + 5Vdc usando un regulador de voltaje LM7805 que tiene + 12 VCC en la entrada de la batería y proporciona + 5Vdc salida a los LEDS, a través del resistor del ohmio 920 series. El LED y el resistor de vinieron de la luz desechados "Sr. Luna en mi habitación" infantil de mi nieto que he encontrado en su armario.
Después de sistema de montaje, se descubrió que cuando se energiza el sistema, si más de dos de los motores de la perca de mar fueron energizados simultáneamente todo el sistema se "cierre". En un esfuerzo por determinar la causa del cierre fue monitoreado el consumo de corriente de la batería y se observó que la carga presentada por cada motor individual era aproximadamente 500ma. Además se ha observado que cuando se energiza entonces un motor más la tensión de salida de la batería de Li-Io al azar se redujo a 4.35vdc así, para desenergizar el interruptor remoto-causando el cierre hacia abajo. Los voltios 4,35 se cree que el nivel de la batería "fail safe" voltaje diseñado para mantener la batería se descargue completamente.
Inicialmente, se pensaba que el sistema de "shut down" fue causado por un defecto en el interruptor remoto. Sin embargo, con algunos problemas más, descubrí que si sustituyó un 12V-7.0A / hr de batería para la batería de Li-Io llevó a cabo el interruptor y pude conducir los tres motores simultáneamente.
A través de algunas investigaciones en línea, descubrí que los paquetes de baterías de Li-Po empleado varios tipos de circuitos de protección interna, uno para la protección de baja tensión destinados a reducir la descarga total de la batería; uno para la corriente excesiva dibujar destinada a proteger la batería de calefacción (considerado un peligro de incendio grave) y uno para sobre voltaje protección todo pretende reducir daños permanentes a la batería.
A través de mi investigación, supuse que el sistema de "apagado" en realidad fue causado por uno de los circuitos de protección de la batería de disparo. Entonces descubrí mediante la sustitución de la batería más importante para la batería de Li-Io las tres de la perca de mar motores funcionaría cuando simultáneamente energizan y presentaron una carga total de aproximadamente 1.5amps. Para mi consternación, mi cálculo de la carga inicial y razón para el uso de que una batería de 4500mah parece error desde el 1,5 carga parece ser demasiado para la batería. Determina que la batería solicitada han sido suficiente, decidí recargar la batería y vuelva a intentarlo. Durante la recarga, noté una pequeña chispa en uno terminales internas de la batería. En posterior investigación se descubrió que el cable que conecta el terminal positivo de la celda más alta de la batería a la terminal negativa de la interna la mayoría células de la batería fue flojo y mal soldado. Luego cuidadosamente vuelva a Suelde la conexión, potenciada el sistema controla la corriente de carga y dedica los tres motores de perca de mar. El sistema me alojé energizado y no dispara, por un tiempo después comenzó a tropezar inmediatamente cuando energiza! Otra investigación encontró que una de las celdas de la batería había sido cortada, probablemente durante el desmontaje del embalaje exterior y estaba emitiendo un olor acre. En este punto la batería fue sustituida por una batería de 9800mah y el sistema bajo carga.
Un segundo y más difícil problema a diagnosticar ocurrió en algún momento después de inicialmente sumergido el sistema para comprobar si hay fugas. Una vez sumergido, inmediatamente observó una fuga que se originó en la glándula de cable RJ-45. Además se determinó que la fuga se convirtió alrededor de cable del controlador era muy probablemente debido a su forma asimétrica donde entró la glándula.
Una noche, después de luchar con el programa de control de Arduino, dejé inadvertidamente el sistema conectado al puerto USB de mi computadora. A la mañana siguiente, cuando volví para continuar mis esfuerzos, observo el motor estribor girando en sentido horario (hacia adelante). Desconcertados por esta inesperada experiencia empecé el sistema de solución de problemas. Al abrir la glándula RJ-45 se observa que la glándula ha conservado algo de agua internamente. Además se descubrió que el contacto común del interruptor de estribor hacia delante Lee 1,89 voltios no fue accionado el interruptor. Ya que mi dibujo fue diseñado para ejecutar la perca de mar motores cuando el puerto y estribor cambiar entradas para Arduino estaban en 0 voltios y detenerlos cuando "tiró-para arriba a 5 voltios. Además se determinó que the1.89 voltios, menos que el estado de parada de 5 voltios, en un nivel fue suficiente para causar que el motor de estribor correr hacia adelante.
Más diagnóstico también reveló que el final de la perca de mar del cable de control, después de haber sido expuesto a agua dentro de la glándula de cable RJ-45, produce una leve resistencia entre los + 5 voltios en pin7 y estribor pin6 del conector RJ-45 y debe haber sido suficiente para causar que el motor de estribor girar hacia adelante sin su nal. El extremo de la glándula y cable fueron reemplazados y la rotación de la unidad detenida hasta que mandó. En un esfuerzo por detener las fugas futuras, coloqué un pequeño trozo de tubo en el cable para hacerlo más simétrico donde entró la glándula y además cubrió la glándula y el cable donde entró la glándula usando sellador "Pegote" en un esfuerzo para proporcionar integridad de agua apretado más de la glándula de RJ-45. Yo también cubrió las glándulas más pequeñas en sus puntos de entrada por la misma razón.
En conclusión, baterías de iones de litio (Li-Io), mientras que considera adecuado para esta aplicación, deben seleccionarse cuidadosamente basado, no sólo en su tamaño y peso, pero lo más importante en su capacidad de entrega actual. Durante mi investigación he aprendido allí son varios tipos de baterías Li-Po disponibles en el mercado, algunos con protección incorporada algunos circuitos externos que requieren de protección. También aprendí si carga incorrectamente pueden explotar y presentan un peligro de incendio serio. Por lo tanto, es sumamente importante no sobre cargar la batería y tal vez no se debe dejar desatendido al cargar.
También he concluido que integridad apretada en cualquier dispositivo destinado a ser sumergido en agua el agua es extremadamente importante, particularmente los dispositivos que la casa de electrónica y componentes de tejido conectivos. Exposición al agua, no importa cómo leve puede inducir problemas, que pueden ser muy difíciles de detectar y diagnosticar.
Finalmente, correctamente programación de microcontroladores y circuitos asociados puede ser bastante difícil-especialmente para alguien con un mínimo de experiencia de programación de C++. Uno fuera de lugar {} onduladas o un apóstrofe olvidado; puede causar una gran angustia y horas de esfuerzo!
2014
Desarrollo de la Seaperch demostró que la necesidad de abrir el envase impermeable para acceder al puerto USB de Arduino era un problema. No sólo poner tensión excesiva en el cableado interno, pero también demostró para ser problemática para la integridad de estanquidad del recinto, destacando excesivamente el sello de la caja. Después de que algunos pensaban que era decidido para intentar programar el Arduino inalámbricamente, aliviando así la necesidad de abrir el envase en cualquier momento un esbozo nueva o modificada de carga llegó a ser necesario. Una conversación anterior con un colega de USNA, Joe Bradshaw, instigó a la idea de Arduino inalámbrico programación utilizando Xbees. Decidí que sería el siguiente paso lógico para asegurar integridad de herméticos al agua de la planta y la posterior búsqueda de autonomía de perca de mar.
Programación inalámbrica no es una tarea extremadamente difícil, ha demostrado para ser un poco intimidante! Afortunadamente, hay resmas de "Cómo hacerlo" documentación disponible en Internet de fuentes como Ladyada de Adafruit, Inc y muchos otros desarrolladores aventureros. El costo ~ $100,00, de las piezas diferentes para realizar esta tarea es, para mí, razonable, pero quizás no para los aficionados promedio. Voy a intentar explicar el proceso y mis experiencias en los párrafos que siguen.
En primer lugar, voy a enumerar las piezas, su fuente de compra y el proceso de montaje de un PAN (Personal Area Network) usando dos XBEE 802.15.4 serie 1 y hardware asociado. Elegí el serie 1 XBEES, recomendado por http://ladyada.net/make/xbee/arduino.html y encontrar más de un tutorial en http://www.ladyada.net/learn/avr/setup-win.html comprensión AVR programación no es totalmente necesaria, pero he encontrado que pasar por el tutorial muy útil para entender la configuración del AVR y el AVRDUDE utilidad del cargador utilizado por Arduino para subir dibujos, arriba/abajo
Piezas necesitadas para crear una red Personal de dirección (PAN):
2 cada uno - serie XBEE 1 802.15.4 módulos comprados de Adafruit, Inc. http://www.adafruit.com/products/128
2 cada uno - kits de adaptador XBEE de Adafruit, Inc. http://www.adafruit.com/products/126
2 - cable USB FTDI-TTL.232-TTL232R 3, 3V de Adafruit, Inc. http://www.adafruit.com/products/70
Sitio de descarga del driver: http://www.ftdichip.com/Drivers/VCP.htm
1Cada - Arduino Wireless SD Shield de Arduino http://arduino.cc/en/Main/ArduinoWirelessShield
1 de cada uno – 2N2222 NPN transistor, resistencia de 10K, capacitor de 0,1 μF comprada en Radio Shack
Antes de ensamblar el PAN encontré necesario para descargar e instalar varios programas, que encontré muy útil al proceso. En primer lugar es software X-CTU de MAXSTREAM es muy útil para configurar y probar los módulos XBEE. Puede ser descargado desde el siguiente enlace: http://www.digi.com/support/kbase/kbaseresultdetl?id=2125 aunque cualquier terminal del programa, como el Hyper Terminal de Windows será suficiente, uno debe versado en el uso de comandos para configurar y probar los módulos XBEE, que son en realidad solo modems. X-CTU es extremadamente útil no sólo para la configuración de XBEES, pero contiene varias utilidades para pruebas y monitoreo de las respuestas XBEE.
En segundo lugar, como se recomienda en el tutorial de avr de ladyada que enumeré arriba, había descargado y había instalado la última versión de WinAVR desde Sourceforge. Se puede descargar siguiendo el enlace en el tutorial o directamente en sourceforge en http://sourceforge.net/projects/winavr y proporciona información valiosa en el proceso de programación de microcontroladores ATMEL AVR.
Montaje de la bandeja de la perca de mar, con los componentes anteriormente descritos resultó muy difícil y requiere muchas horas de investigación y desarrollo, que en última instancia, fue necesario construir y configurar un modelo de trabajo. Sin embargo, una vez completado, este esfuerzo resultó que vale la pena en las modificaciones más subir el sketch de Arduino mar perca.
El proceso:
En primer lugar, montar el kit de adaptador XBEE. Ver http://ladyada.net/make/xbee/solder.html
Algo que no se muestra en las instrucciones de montaje, pero es necesaria para restablecer el Arduino cuando carga el código es el RTS pin-16 del adaptador debe conectarse a DI03 pin-17 de lo XBEE.
Nota: que mi afán de no recalentar el chip de controlador de línea 74ACH125N soldando directamente en el tablero de adaptador primero instalar un zócalo de 14 pines chip. No hacer esto, ya que demostró para ser un problema y hecho el chip sentarse demasiado alto en el tablero para acomodar el módulo XBEE. Afortunadamente, con la ayuda de Tyson normando de WS & E fue capaz de soldar el zócalo de la viruta por lo que pude soldar el chip directamente en el tablero. Una vez que los adaptadores de montaje, inserte el módulo XBEE y coloque en el adaptador cabecera conector teniendo cuidado de pin1 de orientación-Consejo de XBEE de lo XBEE va al lado del led en el adaptador rojo. VER ABAJO
Ahora estás listo para configurar cada XBEE, uno a la vez, conectando el adaptador al ordenador puerto USB mediante el cable USB FTDI-TTL.232 como se muestra a continuación.
Es difícil ver en esta foto, pero el primer pin (cable verde) del cable FTDI es conectado al pin 2 del adaptador - no pin-1. Una vez conectado al ordenador, Windows "found new hardware" mensaje mostrará y solicitar información sobre el controlador para el adaptador. Administrador de dispositivos de Windows reconocerá el cable FTDI como un puerto com virtual, se ejecuta la instalación de controlador y mostrar un nuevo dispositivo serie USB en puertos (COM & LPT). Haga doble clic en el nuevo dispositivo y configurarlo como un nuevo puerto COM. He utilizado COM10 disponible y configurado con bit de parada uno de baudios velocidad 9600, No-Parity, 8 bits, de configuración por defecto. es decir, 9600, N, 8, 1. Al configurar el nuevo puerto, hay un otro ajuste es necesario para permitir la reposición adecuada de la Arduino. En configuración de puerto, seleccione la ficha avanzadas y compruebe "Sistema RTS en cerrar".
El nuevo puerto de COM ahora estará disponible para X-CTU, que debe comunicarse con el XBEE con su configuración predeterminada, configurar y probar cada XBEE.
No voy a intentar explicar cada paso en la configuración XBEE mediante proceso X-CTU, ya que son demasiado numerosos para discutir, una vez arriba y funcionando, utilizando X-CTU hace bastante intuitivo. Sin embargo, hay algunas cosas en cuenta. En primer lugar, el valor predeterminado ID PAN en cada XBEE debe cambiarse a un nuevo ajuste no para interactuar con otros XBEES que podría ser en las proximidades. En segundo lugar, la dirección de 16 bits de cada XBEE debe establecerse de acuerdo uno con el otro-es decir, en su forma más simple, el XBEE conectado directamente a la computadora debe tener su DH = 0 DL = 1 y MY = 0 y el control remoto XBEE debe establecerse su DH = 0 DL = 0 y mi = 1 ver http://www.ladyada.net/make/xbee/configure.html
También observé que hay una configuración (EE) AES cifrado permita que debe deshabilitarse. Sin embargo, incluso cuando está deshabilitado AES cada vez X-CTU pone de nuevo constantemente quiere saber la configuración de KY (llave del cifrado de AES). Introduce "0" y lo hace. Configuración de la clave NI a un nombre para cada uno de su XBEES reconoces también es útil. No olvides escribir todos los cambios de configuración y guardar en un archivo para la carga futuro.
Por último, y esto es muy importante! Para configurar lo XBEE remoto en el extremo de Arduino, el local XBEE conectado a la computadora debe tener el AP (API activado) para activar enable API (1). Si la configuración del AP se deja en este modo, Arduino se comunicará con el XBEE local en el extremo de la computadora. Antes de salir el X-CTU establece la configuración de AP para discapacitados (0), escriba la nueva configuración XBEE local!!!!!!
Una vez que el XBEES están configurados correctamente y comunicarse entre sí es el momento para unir XBEE remoto a un Arduino. Nota: ejemplo de ladyada siguiente compré un Atmel P 328 Duemilanove Bootloader viruta de Adafruit e instalado en un Arduino Uno. No estoy seguro si esto era totalmente necesario, pero en armonía con la instrucción de ladyada, lo hice. Instalé el XBEE remoto en un escudo de SD inalámbrico de Arduino y había conectado el escudo para Arduino modificado. Como fue recomendado en el tutorial de Arduino XBEE wireless de ladyada que también construí el Arduino restablece circuito en el escudo se describe y se muestra a continuación.
XBEES son bastante débiles y no tienen el empuje para restablecer un Arduino por cuenta propia, así que tenemos que conectar a un transistor que va a hacer el levantamiento pesado de bajando la línea de reset. Prácticamente cualquier transistor de NPN de pequeña funciona muy bien aquí. Poner un 0.01uF a 0.1uF condensador en serie con el cable de lo XBEE y conecte el otro extremo al base de transistor de NPN. El emisor del transistor se conecta a tierra. Poner una resistencia de alrededor de 10K entre la base y el emisor. Esto tirará la base para mantener el Arduino de restablecer accidentalmente.
Este circuito utiliza señal de DIO3 de XBEE, que estaba atada a la línea de primera de XBEE en el extremo de la computadora mostrado anteriormente, la entrada de señal de reset de lo XBEE. Ahora, conecte todo, empezar a Arduino y subir un dibujo. Si todo funciona bien el bosquejo subirá con éxito. Sugerencia: abrir archivo/preferencias en Arduino y comprobar el "Mostrar salida verbosa durante la carga". Esto mostrará la secuencia de carga y si tiene éxito se mostrará el subido el código y por último mostrar el mensaje: avrdude hecho. Gracias.
NOTA:
Cuando Arduino carga código crea dos directorios de sellado de tiempo: un "construir algo" y la "algo" en el actual directorio del usuario /Username/Local/Temp. El directorio contiene un registro de lo que fue subido y el directorio de la consola contiene dos archivos: stderr.txt y stdout.txt, que un muy útil en el diagnóstico de actividad de carga de Arduino.
Una vez que subió el PAN inalámbrica y fiable funcionamiento, luego procedí a añadir varios otros sensores a mi planta con: un sensor de "nueve grados de libertad" (desglose de 9DOF), que es un sensor de tres-en-uno pretende añadir un giroscopio, acelerómetro y brújula pretende añadir estabilidad, velocidad, dirección y roll & pitch control a mi planta. El sensor de 1NA219 fue agregado en un esfuerzo para diagnosticar un problema que ha demostrado para ser un problema constante con la batería de Li-Po al azar apagado durante la prueba. La investigación adicional demostró que estos tipos de baterías han construido en los circuitos de protección diseñados para protegerse de una de tres condiciones: bajo voltaje, sobre voltaje y sobre corriente. Pronto se hizo evidente que una de estas condiciones debe haber existido y fue la causa de la batería apagado. Este problema fue el impulso para instalar el sensor de corriente/voltaje de 1NA219.
Al principio, creía que una condición de sobrecorriente estaba causando el problema. Utilizando un medidor actual, he podido observar cargas de aproximadamente 500-700ma por motor y no más 3A carga total cuando todos los tres motores fueron energizados simultáneamente. Además, si había estancado manualmente cualquier motor observé cargas de no más de 2A, que no dispara la batería. Estas observaciones luego me llevaron a creer que una condición de sobrecorriente no era la causa. Puesto que voltaje de salida de la batería Lee constantemente dentro de las especificaciones era obvio que una condición de bajo voltaje no era la causa, dejando sólo una condición, un exceso de tensión inducen a la batería como la causa probable.
Entendimiento de que los motores actúan como generadores cuando energía de repente se quita o se invierte, entonces pensé que el nuevo CEM generados por los motores fue siendo inducida a la batería y provocando su circuito de protección de sobretensión participar. Puesto que este fenómeno generalmente es bien conocido, hay ciertos aparatos electrónicos, tales condensadores, PN cruce diodos, diodos zener y filtros que pueden reducir o eliminar este efecto cuando lleva colocado en línea con la carga de la batería o el motor.
En la sugerencia del profesor Carl Wick, primero probé añadiendo dos diodos zener en motor lleva. Esto resultó algo eficaz, pero todavía experimentado al azar, aunque menos batería frecuentes paradas. Era el señaló que el cierre podría ser causado repetitivamente por energizar cualquier motor entonces rápidamente invierte su dirección. Después de una discusión con y en la recomendación de Joe Bradshaw añadí un filtro PI entre la batería y la carga, otra vez con un mínimo éxito. La adición del código de módulo y la prueba de 1NA219 a mi bosquejo proporcionó la capacidad para monitorear las cargas y el voltaje de la batería. Los voltajes de sistema presentan siempre según las especificaciones, sin embargo, corrientes de carga de la batería ahora demostradas las corrientes de carga instantánea muy elevada, a veces por encima de 3A. Esta observación me llevó entonces a la teoría de que la corriente de carga excesiva causaba corriente de la batería que viaje circuito de protección.
Desde todos los intentos para corregir este problema a través de hardware añadido demostrado mínimamente eficaz que entonces decidí revisar mi software de control y encontró que agregando unos retrasos en lugares estratégicos en todo el sketch efectivamente minimiza el problema de desconexión de la batería.
En este momento, he llegado a un límite de espacio físico de la adición de los sensores de hardware más. El bosquejo actual de Arduino, escrito como en la actualidad, sólo proporciona para la visualización de las lecturas de salida de los sensores recién incorporados y no proporciona control de la planta con estas lecturas. Esto requerirá además, en la investigación de profundidad para lograr la meta final de una perca de mar completamente autónoma.