¿Qué es el Internet de las Cosas?

internet-de-las-cosas

Te imaginas poder programar el tiempo de tostado de tu pan para el desayuno del día siguiente desde la terminal del aeropuerto en Mumbai a través de tu dispositivo móvil, ¿suena a los Supersónicos, cierto?. ¡Pues no está para nada alejado de la realidad!, es totalmente posible gracias a la tecnología evidentemente y al concepto Internet de las Cosas.

El Internet de las Cosas o IoT (por sus siglas en inglés Internet of Things), es un concepto que cada vez se hace más notorio en nuestra vida diaria, se refiere a interconectar dispositivos de uso cotidiano a Internet.

 

Hablemos sobre “The thing” . . .

«Cosa», este término se refiere a cualquier “objeto” (por ejemplo un horno de microondas, la licuadora, el tocadiscos de la abuelita, la puerta principal, etc.) que mediante la integración de la electrónica necesaria (comunmente sistemas embebidos) le proporcionen funcionalidades de comunicación y/o control remoto, las cuales originalmente no estaban previstas en su diseño, permitiéndonos de esta manera controlar o monitorear desde cualquier parte su funcionamiento gracias a la conexión que este tiene a internet.

Diversos factores amplian el campo de acción del Internet de las Cosas, por ejemplo la actualización del Internet Protocol versión 6 (IPV6), esto es algo crucial pues podemos asignar una dirección IP a todos y cada uno de los relojes de mano que existen en el planeta Tierra y aún así nos sobrarían direcciones IP para regalar, ¿asombroso no?.

 

Organizando nuestras ideas . . .

Cabe aclarar que este concepto no es nada nuevo desde hace más de tres décadas varios gigantes del internet y tecnología han trabajando para lograr lo que ahora todos conocemos como dispositivos inteligentes (cosas), equipos  que hacen la vida del usuario más práctica.

Kevin Ashton es la persona quien acuñó el término Internet de las Cosas en el mundo durante una presentación cuando trabajaba para la multinacional Procter & Gamble en 1999. En ese entonces, el término quedó flotando en el medio tecnológico y fue hasta el 2009 que se retomó gracias a la potencialización de comunicaciones inalámbricas, los avances significativos en dispositivos MEMS (MicroElectroMechanical Systems), el acercamiento masivo del internet a la mayor parte de los hogares e industrias del mundo y curiosamente la llegada de Twitter pues el uso del hashtag #IoT se hizo muy popular entre los jovenes desarrolladores posicionándolo fuertemente en la industria.

 

 

Beneficios de las «cosas»

Podrías estar preguntándote, ¿ en que me puede beneficiar el IoT?, ¡en todo!, imagina que una persona padece diabetes y necesita estár monitoreando sus niveles de glucosa en la sangre (triste pero real) pues con un dispositivo dotado de los sensores necesarios se recavan las muestras y se transfieren automáticamente a la base de datos de su institución de salud donde llevan su historial clínico y en caso de alguna contingencia, se alerta a los servicios de emergencia para atendender de inmediato, reduciendo de esta manera el tiempo de respuesta al mínimo y ampliando enormemente la esperanza de vida de la persona.

En toda la industria se ha aplicado ya este concepto por ejemplo en las SmartTvs que se conectan a internet y te proponen una programación de acuerdo a tus gustos, o los refrigeradores que llevan el control de la comida para que estés al pendiente de lo que hace falta o no. En la medicina con los marcapasos que tienen conexión con el exterior para que los médicos puedan configurar y monitorear su estado y permitir que el paciente lleve una mejor calidad de vida.

 

La receta para el pastel . . .

Gracias a la introducción en el mercado “maker” de tecnologías como Arduino, Raspberry, Beaglebone, Tiva, etc, se ha facilitado la implementación del IoT pues existen infinidades de sensores, actuadores, etc. de fácil interconexión con un microcontrolador reduciendo la electónica necesaria a módulos muy amigables, así como las IDEs de programación se han desarrollado de tal forma que sean muy intuitivas para el usuario poco experimentado.

Los foros y blogs han jugado un papel muy importante pues es ahí donde la mayoría de makers buscan la información que requieren para lograr sus objetivos apoyados desde más usuarios noveles hasta usuarios avanzados de empresas que apoyan esta corriente.

 

iot-architecture.png

Arquitectura del Internet de las Cosas

 

Como ya vimos, esta nueva forma de interactuar con la tecnología está caminando a pasos de gigante posicionándose de una manera muy importante en el mercado internacional. 


Después de esto, los Supersónicos no se ven tan descabellados, ¿verdad? .

 

En próximos artículos nos centraremos en desarrolladar nuestros primeros pasos en el maravilloso mundo del  IoT.

¡Hasta la próxima!

 

 

iot

Software para electrónica | Lo que no podría faltar en mi alacena . . .

 

Hoy comenzaré con una lista de diversos programas que he usado o uso para temas relacionados con el diseño electrónico y programación.

Poco a poco iré subiendo algunos programas para que puedas descargarlos todos juntos aunque en su mayoría son gratuitos y los puedes descargar de sus respectivos sitios web.

ECLIPSE STUDIO

eclipse_bckgr_logo_fc_lg
Windows-Mac-Linux

Es una excelente IDE para diversos lenguajes en mi caso lo uso para programar microcontroladores AVR en C.


Descarga: https://eclipse.org/downloads/


 

ATOM
atom-editor-logo

Windows-Mac-Linux

Un excelente editor de texto con highlighting y con soporte de plugins lo cual lo hace extremadamente poderoso además de su gestor de proyectos integrado. Lo uso para programar HTML5, CSS3, PHP, JAVASCRIPT, JQUERY.

Descarga: https://atom.io/


ARDUINO IDE

hqdefault (1)Windows-Mac-Linux

Más claro ni el agua, aunque también lo uso para las custom boards que desarrollamos con diferentes micros AVR no soportados oficialmente

Descarga: http://www.arduino.cc


ENERGÍA IDE

EnergiaWindows-Mac-Linux

Es una IDE de programación para las Launchpad de Texas instruments, está basada en la IDE de Arduino, La uso para programar las tarjetas de desarrolla de Texas Instruments.

Descarga:  http://www.energia.nu


CODE COMPOSER STUDIO

CCSSPLASH

Windows-Mac-Linux

Como ya lo abrán notado es para los micros y demás cosillas de Texas Instruments. Lo uso para  las Launchpads.

Descarga: http://www.ti.com/tool/ccstudio



EAGLE CADSOFT

Created with The GIMP

Created with The GIMP

Windows-Mac-Linux

El líder en diseño de PCB desde mi punto de vista puesto que es uno de los más usados a nivel mundial y poderosísimo por sus plugins.

Descarga: http://www.cadsoft.de


 

DREAMWEAVER

macromedia_dreamweaver

Sí, lo sé, es una versión viejita pero es la que me agrada, lo uso principalmente para PHP y HTML5.
Uso una versión portable que encontré en la red y lo ejecuto con WINE en Linux.



GEDIT

650px-Gedit-logo-clean.svg

Uno de los editores de texto por default en GNOME me gusta mucho por lo liviano que es. HTML, CSS, PHP JQUERY, C principalmente.

Descarga : $ sudo apt-get install gedit


APACHE WEBSERVER

Apache-http-server

Windows-Mac-Linux

Mi servidor de desarrollo favorito por su magnífico soporte y potencia al trabajar. Lo uso en el desarrollo de apps en PHP, HTML5, CSS3, JQUERY principalmente.

Descarga: http://www.apache.org 


PROTEUS ISIS

proteus

El simulador por defecto que uso preferentemente en la versión 7. Me gusta por el soporte que tiene y su relativa facilidad de uso además de las librerias que poseé y las que andan navegando por internet.


MPLABX

21086

La IDE de programación de Microchip para sus microcontroladores. Lo uso obviamente en la programación de PICS en C y Ensamblador.

Descarga: http://www.microchip.com


CCS COMPILER

images (1)

Esta IDE la ocupo a la par que MPLAB ya que es más intuitiva y muy potente en la programación de micros en C.


VIRTUALBOX

oracle_virtualbox1

Windows-Mac-Linux

Un gestor de máquinas virtuales muy potente e interesante lo uso para cargar un windows XP donde hago ciertas pruebas y para probar una que otra nueva distro de Linux.

Descarga: https://www.virtualbox.org/

Estos son algunos de los programas que uso para hacer mis proyectos personales así como también para trabajar. La mayoría son Gratuitos. Maś adelante incluiré algunos otros que también uso.

Espero que te sirva este pequeño post.

¡Hasta la próxima!

 

CNC por aquí, CNC por allá. Introducción al CNC con Arduino

Hola buen días a todxs, hoy trataré en esta entrada un poco de las maquinas CNC. Este tipo de tecnología no es nueva pues ya lleva varios años en la industria y gracias a esta podemos tener muchas cosas a un costo relativamente bajo puesto que si fueran hechas totalmente a mano serían muy caras tal vez o a lo mejor ni siquiera pudiésemos pensar en ellas XD.

Primero que nada hablemos un poco sobre lo qué es CNC

¿Qué diablos es CNC?

CNC apunta a Control Numérico por Computadora, es un técnica para controlar la serie de movimientos que harán las maquinas pudiendo ser estas de diferentes tipos por ejemplo: tornos, fresadoras, taladros por mencionar algunos, en pocas palabras es una técnica de automatización de máquinas.

Una gran ventaja de este técnica es la presición que se tiene frente al humano, por ejemplo para lograr hacer un corte circular perfecto es muy difícil, tal vez imposible hacerlo a mano puesto que cualquier pequeño movimiento causará un corte mal logrado.

Veamos un ejemplo de corte con CNC

maxresdefault (2)

Como podemos apreciar en la imagen se tiene un diseño demasiado «caprichoso» en cuanto a formas y tamaño pudiendo ser difícilmente hecho por un humano en poco tiempo, en cambio con un router CNC se puede tener listo en cuestión de minutos.

Este video muestra lo asombroso del CNC

Como vemos es un trabajo que mediante técnicas tradicionales de torneado es imposble de hacer puesto que requiere un grado extremo de precisión.

Todo está muy lindo pero . . .

¿Qué se necesita para el CNC?

Para implementar un maquinado por Control NUmérico se debe de seguir una serie de pasos los cuales son muy sencillos. La secuencia que se sigue para poder echar a andar una maquina CNC  es la siguiente:

1 ) Creación de proyecto virtual
2 ) Programación del código
3 ) Interpretación
4 ) Maquinado automático

Ahora veamos cada paso un poco más detallado.

1) Creación de proyecto virtual

Lo que se pretende aquí es mediante un software de Diseño Asistido [CAD por sus siglas en inglés ] se genere el modelo a trabajar. Existen muchos programas para realizar el CAD por ejemplo Blender, FreeCAD, CADStandar por mencionar algunos.

engrane_qcad

2) Programación de código

En esta etapa lo que sucede es que un  software de CAM [Computer Aided Manufacturing] toma las referencias creadas por el CAD y las convierte a rutas para el maquinado o sea la ruta de corte del material que se debe de seguir para lograr nuestro diseño. Aquí podemos encontrar porgramas como la suite de la empresa Vectric, FreeMill, HeekCNC o  el famoso MasterCAM.

Una vez procesado ese diseño a la salida del proceso obtenedremos un código listo para poder ser interpretado por nuestra unidad de control. Habitualmente el código utilizado es el código G el cual es una serie de instrucciones que normalmente comienzan con la letra G (de ahí el nombre) y su objetivo es dar las instrucciones para que la maquina sepa dónde y cómo debe de hacer su trabajo.

 

edxftogcode

 

 

 

3) Interpretación

Este paso viene adjunto al paso 4 que es el maquinado. Cuando se terminan los pasos anteriores se envía el proyecto ya «traducido» a la unidad de control o controlador CNC. Este es el encargado de mandar las órdenes a los servomotores, motores a pasos , etc de como se deben de mover, a qué velocidad, donde se deben de parar, si se mueve el eje X, el Y o el Z, si se cambia de herramienta etc. En resumen, ¡es quién da la magia!

Las impresoras 3D también funcionan de la misma forma

En una segunda entrega comenzaré a explicar cómo  hacer un plotter CNC con Arduino que estamos desarrollando desde cero mi padre y yo.

¡Hasta la próxima!

CURSO ROBÓTICA CON ARDUINO EN EL C.A.P.

¡Hola amigxs!

Sólo escribo esta entrada para invitarlos al curso de Robótica con Arduino que se llevará a cabo en las instalaciones del Centro de Atención Pedagógica ubicado en: 2 Cerrada de Moctezuma 12, San Antonio Tecómitl en la delegación Milpa Alta.

Este curso cuenta con dos horarios disponibles :

Lunes a Viernes de 16:00 a 18:00 horas
Sábados de 10:00 a 13:00 horas

CURSO_FB

¡Los esperamos!

***************************************************************
Sitios de interés:
**************************************************************
Fanpage HRI Cursos aquí
Fanpage AMEDSISTEC aquí.
Fanpage CAP aquí

Arduino [Parte V]: Lecturas análogas

En esta ocasión abordaderemos el tema de como leer de nueva cuenta un pin analógico y utilizar dichos valores para controlar otras aciones. Obténdremos el valor de un potenciómetro.

Primero que nada expliquemos que es un potenciómetro.

El potenciómetro . . . 

Un potenciómetro no es mas que un resistor el cual poseé la característica de variar su valor de resistencia. Los hay de varios tipos, aunque en esta entrada no profundizaré más en los tipos y  teoría de estos.

Los símbolos eléctricos con los que se suelen señalar los potenciómetros son los siguientes aunque existen muchos otros símbolos:

simbolo-potenciometro

De las imágenes podemos observar que es un símbolo de una resistencia con la particularidad que tiene indicada una flecha la cual representa la salida del valor de la resistencia.

Modo de conexión . . . 

Los potenciómetros poseen normalmente tres «patitas» aunque esto puede cambiar ya que pueden por ejemplo ser dobles y serían seis patitas, etc. En este ejemplo usaremos un potenciómetro de carbón [impreso] lineal.

Vemos que tiene tres «patitas».

POT_grande

Ahora en este caso expliquemos para qué sirve cada patita.

A y C = Aquí debemos de colocar la alimentación. Resulta indiferente la polaridad en estas patitas por ejemplo puede ser A[+] y B[-] o A[-] y B[+] lo único que pasaría es que cambiaría la dirección del giro para llegar al valor mayor y al menor.

B = Aquí obtenemos la salida de voltaje [en nuestro caso] para hacer llegar a nuestro ADC.

Veamos un circuito sencillo con nuestro Arduino.

lectura_analoga_arduino

Como vemos es muy sencillo puesto que cada una de las patitas de los extremos [A y C] del potenciómetro van a las líneas de alimentación y la de en medio [C] va a la entrada analógica de nuestra placa.

Algo importante que debemos de tener muy en cuenta es que si lo hacemos tal cual está en el circuito anterior inferimos que la alimentación es externa al Arduino y que debe de ser máximo de 5 Volts puesto que esta tensión es la máxima soportada por nuestra entrada analógica. Si llegásemos a proveer más tensión a los 5 Volts dañariamos nuestra placa.

Otro aspecto importante de este modo de conexión es que tratemos de usar alguna fuente conmutada para evitar los posibles cambios de tensión que se traduciría en variaciones recurrentes  y fastidiosas en las lecturas de nuestro ADC. También podemos evitar esto añadiendo un capacitor de bypass en la entrada analógica usada. Esto lo añado por las experiencias que he tenido trabajando con Arduino.

La otra forma de conectar y que de cierta forma recomendaría para aplicaciones sencillas es la siguiente:
Untitled Sketch_bb

Podemos ver que la única diferencia es que energizamos el potenciómetro con la alimentación del Arduino, con esto podemos evitar dañar la placa al no meter más voltaje que los 5V de la placa.

Escribiendo un verdadero salmo más XD. . .  

Para poder «leer» el valor del potenciómetro con nuestro Arduino haremos uso de la función antes vista analogRead().

Escribamos nuestro programa que lea el valor actual del potenciómetro y lo imprima por el monitor serial.
Screenshot from 2015-06-13 22:59:41

¡Fácil!, ¿no creen?. . .

Ahora pongámosle más enjundia a esto y leamos el valor del potenciómetro y mostrémoslo en un LED o sea modificando su luminosidad.

En este ejemplo utilizaremos el LED interno del Arduino o sea la salida 13

Screenshot from 2015-06-15 22:29:51

Como vemos es muy parecido al anterior con la diferencia que hacemos uso de la función map() y analogWrite();.

Con la función map() lo que hacemos es leer el valor del potenciómetro [intervalo entre 0 y 1023, por la resolución del ADC] y «mapear» dicho valor con su equivalente en el intervalo nuevo dado que en nuestro caso es de 0 a 254 el cual escribimos en el LED 13 del Arduino haciendo uso del la Modulación por Ancho de Pulso [PWM] con la cual cambiamos el ciclo de trabajo con lo que se traduce un cambio en la luminosidad del LED siendo el 0 [apagado] y 255 [encendido].

El circuito usado es idético al anterior puesto que no tenemos que añadir ningún LED ni resistencia pues usamos los que trae la placa Arduino.

¡Hasta la próxima!