martes, 2 de mayo de 2017

Características generales de la placa

Se trata de una placa open hardware por lo que su diseño es de libre distribución y utilización, que incluso podemos construirnos nosotros mismos (En la Figura 1 se observa el aspecto de la placa). En la siguiente web puede encontrarse mucha información relativa a la placa:

Figura 1. Aspecto de la placa Arduino Duemilanove.
El programa se implementará haciendo uso del entorno de programación propio de arduino y se transferirá empleando un cable USB. Si bien en el caso de la placa USB no es preciso utilizar una fuente de alimentación externa, ya que el propio cable USB la proporciona, para la realización de algunos de los experimentos prácticos sí que será necesario disponer de una fuente de alimentación externa ya que la alimentación proporcionada por el USB puede no ser suficiente. El voltaje de la fuente puede estar entre 6 y 25 Voltios.




Entorno de desarrollo

Para programar la placa es necesario descargarse de la página web de Arduino el entorno de desarrollo (IDE). Se dispone de versiones para Windows y para MAC, así como las fuentes para compilarlas en LINUX. En la Figura 2 se muestra el aspecto del entorno de programación. En el caso de disponer de una placa USB es necesario instalar los drivers FTDI. Estos drivers vienen incluidos en el paquete de Arduino mencionado anteriormente. Existen en la web versiones para distintos sistemas operativos.
Figura 2. Entorno de desarrollo.
Lo primero que tenemos que hacer para comenzar a trabajar con el entorno de desarrollo de arduino es configurar las comunicaciones entre la placa Arduino y el PC. Para ello deberemos abrir en el menú "Tools" la opción "Serial Port". En esta opción deberemos seleccionar el puerto serie al que está conectada nuestra placa. En Windows, si desconocemos el puerto al que está conectado nuestra placa podemos descubrirlo a través del Administrador de dispositivos (Puertos COM & LPT/ USB Serial Port).
El primer paso para comprobar que todo lo que hemos hecho hasta ahora está bien y familiarizarnos con el interfaz de desarrollo, es abrir uno de los ejemplos. Se recomienda abrir el ejemplo "Blink". Para ello debemos acceder a través del menú File ( Sketchbook ( Examples ( Digital ( Blink.
El ejemplo "Blink" lo único que hace es parpadear un LED que está colocado en el pin número 13 de la placa. Vamos a ver qué hay que hacer para subir el programa a la placa Arduino. Primero comprobamos que el código fuente es el correcto. Para ello pulsamos el botón de verificación de código que tiene forma de triángulo inclinado 90 grados (Figura 3.a). Si todo va bien deberá aparecer un mensaje en la parte inferior de la interfaz indicando "Done compiling". Una vez que el código ha sido verificado procederemos a cargarlo en la placa. Para ello tenemos que pulsar el botón de reset de la placa (Figura 3.b) e inmediatamente después pulsar el botón que comienza la carga (Figura 3.c).
Durante la carga del programa, en la placa USB, se encenderán los LED que indican que se están enviando y recibiendo información por el puerto serie: TX/RX. Si todo se ha realizado correctamente debe aparecer el mensaje "Done uploading". Ahora tan sólo queda esperar unos 8 segundos aproximadamente para comprobar que todo ha salido bien. Si el led colocado en el pin 13 de la placa se enciende y se apaga cada segundo entonces todo ha ido bien. Por fin tenemos todo listo para empezar a trabajar con la placa Arduino.
Figura 3. a) Compilar programa. b) Botón de reset. c) Transferir programa a la placa.




Estructura básica de un programa

La estructura básica de programación de Arduino es bastante simple y divide la ejecución en dos partes: setup y loop. Setup() constituye la preparación del programa y loop() es la ejecución. En la función Setup() se incluye la declaración de variables y se trata de la primera función que se ejecuta en el programa. Esta función se ejecuta una única vez y es empleada para configurar el pinMode (p. ej. si un determinado pin digital es de entrada o salida) e inicializar la comunicación serie. La función loop() incluye el código a ser ejecutado continuamente (leyendo las entradas de la placa, salidas, etc.).
 
void setup() { 
   inMode(pin, OUTPUT);  // Establece 'pin' como salida 
} 
void loop() {
   digitalWrite(pin, HIGH); // Activa 'pin'
   delay(1000);   // Pausa un segundo 
   digitalWrite(pin, LOW);  // Desactiva 'pin'
   delay(1000);
} 
 
Como se observa en este bloque de código cada instrucción acaba con ; y los comentarios se indican con //. Al igual que en C se pueden introducir bloques de comentarios con /* ... */.



Funciones

 
Una función es un bloque de código identificado por un nombre y que es ejecutado cuando la función es llamada. La declaración de una función incluye en primer lugar el tipo de datos que devuelve la función (e.j. int si lo que devuelve es un valor entero). Después del tipo de datos se especifica el nombre de la funció<bookmark>OLE_LINK1</bookmark>int delayVal() { 
   int v;   // crea una variable temporal 'v' 
   v = analogRead(pot);  // lee el valor del potenciómetro 
   v /= 4;   // convierte los valores 0-1023 a 0-255 
   return v;   // devuelve el valor final de la variable 
} 
 



Variables

Una variable debe ser declarada y opcionalmente asignada a un determinado valor. En la declaración de la variable se indica el tipo de datos que almacenará (int, float, long)
 
int inputVariable = 0; 
 
Una variable puede ser declarada en el inicio del programa antes de setup(), localmente a una determinada función e incluso dentro de un bloque como pueda ser un bucle. El sitio en el que la variable es declarada determina el ámbito de la misma. Una variable global es aquella que puede ser empleada en cualquier función del programa. Estas variables deben ser declaradas al inicio del programa (antes de la función setup()).
 
int v;    // 'v' es visible en todo el programa
void setup() { 
   // no se requiere setup 
} 
void loop() { 
   for (int i=0; i<20;) // 'i' es visible solo en el bucle
   i++; 
   float f; // 'f' es visible únicamente en la función loop()
}



Tipos de datos

Arduino permite manejar los siguientes tipos de datos:
  • Byte. Almacena un valor numérico de 8 bits. Tienen un rango de 0-255.
  • Int. Almacena un valor entero de 16 bits con un rango de 32,767 a -32,768.
  • Long. Valor entero almacenado en 32 bits con un rango de 2,147,483,647 a -2,147,483,648.
  • Float. Tipo coma flotante almacenado en 32 bits con un rango de 3.4028235E+38 a -3.4028235E+38.
  • Arrays Se trata de una colección de valores que pueden ser accedidos con un número de índice (el primer valor del índice es 0). Ejemplos de utilización:
    • Definición y asignación. int myArray[] = {value0, value1, value2...}
    • Definición. int myArray[5]; // declara un array de 6 enteros
    • Asignación del cuarto componente. myArray[3] = 10;
    • Recuperar el cuarto componente y asignarlo a x. x = myArray[3];

Tipos de datos

Arduino permite manejar los siguientes tipos de datos:
  • Byte. Almacena un valor numérico de 8 bits. Tienen un rango de 0-255.
  • Int. Almacena un valor entero de 16 bits con un rango de 32,767 a -32,768.
  • Long. Valor entero almacenado en 32 bits con un rango de 2,147,483,647 a -2,147,483,648.
  • Float. Tipo coma flotante almacenado en 32 bits con un rango de 3.4028235E+38 a -3.4028235E+38.
  • Arrays Se trata de una colección de valores que pueden ser accedidos con un número de índice (el primer valor del índice es 0). Ejemplos de utilización:
    • Definición y asignación. int myArray[] = {value0, value1, value2...}
    • Definición. int myArray[5]; // declara un array de 6 enteros
    • Asignación del cuarto componente. myArray[3] = 10;
    • Recuperar el cuarto componente y asignarlo a x. x = myArray[3];

Operadores aritméticos

 
Empleando variables, valores constantes o componentes de un array pueden realizarse operaciones aritméticas y se puede utilizar el operador cast para conversión de tipos. Ej. int a = (int)3.5; Además pueden hacerse las siguientes asignaciones:
 x ++. Lo mismo que x = x + 1.
 x --. Lo mismo que x = x - 1, or decrements x by -1.
 x += y. Lo mismo que x = x + y, or increments x by +y.
 x -= y. Lo mismo que x = x - y .
 x *= y. Lo mismo que x = x * y. 
 x /= y. Lo mismo que x = x / y. 
Para su utilización en sentencias condicionales u otras funciones Arduino permite utilizar los siguientes operadores de comparación:
 x == y. x es igual a y.
 x != y. x no es igual a y.
 x < y, x > y, x <= y, x >= y. 
Y los siguientes operadores lógicos:
 Y lógico:  if (x > 0 &#38;&#38; x < 5). Cierto si las dos expresiones lo son.
 O lógico:  if (x > 0 || y > 0). Cierto si alguna expresión lo es.
 NO lógico: if (!x > 0). Cierto si la expresión es falsa. 
El lenguaje de Arduino presenta las siguientes constantes predefinidas:
 TRUE / FALSE.
HIGH/LOW. Estas constantes definen los niveles de los pines como HIGH o LOW y son empleados cuando se leen o escriben en las entradas o salidas digitales. HIGH se define como el nivel lógico 1 (ON) o 5 V. LOW es el nivel lógico 0, OFF, o 0 V.
INPUT/OUTPUT. Constantes empleadas con la función pinMode() para definir el tipo de un pin digital usado como entrada INPUT o salida OUTPUT. Ej. pinMode(13, OUTPUT); 
 



Sentencias condicionales

El lenguaje de arduino permite realizar sentencias condicionales if, if... else, for, while, do... while. Su utilización es similar a las funciones correspondientes en C.

Entradas y salidas digitales y analógicas

9.1. Función pinMode(pin, mode)
Función usada en la function setup() para configurar un pin dado para comportarse como INPUT o OUTPUT. Ej. pinMode(pin, OUTPUT); configura el pin número 'pin' como de salida. Los pines de Arduino funcionan por defecto como entradas, de forma que no necesitan declararse explícitamente como entradas empleando pinMode().
9.2. Función digitalRead(pin)
Lee el valor desde un pin digital específico. Devuelve un valor HIGH o LOW. El pin puede ser especificado con una variable o una constante (0-13). Ej. v = digitalRead(Pin);
9.3. Funcion digitalWrite(pin, value)
Introduce un nivel alto (HIGH) o bajo (LOW) en el pin digital especificado. De nuevo, el pin puede ser especificado con una variable o una constante 0-13. Ej. digitalWrite(pin, HIGH);
9.4. Función analogRead(pin)
Lee el valor desde el pin analógico especificado con una resolución de 10 bits. Esta función solo funciona en los pines analógicos (0-5). El valor resultante es un entero de 0 a 1023. Los pines analógicos, a diferencia de los digitales no necesitan declararse previamente como INPUT o OUTPUT.
9.5. Función analogWrite(pin, value)
Escribe un valor pseudo-analógico usando modulación por ancho de pulso (PWM) en un pin de salida marcado como PWM. Esta función está activa para los pines 3, 5, 6, 9, 10, 11. Ej analogWrite(pin, v); // escribe 'v' en el 'pin' analógico. Puede especificarse un valor de 0 - 255. Un valor 0 genera 0 V en el pin especificado y 255 genera 5 V. Para valores de 0 a 255, el pin alterna rápidamente entre 0 V y 5 V, cuanto mayor sea el valor, más a menudo el pin se encuentra en HIGH (5 V). Por ejemplo, un valor de 64 será 0 V tres cuartas partes del tiempo y 5 V una cuarta parte. Un valor de 128 será 0 V la mitad del tiempo y 5 V la otra mitad. Un valor de 192 será 0 V una cuarta parte del tiempo y 5 V tres cuartas partes.

Funciones de tiempo y matemáticas

  • delay(ms). Realiza una pausa en el programa la cantidad de tiempo en milisegundos especificada en el parámetro (máximo 1000, mínimo 1).
  • millis(). Devuelve la cantidad de milisegundos que lleva la placa Arduino ejecutando el programa actual como un valor long unsigned. Después de de 9 horas el contador vuelve a 0.
  • min(x,y). max(x,y). Devuelve el mínimo y el máximo respectivamente de entre sus parámetros.

Funciones de generación aleatoria

  • randomSeed(seed). Especifica un valor o semilla como el punto de inicio para la función random(). Este parámetro debe ser realmente aleatorio y para ello puede emplearse la función millis() o incluso analogRead() para leer ruido eléctrico desde una entrada analógica.
  • random(max), random(min, max). Esta función devuelve un valor aleatorio entre el rango especificado.

Puerto serie

  • Serial.begin(rate). Abre un Puerto serie y especifica la velocidad de transmisión. La velocidad típica para comunicación con el ordenador es de 9600 aunque se pueden soportar otras velocidades.
  • Serial.println(data). Imprime datos al puerto serie seguido por un retorno de línea automático. Este comando tiene la misma forma que Serial.print() pero este último sin el salto de línea al final. Este comando puede emplearse para realizar la depuración de programas. Para ello puede mandarse mensajes de depuración y valores de variables por el puerto serie. Posteriormente, desde el entorno de programación de Arduino, activando el "Serial Monitor" se puede observar el contenido del puerto serie, y, por lo tanto, los mensajes de depuración. Para observar correctamente el contenido del puerto serie se debe tener en cuenta que el "Serial Monitor" y el puerto serie han de estar configurados a la misma velocidad (Para configurar la velocidad del puerto serie se hará con el comando Serial.begin(rate)).
  • Serial.read().Lee o captura un byte (un caracter) desde el puerto serie. Devuelve -1 si no hay ningún carácter en el puerto serie.
  • Serial.available(). Devuelve el número de caracteres disponibles para leer desde el puerto serie.

Ejemplos de código

Salida digital
En este ejemplo el LED conectado al pin 13 parpadea cada segundo.
 
int ledPin = 13;   // LED que se encuentra en el pin 13
   void setup(){ 
   pinMode(ledPin, OUTPUT); // El p1n 13 será una salida digital 
} 
void loop(){ 
   digitalWrite(ledPin, HIGH); // Enciende el LED
   delay(1000);     // Pausa de 1 segundo 
   digitalWrite(ledPin, LOW);  // Apaga el LED 
   delay(1000);    // Pausa de 1 segundo 
} 
 
Salida digital II
En este ejemplo el LED conectado al pin 13 parpadea en un intervalo de tiempo variable que depende del número de veces que se ejecuta el programa (función loop)
 
int ledPin = 13; // LED que se encuentra en el pin 13
int n = 0;   //Entero que contará el paso por la función loop
void setup(){ 
   pinMode(ledPin, OUTPUT); // El p1n 13 será una salida digital 
} 
void loop(){ 
   digitalWrite(ledPin, HIGH); // Enciende el LED
   delay(1000);     // Pausa de 1 segundo 
   digitalWrite(ledPin, LOW);  // Apaga el LED 
   n++;     //Incrementamos n
   delay(delayVal(n));   //Pausa de un tiempo variable
}
 
//Función que devuelve un valor tipo entero según el parámetro pasado
 
int delayVal(int f){
   return f*100;
}
 
Entrada digital
Este ejemplo lee el valor de un interruptor conectado en el pin 2. Cuando el interruptor está cerrado en el pin de entrada habrá un estado alto (HIGH) y se encenderá el LED.
 
int ledPin = 13;  // Pin de salida para el LED 
int inPin = 2; // Pin de entrada (donde está conectado el interruptor) 
void setup() { 
   pinMode(ledPin, OUTPUT); 
   pinMode(inPin, INPUT); 
} 
void loop() { 
   if (digitalRead(inPin) == HIGH){ // Si se activa interruptor
      digitalWrite(ledPin, HIGH); // Enciende el LED 
      delay(1000);    // Pause de 1 segundo 
      digitalWrite(ledPin, LOW);  // Apaga el LED 
      delay(1000);    // Pausa de 1 segundo 
   } 
}
 
Salida PWM
Modulación por ancho de pulso (PWM) puede emplearse, por ejemplo, para establecer el brillo de un led o controlar un servomotor. En el siguiente ejemplo se va aumentando y decrementando el brillo del pin 9 mediante PWM.
 
int ledPin = 9;     // Pin controlado por PWM 
void setup(){} 
void loop() { 
   for (int i=0; i<=255; i++){ 
      analogWrite(ledPin, i);  // Establece el brillo a i 
      delay(100);     // Pausa de 100 ms 
   } 
   for (int i=255; i>=0; i--) { 
      analogWrite(ledPin, i); 
      delay(100); 
   } 
}
 
Entrada a partir de un potenciómetro
En el siguiente código se emplea arduino para controlar la frecuencia de parpadeo de un LED.
 
int potPin = 0;   // Pin de entrada para el potenciómetro 
int ledPin = 13;   // Pin de salida para el LED
void setup() { 
   pinMode(ledPin, OUTPUT);  // Declara el pin del LED como de salida
} 
void loop() { 
   digitalWrite(ledPin, HIGH); // Enciende el LED 
   delay(analogRead(potPin));  // Lee el valor del potenciómetro 
   digitalWrite(ledPin, LOW);  // Apaga el LED 
   delay(analogRead(potPin));   
} 
 
Generador de animadas GIF gifup.com
Generador de animadas GIF gifup.com GIF animations generator gifup.com
GIF animations generator gifup.com
GIF animations generator gifup.com
GIF animations generator gifup.com

martes, 21 de marzo de 2017



ESQUEMA DEL ARDUINO UNOResultado de imagen para esquema del arduino uno



PARTES DEL ARDUINO

Existen múltiples variantes del Arduino. En este caso, usaremos el Arduino UNO que es el más común.
Potencia - USB (1) / Conector de Adaptador (2)
Cada placa Arduino necesita una forma de estar alimentado electricamente. Esta puede ser alimentado desde un cable USB que viene de su ordenador o un cable de corriente eléctrica con su respectivo adaptador. La conexión USB es también cómo va a cargar código en su placa Arduino.
NO utilice una fuente de alimentación superior a 20 voltios, ya que se puede dañar la placa Arduino. La tensión recomendada para la mayoría de los modelos de Arduino es de entre 6 y 12 voltios.
Pines (5V, 3.3V, GND, Analog, Digital, PWM, AREF)
Los pines en la placa Arduino es donde se conectan los cables de un circuito. El Arduino tiene varios tipos diferentes de entradas, cada uno de las cuales está marcado en el tablero y utilizan para diferentes funciones:
• GND (3): Abreviatura de "tierra" (en Ingles). Hay varios pines GND en el Arduino, cualquiera de los cuales pueden ser utilizados para conectar a tierra el circuito.
• 5V (4) y 3.3V (5): Son los suministros pin 5V 5 voltios de energía, y los suministros de pin 3.3V 3.3 voltios de potencia.
• Analógico (6): El área de pines en el marco del 'analógica' etiqueta (A0 a A5) son analógicas. Estos pines pueden leer la señal de un sensor analógico (como un sensor de temperatura) y convertirlo en un valor digital que podemos leer.
• Digital (7): Son los pines digitales (del 0 al 13). Estos pines se pueden utilizar tanto para la entrada digital (como decir, si se oprime un botón) y salida digital (como encender un LED).
• PWM (8): Usted puede haber notado la tilde (~) al lado de algunos de los pines digitales (3, 5, 6, 9, 10 y 11). Estos pines actúan como pines digitales normales, pero también se pueden usar para algo llamado Modulación por ancho de pulsos (PWM, por sus siglas en Ingles).
• AREF (9): Soportes de referencia analógica. La mayoría de las veces se puede dejar este pin solo. A veces se utiliza para establecer una tensión de referencia externa (entre 0 y 5 voltios) como el límite superior para los pines de entrada analógica.
Botón de reinicio (10)
Empujando este botón se conectará temporalmente el pin de reset a tierra y reinicie cualquier código que se carga en el Arduino. Esto puede ser muy útil si el código no se repite, pero quiere probarlo varias veces.
Indicador LED de alimentación (11)
Este LED debe encenderse cada vez que conecte la placa Arduino a una toma eléctrica. Si esta luz no se enciende, hay una buena probabilidad de que algo anda mal.
LEDs RX TX (12)
TX es la abreviatura de transmisión, RX es la abreviatura de recibir. Estas marcas aparecen un poco en la electrónica para indicar los pasadores responsables de la comunicación en serie. En nuestro caso, hay dos lugares en la Arduino UNO donde aparecen TX y RX - una vez por pines digitales 0 y 1, y por segunda vez junto a los indicadores LED de TX y RX (12). Estos LEDs nos darán algunas buenas indicaciones visuales siempre nuestro Arduino está recibiendo o transmitiendo datos (como cuando nos estamos cargando un nuevo programa en el tablero).
Microcontrolador (13)
Lo negro con todas las patas de metal es un circuito integrado (IC, por sus siglas en Ingles). Piense en ello como el cerebro de nuestro Arduino. La principal IC en el Arduino es ligeramente diferente del tipo de placa a placa tipo, pero es por lo general de la línea de ATmega de CI de la empresa ATMEL. Esto puede ser importante, ya que puede necesitar para saber el tipo de IC (junto con su tipo de tarjeta) antes de cargar un nuevo programa desde el software de Arduino. Esta información se puede encontrar en la escritura en la parte superior de la IC. Si quieres saber más acerca de la diferencia entre diversos circuitos integrados, la lectura de las hojas de datos suele ser una buena idea.
Regulador de Voltaje (14)
Esto no es realmente algo que se puede (o debe) interactuar con el Arduino. Pero es potencialmente útil para saber que está ahí y para qué sirve. El regulador de voltaje hace exactamente lo que dice - que controla la cantidad de tensión que se deja en la placa Arduino. Piense en ello como una especie de guardián; se dará la espalda a una tensión adicional que podría dañar el circuito. Por supuesto, tiene sus límites, por lo que no conecta tu Arduino a nada superior a 20 voltios.

QUE ES UNA ENTRADA LOGICA
Corresponde a una señal del tipo 0-1 refiriendose a 0 como cero Volts y 1 como 10, 15, 24 Volts dependiendo de la merca del variador de frecuencia, este tipo de señales se utilizan generalmente para poner en marcha, parar, invertir el sentido de giro entre otras

QUE ES UNA ENTRADA ANALOGICA

Correponde a una entrada variable entre -10 Volt a 10 Volt, a 0-10 Volt, a 0-20 mA, o a 4-20mA
Las dos primeras corresponden a entradas de tension y las otras a entradas de corriente.
En los variadores puedes tener 1 o 2 entradas de este tipo que pueden utilizarse tanto de corriente como de tension, seleccionandolas desde la programacion o con bornes. Estas señales se utilizan para dar una referencia de velocidad y la realimentacion de la variable que se desea controlar.

CUANTOS PINES TIENE UN ARDUINO?


Entradas y salidas digitales: Están situadas en la parte de arriba de la placa, van del 0 hasta el 13, este ultimo pin lleva una resistencia interna incluida. La señal digital puede estar o encendida o apagada (LOW o HIGH). Los pines cero y uno se pueden utilizar para cargar el programa en la placa. Por ejemplo, se utilizan para parpadear un LED o; como entrada, un pulsador.

Salidas analógicas: Son los pines 11, 10, 9, 6, 5 y 3, si os fijáis tienen una raya curva al lado, se denominan salidas PWM (Pulse Width Modulation) que ralmente son salidas digitales que imitan salidas analógicas, modificando la separación entre los diferentes pulsos de la señal. La señal PWM puede dar diversos valores hasta 255, se utilizan, por ejemplo para variar la intensidad de un LED o hacer funcionar un servo. Hay que decir que estos pines funcionan como salidas o entradas digitales o como salidas analógicas.
Entradas analógicas: Son los pines A0, A1, A2, A3, A4 y A5 (analog in). Se utilizan para que entre una señal de un sensor analógico, tipo un potenciómetro o un sensor de temperatura, que dan un valor variable. También se pueden utilizar como pines digitales.
Pines de alimentación: 
  • GND: Son los pines a tierra de la placa, el negativo.
  • 5v: Por este pin suministra 5v
  • 3,3v: Por este pin suministra 3,3v
  • Vin: Voltaje de entrada, por este pin también se puede alimentar la placa.
  • RESET: Por este pin se puede reiniciar la placa
  • IOREF: Sirve para que la placa reconozca el tipo de alimentación que requieren los shields
También podemos encontrar el pin AREF, arriba de todo a la izquierda de los pines digitales, este pin sirve para suministrar un voltaje diferente a 5v por los pines digitales.
También están el conector USB, para cargar el programa y alimentar la placa; y el conector de alimentación, para alimentarla.

QUE ES UN ARDUINO Y PARA QUE SIRVE

Arduino, inicialmente, fue construido en base al proyecto Wiring, del colombiano Hernando Barragán.
En el año 2003, en Italia, específicamente en el instituto Ivrea, Massimo Banzi enseñaba el uso de PICs a estudiantes de diseño interactivo, los cuales no tenían conocimiento técnico para utilizar herramientas de bajo.
Anterior al nacimiento de Arduino existía el proyecto Processing, un lenguaje de programación basado en Java. Las principales características de Processing es la facilidad con la que puede ser utilizado. Barragán, que era estudiante en aquel entonces, se basó en Processing para desarrollar una placa llamada electrónica llamada Wiring. Esta contaba con su propio lenguaje de programación y su propio entorno de desarrollo (IDE).
Poco tiempo después, Massimo Banzi, David Cuartielles y Gianluca Martino desarrollaron una tarjeta basada en el trabajo de Hernando Barragán, la cual era más pequeña y económica que la placa Wiring. Esta placa fue nombrada Arduino.
Desde entonces el proyecto Arduino le ha dado la vuelta al mundo con un gran éxito tanto entre los expertos como los aficionados a la electrónica. Su crecimiento ha sido tal que actualmente existen múltiples modelos en el mercado, con un sin fin de shields diseñados para aumentar sus capacidades y/o brindarle nuevas funcionalidades.

PARA QUE SIRVE
Mucho se ha escrito sobre Arduino. De hecho tenemos una sección especial con todos los contenidos publicados sobre este tema donde nuestros lectores pueden nutrirse de nuestros conocimientos y construir sus propios proyectos. Los invito a que visiten la sección de Arduino y la de Arduino+Java, donde se muestra el verdadero poder del Arduino una vez se combina con un lenguaje de alto nivel como lo es Java y la electrónica apropiada


mi proyecto

https://electronicavm.wordpress.com/2011/07/07/sensor-de-aparcamiento-con-arduino/

martes, 14 de febrero de 2017

wind patterns



concept
winds are produced by the circulation of air and are an important part of the weather the patterns of weather within an area characterised by pressure differences lead to daily and seasonal differences in wind direction and strength


context
to record the direction of the wind, asimple comass is requerired. a fun way o feel the wind and invstigate wind resistance is to make and use kites andparachutes


EQUIPAMENT
compass:small transparent round plastic pot with lid (the lid does not need to be transparent ) -card-glue-scissors-waterpool-half of a botlle cork (or small piece of polystyrene)-sewing needle-small magnet-ruler-protractor-water-washing detergent

MARKING IT
1. for the compass cut a small circle of card tofit into the lid of the pot. draw on lines at 90 grades, 180 grades, 270 grades and 360 grades and mark with E, W, and N . stick this into the lid and then place the pot on top. you should now be able to read the positions through the base of the transparent pot.

2.cut a silt across the cork or polystyrene magnetise the needle by stroking it with the magnet in one direction carefully push the needle into the slit.

3.put some weather into the pot and add a drop of detergent to stop the cork of polystyrene drifting over and sticking to the edges of the pot. float the cork or polystyrene on the water

4.A kite can be made from a 50cm square of thin polystyrene sheet such as a ceiling tile first find the center and make it then mark a spot 12cm above he centre as shown in the diagram make holes at both of these points thead sting though each hoe and fasten the end to two buttons fix a line to the thread ( if you wish you can fix paper streamers to the base of the kite )

5.parachutes can be made using squares of thin plastic to make a canopy. tie a thread to each corner, then tread each piece in turn through the centre of a cotton reel andhe lid with the direction signs  tie off the ends.

USING IT
to use the compass place the pot on a level surface when the needle is still carefully turn the lid with th e direction signs until the needle matches the north/south line seen through the base.
you cna fly kites and experiment with different length of tails.it can be a fun way of working out which direction the wind is coming from and going to.

parachutes: work as air collected in the canopy pushes againts it. you can experiment with  different  loads and canopy sizes to see how this affects the rate which the parachute falls.
 .