Tabla de contenido:

LaserKitty !!: 7 pasos (con imágenes)
LaserKitty !!: 7 pasos (con imágenes)

Video: LaserKitty !!: 7 pasos (con imágenes)

Video: LaserKitty !!: 7 pasos (con imágenes)
Video: Laserkitty 2024, Noviembre
Anonim
Image
Image
Consigue tus cosas
Consigue tus cosas

Es una verdad universalmente reconocida que un solo gato en posesión de buena fortuna debe necesitar un juguete láser. Al igual que con los caballeros solteros que necesitan futuras esposas, se deben tomar algunas precauciones. Pero, ¿no es eso cierto para algo que realmente valga la pena tener?

Si tiene inquietudes sobre las mascotas y la seguridad del láser, vaya al final de este Instructable antes de comentar. Si le preocupa una futura esposa, o incluso una actual, probablemente deba buscar en otra parte.

Ahora, podría ir a su tienda de mascotas local y comprar un puntero láser, y tal vez incluso algún artilugio que agregue una automatización rudimentaria. Ahorraría algo de dinero y podría devolverlo si no funcionara. O podrías construir algo tú mismo. Ya hay muchos ejemplos, pero aquí está mi contribución al canon. Cuenta con:

  • Control total de teléfonos inteligentes
  • Modos manual, automático y programado
  • Interfaz de aplicación personalizada
  • Estado del sistema sincronizado entre varios clientes web
  • Estado del sistema reflejado en LaserKitty !! sí mismo
  • Restricciones de rango de giro e inclinación configurables
  • Duración y frecuencia de la sesión de tiempo de juego configurable
  • Ventanas de juego configurables
  • Página de configuración con la configuración actual de un vistazo
  • Sincronización de hora NTP
  • Administrador de WiFi para una fácil configuración en nuevas redes
  • Generador de tonos para reproducir el tema Misión Imposible antes de cada sesión de juego: tu gato puede o no apreciar la ironía.
  • Envíe notificaciones de bala a todos sus dispositivos cuando comience una nueva sesión de tiempo de reproducción
  • Posición de inicio configurable para que el tiempo de juego termine en el tazón de comida o en el juguete estacionario
  • Todas las configuraciones almacenadas en EEPROM para que no se pierdan en caso de corte de energía
  • ¡Y mucho más! Bueno, en realidad no, eso es todo.

Paso 1: consiga sus cosas

Esto es lo que usé:

  • Un mini conjunto de giro e inclinación. Ciertamente, este no es el más barato que puede encontrar y necesita algunas modificaciones para nuestros propósitos. Lo elegí porque se ve un poco más fresco que los ensamblajes de plástico del sótano de oferta. Como bono inesperado, su diseño permite una forma muy fácil de montar el láser. Viene con un par de micro servos, pero le recomiendo que compre un montón de más para reemplazarlos. Necesitará al menos un servo adicional (uno roto está bien).
  • Un recinto. Me duele pagar $ 8 por una caja de plástico y definitivamente podrías encontrar algo adecuado por menos. Sin embargo, hay algo sobre el tamaño del recinto vinculado.
  • Una placa de desarrollo basada en ESP8266. Usé el NodeMCU. No es una exageración decir que amo estas cosas. Fácil de usar dentro del IDE de Arduino y mucha memoria flash para sus páginas web. También es barato y, en mi experiencia, muy difícil de freír.
  • Un mini láser. Diez por $ 6, incluido Amazon Prime. ¿¿Me estás tomando el pelo?? Ahora solo tengo que averiguar qué hacer con los otros nueve.
  • Un zumbador pasivo para los tonos.
  • Un relé de dos canales. Los uso para encender y apagar los servos y el láser. Es posible que pueda eliminar este componente como explicaré más adelante.
  • Fuente de alimentación de 5VDC. Con suerte, tendrá uno de estos por ahí de algún artilugio olvidado hace mucho tiempo, pero si no es algo barato y alegre que pueda producir alrededor de 1A de 5VDC es lo que necesita.
  • Consumibles diversos como resistencias, LED, cables de conexión, termorretráctiles, soldadura, pegamento termofusible. Lo normal. También utilicé un conector de barril para la fuente de alimentación de entrada de 5 VCC de mi colección vergonzosamente grande de placas de imitación Arduino destruidas.
  • Por último, pero no menos importante, una calcomanía de vinilo para ese toque final caprichoso.

Así que sí. Estás mirando alrededor de $ 50 en total. Podrías hacerlo por menos, pero ¿tu gatito no se merece lo mejor?

Paso 2: herramientas y recursos

Herramientas y recursos
Herramientas y recursos

Nada especial en el lado de las herramientas aquí. Solo un soldador decente, un multímetro, un taladro y herramientas manuales básicas. Una fuente de alimentación de banco es buena para experimentar con el láser, pero no es esencial.

Este proyecto realmente explota las capacidades del ESP8266 y, en particular, del NodeMCU. Si recién está comenzando con el ESP8266, no he encontrado un recurso mejor que este. Aparte de eso, se trata de buscar en Google para encontrar respuestas a los problemas que surgieron en el camino.

Paso 3: preparar el gabinete

Prepare el recinto
Prepare el recinto
Prepare el recinto
Prepare el recinto

Como ya he mencionado, pagar 8 dólares por un recinto de plástico parece una barbaridad. Sin embargo, lo que es aún peor es arruinarlo haciendo un agujero en el lugar equivocado. Entonces, antes de tener en su caja con el taladro y / o cualquier otro generador de caos a su disposición, considere los errores que cometí.

  • En primer lugar, debes pensar en dónde encajarán todas las cosas. La buena noticia es que el gabinete que sugiero tiene mucho espacio, incluso con el cableado muy desordenado que ve aquí. Incluso puede salirse con la suya con una caja más pequeña, especialmente si elimina los relés.
  • Lo más importante es dónde colocará el conjunto de giro e inclinación en la tapa. Aquí se muestra mi primer intento. Pensé que lo colocaría artísticamente fuera del centro y un poco hacia atrás para lograr estabilidad. ¡Mala idea! Necesita el ensamblaje lo más cerca posible del costado de la tapa para que el gabinete en sí no interfiera con la viga en ángulos de inclinación altos. Además, creo que la disposición ideal sería montar el láser panorámico perpendicular al lado corto en lugar de, como hice yo, al lado largo. Lo hice al revés por razones puramente estéticas, aunque hay un poco más de potencial de interferencia.
  • Como puede ver, el NodeMCU está montado en Perfboard y podría haberse colocado fácilmente de modo que su conector micro USB fuera accesible desde una ranura en el lateral o en la parte trasera. Esto facilitaría las actualizaciones de software (no es necesario quitar la tapa). Mi idea original era usar la biblioteca Over-The-Air (OTA) para actualizaciones y verá que mi código incluye esa funcionalidad, aunque está comentada. El problema era que el generador de tonos y OTA no funcionaban bien juntos (el NodeMCU se reiniciaba repetidamente a la mitad de la canción). Ese problema probablemente se pueda solucionar, pero nunca he tenido éxito en la actualización de SPIFFS que no sea a través de USB, por lo que tener acceso al conector USB habría sido bueno. En el momento en que me di cuenta de todo esto, había montado el NodeMCU en el Perfboard de una manera que significaba que no era posible sacar el conector de la caja sin muchos errores. Oh bien.
  • Si volviera a hacer el proyecto, alinearía el LED RGB con el LED rojo de "encendido". (El propósito del LED RGB es indicar en qué modo se encuentra LaserKitty !! sin tener que mirar la aplicación).

La única parte un poco complicada de hacer los agujeros es la rectangular para el servo de bandeja. Usé un taladro y una lima. Como puede ver en mi primer intento, es difícil hacerlo exactamente cuadrado (o rectangular, supongo). Pero cuando el servo está montado, realmente no puedes ver eso.

Deberá hacer otros tres orificios. Estos deben colocarse en la parte posterior de la caja y se utilizan para el enchufe de la fuente de alimentación, el zumbador y el punto de entrada para el servo de inclinación y el cableado del láser. Todos estos agujeros pueden ser redondos y no presentan ninguna dificultad para realizarlos con solo un taladro.

El uso generoso de pegamento caliente asegura todo en su lugar (con la excepción del servo de bandeja, que está atornillado a la tapa usando las pestañas de montaje del servo).

Paso 4: el conjunto de giro e inclinación

El conjunto de giro e inclinación
El conjunto de giro e inclinación
El conjunto de giro e inclinación
El conjunto de giro e inclinación
El conjunto de giro e inclinación
El conjunto de giro e inclinación
El conjunto de giro e inclinación
El conjunto de giro e inclinación

Cuando recibí el conjunto de giro e inclinación, pensé que había cometido otro gran error. Armado según las instrucciones, en realidad no es un mecanismo de giro e inclinación, sino más bien un diseño de giro e inclinación, apropiado para su uso previsto como brazo robótico. Sin embargo, un momento de tranquila reflexión me permitió ver que en realidad se podía ensamblar de una manera diferente para lograr el resultado deseado. Aún mejor, la ubicación original del servo "twist" podría usarse como soporte para el láser.

Si examina el ensamblaje completo en estas imágenes, obtendrá la idea. Te quedará un pequeño bloque de metal que no se necesita en este diseño.

El destello de inspiración que tuve fue usar la ubicación original del segundo servo para montar el láser. Aún mejor, si decapitas un servo duff y perforas el soporte del brazo estriado, ¡es la ubicación perfecta para el montaje del láser! Simplemente no subestime el esfuerzo necesario para cortar el servo. ¡Hay algo de carne para esos pequeños tontos!

Después del montaje e instalación en el gabinete, Y ANTES DE APLICAR ELÉCTRICO, asegúrese de que se mueva aproximadamente 180 grados a lo largo de la cara del gabinete. De alguna manera u otra, después de haberlo instalado una vez con éxito, volví a armar el soporte de la bandeja para que las cabezas de los pernos en la base se unieran contra la parte elevada del servo donde se pretende montar el brazo. El resultado fue que el servo desmontó inmediatamente sus engranajes. En el lado positivo, ahora tengo otro servo duff para usar como soporte láser.

Paso 5: Conéctelo

Conéctelo
Conéctelo

Con suerte, el boceto de Fritzing aclara las cosas. Algunos puntos para aclarar aún más:

  • Como se discutirá más adelante, quería hacer que el láser fuera lo más tenue posible y, al mismo tiempo, conservar el brillo suficiente para que se pudiera utilizar en todas las luces interiores, excepto en las más brillantes. Con un poco de experimentación, me decidí por alimentarlo desde un pin de 3.3VDC en el Node MCU, agregando una resistencia de 22 Ohm en serie por si acaso. Con esta configuración, consume alrededor de 10 mA, por lo que, en teoría, podría alimentarse directamente desde un pin GPIO, pero lo encontré demasiado tenue, incluso sin la resistencia.
  • El láser tiene una capacidad muy limitada para cambiar el enfoque (¿colimación?) Que utilicé para agrandar el punto y así dispersar la energía del láser.
  • Mi primer pensamiento fue encender y apagar los servos con un transistor, pero esto hizo que los servos se volvieran locos. Estoy seguro de que hay una buena razón para esto, pero como ya tenía algunos relés a mano, tomé el camino más fácil y aislé totalmente la alimentación de los servos. Y dado que los relés tenían dos canales, pensé que también podría cambiar el láser de esa manera (los cables morados son la señal de control de la MCU). También me gusta el ruido mecánico que produce esta solución. Sin embargo, puede decidir lo contrario. No se muestra, pero los relés se alimentan directamente de la fuente de 5 VCC; el NodeMCU podría haber podido alimentar un relé de dos canales directamente, pero no había razón para arriesgarse. Si ha usado estos relés antes, sabrá que esto requiere quitar el puente entre JD-VCC y VCC.
  • El LED RGB tiene resistencias limitadoras de corriente de 220 ohmios en rojo y verde y una de 100 ohmios en azul. El LED rojo de "encendido" tiene una resistencia de 450 ohmios, ya que se alimenta de 5 VCC en lugar de 3,3 VCC. Estos son solo valores aproximados para obtener mucho brillo y una longevidad razonable.
  • El timbre suena bastante fuerte. Es posible que desee agregar una resistencia a la línea de señal para atenuar el volumen. Los tonos se pueden apagar por completo a través del software, pero algo intermedio podría ser bueno.

Paso 6: el código

El código
El código
El código
El código
El código
El código
El código
El código

A pesar de la explicación bastante larga del lado del hardware, el 90% del esfuerzo aquí se dedicó al código. Hubiera sido más, pero "tomé prestado" un gran código para el movimiento del láser en modo automático desde aquí. No tiene sentido reinventar la rueda. De hecho, es posible que decida seguir ese proyecto en lugar de este, o mezclar y combinar aspectos de ambos. Ciertamente, me gusta la idea de hacer algunos de los componentes con una impresora 3D, pero no tengo una.

Mi código (que se encuentra en GitHub aquí) se divide en tres partes principales. Está el boceto de Arduino en sí, archivos HTML con un montón de Javascript para el contenido de la aplicación y archivos CSS asociados para el estilo. Utilicé este proyecto para aprender un poco más sobre todos estos elementos de programación, comenzando desde una base muy baja, especialmente en el lado de la interfaz de la aplicación. Intenté ordenar un poco el código, pero mi enfoque principal era simplemente hacer que la cosa funcionara. El código utiliza Websockets para la comunicación bidireccional entre el servidor NodeMCU y los clientes conectados.

El código Arduino está ampliamente comentado, por lo que es de esperar que le resulte fácil de seguir. Una vez que lo haya descargado de GitHub, pegue todo en una carpeta, cargue el boceto en su MCU, luego cargue el contenido de la subcarpeta "datos" en SPIFFS.

En realidad, tacha eso. Si desea utilizar la función de notificación Pushbullet, primero necesitará un token de acceso API disponible desde aquí. Va en la línea 88 del código Arduino. Pushbullet funciona bien, pero si está configurando una cuenta en su teléfono por primera vez, es posible que tenga que iniciar sesión, cerrar sesión y luego iniciar sesión nuevamente antes de que las notificaciones comiencen a aparecer según lo configurado en la configuración de su teléfono.

Hay tres páginas web: una pantalla de presentación, la interfaz de la aplicación real y una página de configuración. Separar el contenido de esta manera hace que el uso de la interfaz sea mucho más parecido a una aplicación, especialmente debido a las amplias opciones de configuración (la captura de pantalla captura solo una parte de estas opciones).

Una peculiaridad de hacer que NodeMCU sirviera varias páginas era que tenía que poner todos los archivos de imagen en la carpeta de datos directamente, simplemente no podía hacer que funcionara si se colocaban en subcarpetas. He incluido todas las imágenes que usé en el repositorio de GitHub para que funcione de inmediato, pero sin duda deseará reemplazarlas con sus propias imágenes.

Paso 7: Toques finales y seguridad del láser

Toques finales y seguridad láser
Toques finales y seguridad láser
Toques finales y seguridad láser
Toques finales y seguridad láser
Toques finales y seguridad láser
Toques finales y seguridad láser

A pesar de su impresionante costo de $ 8, el recinto es, bueno, bastante utilitario. Después de buscar un poco en Etsy, encontré el gráfico de vinilo que ves en el producto terminado (y que se refleja en la página de la aplicación). Enviado desde el Reino Unido, era un poco caro, pero definitivamente valió la pena, y obtienes dos en caso de que quieras replicar el proyecto. Como mi último florecimiento artístico, roté los pequeños "hoyuelos" en los ojos del gato para que miraran el LED de encendido rojo brillante, que representa el punto láser. Dependiendo de su apetito por la fantasía, puede optar por hacer un esfuerzo adicional o no.

El archivo HTML de la pantalla de presentación incluye código para agregar un icono a la pantalla de inicio de su iPhone.

Por último, no debería ignorar las preocupaciones expresadas sobre el uso de un láser para jugar con gatos. Hay dos objeciones principales:

  • El láser podría cegar o dañar los ojos del gato.
  • Jugar con un punto láser es, en última instancia, insatisfactorio para los gatos porque nunca pueden atraparlo o "matarlo".

Hay mucha charlatanería sobre ambos temas, algunos aparentemente informados, otros menos. En última instancia, debes tomar tus propias decisiones sobre si este proyecto, o cualquier otro juguete láser, es adecuado para tu gato. Lo que hice fue tratar de abordar el primer problema haciendo que el láser sea lo más tenue posible sin que sea demasiado difícil ver a niveles de luz razonables. Además, asegúrese de que ningún gato que use el dispositivo tenga la propensión a mirar el láser en sí en lugar del punto, ¡especialmente si tiene la intención de usar LaserKitty! en los modos automático o programado. Uno de los propósitos de la función de notificación Pushbullet es que se use junto con una cámara de monitoreo para que se le recuerde que debe ver jugar a su gatito mientras está fuera.

En cuanto a la segunda objeción, incluí la posibilidad de guardar una "Posición inicial" a la que volverá el láser después de las sesiones de juego programadas. Si lo configura para que apunte a un juguete fijo o al plato de comida de su gatito, es de esperar que proporcione alguna resolución. Aunque, con los gatos, ¿quién sabe realmente?

Recomendado: