Tabla de contenido:
- Paso 1: Cosas que puede necesitar …
- Paso 2: conecte el hardware
- Paso 3: programa el Arduino
- Paso 4: Instale el software
- Paso 5: use el programa de interfaz
- Paso 6: ¡Sea creativo
Video: Servocontrolador serial basado en Arduino: 6 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:45
Este es un controlador en serie simple para múltiples servos basado en Arduino. (mi primer instructable también:))
La mayor parte del trabajo en esto provino de hacer que el software hable con el arduino y hacer un protocolo para que los datos se pasen. En cuanto al aspecto del hardware, todo lo que usé fueron dos servos (aquí el servo estándar Parallax). Un Sparkfun Arduino ProtoShield y un Arduino Duemilanove con ATMEGA328, pero la mayoría de estas partes se pueden sustituir por elementos similares. Pensé en este proyecto como parte de un sistema RC, pero configurar la comunicación tomó mucho tiempo. Si alguien tiene alguna mejora, idea o error, no dude en comentar. EDITAR: escribí esto hace un tiempo, recién lo publiqué.
Paso 1: Cosas que puede necesitar …
Algunas cosas que necesitará para construir esto. 1. Placa Arduino (tú eliges) 2. dos (o uno) servos 3. cables de puente 4. Visual Studio 2008 Express - enlace (opcional) 5. Arduino IDE - enlace Lo siento, fanáticos de Linux y Apple, mi programa solo se ejecuta en Windows por ahora, pero aún puede enviar comandos seriales manualmente al arduino sin cambiar el código.
Paso 2: conecte el hardware
Nada muy complejo en este paso, simplemente conecte un servo al pin 9 y el otro al pin 10.
Paso 3: programa el Arduino
ahora puede cargar el boceto en el arduino.
Aquí hay un desglose simple del código: #include Servo myservo; // crea un objeto servo para controlar un servo Servo myservo1; int entranteByte = 0, recuento de datos = 0, contador = 0, listo = 0; // para datos en serie entrantes char data [10]; const char verificar [8] = "ma11hew"; comando char [3]; configuración vacía () {myservo.attach (9); myservo1.attach (10); Serial.begin (38400); // abre el puerto serie, establece la velocidad de datos Serial.println ("¡Hola Arduino aquí!"); // agregado para ayudar a identificar el puerto serial Esto solo configura el puerto serial y los servos. int i; para (i = 0; i <180; i ++) {myservo.write (i); retraso (15); } myservo.write (5); para (i = 0; i <180; i ++) {myservo1.write (i); retraso (15); } myservo1.write (5); } Movimiento de barrido simple para verificar que los servos funcionan correctamente. bucle vacío () {listo = 0; contador = 0; while (1 == 1) {if (Serial.read ()! = verificar [contador]) {romper; } si (contador == 6) {retraso (20); comando [0] = Serial.read (); comando [1] = Serial.read (); // if (Serial.read () == ((comando [1] * 12)% 8)) // {listo = 1; //} Serial.println ("comando guardado"); } contador ++; retraso (2); } esto verifica el búfer serial para la cadena de autorización correcta y luego toma dos bytes para el comando. la declaración if comentada permite una suma de comprobación improvisada, pero dificultaría la interfaz manual. ready se puede establecer en 0 para que los comandos no se analicen, como en el caso de datos corruptos. // buscar a través de comandos if (listo == 1) {if (comando [0] == 'T') {comando [0] = 0; Serial.print ("control del acelerador en el pin 9 a:"); Serial.println (mapa (comando [1], 32, 126, 2, 180), DEC); myservo.write (mapa (comando [1], 32, 126, 2, 180)); } si (comando [0] == 'S') {comando [0] = 0; Serial.print ("control del acelerador en el pin 10 a:"); Serial.println (mapa (comando [1], 32, 126, 2, 180), DEC); myservo1.write (mapa (comando [1], 32, 126, 2, 180)); }}} el resto del código es para buscar el comando para comandos válidos (T o S.) si alguno de los dos coincide, toma el siguiente byte y lo envía al servo. más en el mapa (comando [1], 32, 126, 2, 180) más tarde … el código aquí es ampliable para cualquier otra cosa que pueda necesitar (por ejemplo, luces, motores, IR, etc.) este código debería funcionar bien sin modificaciones.
Paso 4: Instale el software
Tengo dos formas de instalar este … instalador nsis: Descargue el instalador autoextraíble a continuación y ejecútelo. Tendrá la opción de instalar fuentes durante la instalación. el paquete binario del instalador instala dlls core c ++ para que pueda ejecutarse en una computadora sin Visual C ++ instalado. Una vez que finaliza el instalador, puede ejecutarlo desde el escritorio o desde el menú de inicio. zip way (no verificado): Descargue y ejecute, debería funcionar. quizás. (El archivo zip tiene la misma estructura de carpetas creada por el instalador, sin fuentes. No tengo una máquina sin Visual Studio para probarlo, por lo que es posible que no funcione).
Paso 5: use el programa de interfaz
Para usar el programa, primero seleccione la velocidad en baudios definida en el boceto de arduino. El boceto sin modificar tiene un valor predeterminado de 38400 baudios, pero se puede cambiar para adaptarse a sus necesidades para cosas como un enlace de radio más lento. nota: las velocidades en baudios superiores a 38400 no han sido muy estables, creo que esto se debe a que el uart se llena antes de que se puedan procesar los datos. A continuación, seleccione el puerto COM a utilizar. el programa predeterminado es COM4 asegúrese de cambiarlo o el programa se bloqueará. Finalmente, haga clic en abrir. Si todo salió bien, el programa abrirá el puerto serie seleccionado a la velocidad de transmisión seleccionada. De lo contrario, el programa probablemente se bloqueará con una excepción no controlada. asegúrese de que el puerto sea correcto y vuelva a intentarlo. Utilice los cuadros de texto para enviar comandos directos al arduino. El "mapa (comando [1], 32, 126, 2, 180)" escala todos los 94 comandos posibles, * espacio * a ~, legibles por el arduino en ASCII de 2 a 180 para el servo. cualquier byte menor que ASCII 32 (espacio) o superior 126 (~) por defecto es 63 (?) Las barras de seguimiento proporcionan una interfaz más fácil para los comandos directos. cada paso envía un comando en serie al arduino de forma incremental.
Paso 6: ¡Sea creativo
Piense en cosas interesantes para hacer con esto. Algunas ideas: 1. Acelerador remoto para un automóvil. 2. Soporte de cámara 3D 3. Rover submarino ¡Diviértete!
Recomendado:
Quitar un servocontrolador: 5 pasos (con imágenes)
Retire un servocontrolador: los servomotores son muy divertidos cuando desea conectar fácilmente un motorreductor con un microcontrolador. Sin embargo, a veces, desea un pequeño motorreductor agradable y no quiere que le molesten los circuitos de control para conducirlo. En momentos como este, es
Termómetro infrarrojo sin contacto basado en Arduino - Termómetro basado en infrarrojos con Arduino: 4 pasos
Termómetro infrarrojo sin contacto basado en Arduino | Termómetro basado en infrarrojos con Arduino: Hola chicos, en este instructivo, haremos un termómetro sin contacto con arduino, ya que a veces la temperatura del líquido / sólido es demasiado alta o demasiado baja y luego es difícil hacer contacto con él y leer su temperatura entonces en ese escenario
Generador de música basado en el clima (generador Midi basado en ESP8266): 4 pasos (con imágenes)
Generador de música basado en el clima (Generador Midi basado en ESP8266): Hola, hoy explicaré cómo hacer tu propio generador de música basado en el clima. Está basado en un ESP8266, que es como un Arduino, y responde a la temperatura, la lluvia y la intensidad de la luz. No espere que haga canciones completas o programas de acordes
556 Servocontrolador: 5 pasos (con imágenes)
556 Servocontrolador: Los servos (también servos RC) son servomotores pequeños, baratos y fabricados en serie que se utilizan para control de radio y robótica a pequeña escala. Están diseñados para ser controlados fácilmente: la posición del potenciómetro interno se compara continuamente con la posición comandada
Servocontrolador Maestro (Raspberry Pi): 4 pasos (con imágenes)
Maestro Servo Controller (Raspberry Pi): Tutorial básico de cómo configurar un Maestro Servo Controller con Raspberry Pi