Hola gente, aqui de nuevo. esta vez les dejo un tutorial sobre la construccion de una cabeza animatronic. en este caso voy a comenzar por la construccion de los ojos, pero pienso hacer una cabeza completa, asi que ire dejando aqui, el avance del proyecto. aqui, los videos.
Parte 1:
Diagrama:
Codigo Arduino:
...
Parte 1:
Diagrama:
Codigo Arduino:
Código:
/*
CONTROL DE 3 SERVOS CON ARDUINO
//incluir biblioteca de control de servos
#include "Servo.h"
//Crear un objeto clase Servo
Servo servoMotorObjX;
Servo servoMotorObjY;
Servo servoMotorObjZ;
//Definir pin digital (PWM) asociado al control de los servomotores
int const servoMotorX = 3;
int const servoMotorY = 5;
int const servoMotorZ = 6;
//Variábles en las que se almacena la posicion leida
//en los ejes de los joystick
int joystickX = 0;
int joystickY = 0;
int joystickZ = 0;
//Atribullendo el pin analógico A0 a la variáble del eje X
int ejeX = A0;
//Atribullendo el pin analógico A1 a la variable del eje Y
int ejeY = A1;
//Atribullendo el pin digital 2 a la variáble del eje Z
int ejeZ = 2;
void setup() {
//asociando el pin digital de control de
//servo al objeto clase Servo
servoMotorObjX.attach(servoMotorX);
servoMotorObjY.attach(servoMotorY);
servoMotorObjZ.attach(servoMotorZ);
//Definiendo eje Z como un pin de entrada
pinMode(ejeZ, INPUT);
servoMotorObjX.write(90);
servoMotorObjY.write(90);
servoMotorObjY.write(180);
}
void loop() {
//Lée el valor del eje X
joystickX = analogRead(ejeX);
//Lée el valor del eje Y
joystickY = analogRead(ejeY);
//Lée el valor del eje Z
joystickZ = digitalRead(ejeZ);
//mapeando el valor leido en el joystick para una escala de
//servo (entre 0 y 180)
joystickX = map(joystickX, 0, 1023, 45, 135);
joystickY = map(joystickY, 0, 1023, 45, 135);
joystickZ = map(joystickZ, 0, 1, 0, 180);
//definiendo el valor/posicion del servomotor
servoMotorObjX.write(joystickX);
servoMotorObjY.write(joystickY);
servoMotorObjZ.write(joystickZ);
//espera 20 milisegundos.
delay(20);
}
Adjuntos
Última edición: