jueves, 28 de marzo de 2019

Servo controlado co M_block

#include <Servo.h>
Servo miservo;
int pos=0;
int TECLA=0;
void setup() {
  Serial.begin(9600);
  miservo.attach(9);
  pos=0;
}
void loop() {
    miservo.write(pos);
    delay(50);
    Serial.println(pos);
    if (Serial.available() > 0) {  //esto da algo de error
       delay(100);
       TECLA=Serial.read();
       if (TECLA==49){  //es decir,  "1"
          pos=0; //ángulo que debe tomar con la tecla indicada
          }
       if (TECLA==50){  //es decir,  "2"
          pos=45; //ángulo que debe tomar con la tecla indicada
       }
       if (TECLA==51){  //es decir,  "3"
          pos=90; //ángulo que debe tomar con la tecla indicada
          }
        if (TECLA==52){  //es decir,  "4"
          pos=135; //ángulo que debe tomar con la tecla indicada
          }
       if (TECLA==53){  //es decir,  "5"
          pos=180; //ángulo que debe tomar con la tecla indicada
          }
     
     
       }
}

Así conseguiriamos girar el servo al angulo deseado mediante las teclas

Servo controladopor ponteciometro

1.- Mueve un servo según una  determinada entrada analógica. Mediante un joystick o un dispositivo que cuente con un  potenciómetro podemos controlar el movimiento de un servo. 

int val;                     //introducimos la variable val
#include <Servo.h>
Servo servo;
int pot = 3;  //entrada analógica del potenciometro
void setup() {
  Serial.begin(9600);
  servo.attach(6);
}
void loop() {
  int valorpot= analogRead(pot);
  val=map(valorpot,0,1023,0,180); //el valor de ""val" ira variando según varie el valor del potenciometro
  Serial.println(val); //hacemos que nos muestre el angulo de giro en el monitor
  delay(500);
  servo.write(val);
  delay(100);
}

Así conseguiriamos que el servomotor giré exactamente el ángulo que deseemos mediante un controlador, el cual es en este caso en potenciómetro.

viernes, 22 de marzo de 2019

Limpiaparabrisas

1.- Modifica el programa para que el LIMPIAPARABRISAS se mueva más lentamente  cuando se mueva en un sentido y más rapidamente en el otro. 

#include <Servo.h>     
#define pinServo 9   
Servo miservo;         
int pos=0;                 
void setup() {
    miservo.attach(pinServo);        //declaramos la salida del sevo
}
void loop() {
    for (pos=0; pos<=170; pos=pos+1); {
       miservo.write(pos);                     //movemos el servo en un sentido
       delay(800);
    }
    for (pos=170; pos>=10; pos=pos-70); {
       miservo.write(pos);                   //aumentamos el posicionamiento para aumentar la velocidad
       delay(700);
    }
}

Movimiento de Servo Simple

Actividades para tomar contacto con las funciones mas simples de los servomotores

jueves, 31 de mayo de 2018

Mole Mash

En esta práctica hemos realizado un juego en el que hay que darle a un topo con el dedo para que sume puntos pero si fallas suma un error, como el topo se mueve es mas dificil.
Como mejora he incluido una flor que si la tocas suma un fallo y quita una vida, la cual es otra mejora, he incluido vidas que restan con cada fallo, y cuando las vidas llegan a 0 aparece una segunda pantalla en la que pone Has Perdido, y en esta pantalla he puesto un botón para que se pueda jugar de nuevo, también he incluido música mientas juegas que se reinicia cuando le das al botón que te aparece al perder y también he incluido que cada vez que toques un personaje (Flor o Topo) o el fondo, el fondo vaya cambiando de color, para que sea mas perceptible el toque, el móvil vibra con cada toque.
Generador de Códigos QR Codes