Cómo conseguir un “Arduino” Gratis

Para conseguir un “Arduino” gratis, se puede recurrir a la opción de solicitar muestras gratuitas a Atmel en http://www.atmel.com/ en el apartado “buy” y luego “request a sample”.

Atmel como el resto de fabricantes de componentes electrónicos disponen de programas de muestras gratuitas que podemos usar para probar sus productos y hacer nuestros prototipos.

Otros fabricantes donde solicitar muestras gratuitas de sus microcontroladores:

Obviamente de esta forma, no vamos a tener un Arduino gratis, sino el microcontrolador que es el principal componente de un Arduino. Para dejar claro qué es un Arduino y qué es un microcontrolador, en esta página del curso #aprendiendoarduino explico qué es Arduino y el hardware libre: https://aprendiendoarduino.wordpress.com/2014/11/23/tema-1-plataforma-hardware-arduino/

Dado que quería testear varios microcontroladores con el IDE de Arduino, pedí varios componentes a Atmel a través de su programa de muestras gratuitas. Estos son los elementos que pedí:

En la imagen siguiente dejo el albarán de lo que llegó a mi casa, donde se puede ver el precio de cada uno de ellos, en concreto el microcontrolador ATmega328P que tiene el Arduino UNO cuesta 1.56 dólares:

albaran

En total pedí 4 microcontroladores de la familia megaAVR de 8 bits: http://www.atmel.com/products/microcontrollers/avr/megaAVR.aspx, un microcontrolador de la familia tinyAVR http://www.atmel.com/products/microcontrollers/avr/tinyavr.aspx y una EEPROM de 512Kb diseñada para almacenar programas de FPGAs pero que quiero tratar de usar como memoria externa.

Centrándonos en los microcontroladores, tanto el ATmega328P como el ATmega168P son soportados de forma nativa por el software de Arduino. Viendo el fichero boards.txt del IDE de Arduino en su versión 1.6, se observa que son varias las placas oficiales de Arduino que tienen estos microcontroladores.

Para el ATtiny85, tenemos que recurrir al playground de Arduino para saber como configurar el IDE de Arduino y poder usarlo con esta MCU. En este enlace está la información necesaria: http://playground.arduino.cc/Main/ArduinoOnOtherAtmelChips. En este otro enlace explica perfectamente como usarlo: http://highlowtech.org/?p=1695 y finalmente en este tutorial explica como programar un ATtiny con el IDE de Arduino: http://www.instructables.com/id/Program-an-ATtiny-with-Arduino/

Los microcontroladores ATtiny son especialmente útiles en pequeñas aplicaciones que no necesiten un gran número de entradas y salidas, en mi caso lo uso para descargar tareas al arduino principal y que sean hechas por el ATtiny comunicándolos por puerto serie o inalámbricamente por RF.

ATtiny dispone de 6 entradas/salidas programables, un interfaz serie, sensor de temperatura integrado on-chip, programación vía puerto SPI, oscilador interno, etc… y sobre todo muy bajo consumo, que lo hace idóneo para aplicaciones con baterías.

Este el el pinout de un ATtiny85:

Para el ATmega88PA, el proceso es similar. En este enlace tenéis toda la información en este enlace: http://www.morethantechnical.com/2012/04/04/bootloading-an-atmega88-for-arduino-w-code/. En este caso tenemos un bootloader para este microcontrolador, basado en el bootloader del ATmega168.

El ATmega88PA es un microcontrolador muy similar al ATmega168PA y al ATmega 328P, compartiendo el mismo mapa de pines pero con solo 8 Kbytes de memoria flash, 1 Kbyte de SRAM y 512 bytes de EEPROM, lo que nos permitirá ponerlo en la placa de un Arduino UNO para poder usarlo.

En el caso  del ATmega32A, este tutorial explica paso a paso como usar el IDE de Arduino con el ATmega32: http://www.instructables.com/id/Using-Atmega32-with-Arduino-IDE/

Este microcontrolador tiene una flash de 32 Kbytes, una frecuencia máxima operativa algo menor que el ATmega328p, pero más pines de entrada y salida que la MCU del Arduino UNO , así como algunas limitaciones de funcionalidad sobre el ATmega328p.

Para más información sobre cómo personalizar el IDE de Arduino para soportar otros microcontroladores, está perfectamente explicado en este enlace: http://playground.arduino.cc/Main/CustomizeArduinoIDE

Por último, en este fantástico tutorial de ladyada, explica como usar avrdude, que en definitiva es el programa que usa el IDE de Arduino para cargar los programas en la flash de los microcontroladores de la familia AVR de Atmel: http://www.ladyada.net/learn/avr/avrdude.html y la web del proyecto avrdude es: http://savannah.nongnu.org/projects/avrdude.

Por lo tanto según el manual de avrdude que puedes encontrar en http://www.nongnu.org/avrdude/user-manual/avrdude.html, los microncontroladores que puedes programar con avrdude y por ende con el IDE de Arduino son los que aparecen en este listado: http://www.nongnu.org/avrdude/user-manual/avrdude_4.html#Option-Descriptions, así como los programadores soportados.

Después de esta explicación sobre varios microcontroladores, veamos los pasos para conseguirlos con el programa de muestras gratuitas de Atmel.

Primero es necesario registrarse en Atmel, obtener un usuario de myAtmel y entrar en el apartado Buy/Request a Sample:

request a sample

Después de esto aparece un listado para buscar las muestras gratuitas que deseamos:

listado samples

Aquí tenemos muchísimas referencias, en este caso para buscar los microcontroladores compatibles con el IDE de arduino, selecciono en part type “MCU AVR”. Aun así las referencias son muchísimas.

Si queremos por ejemplo un ATmega328p que es el microcontrolador que usa el Arduino UNO al poner “328p” en part number, nos salen 12 opciones:

