Antena andoriana alimentada por Arduino: 4 pasos
Antena andoriana alimentada por Arduino: 4 pasos
Anonim
Image
Image

Mi esposa decidió ser andoriana para la próxima Silicon Valley Comic Con en San José para combinar con mi disfraz de Elvis Captain Kirk. Si bien la pintura / maquillaje de la cara y el resto del disfraz tomaron bastante tiempo, no podía dejar que la antena permaneciera estática. Decidí hacerlos girar y rotar de forma algo aleatoria. Resulta que mucha gente vende tanto antenas estáticas andorianas como las que ya giran. Pero el precio de $ 100 era demasiado caro y de todos modos soy un tipo de bricolaje.

Como el tiempo era corto, ubiqué una antena impresa en 3D fuera de Etsy en lugar de intentar hacerlas.

PIEZAS REQUERIDAS -

Antena andoriana: consulta etsy para conseguirlas o hazlas tú mismo

Dos micro servos: puede encontrar numerosos lugares

Adafruit itsybitsy: consulte el sitio web de adafruits. Cuanto más pequeño mejor

Cables servo extendidos - amazon / ebay

Servo cable de alimentación de dos hilos con interruptor de encendido / apagado - amazon / ebay

Batería de 9V

Soporte de batería de 9V

cinta adhesiva, cinta aislante

banda para el cabello: cualquier CVS, objetivo, etc.

HERRAMIENTAS UTILIZADAS

soldador

pistola de silicona

Super pegamento

pelacables

Cuchillo xacto

Prototipo de placa de pan para solución de alambre

Entorno de desarrollo Arduino instalado en su PC

Paso 1: el código

Aquí está el código que utilicé. Levantada de Internet.

Conducir un servo (s) desde un Arduino es muy fácil. Si bien hay formas más técnicas de hacer esto, forcé bruta dos patrones de movimiento diferentes con un movimiento de locura entre ellos y ping-ponged hacia adelante y hacia atrás. Deberá jugar con esto para asegurarse de saber dónde está el centro una vez que su servo esté conectado a la banda para la cabeza y qué se ve mejor para su aplicación. /* Barrer

de BARRAGAN

Este código de ejemplo es de dominio público.

Modificado por r570sv

8-14-19

*/

#incluir

Servo myservo; // crea un objeto servo para controlar un servo

// Se pueden crear doce objetos servo en la mayoría de las placas

int posl = 0; // variable para almacenar la posición del servo

int posr = 0; int DELAY = 50; int everyOther = 0; int i = 0; int j = 0; int k = 0; int x = 0; Servo servo1; Servo servo2;

configuración vacía () {

// myservo.attach (9); // conecta el servo en el pin 9 al objeto servo // myservo.attach (10); // conecta el servo en el pin 10 al objeto servo servo1.attach (9); servo2.attach (10); servo1.write (0); servo2.write (0); retraso (1000); servo1.write (180); servo2.write (180); retraso (1000); Serial.begin (9600); }

//

// // empezar 180 a la izquierda ir a la izquierda 50, a la derecha ir a la derecha 50, luego bajar la velocidad a 180, luego r 50 e izquierda 50 // //

bucle vacío () {

for (j = 0; j <= 5; j ++) {for (i = 0, posl = 180, posr = 180; i <= 50; i ++) {// va de 0 grados a 180 grados posl = posl - 1; posr = posr + 1; servo1.write (posl); // le dice al servo que vaya a la posición en la variable 'pos' servo2.write (posr); retraso (RETRASO); // espera 15ms a que el servo alcance la posición} for (i = 0, posl = 130, posr = 230; i <= 50; i ++) {// pasa de 0 grados a 180 grados posl = posl + 1; posr = posr - 1; servo1.write (posl); // le dice al servo que vaya a la posición en la variable 'pos' servo2.write (posr); retraso (RETRASO); // espera 15ms para que el servo alcance la posición}} // para

if (everyOther == 1) {

servo1.write (180); servo2.write (180); retraso (500); servo1.write (280); servo2.write (280); retraso (500); servo1.write (120); servo2.write (120); retraso (500); servo1.write (180); servo2.write (180); retraso (500); everyOther = 0; // alternar esto para que cada dos veces se haga una de estas dos rutinas} // if else {everyOther = 1; for (x = 0; x <= 5; x ++) {for (i = 0, posl = 180, posr = 180; i <= 40; i ++) {// va de 0 grados a 180 grados posl = posl - 1; posr = posr + 1; servo1.write (posl); // le dice al servo que vaya a la posición en la variable 'pos' servo2.write (posr); retraso (10); // espera 10ms para que el servo alcance la posición} for (i = 0, posl = 140, posr = 220; i <= 40; i ++) {// va de 0 grados a 180 grados posl = posl + 1; posr = posr - 1; servo1.write (posl); // le dice al servo que vaya a la posición en la variable 'pos' servo2.write (posr); retraso (10); // espera 1ms a que el servo alcance la posición}}} // else} // bucle

Paso 2: cableado y embalaje

Cableado y embalaje
Cableado y embalaje
Cableado y embalaje
Cableado y embalaje

El cableado básico es muy sencillo.

Un servo tiene tres cables. Power, Ground y el pin PWM del Arduino.

Entonces, los pines 9 y 10 se usaron para el PWM y la tierra y la energía se usaron del Arduino.

Elegí una batería de 9V porque tenía un soporte para ella. Podría haber usado una batería LiPo 3.7V más pequeña para hacer todo el paquete más pequeño, pero no sabía si podría funcionar durante 8 horas con la batería diminuta de 3.7V que tenía, así que elegí la batería más grande de 9v, la puse un soporte y traje un repuesto para poder cambiarlo si es necesario. También incluí un interruptor de encendido / apagado porque quería una forma de encenderlo y apagarlo fácilmente. Todo el paquete iba a estar metido en la parte posterior de la cabeza, entre la peluca y el cabello, y lo que no quería era una forma pirateada de encenderlo que podría causar que una peluca o el cableado fallaran al intentar estropearlo.

El empaquetado real de todo el proyecto fue una de las partes más difíciles. Lo necesitaba pequeño, pero tampoco quería que ningún cable se deshiciera y que el proyecto fallara cuando lo necesitaba. Pegué en caliente todas las conexiones en el Arduino para que los pines no se salieran y soldé los cables de alimentación y tierra directamente a la placa Arduino. Cualquier otra conexión de cables se unió con cinta adhesiva y todo el paquete se envolvió en cinta adhesiva con fácil acceso al interruptor de encendido y apagado.

Paso 3: instalación del gadget en la peluca

Image
Image
Instalación de gadget en la peluca
Instalación de gadget en la peluca

Si el empaquetado no era lo suficientemente tedioso, en realidad poner todo en la peluca era doloroso.

La antena venía montada en una banda para el cabello que iba a fallar por completo para lo que planeaba usar, así que tuvimos que comprar una banda para el cabello más fuerte, hecha de metal y cubierta de goma.

La antena impresa en 3D no se ajustaba a los micro servos, así que tuve que dremel las ranuras más grandes. Los servos se colocaron en su lugar con pegamento caliente.

Montar la bocina del servo en la banda para el cabello fue un completo desastre. No quería cortar una ranura enorme en la peluca para poder conectar previamente el servo a la banda para el cabello y la antena, tal vez causando una falla en la peluca, así que tomé la ruta muy dolorosa de cortar un pequeño agujero en la peluca 1/4 para que el eje del servo encajara. Luego conecté la bocina del servidor al servo. Luego pegué con epoxi la bocina del servidor a la banda para el cabello, lo que no funcionó. Superpegar la bocina del servidor a la banda para el cabello tampoco funcionó. Entonces, envolví el cuerno del servidor a la banda para el cabello con un paracord muy delgado, até cada envoltura y luego pegué los nudos del paracord para que no se aflojaran. Teniendo cuidado de no volverme loco con el pegamento y pegar el eje del servo para cerrarlo (destrocé un servo la primera vez que hace esto) Algo así como lo que podrías hacer para hacer una flecha como hace 10, 000 años como una técnica.

Hay mejores formas de hacer esto. Use mi ejemplo como algo que funciona pero algo que podría mejorarse:-)

Se cortaron dos ranuras adicionales de 1/4 de pulgada para que el cable del servidor pudiera pasar a través de la peluca y bajar por la parte posterior de la peluca hasta donde iba a residir la batería / Arduino.

Colocando la batería / Arduino a la cabeza / peluca

YMMV en esto. Pude atar el paquete al moño de mi esposa debajo de la peluca. Llevaba una redecilla para el cabello y la corbata también se envolvió en el paquete. Tuvimos una falla en la que se salió, así que lo volví a atar y lo envolví y duró el resto del día (traiga algunos suministros cuando vaya a la estafa para ayudar con esto:-))

Paso 4: En la feria: lo que funcionó, lo que no funcionó, lo que hubiéramos hecho de manera diferente

En la feria: lo que funcionó, lo que no funcionó, lo que hubiéramos hecho de manera diferente
En la feria: lo que funcionó, lo que no funcionó, lo que hubiéramos hecho de manera diferente
En la feria: lo que funcionó, lo que no funcionó, lo que hubiéramos hecho de manera diferente
En la feria: lo que funcionó, lo que no funcionó, lo que hubiéramos hecho de manera diferente

Entonces, ¿qué funcionó?

Las antenas no se caían, pero teníamos que tener mucho cuidado al entrar y salir del coche. El servo es pequeño y la conexión del cuerno del servo a la banda para el cabello es aún más frágil.

La batería duró todo el espectáculo, no es necesario cambiar las baterías.

No se cayeron cables, ni conexiones sueltas: el tiempo extra para pegar y pegar dio sus frutos

¿Qué no funcionó tan bien?

Entonces, en mi escritorio, averiguo qué se vería bien con el movimiento de la antena. Resulta que cuando llegamos a un enorme centro de exposiciones, la mayoría de las personas, no todas, no notaron que la antena se movía. Aquellos que lo hicieron, se asustaron un poco: '¿Se movió tu antena?' Algo que fue agradable, pero un momento más grande hubiera sido mejor. Lo que DEBERÍA hacer fue proporcionar un potenciómetro externo que pudiéramos ajustar en tiempo real para aumentar la rotación, la frecuencia, etc., etc. Podríamos atarlo al paquete escondido debajo del cabello.

La forma en que lo até a la peluca y al cabello de mi esposa, se cayó después de un par de horas. Afortunadamente, tenía una corbata de repuesto y pude volver a atarla a su peluca / moño. En realidad, esto no es un fracaso, más como estar preparado para una debilidad que vimos al entrar en el programa.

Recomendado: