Cabecera PRINCIPAL

Claves: técnico, redes, networks, microsoft, open source, gnu, programador, software, hardware, desarrolladores

Juan Enrique Gómez Péérez

martes, 26 de julio de 2016

Materiales principales para Arduino

En nuestros laboratorios utilizaremos placas Arduino como componente principal. Como explicaba en mi primer post esto es debido a su extremada sencillez, que son muy muy económicas, y sobre todo que existe un enorme ecosistema de proyectos y trabajo hecho en Internet que facilitará enormemente nuestro objetivo.

Arduino
Es un proyecto opensource que se inició por parte de unos estudiantes en la universidad de Ivrea, El equipo de desarrollo de la placa está formado por seis estudiantes principales: Massimo Banzi, David Cuartelles, Tom Igoe, Gianluca Martino, David Mellis y Nicolas Zambetti.
El proyecto surge como una queja de Massimo sobre lo dificil que es encontrar placas con micro controladores baratas y sencillas de utilizar. Durante una visita del ingeniero español David Cuartielles a la universidad Italiana, Massimo discutió con David esta situación lo que les llevó a tomar la decisión de realizar ellos mismos un diseño para resolver este problema. Tan solo le llevó dos días a Mellis finaliar el código para la placa, y 3 días más diseñar la placa que llamarían Arduino.

La plataforma Arduino
Arduino se ha convertido en la plataforma más popular en la actualidad en todo el mundo. Ha evolucionado en diferentes versiones, desde la primera versión Arduino UNO (en la que trabajaremos nosotros) hasta sistemas más actuales especializados en proyectos de Internet of Things o incluso Wearables (por ejemplo relojes inteligentes).

Arduino es un proyecto Open Source de hardware que proporciona diferentes interfaces de tipo digital y analógico. El sistema se desarrolla sobre lenguaje C y se proporciona una herramienta de desarrollo (IDE) a través de la que se escribe el código, se compila, sube a la placa y ejecuta.

Versiones Arduino
Para nuestros proyectos y laboratorios utilizaremos principalmente la placa Arduino UNO aunque es posible que en algún caso alguna de las prácticas se realicen sobre el modelo denominado Arduino 101.

Arduino UNO: es la placa inicial del proyecto y es razonablemente simple. Se basa en el procesador de Atmel ATMEGA328P. Este procesador nos permite disponer de 14 pines de entrada y salida que nos permitirán conectarnos con el mundo exterior, de estos 14, 6 de ellos proporcionan una salida de tipo PWM (ya veremos para que sirve y como se configura.
Las características principales son:

MicrocontroladorATmega328P
Voltaje5V
Voltaje entrada (recomendado)7-12V
Voltaje entrada (límite)6-20V
Pins I/O digitales14 (6 de ellos con salida PWM)
Pins digitales PWM I/O 6
Pins entrada analógicos6
Tensión DC por Pin I/O 20 mA
Tensión DC por Pin 3.3V50 mA
Memoria Flash32 KB (ATmega328P)
0.5 KB usados por el bootloader
SRAM2 KB (ATmega328P)
EEPROM1 KB (ATmega328P)
Velocidad de Reloj16 MHz


Arduino 101: Esta nueva revisión de la placa se basa en un microprocesador mucho más moderno en este caso de Intel. El procesador dispone de dos cores y se denomina Intel Curie. Es una placa mucho más moderna, basada en tecnología Intel de 32-bits y que mantiene en gran medida la compatibilidad con los sistemas originales, en la mayoría de los casos solo tendremos que actualizar nuestro IDE para re-compilar nuestro software. Esta placa la utilizaremos en situaciones muy limitadas y concretas, aunque en los laboratorios intentaremos siempre comentar la especificidad en esta placa.
Las características principales son:

MicrocontroladorIntel Curie
Voltaje3.3V (5V tolera I/O)
Voltaje entrada (recomendado)7-12V
Voltaje entrada (límite)7-20V
Pins I/O digitales14 (4 proporcionan salida PWM)
Pins digitales PWM I/O 4
Pins entrada analógicos6
Tensión DC por Pin I/O 20 mA
Memoria Flash196 kB
SRAM24 kB
Velocidad de Reloj32MHz
Otras característicasBluetooth LE, 6-axis accelerometer/gyro
Diferencias
Como podéis ver las principales diferencias las encontramos en el procesador y la tecnología que usa cada uno de ellos. Es relevante hacer notar que el UNO funciona con una tensión de 5V y el modelo 101 usa 3,3V. Esto será muy relevante a la hora de elegir nuestros sensores, si os fijáis un dato importante que se da es el voltaje de funcionamiento de entrada, esto hará que cuando elijamos nuestros periféricos tengamos que tener cuidado o acabaremos quemándolos.
La segunda gran diferencia la encontramos en la velocidad de reloj, si os fijáis el 101 corre al doble que UNO (32Mhz frente a 16Mhz), así que nos dará un mayor rendimiento que el primero y nos permitirá ir a aplicaciones que requieran mayor capacidad de procesamiento.
Por último a destacar es la capacidad de memoria SRAM y Flash, una para ejecutar nuestro código y otra para almacenarlo. UNO es muy inferior (p.ej. 2K de SRAM frente a más de 10 veces el 101 con 24Kb).

domingo, 24 de julio de 2016

Cambiamos el rumbo - Arduino, Raspberrypi...

¿Porqué? 
Después de algún tiempo ausente (o mucho tiempo ausente), mi vida ha cambiado bastante en los último años. Desgraciadamente mi pasión por la informática, se ha convertido en algo residual debido a mi trabajo, en el que ahora en vez de ejecutar los proyectos como técnico, los ejecuto pero como gestor, como suelo decir soy un técnico venido a menos :-).
Esto hace que mis capacidades técnicas que antaño disfrutaba, ahora sean mucho más limitadas, y en realidad pueda aportar muy poquito sobre todo cuando de situaciones complejas se refiere. Es por esto que he decidido darle un giro al blog y orientarlo a uno de mis hobbies que siempre han estado ahí, pero sobre los que nunca he escrito.

¿De donde proviene todo?
Este hobby empezó hace unos 20 años, de la mano de los micro-controladores de Microchip. Como digo hace 20 años había bastantes cosas para divertirse, tarjetas telefónicas (bueno esto en realidad no eran microcontroladores), tarjetas de proveedores de TV (esto si lo eran), etc. Esto me hizo dar mis primeros pasos con los PIC16F84 y toda su familia, o los atmel (AVR) un poquito despues que ya eran procesadores incluso más potentes que los de mi amado CPC464 (recordar aquél Zilog a 2Mhz :-)). Tras aquella época maravillosa de micros, eeproms,etc. la verdad es que quedó todo en un limbo que se vino a reactivar hace unos años con las apariciones de los Arduino, Raspberry, etc. y su punto culminante fue cuando tuve que hacer mi trabajo de fin de grado hace unos años en el que tube que "darlo todo" con una placa LPC1769 que lleva un procesador de la familia Cortex-M3.
La verdad es que me divertí muchísimo ya que es un mundo de procesadores que te permiten hacer cosas en real time, algo que nunca había hecho yo, y además me permitió utilizar protocolos como I2C, jugar con puertos ADC, o configurar la escritura sobre dispositivos con protocolos (a mi modo de ver) ya avanzados como 1-Wire.
Esto siempre me ha hecho pensar que bien explicados estos dispositivos pueden ser una ayuda en las escuelas de nuestro país enorme. Son dispositivos súper baratos, sencillos incluso de construir, los cuales con una protoboard y un par de comandos tienen para el alumno una recompensa inmediata, y que además al ser muy muy sencillos permite realizar pequeñas modificaciones dándole al alumno un placer mental instantáneo al conseguir e manera sencilla su objetivo.
Creo que el cambio de rumbo ya se va dibujando, ahora detallémoslo.

¿Cual es mi objetivo? 
Como buen fan de todas estas cosas, mi objetivo será proporcionar de manera sencilla y mediante pequeños y fáciles laboratorios la capacidad a cualquiera de iniciarse en este mundillo. Me encantaría que estas pequeñas fichas que vamos a ir desarrollando se pudieran utilizar en centros educativos sin restricción alguna.
Los trabajos iniciales no van a ser originales míos, creo que ha mucho trabajo ya hecho en el mundo anglo sajón pero que por alguna limitación de idioma no está disponible. Mi labor en estos casos será proporcionar una ficha de laboratorio y un vídeo de la práctica idéntica, o con pequeñas modificaciones y mejoras. Por supuesto siempre con la referencia al dueño original de la ficha.

¿Y como seguimos?
Pues en los próximos días iré publicando diferentes artículos de introducción basados sobre todo en Arduino. Creo que Arduino es muy muy accesible tanto económicamente, donde tenemos placas por menos de 5$US, como a la hora de desarrollar su interface es extremadamente sencillo.

Espero veros por aquí, y cualquier pregunta, duda o curiosidad estoy a vuestra entera disposición.

Saludos y ¡un gran verano lleno de proyectos!