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

Arduino DFU Tutorial (Device Firmware Update)


La comunicacion de los Arduino UNO y el Arduino MEGA 2560 utiliza un chip AVR con un firmware que establece la comunicación del host por USB Serial interface y el MCU (chip principal) TTL serial port. Tanto el Arduino UNO R1 como el R2 utilizan el Atmega8u2, y el R3 utiliza el Atmega16u2.
Estos chip pueden ser reprogramados mediante DFU, lo que nos permite convertir el arduino en cualquier tipo de dispositivo USB (teclado, ratón, joystick, MIDI, etc.).
Vamos a instalar las librerias necesarias en Ubuntu (o derivados, como Debian, Elementrary OS...).
sudo apt-get install build-essential libusb-1.0-0-dev automake autoconf
Nos descargamos la última versión desde aquí (click).
tar xzf ~/Downloads/dfu-programmer-0.6.2.tar.gz cd dfu-programmer-0.6.2
#Configure 
./bootstrap.sh 
./configure 
make 
# INSTALL 
sudo make install
Ahora conectamos nuestro arduino al USB y conectamos estos dos pines durante unos segundos y los desconectamos. Escribimos en una terminal:
lsusb
Y nos debe de aparecer en uno de los buses como "Atmel Corp". Bien, ya tenemos el arduino en DFU. Ahora nos descargamos el firmware correspondiente desde aquí (click).
Si tenéis un Arduino UNO R3 (como es mi caso) os tenéis que descargar este (click).
Para descargároslo copiáis el link haciendo click derecho sobre "Raw" y "Copiar dirección de enlace." ahora en una terminal escribís:
wget (y la dirección web que tenéis en el portapapeles)
Ahora escribimos esta secuencia para subir el firmware:
sudo dfu-programmer atmega16u2 erase sudo dfu-programmer atmega16u2 flash Arduino-usbserial-atmega16u2-Uno-Rev3.hex sudo dfu-programmer atmega16u2 reset
Desconectamos el arduino del USB,lo volvemos a instalar y listo!
Ya sabemos como cambiar el firmware, en este caso hemos actualziado la versión. Es importante que tengáis el archivo que os habéis descargado porque es el original de arduino y lo necesitaréis para cargar los sketchs, ya que los otros firmwares no lo permiten.
Nota: si tenéis otro modelo de chip tenéis que cambiar el "atmega16u2" por el que tengáis vosotros.
Happy hacking. Twitter: @Pirobtumen

Primeros pasos Arduino (Parte 2)

En el post anpost anteriorterior comentaba cómo configurar el arduino en ubuntu y probar el primer programa. Bien, ahora vamos a entender el código que usamos.

En Arduino un programa, por simple que sea, debe de estar formado por dos funciones principales:

setup(){...}
loop(){..}

  • Setup: se ejecutará cuando el arduino se inicie o se resetee.
  • Loop: es el bucle principal del arduino.
Por tanto para definir variables y funciones lo haremos antes de la funcion setup().
Pasemos a analizar el código para aprender la sintaxis:
/* Esto es un comentario
que pueede ocupar
varias líneas */
// Comentario de línea

int led = 13; //Declaramos la variable led como "integer" y le asociamos el pin 13

//Cada vez que se resetee
void setup() {
//Inicializamos el pin (13) led como salida
pinMode(led, OUTPUT);
}

// Bucle principal
void loop() {
digitalWrite(led, HIGH); // Establece el pin led al voltaje "high" 5V
delay(1000); // Espera 100ms (1s)
digitalWrite(led, LOW); // Apaga el pin led
delay(1000); // Espera 100ms (1s)
}


  • Comentarios multilínea con: /* */
  • Comentarios de una línea con //
  • pinMode(numeroPin, Valor): establece el pin numeroPin (que es un número) como "OUTPUT" (salida) o "INPUT" (entrada).
  • digitalWrite(numeroPin, Valor):cambia el voltage de los pines correspondientes a las salidas digitales a "HIGH" (alto) o "LOW" (bajo).
  • delay(x): espera x milisegundos.
