Inhaltsverzeichnis:

Kellner bitte Bot - Gunook
Kellner bitte Bot - Gunook

Video: Kellner bitte Bot - Gunook

Video: Kellner bitte Bot - Gunook
Video: JokeRS Comedy - S03 - Döner Mit Alles 2024, November
Anonim
Image
Image

Was kann schief gehen, wenn ein Kellner in einem offenen Büroraum von einem Servo klingelt?

- Ich weiß nicht:D

Die Leute neigen dazu, Alarm oder sogar Unterbrechungen zu hassen, daher ist es vielleicht eine gute Idee, es ein bisschen lustig zu machen (zumindest für eine Weile). Das war es, was ich erreichen wollte. Benachrichtigen Sie Techniker schnell und auf akzeptable Weise über kritische Vorfälle.

Es ist mein erstes Arduino-Projekt aus Ethernet-Schild, Infrarotsteuerung, SG90 9g Micro Servo und recycelten Materialien.

Die Slapping-Aktion wird per WebHook oder Fernbedienung ausgelöst. Die Fernbedienung dient auch zur Feineinstellung des Armwinkels.

Schritt 1: Wie funktioniert es?

Wie es funktioniert?
Wie es funktioniert?

Es hört auf einen Infrarotempfänger und ruft eine HTTP-Adresse für ein bestimmtes Schlüsselwort ab. Der Infrarot-Controller kann zur Feineinstellung des Armwinkels und auch zum Triggern verwendet werden. Die HTTP-Antwort kann nur zum Auslösen der Glocke verwendet werden. (Im aktuellen Fall habe ich eine kleine Webanwendung erstellt, die Webhook von Slack abfängt und eine Flagge verwaltet. - Nicht in dieser Anleitung enthalten)

Grundsätzlich habe ich den Infrarot-Controller nur zum Debuggen verwendet. Das erste Mal habe ich einen Fehler gemacht, indem ich den Controller neben der Slap-Maschine gelassen habe, aber die Leute waren neugierig genug, viele Male Slap auszulösen, also finde ich das Gerät getrennt:)

Im wirklichen Leben überprüft es nur regelmäßig eine hartcodierte Webadresse, die eine ähnliche Antwort hat wie:

Wenn das Schlüsselwort anyslap von einer ganzen Zahl gefolgt wird, macht es genauso viele Armbewegungen.

Schritt 2: Komponente erforderlich

Komponente erforderlich
Komponente erforderlich
Komponente erforderlich
Komponente erforderlich
Komponente erforderlich
Komponente erforderlich

Elektronische Bauteile:

  • Arduino Uno R3
  • UNO Shield Ethernet Shield W5100 R3
  • Infrarot IR-Fernbedienungsmodul-Kit
  • Servo (SG90)
  • Universal-Leiterplatte 4x6cm
  • 5 x LED
  • 5 x 220 Ohm Widerstand
  • 30AWG Silikondraht

Wiederverwertete Materialien:

  • Shampoo-Flakon
  • Kartons
  • Spielzeughand (kommen Sie mit einem Kauf von zwei Croissants und erhalten Sie eine Hand kostenlos:)

Schritt 3: Kombinieren Sie die Arduino-Tutorials

Meistens habe ich nur Arduino Built-In-Beispiele, Bibliotheksbeispiele befolgt und zu einem Projekt kombiniert.

Empfohlene Lektionen

  • Blinken ohne Verzögerung - Wird für LED-Anzeigen verwendet; millis()-Funktion, um HTTP regelmäßig zu überprüfen und Servo auszuschalten, wenn es nicht verwendet wird.
  • Serielle ASCIITable-Ausgabefunktionen - Wird zum Debuggen verwendet.
  • Kontrollstrukturen, wie: Schleifeniteration, Groß-/Kleinschreibung, If-Anweisung, While-Schleife
  • Ethernet-Webclient mit DHCP-Lease – Wird zum Empfangen von Triggern vom HTTP-Endpunkt verwendet.
  • Servo-Lektion - wird für die Armbewegung (Rotation) verwendet.
  • Infrarotempfänger - wird für zusätzliche Kontrolle und Feineinstellung des Armwinkels verwendet.

Schritt 4: Suchen Sie nach einem Schlüsselwort in der HTTP-Antwort und anderen EthernetClient-Problemen

Die Montage des Waiter Please Bot war ziemlich einfach, abgesehen von den Ethernet-Dingen.

Schwierigkeiten

  1. Jeder EthernetClient-Aufruf, insbesondere DHCP-Lease, ist ein einzelner Prozess. Es funktioniert wie eine Verzögerung mit rand, was das Programm anhält.
  2. Vergessen Sie JSON in API und WebHook Arduino Strings sind sowieso böse.

1. - Einzelprozess

Ich gebe auf, dass das Programm mehrere Prozesse durchführt. Ich google einige mögliche Lösungen, aber keine davon war einfach. Ich wollte den Code so klein und leicht lesbar wie möglich halten.

2. - HTTP-Antwort parsen.

Die Stabilität und wartungsfreie Arbeit sind wesentliche Voraussetzungen. Daher vermeide ich es, ein String-Objekt aufgrund möglicher Speicherverluste zu verwenden.

EthernetClient basiert auf der Stream-Basisklasse und seine Suchfunktion ermöglicht die Suche nach Schlüsselwörtern. Es ist ein bisschen kompliziert und belegt viele Codezeilen, aber es funktioniert.

Schritt 5: Skizze und Quelle

Skizze und Quelle
Skizze und Quelle

Repository:

Schritt 6: Bauen Sie die Hardware auf

Bauen Sie die Hardware
Bauen Sie die Hardware
Bauen Sie die Hardware
Bauen Sie die Hardware
Bauen Sie die Hardware
Bauen Sie die Hardware

Der Arm

  1. Im Lieferumfang des Macbooks befinden sich vier Eckenschützer. Ich habe es als Ständer verwendet.
  2. Schneiden Sie eine kleine Form für das Servo aus.
  3. Kleben Sie den Ständer und das Servo mit einer Heißklebepistole zusammen.
  4. Aus einem gebrauchten Shampoo-Flakon ein Rohr genommen und an das Servo geschraubt.
  5. Ziehe die Spielzeughand am Rohr.

Der Controller

  1. Habe einen Prototyp auf Steckbrett gemacht.
  2. Kopieren Sie den Steckbrett-Prototyp auf die universelle Leiterplatte.
  3. Ich habe Breakaway-Header für alle Drahtkreisverbindungen verwendet.
  4. Schneide die Papierschachtel aus.
  5. Kleben Sie die Vorderseite der Box und die Leiterplatte zusammen.
  6. Legen Sie das Arduino-Board, das Ethernet-Schild und einen Schwamm in die Box.

Fertig.

Empfohlen: