Sommario:

Cameriere per favore Bot: 6 passaggi (con immagini)
Cameriere per favore Bot: 6 passaggi (con immagini)

Video: Cameriere per favore Bot: 6 passaggi (con immagini)

Video: Cameriere per favore Bot: 6 passaggi (con immagini)
Video: 4 SITI PAZZESCHI CHE NON DOVRESTI MAI VISITARE 2024, Luglio
Anonim
Image
Image

Cosa può andare storto se un cameriere suona il campanello di un servo in un ufficio aperto?

- Non lo so:D

Le persone tendono a odiare gli allarmi o anche le interruzioni, quindi potrebbe essere una buona idea renderlo un po' divertente (almeno per un po'). Questo è ciò che miravo a raggiungere. Avvisa rapidamente i tecnici degli incidenti critici in modo accettabile.

È il mio primo progetto Arduino realizzato con scudo Ethernet, controllo a infrarossi, Micro Servo SG90 9g e materiali riciclati.

L'azione di schiaffo innescata tramite WebHook o telecomando. Il telecomando utilizzato anche per l'inclinazione del braccio.

Passaggio 1: come funziona?

Come funziona?
Come funziona?

Ascolta sul ricevitore a infrarossi e recupera un indirizzo HTTP per una determinata parola chiave. Il controller a infrarossi può essere utilizzato per la regolazione fine dell'angolo del braccio e può essere utilizzato anche per il trigger. La risposta HTTP può essere utilizzata solo per attivare il campanello. (Nel caso attuale ho creato una piccola applicazione web che cattura il webhook da Slack e gestisce un flag. - Non incluso in questo istruzioni)

Fondamentalmente ho usato il controller a infrarossi solo per scopi di debug. La prima volta ho commesso un errore lasciando che il controller rimanesse vicino alla macchina per schiaffi, ma la gente era abbastanza curiosa da attivare lo schiaffo molte volte, quindi trovo il dispositivo disconnesso:)

Nella vita reale controlla periodicamente un indirizzo web hard-coded che ha una risposta simile come:

Se la parola chiave anyslap è seguita da un numero intero, fa altrettanti movimenti del braccio.

Passaggio 2: componente richiesto

Componente richiesto
Componente richiesto
Componente richiesto
Componente richiesto
Componente richiesto
Componente richiesto

Componenti elettronici:

  • Arduino Uno R3
  • Schermo UNO Schermo Ethernet W5100 R3
  • Kit modulo telecomando wireless IR a infrarossi
  • Servo (SG90)
  • Circuito Stampato Universale 4x6cm
  • 5 x LED
  • Resistenza 5 x 220 Ohm
  • Cavo in silicone 30AWG

Materiali riciclati:

  • Flacone di shampoo
  • Scatole di cartone
  • Mano giocattolo (vieni con un croissant compra due, prendi una mano gratis:)

Passaggio 3: combina i tutorial di Arduino

Per lo più ho appena seguito esempi di Arduino built-in, esempi di libreria e combinato in un progetto.

Lezioni consigliate

  • Lampeggia senza ritardo: utilizzato per gli indicatori LED; millis() per controllare periodicamente HTTP e disattivare il servo se non utilizzato.
  • Funzioni di uscita seriale ASCIITable - Utilizzato per il debug.
  • Strutture di controllo, come: iterazione del ciclo, caso di commutazione, istruzione If, ciclo while
  • Client Web Ethernet con Lease DHCP: utilizzato per ricevere trigger dall'endpoint
  • Lezione Servo - usata per il movimento del braccio (rotazione).
  • Ricevitore a infrarossi: utilizzato per un controllo aggiuntivo e per regolare con precisione l'angolazione del braccio.

Passaggio 4: ricerca di una parola chiave nella risposta HTTP e in altri problemi del client Ethernet

L'assemblaggio del Waiter Please Bot è stato abbastanza semplice, tranne le cose Ethernet.

Le difficoltà

  1. Qualsiasi chiamata EthernetClient, in particolare DHCP Lease, è un singolo processo. Funziona come un ritardo con rand che mette in pausa il programma.
  2. Dimentica JSON in API e WebHook Arduino Le stringhe sono comunque malvagie.

1. - Processo unico

Rinuncio a fare in modo che il programma faccia più processi. Ho cercato su Google alcune possibili soluzioni, ma nessuna di queste era semplice. Volevo mantenere il codice il più piccolo e facile da leggere possibile.

2. - Analizza la risposta

La stabilità e la capacità di lavorare senza manutenzione sono requisiti fondamentali. Quindi evito di utilizzare qualsiasi oggetto String a causa di possibili perdite di memoria.

EthernetClient si basa sulla classe base Stream e la sua funzione di ricerca rende possibile la ricerca di parole chiave. È un po' complicato e occupa molte righe di codice, ma funziona.

Passaggio 5: schizzo e fonte

Schizzo e fonte
Schizzo e fonte

Repository:

Passaggio 6: crea l'hardware

Costruisci l'hardware
Costruisci l'hardware
Costruisci l'hardware
Costruisci l'hardware
Costruisci l'hardware
Costruisci l'hardware

Il braccio

  1. Ci sono quattro protezioni angolari all'interno della scatola spedita del Macbook. L'ho usato come supporto.
  2. Ritagliare una piccola forma adatta per il servo.
  3. Incolla insieme il supporto e il servo con la pistola per colla a caldo.
  4. Ho preso un tubo da un flacone di shampoo usato e l'ho avvitato al servo.
  5. Tira la mano giocattolo sul tubo.

Il controllore

  1. Realizzato un prototipo su breadboard.
  2. Copia il prototipo della breadboard sul circuito stampato universale.
  3. Ho usato le intestazioni staccate per tutti i collegamenti del circuito.
  4. Ritaglia la scatola di carta.
  5. Incolla insieme la parte anteriore della scatola e il circuito stampato.
  6. Metti la scheda Arduino, lo scudo Ethernet e una spugna nella scatola.

Fatto.

Consigliato: