Animatronic Hocus Pocus hechizos Prop (10 / 12 paso)

Paso 10: Análisis de código

Aquí está el código final que terminó con. Esta fue mi primera aventura en a la programación de Arduino, por lo que la retroalimentación se da la bienvenida. También voy a intentar actualizar esto con un excelente artículo que solía tener movimientos servo suave.

 /* * Smooth servo rotation using a sinus square function. * ATTENTION: THIS SKETCH USES THE DELAY FUNCTION * More infos: http://letsmakerobots.com/node/31697 * created by NilsB */#include int blinkTimerInMillies = 5; const int blinkTableEntries = 21; const int blinkTable[] = { 60, 60, 60, 60, 61, 61, 62, 63, 64, 66, 67, 69, 71, 73, 75, 77, 79, 80, 80, 80, 80 }; const int eyeTimerInMillies = 8; const int eyeTableEntries = 77; const int eyeTable[] = { 45, 45, 45, 46, 46, 46, 47, 47, 48, 49, 50, 51, 52, 54, 55, 57, 59, 61, 63, 65, 67, 68, 70, 72, 74, 76, 78, 80, 81, 83, 84, 85, 86, 87, 88, 88, 89, 89, 90, 90, 91, 91, 92, 92, 93, 94, 95, 96, 97, 99, 100, 102, 104, 106, 108, 110, 112, 113, 115, 117, 119, 121, 123, 125, 126, 128, 129, 130, 131, 132, 133, 133, 134, 134, 135, 135, 135 };const int button = 2;Servo blinkServo; Servo shiftServo; Servo xServo; Servo yServo;void setup(){ setupBlinkServo(); setupShiftServo(); setupEyeServo(); pinMode(button, INPUT); digitalWrite(button, HIGH); }void loop(){ if (digitalRead(button) == LOW) { attach(); delay(600); open(); close(); open(); delay(200); lookUp(); delay(200); lookUpDown(); delay(200); neutral(); delay(200); lookLeft(); delay(200); lookLeftRight(); delay(200); neutral(); delay(200); blinkTimerInMillies = 20; close(); blinkTimerInMillies = 5; delay(200); } else{ } detach(); }/*********************************** ********* Stop/Start Function ****** ***********************************/ void detach(){ stopXMove(); stopYMove(); stopBlinkMove(); stopShiftMove(); }void attach(){ setupEyeServo(); setupBlinkServo(); setupShiftServo(); }/*********************************** ********* Blink Functions ********** ***********************************/ void open() { for(int angleIndex = 0; angleIndex < blinkTableEntries; angleIndex++){ moveBlinkServoTo(angleBlink(angleIndex)); waitBlink(); } waitLongBlink();}void close() { for(int angleIndex = blinkTableEntries-1; angleIndex >= 0; angleIndex--){ moveBlinkServoTo(angleBlink(angleIndex)); waitBlink(); } waitLongBlink();}void moveBlinkServoTo(int angle){ Serial.println(angle); blinkServo.write(angle); }int angleBlink(int index){ return blinkTable[index]; }void stopBlinkMove(){ blinkServo.detach(); }void setupBlinkServo(){ blinkServo.attach(11); blinkServo.write(60); }void waitBlink(){ delay(blinkTimerInMillies); }void waitLongBlink(){ delay(5*blinkTimerInMillies); }/*********************************** ********* Shift Functions ********** ***********************************/void up() { shiftServo.write(90); }void down() { shiftServo.write(130); }void neutral() { shiftServo.write(110); xServo.write(90); yServo.write(90); }void setupShiftServo(){ shiftServo.attach(10); shiftServo.write(110); }void stopShiftMove(){ shiftServo.detach(); }/*********************************** ********** Eye Functions *********** ***********************************/ void lookDown() { down(); for(int angleIndex = 38; angleIndex < eyeTableEntries-1; angleIndex++){ moveYEyeServoTo(angleEye(angleIndex)); waitEye(); } waitLongEye(); }void lookUp() { up(); for(int angleIndex = 38; angleIndex >= 0; angleIndex--){ moveYEyeServoTo(angleEye(angleIndex)); waitEye(); } waitLongEye();}void lookUpDown() { up(); for(int angleIndex = 0; angleIndex < eyeTableEntries-1; angleIndex++){ moveYEyeServoTo(angleEye(angleIndex)); waitEye(); down(); } waitLongEye(); }void lookDownUp() { for(int angleIndex = eyeTableEntries-1; angleIndex >= 0; angleIndex--){ moveYEyeServoTo(angleEye(angleIndex)); waitEye(); } waitLongEye(); }void lookLeft() { for(int angleIndex = 38; angleIndex < eyeTableEntries-1; angleIndex++){ moveXEyeServoTo(angleEye(angleIndex)); waitEye(); } waitLongEye(); }void lookRight() { for(int angleIndex = 38; angleIndex >= 0; angleIndex--){ moveXEyeServoTo(angleEye(angleIndex)); waitEye(); } waitLongEye();}void lookLeftRight() { for(int angleIndex = 0; angleIndex < eyeTableEntries-1; angleIndex++){ moveXEyeServoTo(angleEye(angleIndex)); waitEye(); } waitLongEye(); }void lookRightLeft() { for(int angleIndex = eyeTableEntries-1; angleIndex >= 0; angleIndex--){ moveXEyeServoTo(angleEye(angleIndex)); waitEye(); } waitLongEye(); }void moveYEyeServoTo(int angle){ Serial.println(angle); yServo.write(angle); }void moveXEyeServoTo(int angle){ Serial.println(angle); xServo.write(angle); }int angleEye(int index){ return eyeTable[index]; }void stopYMove(){ yServo.detach(); }void stopXMove(){ xServo.detach(); }void setupEyeServo(){ yServo.attach(9); yServo.write(90); xServo.attach(6); xServo.write(90); }void waitEye(){ delay(eyeTimerInMillies); }void waitLongEye(){ delay(5*eyeTimerInMillies); } 

Artículos Relacionados

Hocus Pocus hechizos pastel.

Hocus Pocus hechizos pastel.

He puesto un hechizo sobre ti y ahora su mina con este pastel espeluznante de deadcadent.Así que no importa que esta película, obtuvo pobres comentarios de vuelta en el día.Es tan divertido y lleno de caprichos.Luego cuando vi este concurso totalment
HOCUS POCUS hechizos REPLICA

HOCUS POCUS hechizos REPLICA

¡ HOLA! Este es mi primer tutorial y estoy realmente lo siento no he "construido" en instructables como voy a hacer la próxima vez.Por lo tanto, para el tutorial completoPaso 1: Y aquí está un breve vídeoLo siento otra vez chicos y sí la próxima
Hocus Pocus Halloween

Hocus Pocus Halloween

Dos de mis amigos y he decidido que este año sería el último Brujas, las hermanas Sanderson de Hocus Pocus de 1993. A partir de septiembre, nos reconstruye trajes de segunda mano tienda de hallazgos y piezas de la tienda comprado alterados para adapt
Dani Hocus Pocus traje

Dani Hocus Pocus traje

Hocus Pocus es la mejor película de Halloween!Este es mi traje de Dani que he creado. Hay una base de un cuello de tortuga negro y pantalones naranja. Para ahorrar tiempo les compré en una tienda de segunda mano.Para la chaqueta de Dani compré 2 rojo
Martillo de interactiva de Thor (Mjolnir)

Martillo de interactiva de Thor (Mjolnir)

Mientras no el electromagnético tipo del martillo, éste todavía tiene un montón de personalidad. Hay tres maneras de activarlo - al golpear cosas (destellos blancos), cuando se activan con un botón del control remoto (bifrost), y al llegar demasiado
Guía del principiante a la impresión en 3D con el Objet Connex 500: Cómo construir un tanque de lanzador de misiles (y limpiar el desorden que hiciste en el proceso)

Guía del principiante a la impresión en 3D con el Objet Connex 500: Cómo construir un tanque de lanzador de misiles (y limpiar el desorden que hiciste en el proceso)

el Objet Connex 500 impresora 3D... una obra maestra alta tecnología Arcana, mágica y sorprendente, con capacidad de impresión alta prototipos detallados en 3D. Saber cómo funciona este dispositivo maravilloso es un secreto sólo conocido por unos poc
Gravedad desafiando la bola

Gravedad desafiando la bola

Esto es una pelota increíble que, aunque en una rampa, puede descender muy lentamente. Puede utilizarse como un apoyo de truco de magia como puede realmente deflector a la audiencia. Esto es muy fácil de no hacer - no hay imanes, no cadenas, hocus po
Cómo descargar Gamemaker

Cómo descargar Gamemaker

Estoy usando windows 7 para este tutorial. Pueden diferir en otros sistemas operativos. Mayoría de la gente sabe cómo utilizar el sitio web y descargar archivos... pero piensa en esto como descargar los programas para los maniquíes. ¡ Disfrute!Paso 1
Traje animatronic hierro hombre Mk III

Traje animatronic hierro hombre Mk III

Trajes de Iron Man han sido muy populares últimamente y la pregunta número una que más a menudo me preguntan es "¿Cómo puedo agregar animatronics a mi juego?" Mi amigo Greg quería añadir animatronics a su traje de fibra de vidrio de MkIII por lo
Cómo hacer una mano Animatronic

Cómo hacer una mano Animatronic

En este Instructable mostrará usted cómo hacer una mano Animatronic moderadamente complicada, utilizando el tipo de técnicas utilizadas por los especialistas del animatronics real. El sistema es efectivamente una marioneta complejo, con servos poner
Animatronic Stargate casco

Animatronic Stargate casco

me encanta la película Stargate y primera vez que lo vi supe inmediatamente que quería hacer uno de los cascos de protección super cool de Horus. Yo había bosquejado múltiples diseños en los años y descubrió varios métodos para construir pero rechaza
Historia de cuento de hadas libro Prop

Historia de cuento de hadas libro Prop

Para el espectáculo en el bosque, necesitábamos un tamaño libro todavía cuento de hadas Disney, para el Narrater a utilizar. El libro fue hecho enteramente de cartón y fue hecho en 3D, para que el narrador puede secretar sus notas y líneas dentro de
Animatronic Wheatley

Animatronic Wheatley

Hola a todos!El propósito de este Instructable es dar una breve reseña del proceso que pasé a crear a un Animatronic Wheatley. Wheatley fue un proyecto que hice para la sal lago Comic-Con ventilador Xperience 2014. En el transcurso de dos meses, pasé
Libro de hechizos de cuero poco de Brujo (cuaderno)

Libro de hechizos de cuero poco de Brujo (cuaderno)

Fondo:Si has visto mi anterior instructivo donde he hecho una pulsera de cuero usted sabe que tengo un proyecto un poco más elaborado de cuero previsto pero mientras tenga la mayoría de las herramientas, todavía estoy falta de experiencia, así que es