Mi gato se niega a usar la tabla de arañar que compré para ella, así que hice este dispositivo para motivarla a usarlo en lugar de mi sofá... veremos cómo funciona...
Adjunto a la pizarra de arañazos hay unMPU6050Un acelerómetro que monitoriza la interacción con la placa. Si el gato usa la placa, el servo se activa para dispensar una golosina.
Aquí hay una vista previa en progreso del dispositivo. La electrónica aún no está integrada.
Lista de piezas.
- Arduino Nano.(Utilicé un Nano Every, pero cualquier otra variación con el mismo tamaño debería funcionar - otras alternativas de terceros pueden incluso ser más pequeñas, esas también deberían funcionar bien)
- MPU6050Unidad de medición inercial (IMU).
- HW-085Conversor elevador de 5V para aumentar el voltaje de la batería a 5V para alimentar el Arduino y el servo (otros también funcionarán, esto es solo lo que tenía).
- Batería de iones de litio.(a lo sumo 40 mm x 75 mm x 22 mm). Usé un 18650 en un soporte para baterías. El compartimento de la batería es lo suficientemente grande como para acomodar un soporte para baterías para dos baterías 18650.
- Microservo Feetech FS90
- Cables y conectores.
- Una pieza corta (6-7 mm) de lima de 1,75 mm.
- Todas las piezas impresas en 3D de esta lista.
Software utilizado.
- FreeCAD.para el diseño de la pieza.
- IDE de Arduino.para programar y cargar el código en el microcontrolador.
- Fritzing.para el diagrama de cableado.
- Blender.&Kritapor hacer las imágenes en este listado.
- Git/GitHub para el control de versiones de código
Resumen de la Asamblea
Aquí puedes ver las partes principales del corpus.
- Compartimento de electrónica.
La parte izquierda está destinada al Arduino y al regulador de voltaje. Está un poco apretado allí. En retrospectiva, debería haber hecho esto un poco más grande. Las ranuras en el lado se utilizan para fijar el Arduino y el regulador de voltaje utilizando los dos clips (no se muestran en la imagen).
El compartimento derecho, más grande, fue diseñado para alojar un soporte de batería 2x18650. - Base y Extensión de Base.
En la parte trasera de este compuesto de dos partes hay una ranura que toma el servo. Hay una ranura para enrutar el cable del servo hacia el compartimento de la electrónica.
El borde inferior de la base tiene dos cortes en los que la tolva (no mostrada en la imagen) se encajará. - Trineo
El trineo será movido por el servo. Tiene tres posiciones: el centro y una debajo de cada tubo de tolva. Cuando se mueve hacia uno de los lados, un premio caerá en el agujero del centro. Cuando el trineo vuelve al centro, el premio caerá a través de la rampa. El controlador moverá el trineo alternando entre los dos tubos para tomar premios por igual de ambos lados.
El trineo estará conectado al servo por un trozo corto (6-7 mm) de filamento de 1,75 mm. - Abajo
La parte inferior del ensamblaje. Sostiene el trineo y la rampa. - Chute.
Redirige el golpe lejos de la pared.
Paso 1 - Insertar.Chute.enAbajo
Empuja el paracaídas en un ángulo hacia la ranura en la parte inferior.
Cuando esté completamente insertado, gire la parte frontal de la rampa hacia abajo para nivelar el borde superior de la rampa con la superficie inferior.
Asegúrate de que el borde superior del Chute esté por debajo de la superficie de la guía del trineo presionándolo con firmeza. De lo contrario, el trineo podría quedarse atascado y el servo no podrá moverlo.
Paso 2 - insertar.Trineo

