Uno + Servo + Laser = YoshiTrainer 2000! - AZ-Delivery

Hoy se trata de un tema muy serio, el estado físico de nuestro perro Yoshi.

Desde que en nuestra tienda Golosinas para Yoshi la ingesta de calorías de Yoshi ha aumentado de forma desproporcionada.

En realidad, íbamos a construir un donador automatizado de golosinas para Yoshi que gastara automáticamente las fugas donadas, pero sería irresponsable no preocuparnos por la forma del perro. 

Así que tenemos que pensar en un programa deportivo para Yoshi.  ¡Y ahí fue cuando se me ocurrió la idea del entrenador yoshitraer 2000!

Ventajas:

  • Tengo todos los componentes necesarios en mi escritorio.
  • La programación es relativamente sencilla, ya que ignoramos por completo mi última contribución de Blog sobre números aleatorios, y utilizamos random()
  • El dispositivo es compatible con Y2K

 

Necesitamos el proyecto:

1x Microcontrolador AZ-Delivery compatible con Arduino Uno R3

2x Servo Motor, por ejemplo. AZ-Delivery Servo MG996R

1x Diodo Láser

1x Mini-Breadboard

1x Cable De Salto Set

1x 5V fuente de alimentación de potencia suficiente para Servos, láseres & amp; Uno

Y algunos rollos de cinta aislante y cinta adhesiva de doble cara.

 

Advertencia Láser:

El diodo láser utilizado es un láser de clase 1. Según DIN EN 60825-1, esto significa que "la radiación láser accesible es segura o que el láser está encerrado en una caja cerrada".

Sin embargo, recomiendo usar gafas protectoras. Además, los láseres en uso continuo requieren refrigeración suficiente. 

Sólo tengo un MG 996R Servo, así que tomé nuestro SG90 para el eje Y. Este es mucho más pequeño, tiene engranajes de plástico y tiene mucho menos poder.

Vamos a cablear esto de la siguiente manera.:

 

5V 10A fuente de alimentación

Breadboard

+

+

-

-

Microcontrolador compatible con Arduino Uno R3

Breadboard

VIN

+

GND

GND

Microcontrolador compatible con Arduino Uno R3

 

PWM 9

Servo 1 Naranja

PWM 10

Servo 2 Naranja

PWM 3

Láser S

Servo 1 y 2 rojo

Breadboard +

Servo 1 y 2 marrones

Breadboard -

Láser -

Breadboard -

 

Aquí hay una Foto que muestra el cableado.:

 

 

 Alternativamente, lo mismo como esquema:

 

 

 

Ahora falta la programación. 

Usaré el servo que trajo el IDE.h

Con "Servo servoX;" y "Servo servoY;" hago dos Servos llamados ServoX y servoY. 

En el Setup, definiré el Pin en el que se cuelga el control del servo, en nuestro caso "servoX".attach (9); " para servoX.

Ahora podemos usar las funciones servoX.read() y servoX.write () extraiga o coloque la posición del servo.

Para que Yoshi tuviera la oportunidad de llegar al punto, lo empaqué en un bucle de While con pequeños delays. La Variable "spd" permite subir la velocidad de forma brusca.

Para el láser, primero usamos el Pin como salida por medio de "pinMode (laserpina, OUTPUT)" y a continuación lo activamos con "guirnaldas analógicas(laserpina, 40);". 

 

Aquí el código completo:

 

# include <Servo.h>
Servo servoX;
Servo servoY;

uint8_t tPosX = random(0,180); // Posición De Destino Servo X
uint8_t cPosX = servoX.read(); // Posición Actual Servo X
uint8_t tPosY = random(0,180); // Posición De Destino Servo Y
uint8_t cPosY = servoY.read(); // Posición De Destino Servo Y
uint8_t spd = 1; // Velocidad
int laserpina = 3; // PWM Pin para el diodo láser 

void setup() {   /# put your setup code here, to run once # :   servoX.attach(9); // Servo X a Pin 9    servoY.attach(10); // Servo Y an Pin 10   pinMode(laserpina, Salida);   write analógico(laserpina, 40); // brillo 
}

void loop() {   tPosX = random(45,135); // esto permite guardar el área entre 0 y 180 °   cPosX = servoX.leer(); // lee la posición actual   tPosY = al azar(120,170);   cPosY = servo.leer();   mientras que (tPosX > cPosX){     cPosX += spd;     servoX.escribir(cPosX);     retrasar(50);     cPosX = servoX.leer();   }   mientras que (tPosX < cPosX){     cPosX -= spd;     servoX.escribir(cPosX);     retrasar(50);     cPosX = servoX.leer();   }   mientras que (tPosY < cPosY){     cPosY -= spd;     servo.escribir(cPosY);     retrasar(50);     cPosX = servo.leer();   }   mientras que (tPosY > cPosY){     cPosY += spd;     servo.escribir(cPosY);     retrasar(50);     cPosX = servo.leer();   }
retrasar(500); // Para que Yoshi no se canse demasiado
}

Y tenemos un éxito parcial. Un punto láser que atraviesa el área más o menos al azar.

Los primeros espectáculos con láser deben haber sido exactamente así, o al menos algo así.

 

Esperamos que hayas disfrutado la publicación de blog de hoy. Escriba un breve comentario si desea más contribuciones objetivas o si le gustó la publicación de hoy.

 

Für arduinoProjekte für anfänger

Deja un comentario

Todos los comentarios son moderados antes de ser publicados