Usando el programa ServoStudio 12 y la placa Arduino, puede crear su propio robot sin escribir una sola línea de código



Probablemente, muchos de los que descubrieron el mundo de la electrónica, tarde o temprano piensan en crear algún tipo de su robot, o simplemente en la automatización del hogar o modelos controlados por radio. Pero si todo estaba más o menos claro con la mecánica, entonces el desarrollo de un programa para controlar dicho dispositivo, en el que una gran cantidad de servos debería funcionar en conjunto, causó bastantes dificultades. El complejo de hardware y software ServoStudio 12 solo le permitirá controlar dicho dispositivo, controlar 12 servos al mismo tiempo y crear secuencias de movimiento utilizando el editor visual. Además, este complejo se convertirá en una herramienta conveniente para depurar la mecánica del dispositivo y crear su propio programa.

Si es necesario, la secuencia de movimientos creada se puede exportar como un boceto Arduino IDE, para una operación independiente, sin una PC. O simplemente como una matriz de valores de puntos clave para su uso posterior en su programa. ServoStudio 12 tiene una interfaz intuitiva e incluso un principiante puede resolverlo. Y el uso de la placa Arduino como dispositivo de control ejecutivo hizo que este sistema fuera fácilmente accesible en repetición y fabricación.

Un poco de trasfondo. Inspirado por la idea de crear un servo tester conveniente de Sergey Grishchenko , decidí crear mi propio sistema, que sería fácil de usar y al mismo tiempo conveniente y funcional. A diferencia del servo tester anterior, el software ServoStudio 12 es responsable de todo el control en una computadora personal, y la placa Arduino admite hasta 12 servos a la vez. El hardware es una placa Arduino Nano o Arduino Uno muy extendida. Además, este software contiene el trabajo con el servo tester anterior.

Inicialmente, planeé crear un pequeño programa en el que se reprodujera la secuencia de valores de la señal de control de los servos, pero en el curso del desarrollo tuve nuevas ideas, y un programa simple se convirtió en una unidad de control completa para la mecánica del robot, con la capacidad de establecer la velocidad de los movimientos y los movimientos de juego usando calor llaves

Servo: a diferencia del motor del colector, le permite hacer una rotación en cierto ángulo. El ángulo de rotación se establece por el ancho de pulso de la señal de control. El ancho de estos pulsos puede variar entre 800 - 2300 μs.



Para comenzar, necesitamos lo siguiente:


El diagrama de conexión es muy simple. Los pines D2-D13 están conectados a las entradas de control de los servos. La alimentación está conectada a los pines de alimentación Arduino. Con un gran consumo de corriente por servos, es necesario conectar una fuente de alimentación externa.



En primer lugar, en el menú del programa ServoStudio 12, debe seleccionar el elemento "Generador de código" y el subelemento "Crear un boceto ServoStudio HardWare", guardar este boceto en el disco y abrirlo en el Arduino IDE y completarlo en Arduino Nano / Uno. ¡Todo, el hardware está listo! Esta acción se realiza solo una vez, con la nueva placa Arduino.

Para comenzar, debe crear un nuevo proyecto (menú Archivo / Nuevo). En el cuadro de diálogo, seleccione el número requerido de canales PWM (número de servos), seleccione el tipo de placa de prueba y escriba el nombre de su dispositivo (para mayor comodidad).



Ahora sobre la interfaz del programa



En la parte inferior hay herramientas para crear una secuencia de puntos clave. Al mover los controles deslizantes de los controladores para los canales correspondientes, se establece el valor del ancho de pulso de la señal de control (el ángulo de rotación del servoaccionamiento) en el canal correspondiente. Si selecciona la casilla de verificación "control en tiempo real", cuando mueva el control deslizante del controlador, el servoaccionamiento conectado a este canal se moverá, lo cual es muy conveniente, ya que la posición del controlador en este punto es inmediatamente visible. Una vez que la señal de control se ha configurado en todos los canales necesarios, debe crear el siguiente "cuadro" (el siguiente punto clave) con el botón "Agregar". Y de la misma manera, con la ayuda de los reguladores, cree un nuevo punto clave, y todo lo que sea necesario. El tiempo durante el cual los servos deben rotar en un ángulo dado se establece por separado para cada cuadro, en el campo "tiempo de paso", el tiempo se establece en milisegundos. Cuanto mayor sea el valor dado, más lento será el movimiento, más pequeño será el más rápido. El campo de paso muestra el cuadro actual de la secuencia. Si es necesario, cambiando el número de paso en este campo, puede editar los pasos anteriores. Para mayor comodidad, los nombres de los canales se pueden cambiar haciendo doble clic en el nombre del canal a la izquierda de la perilla.

