En esta entrada analizaremos el Arduino MKR1000, que forma parte de las nuevas placas para IoT que ha desarrollado Arduino en conjunto con Atmel (Microchip). Todas ellas llevan la denominación MKR en su nombre y comparten el mismo formato físico, el cual es mucho más pequeño que las tarjetas Arduino tradicionales.

Al tratarse de placas desarrolladas para IoT, estas vienen con algún módulo especial para comunicaciones inalámbricas. En el caso del Arduino MKR1000, tenemos un módulo ATSAMW25 que integra un microcontrolador ARM Cortex M0+ con el conocido módulo WiFi WINC1500 que ya hemos visto con anterioridad en diseños como el Arduino WiFi Shield 101 y algunos productos compatibles con este, como el shield WiFi Adafruit ATWINC1500 o también en el Adafruit Feather M0 WiFi.

En general tenemos experiencias muy positivas el módulo ATWINC1500 en nuestros proyectos, lo que hace sin duda que el MKR1000 sea una placa muy interesante

 

Características del Arduino MKR1000

El arduino MKR1000 monta el módulo ATSAMW25, el cual se compone de 3 bloques funcionales:

  • Microcontrolador SAMD21 Cortex-M0+.
  • Transceptor WiFi 802.11 b/g/n de bajo consumo WINC1500.
  • Módulo ECC508 para aceleración de encriptación y autenticación por hardware.

Diagrama de bloques del ATSAMW25

Podemos consultar la hoja de datos del fabricante para más detalles en cuanto al funcionamiento de este módulo, sin embargo las librerías estándar de Arduino y la librería WiFi101 hacen que nos tengamos que preocupar muy poco sobre los detalles del hardware.

En cuanto a la placa Arduino MKR1000 como una unidad, sus características principales se encuentras detalladas en la siguiente tabla, en la cual hemos colocado las especificaciones del Arduino Uno R3 como referencia:

CaracterísticaArduino MKR1000Arduino Uno R3
Basado en el microcontroladorSAMD21ATMEGA328
Arquitectura32 bits Cortex M0+8 bits AVR
Interfaz inalámbricaWiFiNinguna
Voltaje de alimentación5 volts, USB, batería LiPo7 a 12 volts, 5 volts, USB
Entradas / salidas digitales814
Salidas PWM126
Entradas analógicas76
Salidas analógicas1Ninguna
Corriente máxima en pin de 3.3 voltsNinguna50 mA
Corriente máxima en pines de IO7 mA20 mA
Memoria flash para programa256 KB32 KB
Memoria RAM32 KB2 KB
Memoria EEPROMNinguna1 KB
Frecuencia de reloj48 Mhz16 Mhz
Led multipropósitopin 6pin 13

 

Lo que nos agrada del Arduino MKR1000

La diferencia más obvia de la nueva familia MKR de Arduino es el tamaño, pues las placas de esta nueva familia se parecen más a un Arduino Nano que a un Arduino Uno. Sin embargo, como ya vimos en la tabla comparativa presentada anteriormente, la cantidad de memoria disponible así como el poder de procesamiento es superior, dado que están basadas en una arquitectura de procesador completamente diferente. El MKR1000 es un arduino chiquito pero picudo, lo cual nos parece excelente.

Arduino MKR1000 comparativo de tamaño

No podemos decir que el CPU  ARM Cortex M0+ es muy novedoso, pues ya hemos visto con anterioridad placas Arduino con procesadores ARM de 32 bits, sin embargo, es bienvenida la excelente cantidad de memoria RAM y Flash disponible para nuestros proyectos, sobre todo cuando estamos hablando de una placa que realizará intercambio de información a través de internet.

El Arduino MKR1000 posee un cargador de batería de polímero de litio, esto nos hace pensar que quien diseñó esta placa pensó desde un principio en dispositivos que pueden transportarse fácilmente, tal vez incluso wearables. Como sea, es bastante conveniente saber que el circuito esta allí y que podemos utilizar nuestro arduino para aplicaciones portátiles.

Finalmente, como dijimos el chip WiFi es excelente. Soporta SSL/TLS para conexiones encriptadas, es sumamente confiable y tiene un rango excelente. La librería que lo soporta es la librería WiFi 101 y es bastante madura, pues ya se ha utilizado en productos anteriores. Se encuentra completamente documentada en el sitio web de Arduino.

 

Lo que no nos agradó

La más grande desventaja que vemos ahora en el Arduino MKR1000, es que la cantidad de accesorios disponibles son prácticamente inexistentes, de hecho se pueden contar con los dedos de las manos las shields compatibles. Esto contrasta con las tarjetas arduino tradicionales, las cuales tienen un amplio ecosistema de accesorios.