Es importante saber que tanto los pines analógicos (0-5) como los digitales (0-13) pueden actuar tanto como entrada como salida.

Poco a poco iremos aprendiendo a hacer cositas cada vez un poco más complejas.
Esta entrada finaliza los primeros pasos con arduino ya que en este punto conocemos lo básico sobre arduino para hacerlo funcionar.
En siguientes entradas iré explicando nuevas funciones.


Twitter: @Pirobtumen

Primeros pasos arduino [Ubuntu]

Si no sabéis lo que es el Arduino, pasaros por aquí (click)
Para empezar a hacer cosillas con Arduino, lo primero que tenemos que hacer es instalar el "Arduino IDE" que lo podemos hacer perfectamente desde el "Software Center" de ubuntu.

Lo abrimos y en el buscador escribimos "arduino":


Lo seleccionamos y lo instalamos. También podemos instalarlo descargándolo desde su página (click aquí) y seleccionamos la versión linux32bits.


Descomprimimos el archivo:


Ejecutamos el archivo "arduino" haciendo doble click y luego "ejecutar".

Yo os recomiendo la primera opción, ya que a  parte de darme la impresión de que es más moderna (por el diseño de la interfaz) os crea un lanzador de Unity, por lo que no hay que molestarse más.

Una vez instalado, al abrirlo por primera vez (lo abrís) os saldrá una ventanida sobre los permisos, se los dais, introducís la contraseña si la pide y reiniciáis el PC. 

Una vez encendido continuamos.

Bien una vez aquí, conectamos nuestro arduino por USB y abrimos el IDE. Vamos a herramientas y elegimos el "Serial Port" de nuestro arduino, que deberá salir en la parte de abajo de la aplicación una vez elegido.
Por último elegimos en "Herramientas -> Tarjeta" la que corresponda con nuestro modelo.
Para comprobar que funciona vamos a "Abrir -> Ejemplos -> Basics -> Blink" y se nos abrirá una ventana. Bien, ahora tenemos que conectar el arduino a un led, ya que este código hará que el LED parpadee (si no entendéis algo todavía no os preocupéis, ahora lo explicaré).
Presionáis el botón de cargar (el que es una flechita hacia la derecha, debajo de archivo).

Esquema:

Este programa lo que hace es mandar una señal de 5V a la salida Digital 13, la cual ya lleva un led (L) y una resistencia asociada al led. Por tanto no es necesario conectar el led rojo, pero si queremos no hay ningún problema y no es necesaria la resistencia adicional.

Ya sabemos que el arduino funciona. En la próxima entrada empezamos a programar y a entender el código.



Twitter: @Pirobtumen

¿Arduino? ¿Eso qué es?


Probablemente muchas personas no hayáis oído hablar de esto, a otras os sonará y quizá el resto si lo conocerá más en profundidad.

Arduino es una plataforma de electrónica abierta para la creación de prototipos basada en software y hardware flexibles y fáciles de usar.

Básicamente consiste en un circuito que se distribuye ya montado que podemos comprar por un precio relativamente barato y que nos permite programarlo desde el ordenador a través del puerto USB para crear un prototipo de hardware/software.

Este dispone de pines de entrada y salida para interactuar con chips, motores, led, matrices, LCDs, etc.

Actualmente existen muchos modelos que se adaptan a todas nuestras necesidades. Incluso si queréis lo podéis comprar desmontado y entreteneros en montarlo que la verdad tiene que ser bastante interesante. 


El mío es el Arduino Uno (clic aquí para ir a la documentación oficial) . Para mí es el que mejor se adapta a mis necesidades: me sirve para "todo en general" ya que dispone de suficientes salidas para lo que necesito. Para los que vayáis a iniciaros en este mundillo es el que recomiendo. Es el único que tengo y del que puedo hablar.


Existe otros (Arduino Nano o Micro más pequeños, Arduino Due más potente y con más salidas, etc.)

Por tanto podemos definirlo como una plataforma de "Hardware Libre" que si sabemos usarla y dejamos volar nuestra imaginación podemos crear cualquier cosa. 




Ejemplos (click aquí)

Página web oficial: (click aquí)


Twitter: @Pirobtumen