miércoles, 26 de junio de 2013

¡Hola!





Bueno, pues si hemos llegado hasta aquí significa que ya tenemos

  1. El Arduino
  2. Nuestro clave USB
  3. Un LED
  4. Un ordenador, y
  5. Hemos instalado el IDE del Arduino

Ahora vamos a hacer que nos salude

¡Hola!

Antiguamente, cuando todavía no podíamos hablar por teléfono, la gente se comunicaba gracias al código Morse. 



Gracias a él y con un poco de destreza, las personas transmitían el mensaje codificado en pulsaciones cortas y largas, y luego el receptor traducía estos puntos y rayas en letras, que a su vez se transformaban en palabras.
Si quisiéramos hablar con nuestro Arduino, este podría se un buen sistema. ¡Vamos a saludarle!

Repasamos entonces lo que hemos aprendido hasta la fecha.

  1. Abriremos el IDE de desarrollo de Arduino, abriremos una aplicación de ejemplo que incluye el propio Arduino para encender y apagar un LED, para ello 
  2. Accederemos al menú "File" - "Examples" - "Basics" - "Blink"


Y esto nos abrirá un ventana con un código muy parecido a éste:


 si ahora conectamos nuestro Arduino por con el cable USB y pulsamos el botón Subir Sketch


Podremos ver que después de un instante nuestro pequeño Arduino, aprende a guiñarnos un ojo


Bueno, a su manera, todavía no es más que un pequeño cerebro que acaba de nacer


Esto en código Morse sería como estar escuchando a nuestro Arduino decir ¡eeeeeee!

Nuestro pobre robot todavía  es un bebé que está aprendiendo a comunicarse



Así que lo primero que vamos a enseñarle es a decirnos Hola, pero como todavía no puede hablar, usará el código Morse y los guiños de sus ojos. Nota: Al final de esta entrada, está el Sketch que vamos a usar para enseñar a nuestro bebé.

No te preocupes ahora por entender cada línea, simplemente Abre un archivo Nuevo, copia todo lo que viene abajo desde /* hasta la }  inclusives, y luego dale a Compilar, luego dale el nombre que quieras por ejemplo "Ej 1 - Hola Arduino" y luego dale a Subir



Con esto habrás creado tu primer Sketch. En la próxima entrada, explicaremos línea a línea lo que hemos hecho.
Tu robot debería saludarte de la siguiente manera.




/*
  Dime ¡Hola!
 
 Usando Codigo Morse un LED situado en el pin 13 del Arduino, se encendera y apagara 
 segun el siguiente codigo
 
 H=.... 
 o=--- 
 l=.-.. 
 a=.-
 
 Para ello vamos a definir un pulso corto como un "guiño" de media decima de segundo, o lo que es lo mismo 50 milisegundos y un "guiño" largo como un "guiño" de medio segundo, o lo que es lo mismo 500 milisegundos
 y separamos cada letra de otra por un tiempo de un segundo, o lo que es lo mismo 1000 milisegundos
 y separamos la palabra "Hola" de la proxima "Hola", por dos segundo, 
 o lo que es lo mismo por 2000 milisegundos 
 
 * Creado Junio, 26 2013 por M. Dominguez
 * copyleft 2013
 * basado en un orginal de B¡link Arduino
 
 */

// Pin 13 del Arduino debe tener un LED conectado, la patita larga o anodo, al pin 13, 
// y la patita corta o catodo al pin GND

// Primero le decimos a nuestro Arduino donde vamos a conectarle el LED
// Así la primera parte de un Sketch será la declaración de variables, donde definiremos las variables globales

int led = 13;

// Ahora viene una parte que solo se ejecuta  una vez tras el arranque de la placa Arduino
// suele utilizarse para definir los pines que vamos a utilizar y declararlos como entradas o como salidas,
// esto es canales que "escuchan" (entradas) o  "hablan" (salidas)

void setup() {                
  // aqui le decimos a nuestro Arduino que el LED, es para que hable, o lo que es lo mismo un OUTPUT (salida en ingles)
  pinMode(led, OUTPUT);     
}


// Es la parte principal de nuestro programa pues en el tendremos que poner el código para que nuestro Arduino
// lo ejecute de manera repetitiva, es decir, 
// esta parte del Sketch se repetirá una y otra vez mientras la placa Arduino tenga energía.

void loop() {

  // Escribimos la H =....
  digitalWrite(led, HIGH);   //  el LED se enciende, y para ello le decimos que se ponga arriba (HIGH en ingles)
  delay(50);               // esperamos media decima de segundo o lo que es lo mismo 50 milisegundos
  digitalWrite(led, LOW);    // el LED se apaga, y para ello le decimos que se ponga abajo (LOW en ingles)
  delay(1000);               // esperamos un segundo (o 1000 milisegundos) para que podamos apuntar cada codigo 

  digitalWrite(led, HIGH);   //  el LED se enciende, y para ello le decimos que se ponga arriba (HIGH en ingles)
  delay(50);               // esperamos media decima de segundo o lo que es lo mismo 50 milisegundos
  digitalWrite(led, LOW);    // el LED se apaga, y para ello le decimos que se ponga abajo (LOW en ingles)
  delay(1000);               // esperamos un segundo (o 1000 milisegundos) para que podamos apuntar cada codigo 

  digitalWrite(led, HIGH);   //  el LED se enciende, y para ello le decimos que se ponga arriba (HIGH en ingles)
  delay(50);               // esperamos media decima de segundo o lo que es lo mismo 50 milisegundos
  digitalWrite(led, LOW);    // el LED se apaga, y para ello le decimos que se ponga abajo (LOW en ingles)
  delay(1000);               // esperamos un segundo (o 1000 milisegundos) para que podamos apuntar cada codigo 

  digitalWrite(led, HIGH);   //  el LED se enciende, y para ello le decimos que se ponga arriba (HIGH en ingles)
  delay(50);               // esperamos media decima de segundo o lo que es lo mismo 50 milisegundos
  digitalWrite(led, LOW);    // el LED se apaga, y para ello le decimos que se ponga abajo (LOW en ingles)
  delay(1000);               // esperamos un segundo (o 1000 milisegundos) para que podamos apuntar cada codigo 

  delay(2000);               // esperamos dos segundos (o 2000 milisegundos) para que podamos apuntar cada codigo y separar cada letra

  // Escribimos la O=---
  digitalWrite(led, HIGH);   //  el LED se enciende, y para ello le decimos que se ponga arriba (HIGH en ingles)
  delay(500);               // esperamos medio segundo o lo que es lo mismo 500 milisegundos
  digitalWrite(led, LOW);    // el LED se apaga, y para ello le decimos que se ponga abajo (LOW en ingles)
  delay(1000);               // esperamos un segundo (o 1000 milisegundos) para que podamos apuntar cada codigo 

  digitalWrite(led, HIGH);   //  el LED se enciende, y para ello le decimos que se ponga arriba (HIGH en ingles)
  delay(500);               // esperamos medio segundo o lo que es lo mismo 500 milisegundos
  digitalWrite(led, LOW);    // el LED se apaga, y para ello le decimos que se ponga abajo (LOW en ingles)
  delay(1000);               // esperamos un segundo (o 1000 milisegundos) para que podamos apuntar cada codigo 

  digitalWrite(led, HIGH);   //  el LED se enciende, y para ello le decimos que se ponga arriba (HIGH en ingles)
  delay(500);               // esperamos medio segundo o lo que es lo mismo 500 milisegundos
  digitalWrite(led, LOW);    // el LED se apaga, y para ello le decimos que se ponga abajo (LOW en ingles)
  delay(1000);               // esperamos un segundo (o 1000 milisegundos) para que podamos apuntar cada codigo 

  delay(2000);               // esperamos dos segundos (o 2000 milisegundos) para que podamos apuntar cada codigo y separar cada letra

  // Escribimos la L=.-.. 

  digitalWrite(led, HIGH);   //  el LED se enciende, y para ello le decimos que se ponga arriba (HIGH en ingles)
  delay(50);               // esperamos media decima de segundo o lo que es lo mismo 50 milisegundos
  digitalWrite(led, LOW);    // el LED se apaga, y para ello le decimos que se ponga abajo (LOW en ingles)
  delay(1000);               // esperamos un segundo (o 1000 milisegundos) para que podamos apuntar cada codigo 

  digitalWrite(led, HIGH);   //  el LED se enciende, y para ello le decimos que se ponga arriba (HIGH en ingles)
  delay(500);               // esperamos medio segundo o lo que es lo mismo 500 milisegundos
  digitalWrite(led, LOW);    // el LED se apaga, y para ello le decimos que se ponga abajo (LOW en ingles)
  delay(1000);               // esperamos un segundo (o 1000 milisegundos) para que podamos apuntar cada codigo 

  digitalWrite(led, HIGH);   //  el LED se enciende, y para ello le decimos que se ponga arriba (HIGH en ingles)
  delay(50);               // esperamos media decima de segundo o lo que es lo mismo 50 milisegundos
  digitalWrite(led, LOW);    // el LED se apaga, y para ello le decimos que se ponga abajo (LOW en ingles)
  delay(1000);               // esperamos un segundo (o 1000 milisegundos) para que podamos apuntar cada codigo 

  digitalWrite(led, HIGH);   //  el LED se enciende, y para ello le decimos que se ponga arriba (HIGH en ingles)
  delay(50);               // esperamos media decima de segundo o lo que es lo mismo 50 milisegundos
  digitalWrite(led, LOW);    // el LED se apaga, y para ello le decimos que se ponga abajo (LOW en ingles)
  delay(1000);               // esperamos un segundo (o 1000 milisegundos) para que podamos apuntar cada codigo 

  delay(2000);               // esperamos dos segundos (o 2000 milisegundos) para que podamos apuntar cada codigo y separar cada letra

  // Escribimos la A=.-


  digitalWrite(led, HIGH);   //  el LED se enciende, y para ello le decimos que se ponga arriba (HIGH en ingles)
  delay(50);               // esperamos media decima de segundo o lo que es lo mismo 50 milisegundos
  digitalWrite(led, LOW);    // el LED se apaga, y para ello le decimos que se ponga abajo (LOW en ingles)
  delay(1000);               // esperamos un segundo (o 1000 milisegundos) para que podamos apuntar cada codigo 

  digitalWrite(led, HIGH);   //  el LED se enciende, y para ello le decimos que se ponga arriba (HIGH en ingles)
  delay(500);               // esperamos medio segundo o lo que es lo mismo 500 milisegundos
  digitalWrite(led, LOW);    // el LED se apaga, y para ello le decimos que se ponga abajo (LOW en ingles)
  delay(1000);               // esperamos un segundo (o 1000 milisegundos) para que podamos apuntar cada codigo 

  // Esperamos un ratito (5 segundos o lo que es lo mismo 5000 milisegundos) para volver a empezar

  delay(5000);               // esperamos 5 segundos (o 5000 milisegundos) para que podamos apuntar cada codigo y separar cada letra


}








No hay comentarios:

Publicar un comentario