Tabla de contenido:

Camarero, por favor, Bot: 6 pasos (con imágenes)
Camarero, por favor, Bot: 6 pasos (con imágenes)

Video: Camarero, por favor, Bot: 6 pasos (con imágenes)

Video: Camarero, por favor, Bot: 6 pasos (con imágenes)
Video: No sabía que los LEGO se comían 😧 #shorts 2024, Mes de julio
Anonim
Image
Image

¿Qué puede salir mal con una campana de llamada de camarero que golpea un servo en un espacio de oficina abierto?

- No lo sé: D

La gente tiende a odiar las alarmas o incluso las interrupciones, así que quizás sea una buena idea hacerlo un poco divertido (al menos por un tiempo). Eso es lo que pretendía lograr. Alerte rápidamente a los ingenieros sobre incidentes críticos de manera aceptable.

Es mi primer proyecto Arduino hecho de escudo Ethernet, control de infrarrojos, Micro Servo SG90 9g y materiales reciclados.

La acción de abofetear se desencadenó a través de WebHook o control remoto. El mando a distancia también se utiliza para ajustar el ángulo del brazo.

Paso 1: ¿Cómo funciona?

¿Cómo funciona?
¿Cómo funciona?

Escucha en el receptor de infrarrojos y busca una dirección HTTP para una palabra clave determinada. El controlador de infrarrojos se puede usar para ajustar el ángulo del brazo y también se puede usar para disparar. La respuesta HTTP solo se puede utilizar para activar la campana. (En el caso actual, hice una pequeña aplicación web que captura el webhook de Slack y administra una bandera. No se incluye en este instructivo)

Básicamente, utilicé el controlador de infrarrojos solo con fines de depuración. La primera vez cometí un error al dejar que el controlador se quedara al lado de la máquina de bofetadas, pero la gente tenía la curiosidad de activar la bofetada muchas veces, así que encuentro el dispositivo desconectado:)

En la vida real, solo verifica periódicamente una dirección web codificada que tiene una respuesta similar como:

Si la palabra clave anyslap seguida de un número entero, hace tantos movimientos de brazo.

Paso 2: Componente requerido

Componente requerido
Componente requerido
Componente requerido
Componente requerido
Componente requerido
Componente requerido

Componentes electrónicos:

  • Arduino Uno R3
  • Escudo UNO Escudo Ethernet W5100 R3
  • Kit de módulo de control remoto inalámbrico infrarrojo IR
  • Servo (SG90)
  • Placa de circuito impreso universal 4x6cm
  • 5 x LED
  • Resistencia de 5 x 220 ohmios
  • Alambre de silicona 30AWG

Materiales reciclados:

  • Frasco de champú
  • Cajas de cartón
  • Mano de juguete (ven con un croissant de compra dos y obtén una mano gratis:)

Paso 3: Combina los tutoriales de Arduino

En su mayoría, solo seguí los ejemplos integrados de Arduino, los ejemplos de la biblioteca y los combiné en un proyecto.

Lecciones recomendadas

  • Parpadeo sin demora: se utiliza para indicadores LED; función millis () para comprobar HTTP periódicamente y apagar el servo si no se utiliza.
  • Funciones de salida en serie ASCIITable: se utilizan para depurar.
  • Estructuras de control, como: iteración de bucle, mayúsculas y minúsculas, declaración If, bucle while
  • Cliente web Ethernet con arrendamiento DHCP: se utiliza para recibir disparadores desde el punto final
  • Lección de servo: se utiliza para el movimiento del brazo (rotación).
  • Receptor de infrarrojos: se utiliza para un control adicional y ajustar el ángulo del brazo.

Paso 4: busque una palabra clave en la respuesta HTTP y otros problemas del cliente Ethernet

El montaje del Waiter Please Bot fue bastante sencillo, excepto las cosas de Ethernet.

Dificultades

  1. Cualquier llamada de EthernetClient, especialmente DHCP Lease, es un proceso único. Funciona como un retraso con rand lo que detiene el programa.
  2. Olvídese de JSON en API y WebHook Arduino Strings son malvados de todos modos.

1. - Proceso único

Me rindo para hacer que el programa haga múltiples procesos. Busqué en Google algunas soluciones posibles, pero ninguna de ellas fue simple. Quería mantener el código lo más pequeño y fácil de leer posible.

2. - Analizar respuesta

La estabilidad y la capacidad de trabajar sin mantenimiento son requisitos clave. Entonces evito usar cualquier objeto String debido a una posible pérdida de memoria.

EthernetClient se basa en la clase base Stream y su función de búsqueda permite buscar palabras clave. Es un poco complicado y ocupa muchas líneas de código, pero funciona.

Paso 5: boceto y fuente

Boceto y fuente
Boceto y fuente

Repositorio:

Paso 6: construya el hardware

Construya el hardware
Construya el hardware
Construya el hardware
Construya el hardware
Construya el hardware
Construya el hardware

El brazo

  1. Hay cuatro protectores de esquina dentro de la caja enviada de Macbook. Lo usé como soporte.
  2. Recorta una forma pequeña que se ajuste al servo.
  3. Pegue el soporte y el servo con una pistola de pegamento termofusible.
  4. Tomó una pipa de un frasco de champú usado y la atornillé al servo.
  5. Tira de la mano de juguete en la tubería.

El controlador

  1. Hizo un prototipo en protoboard.
  2. Copie el prototipo de la placa de pruebas en la placa de circuito impreso universal.
  3. Usé encabezados separables para todas las conexiones de circuitos de cables.
  4. Recorta la caja de papel.
  5. Pegue el frente de la caja y la placa de circuito impreso.
  6. Coloque la placa Arduino, el escudo de Ethernet y un poco de esponja en la caja.

Hecho.

Recomendado: