Recicle su smartphone como camara de seguridad


En este humilde blog ya hemos comentado en innumerables ocasiones que un smartphone es uno de los dispositivos más versátiles que podemos encontrar hoy en día sobre todo cuando queda en desuso porque hemos adquirido uno mas moderno  o le falla alguna carasterictica ( por ejemplo baja autonomia o pantalla con arañasos) asi   que lo idea seria   darle una segunda oportunidad aprovechando diferentes capacidad de  su terminal

Por ejemplo usando el sensor de proximidad puede usarse como alarma de puerta o ventana (gracias a la app Seguricasa) , usarse como reloj despertador avanzado  o bien gracias a la cámara usarlos como camara de seguidad

Veamos en este post algunas de las mejores aplicaciones dedicadas que encontramos actualmente para Android.

Alfred

Nunca ha sido más fácil disponer de nuestro propio sistema de videovigilancia pues solo necesitamos un par de smartphones conectados a Internet (incluso uno solo), una cuenta de correo electrónico y la instalación de alguna de las aplicaciones gratuitas disponibles.

Esta aplicación es una de las más descargadas(+ 5millones)   y a la vez /fáciles de usar. Solamente necesitamos una cuenta de Google y abrirla en los dos dispositivos. Podemos configurar la calidad de grabación y retransmisión y revisar todos los registros durante catorce días.

Entre la oferta existente de este tipo de aplicaciones de las tiendas oficiales, la que alcanza un mayor éxito de calificaciones y elevado número de usuarios es ‘Alfred’. Y es que, realmente tiene un gran número de funciones, es gratuita y está disponible para los dos grandes so  de  smartphone actuales

La instalación es realmente sencilla, solo requiere unos pocos minutos y está al alcance de cualquiera aunque no se considere usuario avanzado. El único requisito que encontramos es la necesidad de disponer de una cuenta gmail o Google, ya que la vinculación entre dispositivos se hace a través de esa cuenta. De este modo, la posibilidad de conectarse a nuestra cámara de videovigilancia y por tanto de nuestra privacidad, depende del uso de nuestra cuenta y del conocimiento de su valiosa contraseña.

Veamos algunas características, todas ellas disponibles en esta aplicación sin coste:

  •  Podemos utilizar como cámara cualquier teléfono inteligente tanto de Android como de iOS siempre que disponga de al menos una cámara en buen estado, lógicamente.
  •  Como visor, podemos optar por Android, iOS o Firefox en cualquier PC.
  •  Tanto el dispositivo que hace de cámara como el que utilizamos para ver las imágenes, deben permanecer conectados a Internet, ya sea por Wifi o por datos y en  ambos dispositivos deberemos haber registrado la aplicación con la misma cuenta de Google.
  •  El dispositivo que hace de cámara tiene una función de ahorro de batería que apaga la pantalla, pero aun así, para periodos muy largos, deberemos mantenerlo conectado a la alimentación.
  • Desde el visor tenemos multitud de posibilidades que actúan sobre la cámara, como encender la luz del flash, girar la imagen, intercambiar entre ambas cámaras posibles, activar un modo nocturno de alta sensibilidad, etc.
  • Podemos usar  detección de movimiento y el envío de notificaciones directamente al dispositivo visor adjuntandoa una foto del momento en que detectó el movimiento.
  • También es posible activar el audio para escuchar a distancia y hablar desde el visor para que suene por los altavoces de la cámara.
  • Podemos tomar fotos y vídeo de lo que captura la cámara en cualquier momento desde el visor.
  • El sistema permite tener varias cámaras a la vez las cuales pueden visualizarse desde un mismo visor.

Sin duda una interesante herramienta para mantener nuestra casa vigilada o para utilizarla como dispositivo vigila bebés, aunque sus usos pueden llegar a ser tan variados como lo sea nuestra imaginación.

AtHome

AtHome con mas de 1 millón de descargas  puede convertir  más de 10 millones de dispositivos obsoletos en nuevos sistemas, actuando como monitor de bebé, cámara para mascotas, cámaras niñera, cuidado de los ancianos etcetera de vigilancia de video. Todas las plataformas están soportadas, incluyendo PCs, smartphones y tablet PCs.

Cuenta con reconocimiento de imágenes con detección de movimiento  de modo que  recibirá una notificación con un GIF animado cuando detecta una persona, mucho más precisa que la detección de movimiento tradicionales  contribuyendo a no tener o más falsas alarmas debido a la tecnología avanzada de AI y el aprendizaje profundo, utilizado para detectar el movimiento provocado por los seres humanos a diferencia de las sombras, luces, etc.

Con la visión nocturna mejorada  en condiciones de baja iluminación si  activamos el modo “Visión nocturna” se obtienen una mucho clara y mayor imagen de vídeo. Ademas la  tecnología de reconocimiento de rostros ayuda distinguir si la persona que aparece en el viseo si es un familiares o intruso e informarle inmediatamente;

Utilizado junto con AtHome Video Streamer, podemos  mantener un ojo en nuestro hogar cuando usted estemos fuera y recibir alertas de inmediato en caso de cualquier incidente  gracias a video streaming con el potente cifrado y tecnología de la transferencia P2P protege su privacidad. Usted puede estar seguro – las cámaras están bien protegidas de accesos no autorizados!

Por si fuera poco  se puede  hablar por dos vías: permitiendo comunicarse con personas y animales utilizando el micrófono incorporado y el altavoz

Antes de instalar debemos preparar 2 dispositivos (ordenador o teléfono inteligente) antes de comenzar, después solo se necesitan tres pasos para la  instalación:

  • Paso 1: descargar la aplicación de captura de vídeo AtHome Video Streamer aplicación de GooglePlay e instalarlo en su dispositivo. Un único ID de conexión (también conocido como el CID) se le asignará al dispositivo tras el AtHome Video Streamer es la primera vez;
  • Paso 2: descargar e instalar la aplicación Visor cámara AtHome app en otro dispositivo que desea utilizar como un visor, abrir la aplicación, registrarse e iniciar sesión;
  • Paso 3: seleccione “añadir por CID” o “Por código QR” para añadir una cámara, estás listo para disfrutar de la transmisión en vivo!

