martes, 21 de junio de 2016

EasyArduino

EasyArduino
EasyArduino es una aplicación hecha para pequeños y mayores. En ella podrás aprender a programar jugando y crear todo lo que te imagines. Podrás programar robots, juegos electrónicos e incluso diseñar tus propios inventos.
EasyArduino se basa en la utilización de bloques gráficos para la generación de código, estos bloques encajan unos con otros de forma similar a como lo hacen las piezas en un puzzle. No necesitas ningún conocimiento previo de código Arduino para empezar a programar.
Introducción 
EasyArduino es una aplicación web que permite la elaboración de programas para Arduino sin necesidad de escribir el código con la sintaxis de sus órdenes. Esta herramienta está basada en la tecnología de programación mediante bloques funcionales tan extendida en la actualidad. 
Esta posibilidad gráfica de elaborar programas es muy útil cuando estamos utilizando la Plataforma Arduino en niveles educativos. La facilidad de realizar la aplicación gráficamente permite que el alumno se dedique a pensar en el algoritmo más que en la corrección del código escrito. 
Encendiendo un LED
1-Conectamos el LED en el PIN digital 1 de nuestra placa (puede ser cualquier otro). 
2-Seleccionamos el bloque LED, le asignamos el pin digital 1 y escogemos la acción que deseamos que haga, en este caso: Encender. 
Codigo:  
int threads[] = {1};

int numThreads = 1;

int i;

void remove(int id){
  for(i=0; i<numThreads; i++){
    if(i+1 == id){
      threads[i] = 0;
    }
  }
}

void programa1(){
  digitalWrite(1,HIGH);
}

void setup()
{
  pinMode(1, OUTPUT);
}


void loop()
{
  for(i=0; i<numThreads; i++){
    if(threads[i] != 0){
      switch (i+1) {
        case 1:
          programa1();
          break;
      }
    }
  }
}

Parpadeo de un LED
Este programa hace parpadear un LED, estará encendido durante 1 segundo, luego se apagará otro segundo y se volverá a encender, así sucesivamente.  
1-Conectamos el LED en el PIN digital 1 de nuestra placa (puede ser cualquier otro). 
2-Seleccionamos dos bloques LED, les asignamos el pin digital 1 y escogemos la acción que deseamos que hagan. 
3-Colocamos el bloque Esperar tal y como muestra la figura y le asignamos un tiempo 
de espera, este será el tiempo que el LED esté encendido o apagado.

Codigo: 
int threads[] = {1};

int numThreads = 1;

int i;

void remove(int id){
  for(i=0; i<numThreads; i++){
    if(i+1 == id){
      threads[i] = 0;
    }
  }
}

void programa1(){
  digitalWrite(1,HIGH);
  delay(1000);
  digitalWrite(1,HIGH);
  delay(1000);
}

void setup()
{
  pinMode(1, OUTPUT);
}


void loop()
{
  for(i=0; i<numThreads; i++){
    if(threads[i] != 0){
      switch (i+1) {
        case 1:
          programa1();
          break;
      }
    }
  }
}

Programando un botón 

El botón es un dispositivo digital de entrada que se activa cuando se pulsa con el dedo, 
permitiendo que circule por él la corriente, y se desactiva cuando se deja de pulsar. 
Puede devolver dos estados: 1 y 0. Es decir: pulsado y no pulsado. 

Ejemplo: Encender un LED al pulsar el botón y apagarlo al soltarlo. 

Al ejecutar este programa el LED comienza apagado. Cuando se pulsa el pulsador el 
LED se enciende y al soltarlo se vuelve a apagar. 
Nota: Para añadirle más opciones al bloque “Si - hacer” debemos pulsar sobre la cruz del 
recuadro azul e incorporar la nueva opción al bloque.

Codigo:

int threads[] = {1};

int numThreads = 1;

int i;

void remove(int id){
  for(i=0; i<numThreads; i++){
    if(i+1 == id){
      threads[i] = 0;
    }
  }
}

void programa1(){
  if (digitalRead(1)) {
    digitalWrite(1,HIGH);

  } else {
    digitalWrite(1,LOW);

  }
}

void setup()
{
  pinMode(1, INPUT);
  pinMode(1, OUTPUT);
}


void loop()
{
  for(i=0; i<numThreads; i++){
    if(threads[i] != 0){
      switch (i+1)
          { case 1:
          programa1();
          break;
      }
    }
  }
}

Programando el sensor de Luz

El sensor de luz es un sensor que tal y como su nombre indica, detecta luz. Responde a los cambios en la intensidad de la luz y modifica su resistencia cuando ésta varía. El sensor devuelve valores comprendidos entre 0 y 500, aproximadamente; este valor dependerá del tipo de sensor. Se trata de un componente analógico, ya que devuelve un rango de valores, por lo tanto, deberá conectarse a uno de los pines analógicos (A0, A1,…). Valores cercanos a 0 indican oscuridad y cercanos a 500 indican luz.

Ejemplo: Encender un LED cuando el sensor de luz detecte poca luz

