Recent Posts

2017-04-27_2206

Sensor de Proximidad LV-MaxSonar-EZ

28 Abr , 2017,
Jorge Chacon
, , ,
No Comments

En esta entrada 2017-04-27_2207queremos compartirles algunos detalles técnicos de un sensor que hemos estado explorando recientemente. Se trata de  la línea de sensores ultrasónicos fabricados por MaxBotix.Inc LV-MaxSonar-EZ, que poseen las siguientes ventajas:

  • Rango de detección: Son capaces de detectar objetos casi 7 metros de distancia.
  • Multiples Interfaces: Pueden ser leídos de diferentes formas: Ancho de pulso, RS232 Serial y Voltaje Analógico.
  • Versatilidad de Alimentación: Funcionan con una alimentación desde 2.5V hasta 5V.
  • Tamaño: Un diseño pequeño y muy ligero.

Esta línea de sensores posee 7 pines con las siguientes especificaciones:

Pin 1 (BW): Deje abierta o mantenga baja para salida en serie en la salida TX. Cuando el pin BW se mantiene en alto, la salida TX envía un Pulso (en lugar de datos en serie), adecuado para encadenamiento de bajo ruido.

Pin 2 (PW): Este pin emite una representación de ancho de pulso de rango. La distancia se puede calcular utilizando el factor de escala de147uS por pulgada.

Pin 3 (AN): Da salida al voltaje analógico con un factor de escala de (Vcc / 512) por pulgada. Una fuente de 5V produce ~ 9.8mV / pulgada mientras que una de 3.3V produce ~ 6.4mV / pugada. La salida se almacena en búfer y corresponde a los datos de rango más recientes.

Pin 4 (RX): Este pasador está internamente tirado hacia arriba. El LV-MaxSonar-EZ medirá continuamente el alcance y la salida si RX los datos se dejan sin conexión o se mantienen altos. Si se mantiene bajo, el sensor dejará de variar. Trae alto para 20uS o más para comando una lectura de rango.

Pin 5 (TX): Cuando el BW está abierto o se mantiene bajo, la salida TX entrega serial asíncrono con un formato RS232, excepto las tensiones son 0-Vcc. La salida es un capital ASCII “R”, seguido de tres dígitos de carácter ASCII que representan el rango en pulgadas hasta un máximo de 255, seguido por un retorno de carro (ASCII 13). La velocidad en baudios es 9600, 8 bits, no paridad, con un bit de parada. Aunque el voltaje de 0-Vcc está fuera del estándar RS232, la mayoría de los dispositivos RS232 tienen Margen suficiente para leer los datos en serie 0-Vcc. Si se desea un nivel de tensión estándar RS232, invierta y conecte un RS232 convertidor tal como un MAX232. Cuando la clavija BW se mantiene alta, la salida TX envía un solo impulso, apto para ruido bajo encadenamiento (Sin datos en serie).

Pin 6 (+5V- Vcc): Funciona en 2.5V – 5.5V. Capacidad de corriente recomendada de 3mA para 5V, y 2mA para 3V.

Pin 7 (GND): Conexión de retorno a tierra. El suministro de electricidad debe ser libre de ruido y libre de risado para una operación óptima.

Pueden ser utilizados en interiores y/o exteriores, sin embargo, una desventaja que posee esta línea de sensores es que si se necesita una lectura al 100% de las distancias por la física ultrasónica el sensor presenta un error a las 6pulgadas(15cm) aproximadamente.

Según la cantidad de voltaje con la que alimentemos el sensor los parámetros de onda y distancia van a cambiar.

2017-04-27_2207_001

Acá les dejo enlaces donde pueden los códigos para utilizar un los sensores de proximidad ultrasónicos mediante el formato de lectura Pulse Width(Ancho de Pulso):

  • Single Sensor: http://www.maxbotix.com/documents/Arduino%20Codes/LV-MaxSonars/LV_MaxSonar_PW.ino
  • Multiple Sensors: http://www.maxbotix.com/documents/Arduino%20Codes/LV-MaxSonars/LV_MaxSonar_PW_Chain.ino

NOTA: Si se utilizan múltiples sensores, debe de haber un espacio optimo entre cada uno de ellos, porque pueden existir interferencias y retornar valores erróneos para su lectura.

IMG_0730

Creando una cámara de fermentación con BrewPi

20 Abr , 2017,
Allan R Cascante Valverde
No Comments

1. Descripción

