Sensor de movimiento en Orange pi y Raspberry Pi


Desde 2012 la Raspberry Pi ha ido creciendo de gran popularidad, estando hoy en día posicionada como una de las placas de desarrollo de referencia. Uno de sus rivales clásicos en los últimos tiempos están siendo las Orange Pi, una placa fabricada por Shenzhen Xunlong ,con un diseño similar pero basado en procesadores de Allwinne y con un precio bastante inferior a falta de 1 conector USB

Esta placa  de desarrollo  «low cost» es ademas abierta y hackeable compitiendo abiertamente con otras tantas existentes donde la mas destacable es también la Banana Pi , pretendiendo todas ellas competir con la Raspberry Pi.

Hablando de esta versión, la Orange Pi ,se vende en dos versiones, una básica de bajo coste y otra denominada Orange Pi Plus.

orange_pi

Como ejemplo de uso de GPIO ,vamos a conectar un sensor PIR HC-SR501  a una OrangePi, pero la idea y concepto es aplicable también a una Raspberry Pi utilizando por ejemplo la librería Python RPi.GPIO

 

hcsr501.PNG

 

 

El  modelo HC-SR501HC-SR501 es  un Sensor infrarrojo de bajo coste (menos de 2€  por modulo en Amazon) con placa de circuito de control donde se pueden ajustar la sensibilidad y el tiempo de retención gracias a dos resistencias ajustables que dispone en un lateral.

La gama de voltaje de trabajo es  DC 5V-20V  con un consumo de corriente de  menos de 60uA. La salida  es binaria digital  siendo el voltaje de salida de  3,3 V para un nivel alto o «1» logico  y  0V para el cero lógico (no detección de movimiento).

Lo primero que hacemos es conocer el pinout del HC-SR501, pero rápidamente al ver la serigrafía  de la placa, queda perfectamente claro :GND  para la masa , VCC para la alimentación (que tomaremos desde la Orange Pi ) y un pin de salida (OUT) que será el que nos indique si ha detectado algún movimiento.

Luego lleva un par de resistencia variables o potenciómetros que nos permiten ajustar los parámetros de sensibilidad y duración de la señal, es decir, durante cuanto tiempo vamos a querer que en pin OUT tener la salida informada.

sensor

 

El primer potenciómetro hacia la derecha sirve para ajustar la distancia de modo que el , rango de detección aumenta (unos 7 metros), por el contrario, la gama de detección disminuye (unos 3 metros).
El otro potenciómetro rotándolo a la derecha sirve para retrasar  el  retardo de sensor a  tiempos más largos (sobre 300s).Si se gira la contrario el retardo sera corto (sobre 5).

En cuanto a las conexiones del sensor a la placa no pueden ser mas sencillas:

  • El sensor HC-SR501 funciona a 5v, por lo buscamos los pines que nos proporcionan la alimentación ,los cuales  corresponden a los pines 4 y 6 de la referencia CONN de la Orange Pi.
  • El pin de salida del  HC-SR501 con el estado del sensor se puede  conectar por ejemplo  al puerto 7 de GPIO ( al conector número 7)

Primero y si no lo tenemos instalado,teniendo conectado la Orange pi  a Internet  via cable etherenet, debemos  instalar el acceso al repositorio de código  git  usando el siguiente comando:

orangepi@OrangePI:~$ sudo apt-get install git

Vamos a utilizar la librería en Python orangepiPCgpio_pyH3 para acceder los puerto de conexión GPIO’s. Ésta librería la podéis encontrar en el GitHub del usuario duxingkei33 seidno resumidamentes una adaptación de la librería pyA20 0.2.1 que se utiliza en la placa A20-OLinuXino-MICRO.

Vamos a clonar primero el repositorio:

git clone https://github.com/duxingkei33/orangepi_PC_gpio_pyH3.git

Y ahora para instalar ejecutamos:

cd orangepi_PC_gpio_pyH3
sudo python setup.py install

