Arte del servomotor
Componentes y suministros
![]() |
| × | 1 | |||
| × | 3 | ||||
![]() |
| × | 36 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 36 | ||||
![]() |
| × | 5 |
Herramientas y máquinas necesarias
![]() |
| |||
![]() |
|
Aplicaciones y servicios en línea
![]() |
|
Acerca de este proyecto
El siguiente video muestra la acción cuando 36 servomotores crean una obra de arte electrónica. Un Arduino Uno y tres servocontroladores PWM de 16 canales están trabajando detrás de escena. La inspiración original para esto fue una versión mucho más grande con 450 servos que vi en un museo de arte moderno. Pero incluso esta pequeña versión con solo 36 servos proporciona algunos efectos interesantes.
Hay una función opcional que no he mostrado en el video, pero se puede agregar para que la pantalla sea interactiva. Es puramente opcional y el software funcionará bien sin él. Para esta opción, se montan cinco sensores ultrasónicos de distancia a lo largo de la parte trasera del borde superior de la pantalla. Cuando coloca su mano sobre el sensor central, el Uno entra en modo interactivo y todos los servos intentan seguir su mano mientras la mueve por encima de los sensores de distancia. Cuando quita la mano durante unos segundos, el programa vuelve a mostrar su pantalla. Nuevamente, puede agregar esta opción si lo desea. Si no lo hace, el software funcionará bien sin él.
Hardware
Como puede ver, este proyecto se construyó sobre un tablero de clavijas de 24 "por 48". El ancho se redujo a 32 pulgadas. Los servos se montan a 4 pulgadas de distancia y se aseguran a la parte posterior del tablero de clavijas con pegamento caliente. Los palitos de helado, cortados a 3 1/4 pulgadas, se montan en los ejes de los servos, nuevamente usando pegamento caliente.
Los servomotores SG90 son el único elemento costoso de este proyecto. Puede obtener un juego de 8 por $ 20 en Amazon. Aun así, necesitas invertir $ 100 en servos. Se supone que los SG90 son todos servos de 180º, pero la mayoría no lo logran. Algunos se quedan cortos y deben descartarse. Si compra 5 juegos de 8, debería poder encontrar 36 productos que viajen al menos 160º.
Los servos deben establecerse en su posición mínima (posición en PWM 150), y los palitos de paleta montados apuntando horizontalmente y hacia la derecha en esta posición mínima, como se ve desde el frente. He proporcionado un pequeño programa que puede usar para asegurarse de que los servos estén en esta posición mínima:SetServosToMinimum.

La foto de arriba muestra el diseño de la parte trasera. Los tres controladores PWM están montados en el lado izquierdo de los servos. El suministro de 30 vatios y 5 voltios está en el extremo derecho. El Arduino se alimenta por separado a través de un adaptador de corriente USB. Lo hago de esa manera solo para poder desconectar el cable USB y, a través de un cable de extensión USB, enchufarlo a mi computadora para cambios de programa. Parece un poco extraño, pero lo encuentro conveniente.
También puede ver los sensores de distancia por ultrasonidos opcionales montados en la parte superior de la pantalla. Se empleó pegamento caliente y palitos de paleta adicionales para montarlos. La pequeña placa de creación de prototipos que ve debajo del Uno está ahí simplemente para facilitar la alimentación y la conexión a tierra de todos los sensores de ultrasonido.
Software
Estoy usando la biblioteca de servocontroladores PWM de Adafruit para manejar los servocontroladores de 16 canales, por lo que deberá obtenerlo de Adafruit e instalarlo en las bibliotecas de Arduino. Mi software se puede usar tal cual con o sin los sensores ultrasónicos opcionales. Presenta una variedad de efectos en un espectáculo que dura poco más de tres minutos antes de repetirse. Si los sensores opcionales están instalados, entrará en modo interactivo cada vez que se coloque una mano del sensor central.
Hay muchas cosas en el software. No intentaré explicarlo todo aquí, pero te daré un poco de información sobre cómo funciona. Tengo dos mesas. La tabla curPos almacena la posición actual de cada servo dividida por tres. La tabla tarPos almacena la posición deseada de cada servo dividida por tres. Se dividen entre 3 por dos razones. Primero, permite que se almacenen en un byte, y segundo, siempre estoy moviendo los servos en incrementos de 3 pasos.
El Uno no conoce inicialmente las posiciones de cada servo, por lo que la rutina de configuración establece todos los servos en una posición vertical y establece todas las variables curPos y tarPos para que coincidan con esa posición vertical. Luego podemos mover los servos desde allí a otras posiciones cambiando las posiciones deseadas en tarPos.
Una subrutina llamada goToTargets () es la forma principal en que se mueven los servos. Controlamos a dónde van los servos estableciendo los objetivos en tarPos, luego podemos controlar qué tan rápido van allí con la rutina goToTargets. Tiene dos formas de controlar la velocidad. Mueve los servos hacia sus objetivos en incrementos de 15 pasos, donde la entrada de repeticiones a la subrutina le da múltiplos de 15 pasos. La otra entrada es mydelay, que solo agrega un retraso en milisegundos a cada llamada de goToTargets.
Hay muchas otras cosas, pero básicamente todo lo demás son solo varias configuraciones e implementaciones de los diversos efectos presentados.
La función interactiva opcional es manejada por una subrutina llamada trackRoutine. Se llama cuando la rutina goToTarget ve un objeto (su mano) en algún lugar sobre el sensor ultrasónico central. Intenta hacer que todos los servos sigan el movimiento de su mano mientras se mueve sobre los sensores. Cuando no ha detectado una mano durante unos segundos, regresa y el programa normal se reanuda.
Código
- Software ServosArt para Arduino Uno
Software ServosArt para Arduino Uno Arduino
Sin vista previa (solo descarga).
Esquemas
Muestra cómo Uno y los servos se conectan a través de tres controladores de 16 canales

Proceso de manufactura
- Prototipo de Raspoulette
- Robot Pi simple
- Expertos en reparación de servomotores Fanuc
- Expertos en reparación de servomotores Siemens
- Consejos para reparaciones de servomotores y solución de problemas
- MOSMusic
- ¿Qué es un motor lineal?
- La belleza de la caja de cambios planetaria para servomotor
- Una introducción a la servoprensa
- ¿Qué es un servomotor?
- ¿Qué es el servomotor reductor?