Mostrando entradas con la etiqueta Bluetooth. Mostrar todas las entradas
Mostrando entradas con la etiqueta Bluetooth. Mostrar todas las entradas

miércoles, 1 de marzo de 2017

¿Qué es un ESP32?

ESP32 Development Kit

Hoy os traemos una nueva plaquita que acaba de aterrizar al mercado y que previsiblemente muy pronto veremos en todas partes:  la ESP32 de Espressif.

Sin entrar en demasiados detalles, os adjunto aquí una pequeña tabla comparativa preparada por nuestros colegas del canal educ8s que hace unas semanas le dedicó un pequeño reportaje a esta fantástica placa.



No solo es que el microcontrolador sea 10 veces más rápido, sino que además es al ser de arquitectura de 32 bits y doble nucleo la velocidad de procesamiento de datos es muy superior a la que nos tiene acostumbrados nuestro querido ATmega328P de ATMEL, o cualquiera de las diferentes versiones que tiene disponible en la gran familia

Pero si ya fuera poco la cuestión de la potencia del micro, todavía hay más. Si habéis podido echarle un vistazo a la primera tabla, la ESP32 nos ofrece nada más y nada menos 18 pines analógicos, 3 veces más que nuestra placa Arduino UNO, pero podríamos argumentar que nuestra placa Arduino Mega algo parecido 16, y es verdad pero es que la resolución de los pines analógicos de la ESP32, es de 12 bits y no de 10 como los que tiene nuestro Arduino UNO o nuestra Arduino MEGA. Para estar a la altura deberíamos optar por nuestra Arduino DUE, que al igual que la ESP32, nos ofrece dos pines de salida analógica (Digital to Analog Converter) de 12 bits.  Aunque menos potente, parecida. Pero si solo fuera una cuestión de tamaño, y no lo decimos por grande es una cuarta parte del tamaño de nuestro Arduino UNO.

Es que en este tamaño tan reducido, se ha incluido una antena un módulo WIFI y un módulo Bluetooth, además de capacidad criptográfica para permitir que este módulo se puede convertir en el rey de IoT (Internet of thing, o internet de las cosas).


Un ejemplo de la capacidad de desarrollar soluciones extremas lo podéis encontrar en Youtube, donde Jeija dice haber conseguido transmitir señales de video solo con la ESP32 a unos 10 kms campo a través.



Y por si fuera poco, el precio parece de lo más abordable. Una tentación para probar cuánto de verdad hay en un módulo alucinante.


viernes, 1 de enero de 2016

¿Qué son las interrupciones para Arduino?





Llegados a este punto, imagino que ya tenemos bien claro como funciona un sketch de Arduino y cómo podemos programar las tareas para que se vayan ejecutando una tras otra de forma ininterrumpida.

Podemos hacer que nuestro Arduino vigile quién entra en nuestro cuarto, usando por ejemplo un sensor de ultrasonidos, o bien, monotorice la temperatura de una habitación y nos la muestre en pantalla. Podemos hacer básicamente lo que queramos con tal de que definamos bien la lista de tareas y el orden en el que queremos que se ejecuten.

Pero como cualquier persona, nuestro Arduino tiene unos recursos limitados y si queremos que nuestro Arduino nos prepare una rica cena, le podría pasar que el ruido de los fogones no le permita escuchar que como tenemos la puerta abierta, unos ladrones han entrado a robar en la casa.

  • La solución es bien simple, pues que se quede esperando en la puerta. El problema es que si se queda esperando en la puerta entonces nadie nos hace la cena.  
  • No pasa nada, podemos decirle que cierre la puerta y que cada pocos minutos se acerque a ver si alguien está esperando. Pero claro con ese trajín, no puede atender bien la cocina, y algunas cosas se queman, u otras no terminan de prepararse bien. 
  • Entonces es cuando se da cuenta de la utilidad del timbre, y decide poner un pequeño altavoz en la cocina de modo que le permita escuchar cuando alguien llama, y solo entonces dejar de cocinar para atender, durante un breve instante, abrir la puerta y luego volver a sus labores.


Pues es justo de eso de lo que vamos a hablar hoy, de las interrupciones. Y cómo nuestro Arduino gracias al buen uso de ellas, puede dedicarse a sus tareas y olvidarse del mundo hasta que no suene "el timbre".



Para ello lo primero que tenemos que hacer es conectar al timbre para que podamos escucharlo, y tras ello tenemos que saber donde está el botón que abre la puerta principal desde la cocina. No basta con oir que llaman a la puerta, hay que saber donde está el pulsador que permitirá "abrir la puerta" y proseguir con nuestra tarea.


Incluso puede ser más complicado, imaginaros que vivimos en un edificio en el que para acceder a nuestro apartamento  pueden entrar bien en coche o bien a pie,  si entran directamente nuestro garaje en su coche tendremos que abrirle la puerta del parking, y si entran a pie, pues tendremos que abrirle la puerta principal del edificio.

En ese caso antes de abrir la puerta, tendremos quién es el que llama (no a todo el mundo vamos a dejarle entrar), saber qué puerta queremos abrir (puede que tengamos más de una), y qué debemos hacer (puede que sólo sea abrir la puerta, o puede que queremos también encender la luz de la entrada, poner música ambiente, y encender la calefacción). Y hacerlo todo rápidamente y para volver  corriendo a nuestras labores en la cocina.


Pues bien, lo primero lo primero. ¿Cuántas llamadas diferentes podemos atender?, o lo que es lo mismo ¿cuántas interrupciones diferentes puedo gestionar sin volverme loco? La respuesta está en el tipo de placa Arduino que tengamos entre manos.  Si estamos trabajando con la placa más popular, la Arduino UNO, tendremos solo la posibilidad de gestionar dos "timbres", si nuestro proyecto necesitara estar pendiente de más eventos, tendríamos que saltar a la placa Micro, la Leonardo, la Mega o la DUE.

Un breve resumen de ello lo podemos encontrar en la tabla adjunta.



Llegados a este punto, todo parece bien sencillo, programamos nuestro sketch y justo cuando sucede lo que queremos monitorizar, se disparará el trozo del programa que hayamos programado para esa ocasión. En nuestro ejemplo, sería a activar un relé para que se abriera la puerta que queramos.

En la siguiente entrada veremos cómo debemos encapsular este código para que se ejecute sólo si sucede el evento.  No os la perdáis, veréis que fácil es esto de manejar interrupciones con nuestro Arduino.

Y ya sabéis, si tenéis alguna sugerencia o duda, no tenéis más que mandarnos un correo a



e intentaremos responder a vuestra pregunta lo antes que podamos.

s.