Una vez tenemos conectado nuestro sensor HC-SR501 a nuestra placa OrangePi, vamos a generar un pequeño script    de ejemplo para leer el valor del conector GPIO 7 tal y como lo veremos en el código el port.PA6:

from pyA20.gpio import gpio
from pyA20.gpio import port
from pyA20.gpio import connector

gpio.init() 

gpio.setcfg(port.PA6, gpio.INPUT) 

while True:
if gpio.input(port.PA6) == 1:
print «PA6/PIN 7 = 1»
else:
print «PA6/PIN 7 = 0»

 

El código es muy sencillo y pasamos a describir:

  • Mediante  gpio.init()  inicializamos  el modulo,acción que siempre haremos los  primero cuando usemos el Gpio.
  • La linea gpio.setcfg(port.PA6, gpio.INPUT) configura PA6 como entrada.Cómo información adicional, si miramos dentro del código de la librería orangepiPCgpio_pyH3 el fichero mapping.h tiene la relación entre PUERTO y CONECTOR. Por ejemplo, el  pin utilizado en el ejemplo lo encontraremos definido así («PA6» cómo 7): «PA6», SUNXI_GPA(6), 7 }.Como curiosidad  puede sorprender que el pinout del conector GPIO 7 corresponda al nombre del puerto PA6 . La librería pyA20 utiliza esta nomenclatura de puertos ya que la placa a la que está orientada originariamente (no ésta modificación/adaptación) tiene diferentes fuentes de GPIO’s y es una forma de darles un nombre único dentro de todas las conexiones.
  • Por ultimo tenemos un bucle while desde el que nunca saldemos y en el que constantemente se  esta mirando el estado del pin pintando en pantalla en función del estado, obteniendo un mensaje u otro.

Para ejecutar el script ,observe que la inicialización del módulo requiere root, por lo que el script de Python lo tenemos que ejecutar con sudo

El ejemplo es muy sencillo y únicamente lo que hace es leer el valor del sensor, que puede ser «0» (no detecta movimiento) o «1» (se detecta movimiento) y pintar en pantalla el resultado ,pero obviamente se puede mejorar  mucho mas , dentro del bucle while por ejemplo añadiendo código para enviar un correo al detectar movimiento o por ejemplo enviar el dato a un repositorio de IoT como Cosm.com . 

 

Fuente aqui

Dimensionamiento de baterias en embarcaciones electricas


Si tiene desventajas, a priori, también se adivinan los numerosos datos favorables o beneficios que pueden aportar los vehículos eléctricos  a corto plazo:son más agradables de conducir,  los motores eléctricos dan más par a bajo régimen de revoluciones y su comportamiento es más lineal,permiten una reducción de las emisiones contaminantes notable, su respuesta es más inmediata y generan menos ruido que un motor térmico. También puede citarse la posibilidad de recuperación de energía en las desaceleraciones  ¿pero como elegir  la  batería mas adecuada para  nuestro motor (intraborda o fueraborda ) electrico?

COMO ELEGIR LA BATERÍA NECESARIA PARA UN MOTOR ELÉCTRICO

Los acumuladores eléctricos almacenan energía eléctrica para utilizarla posteriormente transformando la energía química en energía eléctrica.
Las características de una batería son:

  •  El voltaje que suministra:se mide en Voltios y en las instalaciones de los barcos suele ser de 12 V. Para que una batería nos proporcione 12 V. ha de estar compuesta por seis elementos,y cada electrodo tiene que proporcionar un voltaje entre 1,8 y 2,2 voltios. La batería está descargada cuando esté en 10,8 voltios y a plena carga cuando esté en 13,2 voltios.
  • Su capacidad,es la cantidad de corriente que puede proporcionar, midiéndose en amperios/hora.

No se deben usar baterías de arranque de automóvil para alimentar un motor eléctrico porque las baterías de arranque están diseñadas para entregar la energía almacenada en breves descargas de gran amperaje que se realizan de manera muy espaciada. Si a una batería de arranque le solicitamos una entrega de por ejemplo, 25 A de manera continuada, esta batería no será capaz de entregarnos la energía que tiene acumulada (los amperios-hora) ya que esta entrega continuada la “asfixia” al cabo de un rato. Use baterías de ciclo profundo, a ser posible de tecnología AGM, diseñadas para este tipo de trabajo. Estas baterías sí serán capaces de entregar el amperaje solicitado durante el tiempo previsto y durarán muchos ciclos de carga-descarga.