Salient Eye

Con mas de un millón de descargas puede convertir un  smartphone android en un sistema de alarma de detector de movimiento utilizando la cámara del teléfono como sensor de movimiento y haciendo sonar una alarma cuando se produce un robo e inmediatamente  mandando fotos vía email y tambien  por  SMS, lo cual no es nada frecuente en este tipo de aplicaciones.

Además, Salient Eye nos facilita un enlace para acceder al contenido que se haya grabado durante ese período de tiempo.

Algunas de sus características mas notables:

  •  Captura imágenes con sensor de movimiento
  •  Hace sonar la alarma (opcional)
  • Alertas SMS y correo electrónico (opcionales)
  • Muy fácil de instalar y muy fácil de usar
  • Sigue trabajando cuando se apaga la pantalla
  • Funciona hasta 10 horas sin ninguna fuente de alimentación (con la batería)

Además también permite activar una alarma que anuncie a un hipotético intruso que ha sido detectado.

Presence

Personas en todo el mundo están encantadas de volver a su viejos  smartphones y tablets volverlos  a ver trabajar gracias a esta app  descargada mas de 100.000 veces  que ofrece  VIDEOSEGURIDAD gratis.

Esta aplicación  ofrece hasta ofrece hasta 50 MB de almacenamiento cifrado en la nube para almacenar todos los vídeos grabados (se puede actualizar  a Pro a dentro de la aplicación de funciones de detección de movimiento avanzada y obtener 5GB de almacenamiento para grabaciones más largas y de mayor resolución de vídeo)

Gracias a esta app es muy facil añadir sensores inalámbricos compatibles con presencia en su casa y disfrutar de este avanzado sistema de seguridad para el hogar

 

Captura de pantalla

Esta app ofrece algunas algunas características un tanto especiales:

  • Monitor con presencia ;permite  hacer una gran  webcam , vigilabebés, cam del animal doméstico, nanny cam, cam de vigilancia o sistema de seguridad de bricolaje. En casa, en la cocina, el garaje, el vivero, en su oficina, o dondequiera – permite a usted sabe lo que sucede cuando te has ido. Obtener movimiento alertas de vídeo detección, ve lo que está sucediendo en tiempo real y mucho más.
  • Alerta con presencia;la cámara de  viejo smartphone o la tableta sigue siendo increíblemente valiosa.  Habilitando detección de movimiento de presencia para recibir gratis alertas de Video de presencia – ver y oír lo que sucedió unos segundos hace si se detecta movimiento por el smartphone o tablet que has colocado en casa funcionando presencia. Se le notificará en el dispositivo con usted si se detecta un intruso, cuando los niños llegan a casa con seguridad, o lo que te hace sentir más informada y segura.
  • Control con presencia:usted puede comprar una variedad de sensores Wi-Fi conectado compatible con presencia para proteger su hogar, incluyendo puertas y ventanas sensores de entrada, movimiento detectores de agua sensores de fuga, sensores de temperatura y humedad, sensores de tacto y mucho más. Puede controlar aparatos eléctricos en casa remotamente con el enchufe elegante presencia, demasiado. Dispositivos y sensores de presencia-compatible son asequibles e instalación en cuestión de minutos.
  • Reloj con presencia :esta appa apoya espectadores simultánea conexión a una sola cámara, para que  cualquier persona que usted designe pueden ver el perro o los niños al mismo tiempo desde dos diferentes dispositivos y ubicaciones. Esta app pues convierte smartphones en cámaras automáticas de Twitter para tuitear en vivo capacidades y permite iOS primeros del mundo y smartphone Android seguridad cámara robot, presencia 360. Más información sobre él en: https://www.indiegogo.com/projects/presence-360-smartphone-security-camera-robot-99-app#/
  •  Alexa Amazon: esta app le permite supervisar y controlar su hogar con su voz. Usted puede solicitar actualizaciones de estado sobre la presencia de su casa dispositivos conexión y envían comandos a sus sensores de seguridad, enchufes inteligentes, luces o incluso el termostato conectado. Decir “Alexa, Dile presencia para armar mi home” para activar su sistema de seguridad antes de salir de la casa. ¡Por supuesto, es gratis!

 

 

Manything

Manything significa monitor Cualquier cosa … y eso es exactamente lo que puede hacer esta aplicación permitiendo darle  una nueva oportunidad de vida a un teléfono inteligente o tableta pues  sólo tiene que descargar la aplicación en su dispositivo  para convertirlo en una cámara de seguridad para  el hogar instantánea

Se ha descargado ya mas de 100.000 veces y su  uso es muy sencillo : basta con instalar Manything en su dispositivo desde Google Play,, seleccionar el modo “cámara” y realice el registro de esta . Entonces descargue Manything a su teléfono principal o tableta que lleve contigo y seleccione “Visor”. Es así de simple, ahora puede ver su cámara desde cualquier lugar!

Esta aplicación también detecta movimiento y además, sonidos. Nos ofrece una gráfica ordenada con todos los picos de actividad y ruido registrados durante el período de tiempo que seleccionemos. Podemos visualizar en directo lo que grabe a cámara desde la app en nuestro móvil o desde el navegador web en la versión para escritorio.

Anuncios

Como instalar AirMirror sin ser Root


Airdroid   es una potente herramienta que  permite controlar un  terminal Android desde otro terminal Android  , permitiendo  hacer cosas muy interesantes como  por ejemplo transferir archivos entre estos   o usar uno de los terminales como cámara de seguridad . Este programa  ,que por cierto también esta disponible  para PC y Mac  , es   complementado por una nueva aplicación con la que acceder de móvil a móvil: AirMirror .Por cierto lo de Mirror  o e “espejo” viene  porque a distancia  Air  ( por el aire)  tenemos la posibilidad de gestionar otro móvil como si lo estuviera tocando.

Si  bien AirMirror  es una utilidad muy interesante , hay un pequeño problema :se requería hasta hace poco que el terminal  estuviese rooteado ,pero afortunadamente desde la versión v3.1.6 desde AirDroid de Android, AirDroid Mac v3.2.1, v3.2.2 AirDroid para Windows  o  Android  ya se puede  utlizar AirMirror sin  tener  permisos de   root (siempre que los  terminales Android sean superiores a 4.1).

 

AirMirror con terminales rooteados

Para los afortunados  usuarios que tengan permisos de  root con Android 4.1 en adelante pueden  controlar su móvil remotamente a través de AirMirror  fácilmente  pero para ellos  necesitara autorizar AirDroid.

En primer lugar  iniciar AirMirror en el dispositivo que desea controlar  y después  haga clic en el icono de AirDroid Windows/Mac, pulsar GRANT cuando aparezca  la  ventana que autorizan en su Android.

Otras  opción es ir a la aplicación de gestión de permiso de root (como SuperSU) y  conceder manualmente AirDroid el permiso necesitado.

Para que no sea necesario tener que conceder el  permiso para AirDroid cada vez después de actualizar / reinstalar AirDroid, simplemente ir a configuración de la aplicación de gestión de permiso de root (como SuperSU) y  pulsar la opción de re-autenticación para desactivarla

AirMirror en terminales que no dispongan  permisos de  root

También es  fácil usar Airmirror en terminales que no  son root,para ello haga  clic AirMirror  pulse a la izquierda  en el icono  no-root

Ahora siga las instrucciones para conectar los dispositivos al ordenador  a través de USB cable y asegúrese de que modo de conexión es MTP y habilitar la “depuración USB”

Si no ve un pop up en el terminal para habilitar la depuración USB, vaya a Setting( configuración) > “About phone”(teléfono) > “Build number”    y pulse sobre  este  al menos 7 veces para activar “Opciones del desarrollador”.


Ahora  vuelva hacia atras   y vera  “Opciones de desarrollador” > alli Activar “depuración USB”.

En el caso de que su  teléfono sea Xiaomi, también debería permitir USB debugging (security settings) es decir configuración de seguridad  para depuración USB   para que pueda controlar su teléfono desde el PC.


Después de terminar este proceso , conecte el dispositivo a su ordenador y haga clic en configuración completada.

¡Ahora ya debería de poder e utilizar AirMirror para acceder a sus dispositivos en cualquier momento y en cualquier lugar  !

Lamentablemente  una  pega importante de este proceso es que necesitara restablecer la depuración USB, si reinicia el dispositivo.

 

Por cierto si el dispositivo tiene permisos de  root  pero el permiso fue denegado para AirDroid, por favor, trate de usar AirMirror con no-root   como hemos comentado mas arriba…

 

 

Mas información  y ayuda  en http://forums.airdroid.com/

Controle su Roomba con Arduino y Android


 

iRobot Roomba Create2 es una a  plataforma grande y muy asequible para el desarrollo de la robótica, costando alrededor de US$ 200 permitiendo  una variedad de métodos de programación. Como  comienzo mjrovi usó  un Arduino y una aplicación Android para mover el robot  por puerto serie  consiguiendo asi controlar  sus motores, LEDS y sonido.

Como uno de los ganadores de 2016 del concurso de robótica   en Instructables, mjrovi recibió como premio un iRobot Roomba Create2.

 

 

La Roomba es un robot de impulsión diferenciada, con 2 ruedas motrices y una rueda  central  guía. Su velocidad va hasta 500 mm/s y puede ser mandado a ir hacia arriba o hacia atrás.
Para señalización, contamos con cuatro 7 segmentos display y 5 LEDs :

  • Limpiar
  • Punto
  • Muelle
  • ADVERTENCIA/Check
  • Suciedad/escombros

Como sensores internos, tenemos entre otros:

  • Detector de acantilado (4 en el frente)
  • Detectores Bump (frente 2)
  • Codificadores de rueda

Para la programación, el documento: iRobot® Create® 2 abierto interfaz (OI) debe ser utilizado.El Roomba puede ser programado en 3 modos:

  1. Modo pasivo:Al enviar el comando de Start o cualquiera de los comandos de modo de limpieza (por ejemplo, punto limpio, muelle buscar), la OI entra en modo pasivo. Cuando la OI está en modo pasivo, puede solicitar y recibir datos de los sensores usando cualquiera de los comandos del sensor, pero no puede cambiar los parámetros de comando actuales para los actuadores (motores, altavoces, luces, controladores de lado de baja, salidas digitales) a otra cosa.
  2. Modo seguro :Le da un control completo de Roomba, con excepción de las siguientes condiciones relacionadas con la seguridad:
    Cargador conectado y alimentado:detección de una caída de rueda (en cualquier rueda),detección de un acantilado mientras se mueve hacia adelante (o hacia atrás con un pequeño radio de torneado, menos de un radio de robot) o si ocurre una de las condiciones relacionadas con la seguridad mientras que el OI es en modo seguro, Roomba detiene todos los motores y vuelve al modo pasivo.
  3. Modo completo:Le da un control completo sobre Roomba, todos de sus actuadores y todas las condiciones relacionadas con la seguridad que están restringidas cuando la OI en modo seguro, como el modo completo se apaga el acantilado, caída de rueda y características de seguridad cargador interno.

Comunicaciones

Para  programar la Romba  la lista de  materiales  usada es la siguiente:

  • iRobot Create2
  • Arduino UNO
  • Módulo Bluetooth HC-06
  • Pulsador

Para la comunicación entre la Roomba y Arduino, se utilizará el puerto Serial. Por defecto, Roomba comunica a 115.200 baudios, pero para comunicarse con Arduino, se cambiará a 19.200.

Hay 2 formas de establecer la tasa de baudios de Roomba:

  1. Mientras que apagar Roomba, continúan mantenga pulsado el botón de encendido o limpiar después de que la luz se ha apagado. Después de unos 10 segundos, Roomba juega una melodía descendente de las echadas. Roomba se comunicará a 19.200 baudios hasta que el procesador pierde energía de la batería o la tasa de baudios se modifica explícitamente a través de la OI.
  2. Utilizar el pin de cambio de tasa de baudios (pin 5 del conector mini-DIN) para cambiar la velocidad en baudios de Roomba. Después de encender la Roomba, esperar 2 segundos y luego pulso el cambio de la tasa de baudios baja tres veces. Cada impulso debe durar entre 50 y 500 milisegundos. Roomba se comunicará a 19200 baudios hasta que el procesador pierde energía de la batería o la tasa de baudios se modifica explícitamente a través de la OI.

 

El diagrama de arriba muestra cómo la Arduino debe conectarse al conector mini-DIN de Roomba

 

 

Lo primero creo que debe hacerse cuando un Roomba de programación es “Despertar” el robot y  Definir el modo (segura o completa)

Nosotros podemos  hacer  un “wake-up”, enviar un poco de pulso al pin mini-DIN 5 (detección de dispositivo de entrada) como se muestra en la siguiente función:
void wakeUp (void)
{
setWarningLED(ON);
digitalWrite(ddPin, HIGH);
delay(100);
digitalWrite(ddPin, LOW);
delay(500);
digitalWrite(ddPin, HIGH);
delay(2000);
}

Para empezar a Roomba deberán enviarse 2 códigos de siempre: «START» [128] y el modo, en nuestro caso “Modo seguro” [131]. Si usted quiere un “modo completo”, debe enviarse en su lugar el código [132].
void startSafe()
{
Roomba.write(128); //Start
Roomba.write(131); //Safe mode
delay(1000);
}

 

Como se describe en la introducción, el Roomba tiene 5 LEDs:

  • Energía/limpiar (bicolor rojo/verde e intensidad controladas)
  • Punto (verde, intensidad fija)
  • Muelle (verde, intensidad fija)
  • ADVERTENCIA/Check (naranja, intensidad fija)
  • Suciedad/escombros (azul, fija la intensidad)

 

Control de leds

Todos los LEDs pueden ser ordenados mediante código [139]
Para controlar el LED de encendido, debe enviar dos bytes de datos a Roomba: “color” y la “intensidad”.
Color:

  • Verde = 0
  • Naranja = 128
  • rojo = 255

Intensidad:

  • Bajo = 0
  • Max = 255

La función setPowerLED (colores bytes, setIntensity bytes) lo hace:

void setPowerLED(byte setColor, byte setIntensity)
{
color = setColor;
intensity = setIntensity;
Roomba.write(139);
Roomba.write((byte)0x00);
Roomba.write((byte)color);
Roomba.write((byte)intensity);
}

Por ejemplo, para encender el LED de POWER de color naranja en la mitad de su intensidad, usted puede llamar a la función como bramido:setPowerLED (128, 128);

Encender los 4 LEDs restantes, deberán utilizarse las siguientes funciones:
setDebrisLED(ON);
setDockLED(ON);
setSpotLED(ON);
setWarningLED(ON);

Todas las funciones anteriores tiene un código similar a este:
void setDebrisLED(bool enable)
{
debrisLED = enable;
Roomba.write(139);
Roomba.write((debrisLED ? 1 : 0) + (spotLED ? 2 : 0) + (dockLED ? 4 : 0) + (warningLED ? 8 : 0));
Roomba.write((byte)color);
Roomba.write((byte)intensity);
}

Básicamente, la diferencia será la línea: debrisLED = habilitar;  debe modificarse permitiendo a cada uno de los otros LEDs (spotLED, dockLED, warningLED).

 

Envío de mensajes

Roomba tiene cuatro 4 displays de 7 segmentos que puede utilizar para enviar mensajes de dos maneras::
[163] código: Dígitos LED crudo (numérico)
[164] código: Dígitos LED de ASCII (aproximación de letras y códigos especiales)
Para mostrar números  debe enviar el código [163], siguiendo las 4 digitas a mostrar. La función: setDigitLEDs (bytes digit1 digit2 bytes, digit3 bytes, digit4 bytes) lo hace para usted:

void setDigitLEDs(byte digit1, byte digit2, byte digit3, byte digit4)
{
Roomba.write(163);
Roomba.write(digit1);
Roomba.write(digit2);
Roomba.write(digit3);
Roomba.write(digit4);
}

Por ejemplo, para mostrar “1, 2, 3, 4”, debe llamar a la función: setDigitLEDs (1, 2, 3, 4);

Con el código [164], es posible enviar aproximación de ASCII.

La función setDigitLEDFromASCII (dígitos de byte, char letra) hace esto para nosotros:
void setDigitLEDFromASCII(byte digit, char letter)
{
switch (digit){
case 1:
digit1 = letter;
break;
case 2:
digit2 = letter;
break;
case 3:
digit3 = letter;
break;
case 4:
digit4 = letter;
break;
}
Roomba.write(164);
Roomba.write(digit1);
Roomba.write(digit2);
Roomba.write(digit3);
Roomba.write(digit4);
}

Para simplificar, crear una nueva función para enviar los 4 dígitos al mismo tiempo:
void writeLEDs (char a, char b, char c, char d)
{
setDigitLEDFromASCII(1, a);
setDigitLEDFromASCII(2, b);
setDigitLEDFromASCII(3, c);
setDigitLEDFromASCII(4, d);
}

Por ejemplo, para mostrar “STOP”, usted debe llamar a la función: writeLEDs (‘s’, ‘ t ‘, ‘ o ‘, ‘p’);

Mover la  Roomba

Para la movilidad, Roomba tiene 2 motores independientes que pueden programarse para ejecutar 500mm/s. Hay varios comandos que pueden utilizarse para controlar el robot. Los principales son:

  • Código [137]: Unidad == > debe enviar +-velocidad en mm/s y +-radio en mm
  • Codigo [145] de código: Impulsión directa == > debe enviar izquierda velocidad en mm/s (+ para adelante y para atrás)
  • Código [146]: Unidad PWM == > debe enviar +-datos PWM para la izquierda y derecha las ruedas

 

A continuación el código para estas 3 opciones:

void drive(int velocity, int radius)
{
clamp(velocity, -500, 500); //def max and min velocity in mm/s
clamp(radius, -2000, 2000); //def max and min radius in mm

Roomba.write(137);
Roomba.write(velocity >> 8);
Roomba.write(velocity);
Roomba.write(radius >> 8);
Roomba.write(radius);
}

//—————————————————————

void driveWheels(int right, int left)
{
clamp(right, -500, 500);
clamp(left, -500, 500);

Roomba.write(145);
Roomba.write(right >> 8);
Roomba.write(right);
Roomba.write(left >> 8);
Roomba.write(left);
}

//—————————————————————
void driveWheelsPWM(int rightPWM, int leftPWM)
{
clamp(rightPWM, -255, 255);
clamp(leftPWM, -255, 255);

Roomba.write(146);
Roomba.write(rightPWM >> 8);
Roomba.write(rightPWM);
Roomba.write(leftPWM >> 8);
Roomba.write(leftPWM);
}

Tenga en cuenta que la función de “fijar” define los valores máximos y mínimos que se permitieron la entrada. Esta función se define en el archivo rombaDefines.h:

#define abrazadera (valor, min, max) (valor < min? min: valor > max? max: valor)
Utilizando el código anterior, se pueden crear funciones más simples para Roomba alrededor de:
/—————————————————————
void turnCW(unsigned short velocity, unsigned short degrees)
{
drive(velocity, -1);
clamp(velocity, 0, 500);
delay(6600);
drive(0,0);
}

//—————————————————————
void turnCCW(unsigned short velocity, unsigned short degrees)
{
drive(velocity, 1);
clamp(velocity, 0, 500);
delay(6600);
drive(0,0);
}

//—————————————————————
void driveStop(void)
{
drive(0,0);
}

//—————————————————————
void driveLeft(int left)
{
driveWheels(left, 0);
}

//—————————————————————
void driveRight(int right)
{
driveWheels(0, right);
}

Tenga en cuenta que para girar en ángulo, debe calcularse el argumento de “retraso” específicamente para una velocidad dada

A continuación algunos ejemplos que pueden utilizar para probar los motores:

turnCW (40, 180); girar 180 grados hacia la derecha y parada
driveWheels (20, -20); vuelta
driveLeft(20); girar a la izquierda

Para las pruebas de los motores, es bueno añadir un pulsador externo (en mi caso conectado al Arduino pin 12), para que puedan descargar el código de Arduino, a partir de la Roomba, pero parando la ejecución hasta que se pulsa la tecla. Generalmente, para los motores de prueba lo puedes hacer en la parte de configuración del código.

Como ejemplo, consulte el código de Arduino simple abajo (nota que el código usa funciones y definiciones desarrollaron antes):

#include “roombaDefines.h”
#include

// Roomba Create2 connection
int rxPin=10;
int txPin=11;
SoftwareSerial Roomba(rxPin,txPin);

//———————————————
void setup()
{
Roomba.begin(19200);

pinMode(ddPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP); // connected to Arduino pin 12 and used for “starting”

delay(2000);

wakeUp (); // Wake-up Roomba
startSafe(); // Start Roomba in Safe Mode

while (digitalRead(buttonPin)) { } // wait button to be pressed to continous run code

turnCW (40, 180); //test Roomba spin clock-wise 180 degrees and stop
}

//———————————————
void loop()
{

}

 

Controlar la Roomba a través de Bluetooth

Para controlar  Roomba de modo inalambrico   vamos a instalar un módulo Bluetooth (HC-06) a nuestro Arduino. El diagrama de arriba muestra cómo hacerlo. Suele ser el HC-06 settle up de fábrica con una velocidad de 9.600. Es importante cambiarlo a 19.200 para ser compatible con la velocidad de la comunicación de Arduino-Roomba. Usted puede hacer que el envío un comando AT para el módulo (AT + BAUD5 donde “5” es el código de 19.200).

Para controlar la Roomba, utilizaremos una aplicación genérica que fue desarrollada por jrovai   para el control de robots móviles, con el MIT AppInventor 2: “MJRoBot BT Remote Control”. La aplicación puede descargarse gratuitamente de la tienda de Google a través del enlace: aplicación: MJRoBot BT Remote Control.

La aplicación tiene una interfaz sencilla, lo que le permite enviar comandos al módulo de BT en ambos, modo de texto o directamente a través de botones preprogramados (cada vez que se pulsa un botón, un carácter se envía):

  • w: hacia adeñante
  • S: hacia atras
  • d: derecho
  • a: izquierda
  • f: parada
  • p: ON / OFF (no usado en esta primera parte)
  • m: manual / automático (se utiliza para reiniciar Roomba si un obstáculo como un acantilado se encuentra en modo seguro)
  • +: Velocidad +
  • -: Velocidad –

También puede enviar otros comandos como texto si es necesario. También hay una ventana de texto para los mensajes recibidos desde el módulo de BT. Esta característica es muy importante durante la fase de prueba, puede ser utilizado en la misma forma que el “Serial Monitor”.

El loop() parte del código será “escuchando” el dispositivo bluetooth y dependiendo del comando recibido, tomar una acción:

void loop()
{
checkBTcmd(); // verify if a comand is received from BT remote control
manualCmd ();
}
La función checkBTcmd() se muestra a continuación:

void checkBTcmd() // verify if a command is received from BT remote control
{
if (BT1.available())
{
command = BT1.read();
BT1.flush();
}
}
Una vez que se recibe un comando, la función manualCmd() tomará la acción apropiada:
void manualCmd()
{
switch (command)
{

case ‘m’:
startSafe();
Serial.print(“Roomba in Safe mode”);
BT1.print(“Roomba BT Ctrl OK – Safe mode”);
BT1.println(‘\n’);
command = ‘f’;
playSound (3);
break;

case ‘f’:
driveStop(); //turn off both motors
writeLEDs (‘s’, ‘t’, ‘o’, ‘p’);
state = command;
break;

case ‘w’:
drive (motorSpeed, 0);
writeLEDs (‘ ‘, ‘g’, ‘o’, ‘ ‘);
state = command;
break;

case ‘d’:
driveRight(motorSpeed);
writeLEDs (‘r’, ‘i’, ‘g’, ‘h’);
break;

case ‘a’:
driveLeft(motorSpeed);
writeLEDs (‘l’, ‘e’, ‘f’, ‘t’);
break;

case ‘s’:
drive (-motorSpeed, 0);
writeLEDs (‘b’, ‘a’, ‘c’, ‘k’);
state = command;
break;

case ‘+’:
if (state == ‘w’)
{
motorSpeed = motorSpeed + 10;
if (motorSpeed > MAX_SPEED)
{
motorSpeed = MAX_SPEED;
}
command = ‘w’;
} else {command = state;}
break;

case ‘-‘:

if (state == ‘w’)
{
motorSpeed = motorSpeed – 10;
}
if (motorSpeed < MIN_SPEED )

{ motorSpeed = MIN_SPEED; }

Serial.println(motorSpeed); command = state; break; } }

 

 

 

El código de Arduino completo utilizado en documentos aquí relacionados se puede encontrar en GITHUB en https://github.com/Mjrovai/Roomba_BT_Ctrl

Varias de las funciones que   el autor  ha creado en su  programa se basaron en la biblioteca de crear 2 desarrollada por Dom Amato. Puede descargar la librería completa en‎: https://github.com/brinnLabs/Create2.

Transcripcion de ficheros de audio


Puede parecer algo anacrónico, pero  lo cierto es que probablemente el teclado y ratón tal como los conocemos  hoy en día tenga  sus días contados   gracias al espectacular avance  sufrido estos años   en apartado de  reconocimiento de voz   usando redes neuronales  claramente  propiciado  por en las ingentes subida de  capacidades de computo gracias al  Cloud  Commputing  ,el Big Data y el aprendizaje automático

Veamos algunas soluciones de reconocimiento de voz  liderado por grandes proveedores como pueden ser Google o IBM

speech-api-lead

Google Cloud Speech

En efecto desde Google proponen la API Speech de Google Cloud , la cual  permite que los desarrolladores conviertan audio en texto aplicando potentes modelos de redes neuronales en una API fácil de usar. La API Speech reconoce más de 80 idiomas y sus variantes para gestionar una clientela internacional. Asimismo, se puede filtrar el contenido inapropiado en los resultados de texto.

La API Speech de Cloud se tarifica por intervalos de 15 segundos de audio procesados después de los 60 primeros minutos, que son gratuitos.

USO MENSUAL PRECIO POR CADA 15 SEGUNDOS*
Hasta 60 minutos Gratuito
61 – 1.000.000 de minutos* 0,006 $

*Este precio es válido para aplicaciones de sistemas personales (por ejemplo, teléfonos, tablets, portátiles y ordenadores).  El uso mensual está limitado a un millón de minutos.

Se puede transcribir el texto que los usuarios dictan al micrófono de una aplicación, habilitar el control por voz o transcribir archivos de audio, entre muchas otras funciones.

La API Speech puede transmitir resultados de texto conforme vaya reconociendo el audio, de forma que el texto reconocido aparece inmediatamente mientras la persona habla  asi que consigue resultados de texto en tiempo real

De igual modo, la API puede reconocer el texto a partir del audio almacenado en un archivo pero solo si se tiene cuenta en Google Cloud.

Como   “truco” casero para  probar   la funcionalidad del API se  puede inyectar  el audio  ya grabado desde un dispositivo externo  por  medio de un cable de audio que lo  introduciría en el pc  seleccionando como dispositivo grabador la entrada de audio :debería funcionar exactamente igual que si hablamos por un micrófono

En el caso de que este validado contra Google  y  tenga cuenta en Google Cloud este paso se puede obviar porque se pueden subir directamente los ficheros que deseamos transcribir mediante la opción File Upload  teniendo en cuenta la limitación de 60 minutos en caso de no querer pasar por caja

Si quiere probar esta funcionalidad esta es la url : https://cloud.google.com/speech-to-text/

 

Como no podía ser de otra manera, también  es posible reconocer el audio subido en la solicitud e integrarlo en su almacenamiento de audio de Google Cloud Storage. 

Gracias a  la tecnología del aprendizaje automático ,se aplican los algoritmos más avanzados de redes neuronales del aprendizaje profundo al audio de sus ficheros  para conseguir un reconocimiento de voz de máxima precisión. Mencionar que como todos los  sistemas de aprendizaje con redes neuronales la precisión de la API Speech mejora con el tiempo, conforme perfeccionan la tecnología interna de reconocimiento de voz que usa los productos de Google.

No se necesitan pues  sistemas avanzados de procesamiento de señales ni reducción de ruido antes de enviar el audio a la API Speech. El servicio es capaz de procesar audio ruidoso procedente de diversos entornos de forma satisfactoria.

El reconocimiento de voz se puede adaptar al contexto suministrando un conjunto independiente de palabras clave con cada llamada a la API, lo que resulta especialmente útil para las situaciones de control de dispositivos y aplicaciones.

La API Speech es compatible con cualquier dispositivo que pueda enviar solicitudes REST o gRPC, incluidos teléfonos, ordenadores, tablets y dispositivos con Internet de las Cosas (por ejemplo, coches, televisores o altavoces).

CARACTERÍSTICAS DE LA API SPEECH

Conversión de voz en texto gracias al aprendizaje automático

El reconocimiento automático de voz (ASR) basado en redes neuronales de aprendizaje profundo dota a las   aplicaciones , la funcionalidad  de búsqueda por voz o transcripción de voz.Reconoce más de 80 idiomas y variantes, con un amplio vocabulario proporcionando resultados de reconocimiento mientras los usuarios siguen hablando.
Es posible personalizar el reconocimiento de voz según un contexto específico suministrando un conjunto de palabras y frases que tienen muchas probabilidades de aparecer. Esto resulta especialmente útil para añadir palabras y nombres personalizados al vocabulario, así como en situaciones de control por voz.
El sonido puede proceder del micrófono de una aplicación o de un archivo de audio grabado previamente. Se admiten diversas codificaciones de audio, como FLAC, AMR, PCMU y Linear-16.
Es capaz de procesar audio de diversos entornos ruidosos sin necesidad de reducción de ruido adicional así que puede filtrar contenido inapropiado en los resultados de texto para algunos idiomas.
El  API como vemos esta integrada:los archivos de audio se pueden subir en la solicitud o integrar en Google Cloud Storage.

Transcripción de archivos de audio cortos

Es muy sencillo transcribir un archivo de audio corto a texto utilizando el reconocimiento de voz sincrónico.

El reconocimiento de voz síncrona devuelve el texto reconocido para audio corto (menos de ~ 1 minuto) en la respuesta tan pronto como se procese(para procesar una solicitud de reconocimiento de voz para audio largo, use el Reconocimiento de voz asincrónico ).

El contenido de audio se puede enviar directamente a Cloud Speech-to-Text, o puede procesar contenido de audio que ya reside en Google Cloud Storage.

Speech-to-Text v1 se lanzó oficialmente y, en general, está disponible desde el extremo https://speech.googleapis.com/v1/speech . Las bibliotecas de cliente se lanzan como alfa y es probable que se modifiquen de formas incompatibles hacia atrás. Las bibliotecas del cliente actualmente no se recomiendan para uso de producción.

Estas muestras requieren que haya configurado gcloud y haya creado y activado una cuenta de servicio.

Realización de reconocimiento de voz síncrono en un archivo local

Aquí hay un ejemplo de cómo realizar el reconocimiento de voz sincrónico en un archivo de audio local mediantes comados de GCLOUD

Consulte el comando de recognize para obtener detalles completos.Para realizar el reconocimiento de voz en un archivo local, use la herramienta de línea de comandos de gcloud , pasando la ruta de archivo local del archivo para realizar el reconocimiento de voz.

 gcloud ml speech reconoce CAMINO-AL-LOCAL-FILE --language-code = 'en-US'

Si la solicitud es exitosa, el servidor devuelve una respuesta en formato JSON:

{
  "results": [
    {
      "alternatives": [
        {
          "confidence": 0.9840146,
          "transcript": "how old is the Brooklyn Bridge"
        }
      ]
    }
  ]
}

Realización de reconocimiento de voz síncrono en un archivo remoto

Para su comodidad, la API de voz a texto puede realizar el reconocimiento de voz sincrónico directamente en un archivo de audio ubicado en Google Cloud Storage, sin la necesidad de enviar el contenido del archivo de audio en el cuerpo de su solicitud.

Aquí hay un ejemplo de cómo realizar el reconocimiento de voz sincrónico en un archivo ubicado en Cloud Storage  usando comandos  GCLOUD

Consulte el comando de recognize para obtener detalles completos.Para realizar el reconocimiento de voz en un archivo local, use la herramienta de línea de comandos de gcloud , pasando la ruta de archivo local del archivo para realizar el reconocimiento de voz.

 gcloud ml speech reconoce 'gs: //cloud-samples-tests/speech/brooklyn.flac' \
 --language-code = 'en-US'

Si la solicitud es exitosa, el servidor devuelve una respuesta en formato JSON:

{
  "results": [
    {
      "alternatives": [
        {
          "confidence": 0.9840146,
          "transcript": "how old is the Brooklyn Bridge"
        }
      ]
    }
  ]
}

Mas  informacion en https://cloud.google.com/speech-to-text/docs/sync-recognize?hl=es#speech-sync-recognize-gcloud

IBM

También esta disponible para testeo  Watson de IBM, que permite  dictado a texto

El servicio IBM Watson Speech to Text utiliza capacidades de reconocimiento de voz para convertir el árabe, el inglés, el español, el francés, el portugués de Brasil, el japonés y el mandarín en texto.Este sistema por el momento se usa o para fines de demostración y no está destinado a procesar datos personales ,así  que no se deben ingresar datos personales en este sistema, ya que puede no tener los controles necesarios para cumplir con los requisitos del Reglamento general de protección de datos (UE) 2016/679.

Lo mas destacable DE Watson es asimismo la capacidad de transcribir audio done se puede usa su micrófono para grabar audio o cargar audio pregrabado (.mp3, .mpeg, .wav, .flac o .opus solamente).

Incluso puede reproduzca uno de los archivos de audio de muestra para probar el servicio , ahora eso si los archivos de audio de muestra de banda ancha son en inglés de EE. UU y están cubiertos por la licencia de Creative Commons.