Primero tenemos que comprobar que hay poca luz. En ese caso debemos encender el LED que está conectado en el PIN digital 1. En caso de que la luz sea mayor de 150 el LED se apagará.


Codigo:

int threads[] = {1};

int numThreads = 1;

int i;

void remove(int id){
  for(i=0; i<numThreads; i++){
    if(i+1 == id){
      threads[i] = 0;
    }
  }
}

void programa1(){
  if (analogRead(A0) < 150) {
    digitalWrite(1,HIGH);

  } else {
    digitalWrite(1,LOW);

  }
}

void setup()
{
  pinMode(1, OUTPUT);
}


void loop()
{
  for(i=0; i<numThreads; i++){
    if(threads[i] != 0){
      switch (i+1) {
        case 1:
          programa1();
          break;
      }
    }
  }
}

Programando la bocina

La bocina o zumbador es un componente de salida que emite zumbidos.

Ejemplo: Hacer sonar el zumbador al presionar el botón

Al ejecutar este programa la bocina no suena, está apagada. Cuando se pulsa el pulsador la bocina se enciende y empieza a sonar; al soltarlo se vuelve a apagar

Codigo:

int threads[] = {1};

int numThreads = 1;

int i;

void remove(int id){
  for(i=0; i<numThreads; i++){
    if(i+1 == id){
      threads[i] = 0;
    }
  }
}

void programa1(){
  if (digitalRead(1)) {
    tone(3, 0, 0);

  } else {
    tone(3, 0, 0);

  }
}

void setup()
{
  pinMode(1, INPUT);
}


void loop()
{
  for(i=0; i<numThreads; i++){
    if(threads[i] != 0){
      switch (i+1) {
        case 1:
          programa1();
          break;
      }
    }
  }
}


Programando el servo de rotación continua

Un servomotor de rotación continua es un servo cuyo funcionamiento se parece al de un motor convencional. Este servo no se detiene en una posición sino que puede girar en un sentido continuamente.

Ejemplo: Programar un servo de rotación continua para que gire en sentido horario durante 3 segundos y luego gire en sentido antihorario otros 3 segundos.

En este ejemplo usaremos el bucle de control “Repetir – mientras”, el bucle se estará ejecutando mientras pulsemos el botón.

Codigo:

#include <Servo.h>

Servo servo_5;

int threads[] = {1};

int numThreads = 1;

int i;

void remove(int id){
  for(i=0; i<numThreads; i++){
    if(i+1 == id){
      threads[i] = 0;
    }
  }
}

void programa1(){
  while (digitalRead(1)) {
    servo_5.write(0);
    delay(30);
    delay(3000);
    servo_5.write(180);
    delay(30);
    delay(3000);
  }
}

void setup()
{
  pinMode(1, INPUT);
  servo_5.attach(5);

}


void loop()
{
  for(i=0; i<numThreads; i++){
    if(threads[i] != 0){
      switch (i+1) {
        case 1:
          programa1();
          break;
      }
    }
  }
}


Programando el servo 

Un servo es un motor que es capaz de girar entre 0 y 180 grados.

Ejemplo: Programar un servo para moverlo a un ángulo de 60 grados y después a un ángulo de 120 grados.

El servo se colocará en la posición de 60 grados, esperará un segundo y pasará a la posición de 120 grados durante otro segundo. Repetirá esta secuencia una y otra vez.

Codigo:

#include <Servo.h>

Servo servo_3;

int threads[] = {1};

int numThreads = 1;

int i;

void remove(int id){
  for(i=0; i<numThreads; i++){
    if(i+1 == id){
      threads[i] = 0;
    }
  }
}

void programa1(){
  servo_3.write(60);
  delay(100);
  delay(1000);
  servo_3.write(120);
  delay(100);
  delay(1000);
}

void setup()
{
  servo_3.attach(3);

}


void loop()
{
  for(i=0; i<numThreads; i++){
    if(threads[i] != 0){
      switch (i+1) {
        case 1:
          programa1();
          break;
      }
    }
  }
}


Programando el sensor de ultrasonidos 

Los sensores de ultrasonidos son dispositivos que utilizan ondas sonoras de ultrasonidos para saber a qué distancia está un objeto. Su funcionamiento es así: se emite una onda de ultrasonido, esa onda se propaga, y al encontrarse con un obstáculo rebota. Cuanto más tiempo tarde en rebotar más lejos estará el objeto.

Ejemplo: Programar un robot con dos servos para que cuando esté a punto de chocar con un objeto paré, dé marcha atrás, gire a la izquierda y continúe su camino.

Si la distancia medida por el sensor de ultrasonidos es menos o igual que 2 cm, el robot dará marcha atrás y luego girará a la izquierda. Si la distancia es mayor de 2 cm el robot se moverá hacia adelante. Como nuestro programa se ejecuta una y otra vez, el robot seguirá siempre hacia adelante a menos que la distancia al objeto sea menor o igual que 2 cm.

Codigo:

#include <Servo.h>

long Medir(int trigger, int echo){
   digitalWrite(trigger, LOW);
   delayMicroseconds(2);
   digitalWrite(trigger, HIGH);
   delayMicroseconds(10);
   digitalWrite(trigger, LOW);
   long microsegundos = pulseIn(echo ,HIGH);
   return microsegundos;
}

long Distancia(int trigger, int echo){
   long microseconds = Medir(trigger, echo);
   long distance;
   distance = microseconds/29/2;
   if (distance == 0){
      distance = 999;
   }
   return distance;
}

Servo servo_2;

Servo servo_3;

Servo servo_1;

int threads[] = {1};

int numThreads = 1;

int i;

void remove(int id){
  for(i=0; i<numThreads; i++){
    if(i+1 == id){
      threads[i] = 0;
    }
  }
}

void programa1(){
  if (Distancia(1, 8) <= 2) {
    servo_2.write(180);
    delay(30);
    servo_3.write(0);
    delay(30);
    delay(1000);
    servo_1.write(180);
    delay(30);
    servo_3.write(90);
    delay(30);
    delay(1000);
    servo_2.write(0);
    delay(30);
    servo_3.write(180);
    delay(30);
    delay(1000);

  }
}

void setup()
{
  pinMode(8, INPUT);
  pinMode(1, OUTPUT);
  servo_2.attach(2);

  servo_3.attach(3);

  servo_1.attach(1);

}


void loop()
{
  for(i=0; i<numThreads; i++){
    if(threads[i] != 0){
      switch (i+1) {
        case 1:
          programa1();
          break;
      }
    }
  }
}


Programando el sensor de temperatura

El sensor de temperatura es un sensor que mide la temperatura en grados centígrados. Se trata de un componente analógico, ya que devuelve un rango de valores, por lo tanto, deberá conectarse a uno de los pines analógicos (A0, A1,…).

Ejemplo: Encender un LED cuando el sensor de temperatura indique que hay menos de 20 grados y apagarlo cuando hay 20 o más.


Codigo:

int threads[] = {1};

int numThreads = 1;

int i;

void remove(int id){
  for(i=0; i<numThreads; i++){
    if(i+1 == id){
      threads[i] = 0;
    }
  }
}

void programa1(){
  if (20 <= round((1/(log((float)(1023-analogRead(A2))*10000/analogRead(A2))/10000)/3975+1/298.15)-273.15)) {
    digitalWrite(1,LOW);

  } else {
    digitalWrite(1,HIGH);

  }
}

void setup()
{
  pinMode(1, OUTPUT);
}


void loop()
{
  for(i=0; i<numThreads; i++){
    if(threads[i] != 0){
      switch (i+1) {
        case 1:
          programa1();
          break;
      }
    }
  }
}

Programando el sigue líneas (Sensor de infrarrojo) 

El sensor infrarrojo (IR) es un dispositivo que detecta la luz reflejada, por lo que es capaz de diferenciar entre blanco y negro. Es un componente digital que solo devuelve dos valores. Cuando detecta blanco devuelve 1 y cuando detecta negro devuelve 0.

Ejemplo: Encender un LED cuando el sensor detecta negro.

Si el sensor devuelve 0 no será línea negra, por lo tanto se encenderá el LED; en caso contrario se apagará.

Codigo:

int threads[] = {1};

int numThreads = 1;

int i;

void remove(int id){
  for(i=0; i<numThreads; i++){
    if(i+1 == id){
      threads[i] = 0;
    }
  }
}

void programa1(){
  if (digitalRead(5)) {
    digitalWrite(2,LOW);

  } else {
    digitalWrite(2,HIGH);

  }
}

void setup()
{
  pinMode(5, INPUT);
  pinMode(2, OUTPUT);
}


void loop()
{
  for(i=0; i<numThreads; i++){
    if(threads[i] != 0){
      switch (i+1) {
        case 1:
          programa1();
          break;
      }
    }
  }
}


Programando el sensor de movimiento

El sensor de movimiento es un dispositivo que detecta si algo se mueve. Es componente digital que solo devuelve dos valores. Cuando detecta movimiento devuelve 1 y cuando no, devuelve 0.

Ejemplo: Encender la bocina cuando el sensor detecta movimiento.

Si el sensor detecta que algo se mueve devolverá 1, y por lo tanto sonará la bocina, en caso contrario se apagará

Codigo:

int threads[] = {1};

int numThreads = 1;

int i;

void remove(int id){
  for(i=0; i<numThreads; i++){
    if(i+1 == id){
      threads[i] = 0;
    }
  }
}

void programa1(){
  if (digitalRead(1)) {
    tone(4, 0, 0);

  } else {
    tone(4, 0, 0);

  }
}

void setup()
{
  pinMode(1, INPUT);
}


void loop()
{
  for(i=0; i<numThreads; i++){
    if(threads[i] != 0){
      switch (i+1) {
        case 1:
          programa1();
          break;
      }
    }
  }
}

No hay comentarios:

Publicar un comentario