328p

Ahora veamos las diferencias de esos doce part numbers que tiene Atmel para el ATmega328P. Para ello, vamos al apartado “Ordering Information” del documento resumen que ofrece Atmel para el ATmega328P http://www.atmel.com/Images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Summary.pdf y vemos que existen estos doce tipos de microcontroladres ATmega328p:

Ordering Codes

Se divide en dos partes en función de la rango de temperaturas de trabajo y dentro de ellos el tipo de package o formato. Para saber a qué tipo de encapsulado corresponde cada formato, simplemente leer el documento resumen de Atmel anteriormente mencionado a partir de la página 24 donde describe cada uno de ellos.

En estas imágenes también se puede ver algunos de los formatos con otra codificación.

Packaging Range 2

Packaging Range 1

En nuestro caso como queremos un ATmega328P para sustituirlo en nuestra placa de Arduino UNO, necesitamos el formato PDIP-28 o 28DIP o 28P3, que son el mismo formato con diferente nomenclatura, pero en definitiva un formato de 28 pines para poder poner en una protoboard o en un Arduino UNO.

Después de seleccionar el microcontrolador o los elementos que queramos probar, se envía la solicitud (Submit Request) y debemos rellenar un formulario indicando el tipo de aplicación, el equipo final y el cliente final. Además se debe rellenar los detalles del proyecto.

Dejo una captura de pantalla de los datos a rellenar:

Formulario

En mi caso expliqué el proyecto al que iba a destinar el material, en concreto un prototipo para monitorización industrial. Tras enviar el pedido, en unos minutos recibí un email confirmándolo y en menos de 24 horas recibes otro email con el estado del envío y el número de seguimiento del pedido.

En aproximadamente una semana llega el “Arduino”, solo me queda quitar el ATmega328P del Arduino UNO y sustituirlo por este.

ATmega328P

Pero aún nos queda un paso para poder usar este microcontrolador gratuito en el Arduino UNO, se trata de cargar el bootloader.

Lógicamente, los microcontroladores que vende Atmel tiene la flash vacía y si quiero programarlos tan fácilmente como la plataforma Arduino nos permite simplemente conectando a un puerto USB de nuestro ordenador y cargar el código en la flash de la MCU pulsando un botón, necesito que el ATmega328P tenga cargado el bootloader que hace que todo sea mucho más simple.

Para cargar el bootloader y entender mejor porqué es necesario para usar un microcontrolador en el Arduino UNO, lo explico en el apartado de bootloader del curso #aprendiendoarduino https://aprendiendoarduino.wordpress.com/2014/11/17/tema-7-conceptos-avanzados-de-hardware/

Para cargar el bootloader es necesario o bien un programador ISP o bien tener otro Arduino y convertirlo en un programador como muy bien queda explicado en este tutorial: http://arduino.cc/en/pmwiki.php?n=Tutorial/ArduinoISP

Con este artículo no he pretendido solo hacer un paso a paso de como conseguir gratis un microcontrolador como el usado en el Arduino UNO, sino que lo he aprovechado para hablar de otros microcontroladores, intentar explicar un poco mejor que Arduino es una plataforma para programar de forma sencilla MCUs de la familia AVR de Atmel y como programas otros microcontroladores de Atmel con el IDE de Arduino.

Referencias:

 

Anuncios

11 pensamientos en “Cómo conseguir un “Arduino” Gratis

  1. Pingback: Práctica: Montaje del Starter Kit Arduino y conocer todos los elementos. | Aprendiendo Arduino

  2. Diego Salvetti

    Hola, muchas gracias por compartir esto. Realmente es muy útil. Soy docente del interior de Argentina y es casi imposible conseguir partes como éstas (salvo que uno viaje a BsAs)
    Te hago una consulta cuando completo el formulario tal como describís vos, aparece un campo al inicio que no se como llenarlo. Dice ” Import Registration Number : ”
    (Importer”s registration number required for customs clearance)
    Tenés idea como llenarlo o que datos usar?

    Muchas gracias, saludos.

    Me gusta

    Responder
    1. jecrespom Autor de la entrada

      Hola Diego, hace unos días pedí un ATMEGA328P-PN (el mismo que lleva el arduino UNO de 28 pines) y en el formulario hay dos campos iniciales que he dejado vacíos, son Customer PO y EORI Number (Economic Operator Registration Identification number). El segundo número (EOIR) es un número para la unión europea que es necesario para empresas importadoras o exportadoras. A pesar de que el número en el formulario aparece como obligatorio lo dejé vacío y no hubo problema.
      Imagino que para Argentina el “Import Registration Number” es un número similar, al ser un particular no es necesario tener ese número.

      Ya me dirás si has podido solicitarlo. En mi caso ya me han aceptado el pedido y ya está en proceso de envío.

      Por cierto esta unidad la voy a usar para hacer un prototipo de un termostato conectado a Internet para una caldera, ahora que se acerca el frío a España. En cuanto lo tenga hecho publicaré el código y una explicación del código y como usar el termostato.

      Me gusta

      Responder
      1. Diego Salvetti

        Hola! Muchas gracias por la respuesta. Voy a probar como decis vos y luego lo comparto acá con ustedes. Ojalá pueda completar mi orden ya que cada ves es más dificil conseguir estos componentes en el interior de Argentina.
        Saludos!!

        Me gusta

  3. Pingback: Descripción de HW Arduino | Aprendiendo Arduino

  4. Pingback: Microcontroladores | Aprendiendo Arduino

  5. Pingback: Arduino Uno a fondo. Mapa de pines | Aprendiendo Arduino

  6. Pingback: Microcontrolador vs Microprocesador | Aprendiendo Arduino

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s