El resultado devuelto incluye el texto reconocido, las alternativas de palabras y las palabras clave moteadas. Algunos modelos pueden detectar múltiples altavoces; esto puede ralentizar el rendimiento.

A continuación esta es la url para probar el servicio en modo  demo: https://speech-to-text-demo.ng.bluemix.net/

 

En teoría los primeros 1000 minutos al mes son gratis en el servicio estándar,   así que el limite es muy superior de uso gratuito al de Google .

¿Le parece mejor opción la de IBM  que la de Google?¿Conoce algún otro servicio gratuito que podamos usar desde nuestras apps? Sin duda  la carrera por copar este mercado no acaba mas que empezar

 

Promocione gratuitamente su app movil


La startup fundada por Daniel Reina (CEO) y Antonio Hervás (CTO), nace en 2014 y apenas unos meses después Wayra Barcelona la acelera, consiguiendo resultados inmediatos: en agosto de 2014 ya tenina 1.000 desarrolladores inscritos en su comunidad y tan sólo un año después llegan a Break Even.

El crecimiento de Tappx ha sido imparable desde entonces, en todos los sentidos. A finales de 2015 ya servían 500.000 anuncios al mes, cifra que tan solo un año después, se transformaba en 10.000 millones de anuncios al mes.

En la actualidad manejan la friolera cantidad de 400.000 millones de peticiones de anuncios, cobertura global,  y cuentan entre sus clientes a importantes compañías del sector.

Tappxcuenta con una comunidad de más de 26.032 desarrolladores de apps y juegos mobile a los que ofrece la posibilidad de ganar usuarios de forma gratuita a través de la promoción cruzada.

También y no menos importante , los desarrolladores pueden escoger aumentar los ingresos a través de la publicidad de terceros, que gracias a su tecnología de monetización proporciona los mejores anuncios al eCPM más alto que el desarrollador decida.

Está orientado a desarrolladores, por lo que elimina intermediarios que en otras redes de display encarecen la promoción.
Tappx proporciona un o SDK para integrar en Android e iOS y aprovechar las ventajas de su sistema equitativo de intercambio de banners. Uno a uno, según el número de banners que mostremos será el que mostrará la comunidad de nuestra app.

Con Tappx se dispone  de entrada 1.000 impresiones que se irán incrementando en forma de créditos según se vaya mostrando los banner proporcionados por la comunidad.

Incluso si ya tenemos un sistema de publicidad podemos integrarlo sin problemas y decidir el número de displays que dedicamos a la promoción cruzada.

El servicio es gratuito, aunque para financiar la plataforma  si queremos registrarnos aceptamos que un 15% de los display que se muestran les pertenezcan para sus propias promociones.

 

Tappx ha recibido cobertura y reconocimiento de reputados medios nacionales e internacionales, así como de numerosos premios que la destacan como una de las startups con más crecimiento y potencial de España y Europa.

Actualmente ya tienen  oficinas en Barcelona, China e India

Mas informacion en Tappx

LLegan los asistentes de voz a la TV


Aunque está todavía en su fase inicial   y a la espera de próximas versiones que incluirán mejoras, como grabar y visualizar contenidos grabados desde el deco,  recientemente se ha incorporado al catálogo de apps  de Telefónica , tanto en Ios como para Android ,  la nueva app   Movistar+ Habla , la cual incluye Aura, un asistente digital que incorpora  inteligencia artificial  , el cual intenta  transformar la forma en que los clientes se relacionan con Telefónica y cómo gestionan su vida digital con la compañía.
Si   se  es cliente de Movistar+ en cualquiera de sus modalidades, por tanto basta  simplemente   con   descargarse  e instalar  esta nueva  aplicación ( para los usuarios de Android  este es el enlace  directo a Google Play ,) identificarse  con su usuario y contraseña de Movistar +   para empezar a disfrutar de los  contenidos de Movistar+   ahora  usando  la IA  de Aura   .
Por ejemplo con esta nuev app , se pueden pedir  cosas como: buscar una serie o película favorita, cambiar de canal ,ver un canal ,  pausar el sonido de la TV conectada al descodificador, o simplemente que nos haga  recomendaciones según nuestros gustos, y  un largo  etcétera  todo expresado directamente en lenguaje natural     hablando directamente desde la IA de Aura  al terminal.
aura1.PNG
 Pero  las funcionalidades no acaban  aquí  buscando desde la IA  de Aura con  lenguaje natural  a  nuestro terminal móvil,    pues  el programa, serie, película que haya encontrado   Aura  , no solo se puede ver  directamente en el propio terminal : también se  puede  enviar a la TV conectada  con un descodificador   mediante la funcionalidad Lanzar y ver, pues  nos presentará todos los equipos  que tenemos conectados a Movistar + ( descodificadores, terminales móviles ,PC’s  )     y  directamente con un   botón permitirá  transmitir ese contenido a ese equipo conectado a Movistar +
veraahora.PNG
Algo también muy  interesante que incluye  esta nueva version es  la posibilidad de usar el terminal en el que hayamos instalado la aplicación  como una extensión del mando a distancia tradicional del descodificador  soportando las típicas funciones de pause/play, avance, retroceso, las flechas ,los botones de acceso directo , etc,

 

 

En este video publicitario  Rafa Nadal nos demuestra como  hablando con Aura se pueden hacer  muchas cosas  ¿todavía no lo ha visto?

 

 

Esta primera versión de Aura  la podrán usar clientes de Argentina, Brasil, Chile, Alemania, España y Reino Unido.
Para la visualización de los contenidos de esta aplicación es necesario conectarse a Internet (WiFi, 3G/4G o Ethernet)  siendo los requisitos técnicos  para Android    algo exigentes pues se  requiere  versión Android 5.0 o superior,procesador Dual Core y al menos  1 GB de Memoria RAM.

Para los usuarios de Android que tengan contratado Movistar +  este es el enlace  directo a Google Play