Tabla de contenido:
- Paso 1: Reúna los materiales
- Paso 2: ensamble el circuito
- Paso 3: Configure el PWM en la MCU
- Paso 4: programe el microcontrolador
- Paso 5: Comunicaciones de puerto serie
Video: Servo Squirter - Pistola de agua USB: 5 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:45
Una pistola de agua servo controlada por USB. Ideal para disparar a los transeúntes desprevenidos o para mantener a raya a las personas con preguntas molestas. Este proyecto es una pequeña bomba de agua montada en la parte superior de un servo para disparar direccionalmente. Todo está impulsado por un microcontrolador y controlado desde su teclado a través de USB. Para ver más de nuestros proyectos y tutoriales en video gratuitos, visite nuestro sitio web
Paso 1: Reúna los materiales
Este proyecto está basado en microcontroladores. Aparte del microcontrolador ATmega168 incluido en el USB NerdKit. Para este proyecto usamos lo siguiente: 1 Hobby Servo, Hitec HS-501 Bomba de agua de pistón de bajo voltaje 1 Pequeño MOSFET de canal n, 2N7000
Paso 2: ensamble el circuito
La primera parte de nuestro circuito simplemente se conecta al servo. Esto es simple aquí: un cable desde el microcontrolador al servo. Hay algunas etiquetas de colores diferentes según el fabricante, así que verifique antes de intentar esto. Foto esquemática del circuito ServoSquirter en la placa de pruebas NerdKits La segunda parte del circuito permite que el microcontrolador encienda y apague el motor de la bomba. El chip ATmega168 en sí solo permite 40 mA como máximo dentro o fuera de cualquier pin, ¡pero nuestra bomba requiere más de 1000 mA! Entonces, para controlar esta carga más grande, hemos optado por usar un transistor más grande, el 2N7000. Primero explicamos los conceptos básicos del uso de MOSFET (transistores de efecto de campo semiconductor de óxido metálico) como interruptores: al llevar el voltaje de la puerta por encima de la fuente, podemos permitir que la corriente fluya desde el drenaje a la fuente. De la hoja de datos del 2N7000, hemos extraído la Figura 1, que muestra la relación entre la corriente de drenaje y el voltaje de la fuente de drenaje para diferentes configuraciones de voltaje de puerta-fuente. Hay algunas cosas importantes que puede aprender de este gráfico: 1. Para VGS por debajo de aproximadamente 3,0 voltios, no se permite que fluya corriente. Este es el estado desactivado, también llamado "corte". 2. Para VDS pequeños, la curva parece más o menos lineal a través del origen, lo que significa que eléctricamente "parece" una resistencia. La resistencia equivalente es la pendiente inversa de la curva. Esta región de operación MOSFET se llama "triodo". 3. Para VDS más grandes, se alcanza un nivel máximo de corriente. A esto se le llama "saturación". 4. A medida que aumentamos VGS, se permite que fluya más corriente tanto en el modo de triodo como en el de saturación. Y ahora ya ha aprendido acerca de los tres modos de operación del MOSFET: corte, triodo y saturación. Porque nuestro control de puerta es digital (+5 o 0), solo nos preocupa la curva resaltada en amarillo, para VGS = 5V. Normalmente, el uso de un MOSFET como interruptor generalmente implica el modo de operación de triodo, porque el MOSFET disipa la energía PD = ID * VDS, y un buen interruptor debería disipar poca energía en el propio interruptor. Pero en este caso, estamos tratando con un motor, y los motores tienden a requerir mucha corriente (con poca caída de voltaje) cuando se encienden por primera vez. Entonces, durante el primer segundo o dos, el MOSFET funcionará con un VDS alto y estará limitado por su corriente máxima, aproximadamente 800 mA desde la línea roja discontinua que hemos dibujado en la hoja de datos. Descubrimos que esto no era suficiente para poner en marcha la bomba, así que usamos un pequeño truco y pusimos dos MOSFET en paralelo. De esta manera, comparten la corriente y pueden hundir efectivamente alrededor de 1600 mA juntos. Además, debido a los altos requisitos de potencia de la bomba, utilizamos un transformador de pared con una salida de corriente más alta. Si tiene un transformador de pared con una salida superior a 5 V, tal vez 9 V o 12 V, entonces puede
Paso 3: Configure el PWM en la MCU
Registros y cálculos de PWM En el video, hablamos de dos niveles utilizados por el módulo de temporizador / contador: el valor superior y el valor de comparación. Ambos son importantes para generar la señal PWM que desea, pero para activar la salida PWM de su ATmega168 en primer lugar, tenemos que configurar algunos registros. Primero, seleccionamos el modo Fast PWM con OCR1A como valor superior, lo que nos permite establecer arbitrariamente la frecuencia con la que comenzar un nuevo pulso; luego, configuramos el reloj para que funcione con una división previa de 8, lo que significa que el contador aumentará por 1 cada 8 / (14745600 Hz) = 542 nanosegundos. Dado que tenemos registros de 16 bits para este temporizador, esto significa que podemos configurar nuestro período de señal general para que sea tan alto como 65536 * 542ns = 36 milisegundos. Si usamos un número de división más grande, podríamos hacer que nuestros pulsos estén más separados (lo que no ayuda en esta situación) y perderíamos resolución. Si usamos un número de división más pequeño (como 1), no podríamos hacer que nuestros pulsos estén separados por al menos 16 milisegundos, como espera nuestro servo. Finalmente, configuramos el modo Comparar salida para un PWM "no inversor" salida, que se describe en nuestro video. También configuramos el pin PB2 para que sea un pin de salida, no se muestra aquí, pero está en el código. Haga clic para ampliar estas tomas de las páginas 132-134 de la hoja de datos de ATmega168, con nuestras selecciones de valor de registro resaltadas:
Paso 4: programe el microcontrolador
Ahora es el momento de programar la MCU. El código fuente completo se proporciona en nuestro sitio web https://www.nerdkits.com/videos/servosquirter El código primero configura el PWM para controlar el servo. Luego, el código simplemente se sienta en un ciclo while esperando la entrada del usuario. Los caracteres 1 y 0 activan o desactivan el pin MCU que está conectado al transistor de la bomba. Esto encenderá y apagará la bomba dándonos la capacidad de disparar a voluntad. El código también responde a las teclas '[' y ']' estas teclas aumentarán o disminuirán el valor de comparación en el pin PWM, lo que hará que el servo motor para cambiar de posición. Esto le da la capacidad de apuntar antes de disparar.
Paso 5: Comunicaciones de puerto serie
El último paso es configurar la computadora para que pueda enviar los comandos al microcontrolador. En el NerdKit, usamos el cable serial para enviar comandos e información a la computadora. Es posible escribir programas simples en la mayoría de los lenguajes de programación que pueden comunicarse a través del puerto serie con NerdKit. Sin embargo, es mucho más sencillo utilizar un programa de terminal para realizar la comunicación en serie por nosotros. De esta manera, puede simplemente escribir en el teclado y ver la respuesta del NerdKit. Windows Si está usando Windows XP o una versión anterior, HyperTerminal está incluido y debería estar en su menú Inicio en "Inicio -> Programas -> Accesorios -> Comunicaciones ". Cuando abre HyperTerminal por primera vez, le pide que configure una conexión. Cancele fuera de ellos, hasta que esté en la pantalla principal de HyperTerminal. Tendrá que configurar HyperTerminal, elegir el puerto COM correcto y configurar la configuración del puerto de manera adecuada para que funcione con el NerdKit. Siga las capturas de pantalla a continuación para obtener la configuración correcta de HyperTerm. Si está en Windows Vista, HyperTerminal ya no está incluido. En este caso, descargue PuTTY (instalador de Windows). Use la configuración de conexión a continuación para configurar Putty, usando el puerto COM adecuado. Mac OS XDespués de ingresar a la aplicación Terminal, escriba "screen /dev/tty. PL* 115200" para comenzar a comunicarse a través del puerto serie. LinuxEn Linux, usamos " minicom "para hablar con el puerto serie. Para comenzar, ejecute "minicom -s" en la consola para ingresar al menú de configuración de minicom. Vaya a "Configuración del puerto serie". Establezca los parámetros de la siguiente manera: Configuración de Minicom en Linux Luego, presione escape y use "Guardar configuración como dfl" para guardar la configuración como predeterminada. Ahora debería poder presionar "Salir" y usar minicom para hablar con el NerdKit.
Recomendado:
Soporte para botella de agua con recordatorio de agua: 16 pasos
Soporte para botella de agua con recordatorio de agua: ¿Alguna vez te olvidaste de beber tu agua? ¡Sé lo que hago! Por eso se me ocurrió la idea de crear un soporte para botellas de agua que te recuerde que debes beber tu agua. El soporte para botella de agua tiene una función en la que sonará un ruido cada hora para recordarle que
Sistema de alarma de agua potable / monitor de entrada de agua: 6 pasos
Sistema de alarma de consumo de agua / Monitor de ingesta de agua: Debemos beber suficiente cantidad de agua todos los días para mantenernos saludables. También hay muchos pacientes a los que se les prescribe beber una determinada cantidad de agua todos los días. Pero desafortunadamente nos perdimos el horario casi todos los días. Así que diseño
Ahorre agua y dinero con el monitor de agua de la ducha: 15 pasos (con imágenes)
Ahorre agua y dinero con el monitor de agua de la ducha: ¿Qué utiliza más agua, un baño o una ducha? Hace poco estaba pensando en esta pregunta y me di cuenta de que en realidad no sé cuánta agua se usa cuando me ducho. Sé que cuando estoy en la ducha, a veces mi mente divaga, pensando en algo genial
Válvula de agua servo: 5 pasos
Válvula de agua servo: Tengo otro proyecto, el sensor de humedad de la planta, que puede detectar el nivel del agua en el suelo. Este es un seguimiento de eso, por lo que puede usar los datos que proporciona el sensor para hacer algo útil (como regar una planta). Esto está hecho completamente fuera de casa
Métodos para detectar el nivel de agua Arduino usando un sensor ultrasónico y un sensor de agua Funduino: 4 pasos
Métodos para detectar el nivel de agua Arduino usando un sensor ultrasónico y un sensor de agua Funduino: En este proyecto, le mostraré cómo crear un detector de agua económico usando dos métodos: 1. Sensor ultrasónico (HC-SR04) 2. Sensor de agua Funduino