Otro punto muy importante a considerar si nos estamos cambiando a la plataforma Arduino MKR1000 desde una placa basada en microcontrolador AVR es que el Arduino MKR1000 trabaja con niveles lógicos de 3.3 volts. Sabemos que la tendencia en el mercado de los microcontroladores desde hace algunos años es utilizar dispositivos que se alimentan con voltajes cada vez más bajos. El Arduino MRK1000 no se escapa de esta tendencia y tendremos que acostumbrarnos a trabajar con señales a 3.3 volts.

Finalmente un tema que tiene que ver con la durabilidad: Los pines de salida solamente pueden proporcionar una corriente de 7 mA, por lo tanto, habrá que tratarlos con cuidado para no dañarlos, sobre todo si uno va comenzando en el tema de microcontroladores.

 

Otras placas comparables que son compatibles con shields

Cuando hablamos de placas de forma tradicional, la más similar al arduino MKR1000 es el Arduino M0, aunque no posee WiFi pero si posee el mismo microcontrolador. La ventaja es que respeta la forma del Arduino Uno como se muestra más abajo y podemos usar  los accesorios que sean compatibles.Arduino M0

Desafortunadamente han descontinuado ya la fabricación de esta placa por parte de arduino, pero otras empresas como Adafruit Industries aún ofrecen alternativas compatibles que montan el microcontrolador Cortex M0. Tal es el caso del Adafruit Metro M0 que se muestra abajo.

Adafruit Metro M0 express

Si colocamos un Adafruit metro M0, un Arduino M0 o M0 Pro (Zero) con un shield de WiFi basado en el ATWINC1500 tendremos prácticamente un Arduino MKR1000, pero compatible con los shields de Arduino que ya conocemos. Lo único que faltaría es cargador de batería para polímero de litio.

Arduino Zero con shield WiFi ATWINC1500

 

Diagrama de pines del Arduino MKR1000

El siguiente diagrama muestra las conexiones del Arduino MKR1000. Conocer las interfaces de las que dispone el Arduino es de vital importancia para poder realizar diseños o prototipos. También nos permite saber como podemos alimentar el Arduino MKR1000.

Distribución de pines o pinout del Arduino MKR1000

Alimentación del Arduino MKR1000

El Arduino MKR1000 puede alimentarse de 3 formas:

  • A través del conector USB
  • A través del pin VIN
  • Mediante una batería de polímero de litio

 

Explicándolo un poco más a fondo, el sistema de alimentación funciona de esta forma:

Podemos alimentar el arduino a través del cable USB o del pin Vin. Si se aplica un voltaje al pin Vin y al conector USB al mismo tiempo, el arduino se alimentará desde el pin Vin y no desde el USB.

A través del pin 5V tendremos presente el voltaje de salida de 5 volts, se provieniente del USB o de Vin. Cuando solo tenemos la batería alimentando el arduino, tendremos un voltaje de alrededor de 3.7 volts en el pin marcado como 5V.

En el pin VDD tendremos salida regulada de 3.3 volts tomada desde Vin, el conector USB o la batería de polímero de litio.

 

El uso de baterías con el MKR1000

El Arduino MKR1000 está diseñado para alimentarse con baterías de polímero de litio. Si alimentamos el Arduino MKR1000 desde USB o a través de Vin con una batería de polímero de litio conectada, la tarjeta comenzará a cargar la batería.

Las baterías de polímero de litio deben cargarse hasta 4.2 volts con una corriente que usualmente es la mitad de la capacidad nominal de la batería (C/2). El chip controlador de carga lleva a cabo el proceso con un ajuste predefinido de corriente a 350 mA. Esto quiere decir que la capacidad mínima de la batería deberá ser de 700 mAh.

Si colocamos celdas más pequeñas, corremos el riesgo de dañarlas, sobrecalentarlas o incluso pueden explotar e incendiar lo que tengan alrededor, ya que se estarían cargando demasiado rápido.

Una batería grande (de unos 2000 mAh) tardará mucho tiempo en cargar, pero no se dañará. El chip de carga del Arduino MKR1000 esta configurado para cargar solo durante 4 horas, por lo tanto, la batería más grande que logrará cargar en ese tiempo es de unos 1400 mAh.

Arduino MKR1000 con batería LiPo

 

Conclusión

El Arduino MRK1000 es una excelente placa para aplicaciones de IoT, robótica y en general cualquier proyecto que deba conectarse a internet o a la red local a través de WiFi.

Aunque no es una placa 100% para principiantes, el equipo de Arduino nuevamente ha hecho un buen trabajo para hacer que sea fácil de usar y relativamente amigable con el usuario principiante o sin profundos conocimientos de microcontroladores.

Esperamos pronto ver más accesorios diseñados para la familia MKR, ya que su relativa complejidad aunada a la falta de accesorios compatibles pueden alejar a muchos de los usuarios de las placas arduino existentes.

 

 

Es necesario que cualquier pago sea realizado a la cuenta que la pagina muestra al crear una orden. No se aceptarán pagos a la cuenta anterior. Hasta nuevo aviso los pagos realizados vía PayPal no serán facturados. Ignorar