Absorbent Glass Mat (AGM) es un tejido de fibra de vidrio absorbente que contiene el ácido de la batería. Las baterías de plomo tipo AGM son más seguras y ligeras y por tanto más avanzadas.
La tecnología AGM fue desarrollada en 1985 para los aviones militares que buscaban reducir el peso y aumentar la capacidad de carga de los aviones. En las baterías de tipo AGM el ácido sulfúrico de cada vaso es absorbido por una capa muy  delgada de fibra de vidrio comprimida con el aspecto de un fieltro, que asegura los problemas frente a posibles derrames de ácido en caso de rotura.  Son baterías mucho más seguras frente a vibraciones y posibles roturas, y por esta razón se suelen escoger en vehículos de competición ,para caravanas , para vehículos con función start-stopy  y por supuesto  también para usos náuticos.
Por esta razón las baterías AGM pueden ser transportadas de forma mucho más segura y sin restricciones por peligrosidad. Cada vaso puede se fabricado de forma rectangular o enrollados en forma cilíndrica.

agm

Las baterías AGM tienen una resistencia interna muy baja que las permite entregar corrientes muy altas y tienen además una vida útil bastante larga, incluso al someterlas a ciclos de descarga profundos. Las AGM son baterías selladas estancas sin mantenimiento, y como ya hemos comentado, más ligeras que las baterías de ácido-plomo normales.

Además se comportan bastante bien incluso con bajas temperaturas lo cual se agradece en invierno, y ofrecen una autodescarga reducida. Pero las ventajas de las AGM continúan frente a las normales pues admiten una recarga de hasta 5 veces más rápida, en caso naturalmente de que nuestro cargador entregue suficientes amperios.

El precio de este tipo de batería  es algo mas elevado que su homologas las de Plomo convencional  pero dese luego mucho mas asequibles a  igualdad capacidad  que las de Nq-cd o las de iones de Litio . Como ejemplo una de batería de 12V  y  100AH  del tipo AGM nos puede costar unos 200€

Es muy importante destacar que las baterías se pueden acoplar en serie o paralelo según necesitamos una mayor tensión o  capacidad que las ofrecidas por baterías estándar.

También  se pueden asociar  de forma conjunta en serie y en paralelo para obtener una determinada capacidad   y tensión fuera de  la «estándar»

En cualquier composición de baterías es muy importante tener en cuentas las siguientes consideraciones:

  • Todas las baterías usadas deberían ser similares en capacidad , tensión,modelo ,tamaño tipo y antigüedad (a ser posible todas nuevas)
  • Las conexiones deben ser  lo mas cortas posibles y de parecidas dimensiones entre todas las conexiones para asegurar que no haya asimetrias.
  • Debe mantenerse igualdad de longitud de cables
  • La sección de los cables hay que recordar que dependerá de la longitud del conductor y de la corriente máxima que debe soportar en DC
  • Para la unión de cables se deben usar  bornas o terminales ,las cuales  deben usarse especificas para uso marino  por el problema de la humedad
  • Las conexiones centrales deben apoyarse en regletas de conexiones dimensionadas para la corriente que van a soportar
  • Es muy conveniente un interruptor general de corte cerca de estas
  • Es muy interesante también usar con desconectadores rápidos que ante una emergencia nos permitan aislar una sección de baterías

baterias

En el ejemplo de la imagen superior ,como vemos,  tenemos dos asociaciones de 4 baterias de 12V en serie por ramal , que nos dan una salida de 12+12+12+12=48 voltios por ramal

Como  hay dos bloques de 48 V en paralelo, la capacidad total sera la suma de ambos bloques, Por ejemplo si cada batería es de 100AH y 12V , en conjunto esta asociación tendría una capacidad de 48V 200AH

 

En cuanto a la instalación del banco de baterías ,se suelen instalar en cajas cerradas pero con ventilación de persianas para que no entre el agua. Procuraremos no estibar objetos dentro de la caja de baterías y la mantendremos siempre limpias y secas. Esta caja estará firmemente sujeta para que no sufra desplazamientos con los movimientos del barco. Su instalación será lo más cerca posible del cuadro de distribución.

 

 

Muy sucintamente para calcular la  asociación de baterías que necesita puede seguir los dos siguientes pasos:

1. Calcule los amperios que consume su motor, con la siguiente fórmula:

Empuje en libras / Voltaje del motor x 12 = Amperios que consume.

Por ejemplo: 55 libras de empuje /12 Voltios x 12 = 55 Amperios 55 libras de empuje /24 Voltios x 12 = 27,5 Amperios 55 libras de empuje /36 Voltios x 12 = 18,3 Amperios

 Nota:Aunque tengamos un motor de 55 libras de empuje, probablemente no lo vamos a usar continuamente al 100% de potencia, por lo que deberemos estimar el % de potencia media usada.

2.  En función del número de horas seguidas que desea de autonomía, seleccione la batería necesaria. Por ejemplo: Con un motor que consume 55 Amperios, que usaremos a una media del 75% de su potencia, deseamos una autonomía de 3 horas Batería necesaria = consumo en amperios x % de potencia x horas de funcionamiento x 1,3 = 55 A x 0,75 x 3 h x 1,3 = 160,88 Ah.

 

Como seleccionar un cargador de baterías

 

Cargamos las baterías por medio de un cargador de baterías,(que puede ser automático), conectando el positivo del cargador con el positivo de la batería y el negativo con el negativo.

El cargador debería tener  un interruptor para abrir o cerrar el circuito ,un amperímetro para  medir la intensidad de la corriente,,un voltímetro que indique el voltaje de carga y un disyuntor que impide la descarga de la batería.

No use un cargador  económico ” de tensión constante pues su batería no se cargará al 100% y su vida se acortará (menos ciclos de carga-descarga).Lo recomendable sería usar  un cargador automático digital de tres fases.

Si decidimos montar el cargador  en la propia embarcación ,lo ideal es colocarlo en un lugar con ventilación y aireado puesto que para altas corrientes  de carga los cargadores suelen usar disipadores activos , muy   cerca del banco de baterías ( así nos ahorraremos sección de conductor)

Obviamente la entrada de ca  ira al cuadro de distribución de ca, el cual se alimentará normalmente de una conexión estanca abierta accesible por el exterior , para poder  conectarlo a la red general del puerto

 

cargador

 

Muy sucintamente para calcular su cargador de baterías que necesita puede seguir los tres siguientes pasos:

  • Determine cuántas baterías desea cargar simultáneamente.
  •  Sumar los amperios-hora de todas las baterías que desea cargar simultáneamente
  • Seleccione el cargador automático que cumpla sus requisitos, eligiendo en caso de necesitar una corriente no estándar,  el de corriente inmediatamente superior.

Ejemplos:

  • 1 batería de 100 Ah (C20h). Necesita un cargador a 12 V con una salida y una capacidad para 100 Ah..
  • 2 baterías de 132 Ah (C20h) cada una, conectadas en paralelo (el motor funciona a 12 V). Necesita un cargador a 12 V con dos salidas y una capacidad para 260 Ah. 
  • 2 baterías de 86 Ah (C20h) cada una, conectadas en serie (el motor funciona a 24 V). Puede usar o bien un cargador a 12 V con dos salidas y una capacidad para 172 Ah  o bien un cargador a 24 V con una salida o más y la misma capacidad de 182 Ah .

 

Resumidamente en el siguiente esquema podemos ver una configuración típica de una instalación de 48V para un uso marino  donde ademas se han incluido ademas delas barras generales , el interruptor de emergencia   y   dos fusibles para carga y de utilización:

INSTALACION COMPLETA