Hoy vamos a realizar la instalación y la conexión de Brewpi; para tener nuestra propia cámara de fermentación para cervezas caseras.

2. Referencias Externas

http://www.homebrewtalk.com/showthread.php?t=466106

3. Disclaimer sobre Intención y Responsabilidad

(!) Antes de seguir estas instrucciones asegúrese de entender las Condiciones de Uso de nuestro sitio.

4. Resumen

Brewpi es una solución completa para crear nuestra propia cámara de fermentación; para los que nos gusta la cerveza y en particular hace nuestra propia cerveza; un reto interesante es el control de la temperatura del proceso de fermentación; muchos de los sabores en la cerveza (apropiados o inapropiados) para un tipo particular están relacionados directamente con la temperatura en la que se encontraba la levadura en el momento de la fermentación.

En esta guía vamos conectar y configurar todas las partes necesarias para echar a andar brew pi de manera de que podamos conectar cualquier refrigerador a este para que este funcione como nuestra cámara de fermentación.

5. Lista de Materiales

  • Arduino 101
  • Relay board
  • 2 DS1B820
  • Enchufe y Toma corriente
  • Conectores macho/hembra x 4
  • Conectores macho x 3
  • Cable eléctrico 14-16
  • Resistencia 4.7 Oms
  • Cinta Aislante Eléctrica
  • Una regleta para conexiones
  • RaspberryPI con Raspbian instalado (para monitorear el sistema)

6. Pasos Detallados

En el caso de este proyecto encontré varias guías en inglés; en particular la que coloque en las referencias externas fue la que me pareció más util.  De esa guía solo es necesario seguir este diagrama para hacer el cableado de las partes:

Con respecto al diagrama anterior y la siguiente fotografía (que corresponde a mi propia instalación) pueden notar algunas diferencias.

IMG_0730

Los colores de los cable son las diferencias más notables; para construir esto solo ocupe la guía anterior; estos son los pasos que seguí:

  1. Conecte las terminales de los “termómetros” (DS1B820) a la regleta conectado las lineas de datos, voltaje y tierra, cada color se conecta a la misma terminal; hay que revisar los colores de estos cada fabricante es distinto (si no da lecturas hay que hacer algo de prueba y error).
  2. Luego de esto conecte los terminales macho como se muestra en el diagram, la tierra, la linea de voltaje y la linea de datos en A4 del arduino y se coloca la resistencia entre la linea de datos y la linea de voltaje.
  3. Luego conecte la tierra y el voltaje al relay board, tal como se muestra en el diagrama.
  4. Se conecta las lineas digitales 4 y 5 al relay board.

Con lo anterior ya se puede probar la instalación, aún cuando no se a conectado la alimentación eléctrica al relay board. Para instalar brewpi seguí esta guía:

Instalación Brewpi

Solo se ocupa bajar un script de shell y correrlo; para mi instalación si hay una limitante; que al utilizar un arduino la version soportada es la legacy (mas sobre como cambiar esto mas adelante)

Estos son los comandos:

git clone https://github.com/BrewPi/brewpi-tools.git ~/brewpi-tools
sudo ~/brewpi-tools/install.sh

Luego de esto se ejecuta el siguiente comando para seleccionar la version que se desea instalar:

sudo ~/brewpi-tools/updater.py –ask

En mi caso seleccione legacy para que funcione mi arduino.

Luego de esto conseguí la dirección ip del arduino con un comando ifconfig y la puse en un browser esto debe mostrar la interfaz web del brewpi. Ahí tenemos que ir al Maintenance Panel y hacer las configuraciones de los dispositivos detectados; si todo esta bien conectado debería aparece tanto los termómetros como el relay board, ahi se selecciona la función de cada uno; en mi caso seleccione fridge temp and beer temp y prove que así fuera (enfriando y calentando cada uno por aparte para ver los valores que se desplegaban y así reconocer cual es cual. Lo mismo con los relays se puede ver cual corresponde a cual.

Luego de estos ajustes en la configuración realice la conexión del relay board y el cableado restante tal como se ve en la diagrama mas arriba.

7. Agradecimientos

A José Nuñez quien me facilito algunas de las piezas necesarias para este proyecto.

 

e9f84349-2e02-4c69-88c7-24451e792023

Ya Contamos Personas… Ahora hagamos algo con Python

Abr , 2017,
Jose Nunez
, , , , ,
one comments

Muchas personas piensan que la visión computarizada es un área de la tecnología reservada para genios matemáticos japoneses.

Nada más lejos de la realidad.

Mientras que en efecto se hace uso intensivo de matemática muy avanzada, y de sistemas computacionales de última generación; la realidad es que, gracias al código abierto, existen bibliotecas y frameworks  que hace accesible estas tecnologías a todas las personas que, con una dosis adecuada de interés quieran adentrarse en este mundo tan fascinante y a la vez de vital importancia para nuestra sociedad moderna.

En esta entrega les mostramos una extensión de nuestro artículo anterior sobre “Visión Computarizada: Contando Gente con OpenCV, ROS,..” donde exploramos la creación un programa básico en lenguaje Python que haga uso modesto de los datos generados por el contador de personas.

Recordemos que ROS (Robot Operating System) es un meta-sistema operativo de tipo publicador/suscriptor que facilita la comunicacion entre diversos nodos computacionales; y que está orientado a sistemas robóticos.

Como dijimos, en el artículo anterior exploramos cómo configurar un sistema Up-Board con Ubuntu Linux, para utilizar los datos provenientes de una cámara para analizar las imagenes en tiempo real y detectar personas. Fascinante.

Ahora, basados en el tutorial básico de ROS para creación de programas Python de publicación y escucha, acá listamos los pasos básicos para la creación de publicadores y escuchadores que funcionen con ROS.

(!) Antes, tengamos en cuenta que la detección de personas que viene con opencv_apps de ROS lo que hace es buscar en las imágenes patrones que coincidan con cierta geometría rectangular alta. Por eso en la imagen destacada de este artículo vemos marcas de rectángulos donde no hay personas. Al final de este artículo hablamos del comando rosrun rqt_reconfigure rqt_reconfigure que permite ajustar parámetros “en caliente” para mejorar la precisión.

También, antes de ejecutar estos procedimientos, es probable que necesite ejecutar las instrucciones de algunos artículos anteriores que se listan en esta página: http://costaricamakers.com/?p=914 a partir del punto 4.

En caso de duda o si algo no funciona, les agradezco nos lo hagan saber en los comentarios.


PASO 1 – Primeramente creamos un espacio de trabajo de tipo catkin. Es decir la estructura básica de archivos y herramientas de un espacio de trabajo para ROS usando el sistema de construcción Catkin.

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make
source devel/setup.bash

PASO 2 – Seguidamente crearemos un paquete de ROS al que llamaremos “beginner_tutorials”que no es otra cosa que un conjunto de programas que se pueden manipular mediante ROS.

cd ~/catkin_ws/src
catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
cd ~/catkin_ws
catkin_make
. ~/catkin_ws/devel/setup.bash

De nuevo, para más información sobre la creación de paquetes puede visitar el tutorial oficial en http://wiki.ros.org/ROS/Tutorials/CreatingPackage


PASO 3 – Ahora escribiremos los programas básicos de publicación y escucha.

roscd beginner_tutorials
mkdir scripts
cd scripts
wget https://raw.github.com/ros/ros_tutorials/kinetic-devel/rospy_tutorials/001_talker_listener/talker.py
chmod +x talker.py

El comando wget de la linea 4 arriba se encargará de descargar nuestro programa de python llamado “talker.py” que se encarga de publicar mensajes en un nodo denominado “chatter” que luego serán leidos desde el programa de escucha o suscriptor.

Para crear el programa de escucha usamos los siguientes comandos:

roscd beginner_tutorials/scripts/
wget https://raw.github.com/ros/ros_tutorials/kinetic-devel/rospy_tutorials/001_talker_listener/listener.py
chmod +x listener.py

Con esto se descarga el programa “listener.py” en nuestra carpeta scripts para programas de python.

Este programa escuchará datos publicados al nodo “chatter” y los mostrará en la pantalla.


PASO 4 – Pongamos a prueba estos programas.

Para esto primero compilaremos el paquete usando los siguientes comandos

cd ~/catkin_ws
catkin_make

y luego ejecutaremos ambos scripts en terminales diferentes:

rosrun beginner_tutorials listener.py
rosrun beginner_tutorials talker.py

Al ejecutarse se puede apreciar como, el listener.py no hace nada, hasta que el talker.py es ejecutado. El programa talker.py envia mensajes con un numero al tópico chatter; estos mensajes son entonces escuchados por el programa listener.py el cual los muestra en la pantalla al recibirlos. Es una dinámica muy simple.


PASO 5 – Modifiquemos el listener.py

Ahora modificaremos el programa listener.py para que en lugar de escuchar el tópico ‘chatter’ publicado por talker.py, escuche un tópico un tanto más avanzado: la cuenta de personas de nuestra cámara.

Usando el siguiente comando abrimos listener.py usando el editor gedit que viene con Ubuntu.

cd ~/catkin_ws
sudo gedit src/beginner_tutorials/scripts/listener.py

Luego reemplazamos el contenido del script con el siguiente:

#!/usr/bin/env python
# Software License Agreement (BSD License)
#
# Copyright (c) 2008, Willow Garage, Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
#  * Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#  * Redistributions in binary form must reproduce the above
#    copyright notice, this list of conditions and the following
#    disclaimer in the documentation and/or other materials provided
#    with the distribution.
#  * Neither the name of Willow Garage, Inc. nor the names of its
#    contributors may be used to endorse or promote products derived
#    from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# 'AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
# Revision $Id$

## Simple talker demo that listens to std_msgs/Strings published 
## to the 'chatter' topic

import rospy
from std_msgs.msg import String
from opencv_apps.msg import RectArrayStamped

def callback(data):
    rospy.loginfo(rospy.get_caller_id() + 'I AAAA  heard %s', data)

def listener():

    # In ROS, nodes are uniquely named. If two nodes with the same
    # name are launched, the previous one is kicked off. The
    # anonymous=True flag means that rospy will choose a unique
    # name for our 'listener' node so that multiple listeners can
    # run simultaneously.
    rospy.init_node('listener', anonymous=True)

    rospy.Subscriber('people_detect/found', RectArrayStamped, callback)

    # spin() simply keeps python from exiting until this node is stopped
    rospy.spin()

if __name__ == '__main__':
    listener()

Podemos observar las partes clave del programa:

  1. Linea 41: Importamos de la librería opencv_apps.msg el tipo de datos RectArrayStamped, que es el tipo de datos con que se publican las personas encontradas .
  2. Linea 44: Se muestra en consola los datos recibidos por el suscriptor. Nótese que donde dice data, podríamos poner data.rects para obtener unicamente el arreglo de rectángulos que representa a cada persona.
  3. Linea 55: Se define un suscriptor para el tópico peopledetect/found con un tipo de dato RectArrayStamped que al escuchar datos llamatrá la función callback. Esta función se define en la línea 43 y 44.

Para ejecutar este script usariamos el siguiente comando que nos mostrará los datos escuchados.

rosrun beginner_tutorials listener.py

Otros comandos que suelen ser útiles:
Para listar todos los tópicos que están manejando en la instancia de ROS: rostopic list

Para ver la información de un tópico particular: rostopic echo people_detect/found

Para configurar los tópicos activos mediante un utilitario GUI: rosrun rqt_reconfigure rqt_reconfigure


Read More…
896a8b69-9451-4bbd-be2e-ff0ff114fe4a

Visión Computarizada: Contando Gente con OpenCV, ROS, UP Board y una cámara Real Sense

7 Abr , 2017,
Jose Nunez
, , , ,
No Comments

En artículos anteriores hemos tocado el tema del kit de robótica de Intel con RealSense y UPBoard.

Como seguimiento a las instrucciones de inicio del Up Board les compartimos acá algunos comandos de ROS / LINUX para hacer uso de algunos de los ejemplos para aplicaciones de visión computarizada.


PASO 1 – Paquete OpenCV Apps

El primer paso sería la instalación de un paquete de ROS denominado “opencv_apps” mediante el siguiente procedimiento:

cd /opt
sudo apt-get install ros-kinetic-opencv-apps

PASO 2  – Ejemplo de la aplicación de detección de personas

El paquete OpenCV Apps de ROS contiene archivos de lanzamiento (.launch files) con ejemplos muy concretos sobre aplicaciones de visión computarizada.

Mediante el siguiente comando de ROS, la consola de LINUX se ubica en la ubicación del paquete OpenCV Apps:

roscd opencv_apps

Una vez en este directorio, echaremos un vistazo a la lista de archivos de lanzamiento:

cd launch
ls

El comando ls anterior lista en la consola todos los archivos .launch.

Uno de estos archivos es el denominado “people_detect.launch” el cual contiene las definiciones de ROS (en formato XML) que definen cómo tomar imágenes de una fuente (una cámara por ejemplo) y aplicar los métodos de detección de personas de OpenCV.

Para que este archivo funcione con las cámaras Real Sense, será necesario modificar este archivo “people_detect.launch” de la siguiente manera:

(!) Nota: Este procedimiento será necesario solamente una vez para una misma versión del paquete de ROS OpenCV Apps. Solo será necesario ejecutarlo nuevamente si se actualiza la versión del paquete de ROS OpenCV Apps.

Ejecute el comando gedit para editar el archivo:

sudo gedit people_detect.launch

Ubique las siguientes líneas en el archivo ver (estado inicial) y cámbielas para que luzcan como se especifica en (estado editado)

(estado inicial)

<arg name="image" default="image" doc="The image topic. Should be remapped to the name of the real image topic." />

<arg name="debug_view" default="true" doc="Specify whether the node displays a window to show edge image" />

(estado editado)

<arg name="image" default="camera/color/image_raw" doc="The image topic. Should be remapped to the name of the real image topic." /> 

<arg name="debug_view" default="false" doc="Specify whether the node displays a window to show edge image" />

PASO 3 –  Ejecución del ejemplo ROS para detección de personas

Ejecute los siguientes comandos de consola de manera individual, preferiblemente en una pestaña nueva de terminal (SHIFT CTRL  T)

1. Iniciar el nodo maestro de ROS

roscore &

2. Ubicarse en el directorio de ROS referente a la cámara Real Sense

roscd realsense_camera/

3. Lanzar (ejecutar) el procesador ROS de la cámara Real Sense

* Para una R200 use el siguiente comando: roslaunch realsense_camera r200_nodelet_default.launch &

* Para una SR300 use el siguiente comando: roslaunch realsense_camera sr300_nodelet_default.launch &

4. Ejecutar el procesador ROS para el proceso de detección de personas

roslaunch opencv_apps people_detect.launch

5. Carguemos ahora el visor de imágenes de ROS

rqt_image_view

* Este comando abre una ventana que tiene una caja de selección donde podemos elegir el canal que queremos visualizar.

 

ttpile

El Tiny Tile con tecnología Intel

31 Mar , 2017,
Rebeca Rodriguez Tencio
, ,
No Comments

Hoy quiero presentarles nuestra primera impresión del TinyTILE de Element14. Se trata de una versión miniatura de la famosa placa Arduino/Genuino 101 (https://costaricamakers.com/?p=580), mide aproximadamente 35x26mm y de igual manera está basada en Intel Curie y es compatible con el software de Arduino. El TinyTILE tiene un costo de $39.00 al momento de escribir este tutorial y lo pueden conseguir en: la tienda de Element14

El tinyTILE posee 32bits, con una SRAM de 80kB y una memoria flash de 384kB, tiene instalado un sensor DSP (Procesador Digital de Señales ) de baja potencia, además de la opción BLE para el bluetooth, tiene los sensores del acelerómetro y giroscopio con 6 grados de libertad, posee un botón de “master reset” y un led que indica el estado de la alimentación (on\off), con una salida de voltaje de 3.3V.

Acá les dejo una guía muy sencilla de como iniciar y aprender más acerca del TinyTILE:

  1. Es importante tener instalado el software con el cual queremos empezar a experimentar con el tinyTILE, puede ser el muy conocido ARDUINO IDE (https://www.arduino.cc/en/Main/Software) o Intel Curie Open Developer Kit (https://software.intel.com/en-us/node/674972#). En este caso para el tutorial usaremos el software de Arduino.
  2. Hay que instalar las bibliotecas de Intel Curie y seleccionar la placa que es de tipo Arduino/Genuino 101

101

Nota: Es importante revisar que en el Administrador de Dispositivos, tenga el puerto correcto y haya detectado la placa utilizada.

101 error

 

devicemanager

EJERCICIOS:

En este caso se pueden utilizar los mismos ejercicios de práctica realizados por Jose Núñez en el blog de aprendizaje Arduino 101 (https://costaricamakers.com/?p=580 ) los ejercicios funcionan a la perfección con el TinyTILE de Intel.

En el caso que ya hayan realizado los ejercicios y quieran probar con algo diferente, pueden intentar con estos recursos adicionales:

TinyTILE – Getting Started Guide: https://www.element14.com/community/servlet/JiveServlet/previewBody/84364-102-1-362023/tinytile-GettingStartedGuide.pdf

TinyTILE – Pin Mapping: https://www.element14.com/community/servlet/JiveServlet/previewBody/84365-102-1-362024/tinytile-Pin-Mapping.pdf

microsoft-augmented-reality1-1050x580

Una Introducción a la tecnología de Realidad Aumentada (AR)

9 Mar , 2017,
Luis Diego Jimenez Sanchez
, ,
No Comments

El 6 de Julio del 2016 salió Pokemon GO, uno de los actuales juegos pioneros en el mundo de la realidad aumentada y un despertar al mundo del interés sobre AR.  Quizás hayan escuchado sobre realidad virtual y realidad aumentada, así que, que las diferencia?  Realidad virtual, o conocido por sus siglas en inglés como VR, es la aplicación de un entorno o ambiente digital o virtual, que detecta diferentes caracteristicas de tiempo real del usuario y reacciona de manera que este siente que es real.  Realidad aumentada, es la ampliación de imágenes reales mediante el uso de algún dispositivo, de manera que agrega imágenes virtuales a lo que el usuario está observando.

Para empezar la investigación y aprendizaje de la realidad aumentada, un área totalmente desconocida para mí, el plan era iniciar con los Google Glass debido a su fama como empresa, esto antes de darme cuenta que el proyecto había sido descontinuado desde el 2015.  A partir de aquí, lo único que quedaba era iniciar búsqueda de  los productos que hay en el mercado.  Son 5 los que más me llamaron la atención, esto según los siguientes parámetros; precio, quien los produce y a que mercado se dirige el producto y como empezar a usarlos.   Después de investigar en internet por dispositivos de la naturaleza de AR, construí una lista de los dispositivos que mejor se acomodan a mi necesidad de entender el funcionamiento y alcance de estos.  Los dispositivos son los siguientes:

VUZIX M3000 Smart Glasses:

               Producido por la empresa VUZIX, la cual se dedica a la fabricación de lentes de VR y AR, los lentes M3000 tienen fecha de lanzamiento este verano de 2017, con precio que ronda los 900$.  Este producto tiene las capacidades de un teléfono inteligente con capacidad de conectarse a redes WIFI, basada en Android y se puede considerar una mini computadora.  Los M3000 se pueden personalizar, son más dirigidas a empresas de manera que se usen para entrenamientos, registros de procedimiento y data, y otros aspectos de la industria.  A continuación un link con demo de estos Smart glasses, https://www.youtube.com/watch?v=y6SGlOLVpg8.

VUZIX M3000

Imagen 1. VIZUX M3000 Smart Glasses

Microsoft HoloLens:

               El kit de desarrollo de HoloLens se puede encontrar por unos $3000 en la página,  https://www.microsoft.com/microsoft-hololens/en-us/buy.  Producido por los gigantes en la industria, Microsoft, tiene versiones comerciales desarrolladas para casos específicas.  Un ejemplo es para Case Western Reserve University tiene un programa de Anatomía Humana con el uso de hologramas.  Otras empresas que utilizan HoloLens para mejorar aspectos en su performance son Lowes, Volkswagen y Airbus.  Para el interés de desarrollar, el kit viene con su SDK respectivo, hay versión de SDK en Unity Engine donde se pueden crear objetos, escenas y usar comandos para reconocimientos de gestos.

hololens

Imagen 2. Microsoft HoloLens

Sony SmartEye Glass:

               Sony SmartEye Glass, no se puede comprar directamente en Costa Rica ni America Central, sino que es por pedido especial en Estados Unidos y algunos otros países en Europa.  El precio en la siguiente página es de $900.  Al igual que los otros lentes de realidad aumentada, estos también son Developer Kits por lo cual se permite al usuario darle el uso según las capacidades de lo que podas desarrollar.  Sony es la empresa que las produce y una diferencia de las demás es que esta trae un control cableado a los lentes, es pequeño por lo cual no produce incomodidad en el usuario.

sony smarteye glass

Imagen 3. Sony SmartEye Glass

Lenovo Phab Pro 2:

               Este teléfono, Lenovo Phab Pro 2 vale alrededor de $499.99 si se compra directamente de la página de Lenovo.  A mi opinión, no es un kit de desarrollo ni nada por el estilo.  Está destinado más hacia el uso de apps que incluyan AR, juegos por ejemplo ya se encuentran en el mercado.  La aplicación más interesante que encontré es roOomy Reality, esta permite mostrarle al usuario como se vería una nueva pieza de mueblería en algún determinado cuarto de su hogar.  Parece arropar la idea de la realidad aumentada al facilitar una tarea de la vida real mediante el uso de imágenes digitales.

lenovo phab pro 2

Imagen 4. Lenovo Phab Pro 2 celular

Intel RealSense:

              Aunque Real Sense no es una tecnología directamente relacionada con realidad aumentada en lo referente a proyeccion de elementos visuales a la vista del usuario, si permiten un acercamiento a esta mediante la comprensión experimental de las librerías y tecnologías adyacentes tales como captura, análisis y manipulación de imágenes y video.  Real Sense es un producto de un concepto tecnológico denominado “Perceptual Computing” que tiene que ver como los dispositivos computacionales pueden percibir mensajes del usuario diferentes al teclado/mouse tales como los gestos que vas a experimentar. Augmented Reality tiene que ver más con anteponer contenido a las imágenes que se le presentan al usuario; sin embargo en efecto las tecnologías y conceptos se traslapan.

La tecnología Intel RealSense, ofrece varios dispositivos y kits de desarollo, en precios que van desde los $99 para una cámara R200 hasta los $349 para un kit de desarrollo con cámara R200 y sistema computacional UP Board.

real sense

Imagen 5. Intel RealSense camera F200

Las cámaras, cuentan con la capacidad para hacer escaneos en 3D, reconocimiento facial y puede generar imágenes basándose en distancias de cuerpos u objetos de las cámaras.  Los SDK, kits de desarrollo de software, de Intel, en mi opinión es la mejor opción para empezar a trabajar con realidad aumentada y en siguiente mis razones:

  • Precio: es el producto más accesible, siendo el de $349 el kit más costoso. A pesar de que no se pueden comparar estos productos directamente debido a que sus objetivos y alcances son muy distintos, si los puedo comparar al tratarse de un primer acercamiento a esta tecnología.
  • Aplicación del hardware:  Para efectos de aprendizaje, tales como los mios, en el cual es necesario entender el alcance de registrar data a partir de entradas por camara, me parece mejor opcion usar el RealSense debido a las librerias que trae como reconocimiento facial o de gestos.

Mi primer experimento será con Intel RealSense, probablemente algún carro o robot al que pueda darle direcciones con gestos de mis manos.

Capture

EL ARTE TEXTIL EN FUSIÓN CON LA TECNOLOGÍA

7 Mar , 2017,
Rebeca Rodriguez Tencio
,
No Comments

Electrotextil es el nombre que se le da a la idea “mágica” de combinar la industria textil con la electrónica, creando un nuevo concepto de diseño que no solo es “fashion”, sino un impulso a la innovación.

Las prendas o accesorios que normalmente se utilizan no contienen elementos electrónicos, sin embargo dentro de 10 años es factible que cada tipo de ropa o accesorio tenga incorporado distintos componentes con funciones tecnológicas que contribuyan a la comodidad, salud y bienestar de los usuarios.

Actualmente los e-textiles presentan varios retos fundamentales para el progreso en el uso de esta tecnología, ya que un textil electrónico debe ser flexible, discreto, lavable y estéticamente aceptable, lo que provoca un desafío en la construcción del diseño y conectividad confiable.

Acá les comparto unos enlaces muy interesantes donde pueden sacar ideas para empezar a involucrase en el mundo wearable:

Espero sus comentarios acerca del tema :o). En el próximo artículo vamos a empezar a experimentar y crear un proyecto con diferentes componentes wearables paso a paso.

41Igp4e5+NL._SX342_

Tips para Impresión 3D con Printbot

4 Mar , 2017,
Jose Nunez
, , , , ,
No Comments

Hace unos meses adquirimos unos Printbot Simplemetal de CRCibernetica.

El servicio que nos brindaron fue realmente excepcional. Parte de el servicio fueron unos tipos que nos enviaron por email, que me han resultado utiles al tratar de imprimir en 3D. Así que he decidido transcribirlos acá.

Aunque es probable que algunas instrucciones no apliquen para las versiones más recientes de Cura o de Printbot, espero que sea de utilidad a muchas otras personas.


Materiales requeridos:

  1. 3M Blue Masking Tape
  2. Alcohol de Fricción
  3. Algodón para aplicar el alcohol

Instrucciones Básicas

  1. Usar la version 15.04 de Cura (NO USAR LA ULTIMA VERSION):
    https://ultimaker.com/en/cura-software/list
  2. Seguir el setup Wizard seleccionando su impresora (Printrbot Metal Simple)
  3. Bajar el Profile “Getting Started.ini” de Printrbot:
    https://printrbot.zendesk.com/hc/en-us/articles/203814574-Getting-Started-Profile
  4. En Cura: File–>Open Profile y seleccionar el archivo “Getting Started.ini”
  5. En Preferences cambiar Printing Window type de “Basic” a “Pronterface UI”
  6. Cambiar Printing temperature(C) de 210 a 195. (Importante)

Cuando imprime, la impresora va a hacer los siguientes pasos:

  1. El “hot end” va a calentar al 195. (dura 1 minuto)
  2. Se va a mover a “Home” usando los switches de limite.
  3. Se va a iniciar el proceso de “Auto-Nivel” y mapear tres puntos en la cama.
  4. Va a empezar a imprimir.
  5. Cuando termina de imprimir se va a mover a “Home”.

Para crear sus propios modelos recomendamos tinkercad.com. Es gratuito y fácil de aprender. También sirve para “sanar” modelos de otras aplicaciones.

El sitio thingiverse.com tiene modelos 3D que se puede bajar.  Yo siempre busco alli antes de crear algo desde cero.

El spool holder que yo estoy utilizando es este:
https://www.youmagine.com/designs/printrbot-simple-filament-spool-holder-no-aluminum-handle

Impresión por SD Card

Si quiere imprimir directamente de un SD Card:

  1. Asegura que su impresora no esta conectada a su PC.
  2. Insierte un sd card en su PC
  3. En Cura, notar que el icono que normalmente apreta para imprimir ahora dice “SD”.
  4. Apreta este boton para copiar el GCode directamente al SD Card.
  5. Cambiar el nombre del archivo en el SD card a “auto0.g”. Asegura que NO tiene la extensión .gcode
  6. Con la impresora apagada insierte el SD Card.
  7. Prende la impresora.
  8. Tarda varios minutos en calentar y comenzar a imprimir. Puede tardar hasta 10 minutos.

El slot del SD Card no esta posicionado muy bien.  Para no tener que usar un alicate yo uso este holder que se puede imprimir usando la impresora: http://www.thingiverse.com/thing:416217

IMG_20170304_142007

SimpleCV Hello World ++ en otros 5 minutos (Linux MINT 18)

Mar , 2017,
Jose Nunez
, , , , , ,
No Comments

Siguiendo nuestra serie sobre SimpleCV y como una motivación personal para aprender Python. Acá les presento un par de scripts basados en el ejemplo “Hello World” de SimpleCV.

El primero toma constantemente  una foto de una cámara y la “binariza”; es decir, la convierte cada pixel de la foto en negro o blanco dependiendo de su “posición estadística” respecto de los demás pixeles y muestra el resultado en pantalla.

El segundo toma la fotografía original, sin ser “binarizada” y la muestra en pantalla.

Al correr los scripts de manera simultánea podemos apreciar de mejor manera este filtro de binarización de la imagen.


PASO 1 – simplecv_helloworld.py

Usando un editor de texto como “xed” copiamos el siguiente programa y guardamos el archivo como “simplecv_helloworld.py”

from SimpleCV import Camera
# Initialize the camera
cam = Camera()
# Loop to continuously get images
while True:
    # Get Image from camera
    img = cam.getImage()
    img.save('/home/toruk-makto/imageport.jpg')
    # Make image black and white
    img = img.binarize()
    # Draw the text "Hello World" on image
    img.drawText("Hello World!")
    # Show the image
    img.show()

PASO 2 – simplecv_helloworld2.py

De nuevo, mediante el editor de texto copiamos el siguiente programa y guardamos el archivo como “simplecv_helloworld2.py”

from SimpleCV import Image

# Loop to continuously get images
while True:
    # Get Image from camera
    try:
        img = Image('/home/toruk-makto/imageport.jpg')
        # Draw the text "Hello World" on image
        img.drawText("Hello World!")
        # Show the image
        img.show()
    except:
        print "skip!"

PASO 3 – Ejecutar ambos scripts

En una terminal ejecutemos los siguientes dos commandos:



python simplecv_helloworld.py &

python simplecv_helloworld2.py &


Vemos como se muestran ambas imágenes “en tiempo real”

Para detener los scripts podemos digitar el comando fg(que trae el comando al “foreground de ejecución”) y luego usar las teclas CTRL C; o ejecutamos el comando sudo kill #### donde “####” corresponde al número del proceso que queremos detener; o simplemente cerramos la terminal.