Paso 3 - adjuntar.Base
En lugar de dos rieles largos como las dos últimas piezas, esta conexión solo tiene cuatro pernos cortos. Asegúrate de que estén alineados. Puede ser un poco difícil meterlos todos a la vez. Necesité un poco de fuerza (colocando las piezas en posición vertical sobre la mesa y martillándolas suavemente con el talón de mi mano).
ElTrineoDebería deslizarse suavemente en su ranura en este punto.
Paso 4 - AñadirExtensión de la base.yCompartimento de electrónica.
Al igual que en el paso anterior, encajar las piezas juntas puede requerir algo de fuerza. Pero aquí la alineación no es un problema tan grande, ya que solo las dos ranuras necesitan estar alineadas.
Cuando esté completamente ensamblado, asegúrate de que los lados traseros de todas las piezas individuales estén alineados.
Cuatro piezas aún no han sido descritas:
- Clip de Arduino Nano y clip regulador de voltaje.
Estas piezas sostienen el Arduino y el regulador de voltaje. Primero, adjunte las placas (simplemente clápelas en los clips) antes de insertarlas en la pared interior del compartimento de la electrónica.
Como el espacio es bastante estrecho allí, recomiendo usar pinzas para introducirlos.

- Cubierta de electrónica.
Solo una cubierta que va en el compartimento de la electrónica. Colócala cuando todo esté instalado en el interior. - Hopper.
El Hopper consta de dos tubos que sostienen las golosinas. Simplemente se desliza en los recortes cuadrados de la parte base. Adjunte esto por último y, finalmente, llene el Hopper con golosinas.
Instalando el servo.
Conecte el servo al Arduino que ejecuta el código del repositorio a continuación y enciéndalo. El servo ahora girará a su posición de 90°. Desconecte el servo e instale la bocina del servo.
La bocina debe apuntar directamente hacia arriba cuando el servo se coloca de lado. Asegúrate de colocarlo de la manera correcta. Puedes verlo en las dos imágenes a continuación. Cuando se inserta en la ranura en la parte posterior de la caja impresa en 3D, la bocina debe apuntar hacia la parte.
Ahora inserte el trozo de filamento en el gran orificio de la bocina del servo. Alinee la bocina con la ranura en el Sled para que el filamento conecte los dos. Ahora deslice el servo hacia atrás y clípealo en su ranura.
Si esto no funciona, también puedes quitar la parte inferior, luego instalar el servo en su ranura y volver a fijar la parte inferior, asegurándote de que el pin del filamento esté en su lugar.
Cableado.
Poder.
- Conectar.batería+Con elEn+Pin del regulador de voltaje.
- Conectar.batería-Con elEn-Pin del regulador de voltaje.
- Conecte el regulador de voltaje.Out+Pin alEl cable rojo del servo.y elVIN de Arduino.contacto
- Conecte el regulador de voltaje.Fuera-Pin alEl cable negro/marrón del servo.y elGND de Arduino.contacto
- Conecta elVCC de MPU.Contacto con elLos 5V de Arduino.contacto
- Conecta elGND de MPU.Contacto con elGND de Arduino.contacto
Lógica.
- Conecta elEl pin de datos del servo.(generalmente amarillo o naranja) alD9 de Arduino.contacto. Este es un pin PWM. Si necesitas usar otro pin, asegúrate de que sea un pin PWM (generalmente marcado con un ~) y no olvides cambiar ese pin en el código también (PIN_SERVO)
- Conecta elLos MPU's...
- SCLalA5 de Arduino.
- SDAalA4 de Arduino.
Puedes encontrar una versión SVG de este gráfico en la sección de Otros archivos.
Puesta en servicio.
Flashear el código en el Arduino ya debería haber ocurrido durante el ensamblaje, ya que es necesario para instalar el servo.
Cuando el Arduino se enciende, inicialmente esperará un momento (5 segundos) para permitir que el dispositivo se estabilice y la vibración se desvanesca.
Luego, hay un breve procedimiento de calibración que analiza los datos del acelerómetro para detectar el ruido del sensor sin que el dispositivo se mueva. No mueva el sensor durante ese tiempo, ya que esto reducirá la sensibilidad más adelante.
Cuando la calibración esté completa, el servo se estremecerá ligeramente para indicar que la calibración está completa. Mover el MPU ahora desencadenará la dispensación de un regalo.
Hay algunos parámetros que se pueden cambiar en el código para ajustar el comportamiento. Estos son:
- Tiempo de enfriamiento de Dispense:Cuando se desencadena la dispensación, el siguiente desencadenamiento no ocurrirá hasta que finalice este enfriamiento. Por defecto: 5 segundos.
- Cantidad dispensada:El número de golosinas que se dispensarán cuando se active. Por defecto: 1
- Duración del período de dispensación.&Cantidad dispensada por período.El período es un medio para limitar el número de golosinas que se dispensan a lo largo del tiempo. Durante un período, solo se dispensará la cantidad establecida por período. Ejemplo: la duración del período se establece en 60 minutos y la cantidad por período se establece en 3 (estos son los valores predeterminados). Dentro de los 60 minutos posteriores a la primera dispensación, solo se dispensarán 3 golosinas en total. Est
- Duración de la interacción de dispensación:Este es un medio para controlar la sensibilidad para el desencadenamiento. Las interacciones con el MPU necesitan ser registradas durante al menos esta cantidad de tiempo antes de que se dispense el premio. Los valores más altos requieren interacciones más largas. Por defecto: 3 segundos.
- Tiempo límite de interacción de dispensación:Una interacción puede consistir en múltiples interacciones pequeñas, no solo una larga y continua. Este es el tiempo antes de que una interacción caduque. Si se registra otra interacción dentro de este período, esto se considera la misma interacción. Por defecto: 2 segundos.
Código
El código de Arduino se puede encontrar en esto.Repositorio de GitHub..
Los parámetros mencionados en la sección anterior son estos:
- TIEMPO DE ENFRIAMIENTO PARA LA DISPENSA.
- CANTIDAD A DISPENSAR
- DURACIÓN DEL PERÍODO DE DISPENSA.
- CANTIDAD DE DISPENSA POR PERÍODO.
- DURACIÓN DE LA INTERACCIÓN DE DISPENSA.
- TIEMPO LÍMITE DE INTERACCIÓN DE DISPENSA.
Esos valores están en milisegundos.
La calibración utiliza un búfer de anillo para almacenar las últimas 50 muestras de todas las lecturas de sensores relevantes. Los valores almacenados en el búfer de anillo se utilizan para calcular el promedio de todos los valores. Este promedio se utiliza como línea de base para detectar el movimiento.
Se registra una interacción cuando el valor actual de aceleración supera el promedio del sensor + un valor umbral. El umbral se calcula a partir del ruido medido durante el período de arranque.
De esta forma, la deriva del valor del sensor no es un problema, siempre y cuando ocurra lentamente.
Instrucciones de impresión.
Las piezas ya están orientadas de la manera en que deberían imprimirse.
- Material: PLA.
- Altura de la capa: 0,2 mm.
- Relleno: 15%
- Utilicé un borde para todas las piezas, aunque puede que no sea necesario para las piezas más grandes. En particular, tuve problemas con la adherencia a la cama al imprimir el Sled. Sin él, simplemente no se adhería. Para los dos clips pequeños, se recomienda encarecidamente un borde.
- Solo elExtensión de la base.-Las piezas necesitan soportes debido a la gran voladura para el servo y el cable del servo. Utilicé soportes de auto-tree. Así es como pinté los soportes en Orca Slicer (verde: soporte, rojo: sin soporte).

Espacio para mejoras.
- Añadir interruptor de encendido - Estaba un poco bajo presión de tiempo para este proyecto. Así que simplemente olvidé considerar esto.
- Cortar la energía al servo cuando no sea necesario.
- Gestión de energía de Arduino. Sleeps cuando no se usa.
- Mejorar la detección de movimiento para evitar que se active cuando está montado en una puerta y ésta se mueve.
- Mejorar la cubierta de Electronics para que se cierre con un chasquido. Funciona tal como está, pero preferiría un accesorio más rápido.
- Añade una tapa a la tolva para proteger las golosinas del polvo y (al menos un poco) de la humedad.
태그
모델 소스