En la parte superior, en el gráfico, se visualiza visualmente el cambio en el ancho de la señal de control de los servos.

Y cuando se crea algún tipo de movimiento final (por ejemplo, un paso adelante), puede guardar la secuencia actual como una secuencia final separada haciendo clic en el botón "Agregar" en el panel "Secuencias", en el lado derecho de la ventana del programa. Por ejemplo, puede crear varias secuencias para avanzar, retroceder, izquierda, derecha, etc. Y estas secuencias se pueden reproducir de forma independiente, haciendo doble clic con el mouse, o desde el menú contextual, así como desde la ventana de "control remoto" (pero más sobre eso más adelante). Así, al reproducir estas secuencias, se controla el dispositivo (robot). También puede agregar secuencias guardadas a la secuencia principal, creando una secuencia grande de acciones. Esto puede ser muy útil para demostrar el funcionamiento del dispositivo.

Además, la secuencia principal (que actualmente está abierta en el editor) se puede exportar como un boceto para el IDE de Arduino, para su reproducción sin conexión por la placa Arduino, sin una PC. Para hacer esto, seleccione el elemento "Exportar secuencia" en el menú "Generador de código" y haga clic en el botón "Generar" en el cuadro de diálogo, después de lo cual este boceto se puede copiar al portapapeles o guardar como boceto para el IDE de Arduino. Además, este boceto se puede completar de la forma habitual en el controlador de la placa Arduino.



Es posible reproducir esta secuencia cíclicamente o solo una vez, activando o desactivando la casilla "repetir en ciclos". También es posible exportar puntos clave a una matriz, esto puede ser útil si ya tiene su propio programa para el microcontrolador y necesita establecer movimientos en él, y opcionalmente puede agregar valores de tiempo de configuración de posición a la matriz configurando el indicador correspondiente. Si, después de actualizar este boceto, la placa Arduino debe usarse nuevamente con el programa ServoStudio 12, luego seleccione nuevamente el elemento "Generador de código" y el sub-elemento "Crear boceto de ServoStudio HardWare" en el menú, guarde este boceto en el disco y ábralo en el Arduino IDE y cárguelo en Arduino Nano / Uno.

Ventana "panel de control"



Le permite usar teclas de acceso rápido para reproducir secuencias individuales. Primero debe hacer clic en el botón "Asignar claves", seleccionar la secuencia deseada de la lista desplegable y asignarle una tecla de acceso rápido. Cuando todo esté instalado, debe hacer clic en el botón "Recordar". Ahora, mientras esta ventana está abierta, al presionar la tecla de acceso rápido se reproducirá la secuencia asignada.

No es importante el elemento del menú "Posición inicial": esta es la posición de los servos cuando se enciende, o simplemente la "posición normal" para el ángulo de rotación de los servos. En otras palabras, si no desea que su robot se tuerza cuando está encendido, use los reguladores para seleccionar la posición óptima y seleccione el elemento de menú "Grabar cuadro actual en EEPROM de Arduino como posición de inicio", esta función está disponible solo para placas Arduino. También hay puntos "Escribir el cuadro actual como la posición inicial" e "Insertar la posición inicial en el cuadro actual", será muy útil si necesita comenzar una nueva secuencia y el punto inicial. La posición inicial se guarda en el archivo del proyecto y está disponible cuando se abre el archivo, por lo que no será necesario volver a seleccionarla.



El programa también tiene la capacidad de asociar archivos de proyecto con ServoStudio 12. Para hacer esto, debe ejecutarlo 1 vez con derechos de administrador. ServoStudio 12 es completamente portátil, consta de 1 archivo (cuando cierra el programa, aún se crea el archivo del último proyecto abierto) y no requiere instalación.

Se pueden ver más detalles sobre el trabajo en el video.



Enlace de descarga del software ServoStudio 12

Un poco sobre planes para el futuro:

  • Quiero crear una aplicación de Android que pueda abrir el archivo del proyecto y usar el teléfono para controlar el robot. Administre a través de BlueTooth o WiFi a través de un adaptador TCP-UART.
  • También quiero crear una versión para un mayor número de canales para administrar dispositivos más complejos.
  • Agregue el procesamiento de señal de los sensores conectados (por ejemplo, si hay un obstáculo por delante, evítelo).
  • Agregue la capacidad de controlar salidas digitales (por ejemplo, para encender LED u otra cosa)

Pero si estos planes seguirán siendo solo planes o se lanzarán en la próxima versión del programa depende del interés en este complejo.

Source: https://habr.com/ru/post/es402645/


All Articles