Inhaltsverzeichnis:
- Schritt 1: Sammeln Sie die Materialien
- Schritt 2: Bauen Sie die Schaltung zusammen
- Schritt 3: Einrichten der PWM auf der MCU
- Schritt 4: Programmieren Sie den Mikrocontroller
- Schritt 5: Kommunikation über den seriellen Anschluss
Video: Servo Squirter - USB-Wasserpistole - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:22
Eine USB-gesteuerte Servo-Wasserpistole. Großartig, um auf ahnungslose Passanten zu schießen oder Leute mit nervigen Fragen in Schach zu halten. Dieses Projekt ist eine kleine Wasserpumpe, die auf einem Servo zum Richtungsfeuern montiert ist. Das Ganze wird von einem Mikrocontroller gesteuert und von Ihrer Tastatur über USB gesteuert. Um mehr von unseren Projekten und kostenlosen Video-Tutorials zu sehen, besuchen Sie unsere Website
Schritt 1: Sammeln Sie die Materialien
Dieses Projekt basiert auf Mikrocontrollern. Anders als der im USB NerdKit enthaltene Mikrocontroller ATmega168. Für dieses Projekt haben wir folgendes verwendet:1 Hobby Servo, Hitec HS-501 Niederspannungs-Kolbenwasserpumpe1 Kleiner n-Kanal-MOSFET, 2N7000
Schritt 2: Bauen Sie die Schaltung zusammen
Der erste Teil unserer Schaltung ist nur mit dem Servo verbunden. Das ist hier einfach: ein Draht vom Mikrocontroller zum Servo. Es gibt je nach Hersteller ein paar unterschiedliche Farbbeschriftungen, also überprüfe dies, bevor du dies ausprobierst. Der ATmega168-Chip selbst lässt nur maximal 40 mA in oder aus jedem Pin zu, aber unsere Pumpe benötigt näher an 1000 mA! Um diese größere Last zu kontrollieren, haben wir uns für einen größeren Transistor entschieden, den 2N7000. Zuerst erklären wir die Grundlagen der Verwendung von MOSFETs (Metal Oxide Semiconductor Field Effect Transistors) als Schalter: Bringen wir die Gate-Spannung über die Source, können wir Strom von Drain zu Source fließen lassen. Aus dem 2N7000-Datenblatt haben wir Abbildung 1 extrahiert, die die Beziehung zwischen Drain-Strom und Drain-Source-Spannung für verschiedene Gate-Source-Spannungseinstellungen zeigt. Aus diesem Diagramm können Sie einige wichtige Dinge lernen: 1. Bei VGS unter etwa 3,0 Volt darf kein Strom fließen. Dies ist der Aus-Zustand, auch "Cutoff" genannt. 2. Bei kleinen VDS sieht die Kurve durch den Ursprung ungefähr linear aus - was bedeutet, dass sie elektrisch wie ein Widerstand "aussieht". Der äquivalente Widerstand ist die umgekehrte Steigung der Kurve. Dieser Bereich des MOSFET-Betriebs wird "Triode" genannt. 3. Bei größeren VDS wird ein gewisser Maximalstrom erreicht. Dies wird als "Sättigung" bezeichnet. 4. Wenn wir VGS erhöhen, kann sowohl im Triode- als auch im Sättigungsmodus mehr Strom fließen. Und jetzt haben Sie alle drei Modi des MOSFET-Betriebs kennengelernt: Cutoff, Triode und Sättigung. Da unsere Gate-Steuerung digital ist (+5 oder 0), interessieren wir uns nur für die gelb markierte Kurve für VGS=5V. Normalerweise beinhaltet die Verwendung eines MOSFET als Schalter im Allgemeinen den Trioden-Betriebsmodus, da der MOSFET Leistung PD = ID * VDS verbraucht und ein guter Schalter wenig Leistung im Schalter selbst verbrauchen sollte. Aber in diesem Fall haben wir es mit einem Motor zu tun, und Motoren neigen dazu, beim ersten Start viel Strom (mit geringem Spannungsabfall) zu benötigen. Für die erste oder zwei Sekunden arbeitet der MOSFET also mit hoher VDS und wird durch seinen maximalen Strom begrenzt - etwa 800 mA von der roten gestrichelten Linie, die wir auf dem Datenblatt gezeichnet haben. Wir fanden, dass dies nicht ausreichte, um die Pumpe zu starten, also haben wir einen kleinen Trick angewendet und zwei MOSFETs parallel geschaltet. Auf diese Weise teilen sie sich den Strom und können effektiv zusammen ca. 1600mA absenken. Auch aufgrund des hohen Leistungsbedarfs der Pumpe haben wir einen Wandtransformator mit höherer Stromabgabe verwendet. Wenn Sie einen Wandtransformator mit mehr als 5 V Ausgang haben – vielleicht 9 V oder 12 V – dann können Sie
Schritt 3: Einrichten der PWM auf der MCU
PWM-Register und -BerechnungenIm Video sprechen wir über zwei Ebenen, die vom Timer/Counter-Modul verwendet werden: den Höchstwert und den Vergleichswert. Beides ist wichtig, um das gewünschte PWM-Signal zu erzeugen. Um jedoch den PWM-Ausgang Ihres ATmega168 überhaupt zu aktivieren, müssen wir einige Register einrichten. Zuerst wählen wir den Fast-PWM-Modus mit OCR1A als obersten Wert, wodurch wir beliebig einstellen können, wie oft ein neuer Puls gestartet wird. Dann stellen wir die Uhr so ein, dass sie mit einer Vorteilung von 8 läuft, was bedeutet, dass der Zähler erhöht wird um 1 alle 8/(14745600 Hz) = 542 Nanosekunden. Da wir 16-Bit-Register für diesen Timer haben, können wir unsere Gesamtsignalperiode auf bis zu 65536*542ns = 36 Millisekunden einstellen. Wenn wir eine größere Teilungszahl verwenden, könnten wir unsere Pulse weiter auseinander setzen (was in dieser Situation nicht hilft), und wir würden die Auflösung verlieren. Wenn wir eine kleinere Teilungszahl (z Ausgabe, die in unserem Video beschrieben wird. Wir haben auch den Pin PB2 als Ausgangspin festgelegt – hier nicht gezeigt, aber im Code enthalten.
Schritt 4: Programmieren Sie den Mikrocontroller
Jetzt ist es an der Zeit, die MCU tatsächlich zu programmieren. Den vollständigen Quellcode finden Sie auf unserer Website https://www.nerdkits.com/videos/servosquirterDer Code richtet zuerst die PWM ein, um das Servo anzutreiben. Der Code sitzt dann einfach in einer while-Schleife und wartet auf Benutzereingaben. Die Zeichen 1 und 0 schalten den MCU-Pin, der mit dem Pumptransistor verbunden ist, ein oder aus. Dadurch wird die Pumpe ein- und ausgeschaltet, sodass wir nach Belieben feuern können. Der Code reagiert auch auf die Tasten '[' und ']' Diese Tasten erhöhen oder verringern den Vergleichswert am PWM-Pin, wodurch das Servo verursacht wird Motor zum Positionswechsel. Dies gibt Ihnen die Möglichkeit, vor dem Schießen zu zielen.
Schritt 5: Kommunikation über den seriellen Anschluss
Der letzte Schritt besteht darin, den Computer einzurichten, damit Sie die Befehle an den Mikrocontroller senden können. Im NerdKit verwenden wir das serielle Kabel, um Befehle und Informationen an den Computer zu senden. Es ist möglich, in den meisten Programmiersprachen einfache Programme zu schreiben, die über die serielle Schnittstelle mit dem NerdKit kommunizieren können. Viel einfacher ist es jedoch, ein Terminalprogramm zu verwenden, um die serielle Kommunikation für uns zu erledigen. Auf diese Weise können Sie einfach auf der Tastatur tippen und die Antwort vom NerdKit sehen. WindowsWenn Sie Windows XP oder früher verwenden, ist HyperTerminal enthalten und sollte sich in Ihrem Startmenü unter "Start -> Programme -> Zubehör ->. befinden Kommunikation". Wenn Sie HyperTerminal zum ersten Mal öffnen, werden Sie aufgefordert, eine Verbindung herzustellen. Brechen Sie diese ab, bis Sie sich im Hauptbildschirm von HyperTerminal befinden. Sie müssen HyperTerminal einrichten, den richtigen COM-Port auswählen und die Porteinstellungen entsprechend einstellen, um mit dem NerdKit zu arbeiten. Folgen Sie den Screenshots unten, um das richtige HyperTerm-Setup durchzuführen. Wenn Sie Windows Vista verwenden, ist HyperTerminal nicht mehr enthalten. Laden Sie in diesem Fall PuTTY (Windows-Installationsprogramm) herunter. Verwenden Sie die folgenden Verbindungseinstellungen, um Putty mit dem richtigen COM-Port einzurichten. Mac OS XNach dem Aufrufen der Terminal-Anwendung geben Sie "screen /dev/tty. PL* 115200" ein, um die Kommunikation über den seriellen Port zu starten. LinuxUnter Linux verwenden wir " minicom", um mit der seriellen Schnittstelle zu kommunizieren. Führen Sie zum Starten "minicom -s" an der Konsole aus, um in das Setup-Menü von minicom zu gelangen. Gehen Sie zu "Konfiguration des seriellen Ports". Stellen Sie die Parameter wie folgt ein: Minicom-Konfiguration unter Linux Drücken Sie dann die Escape-Taste und verwenden Sie "Setup als dfl speichern", um die Einstellungen als Standard zu speichern. Sie sollten jetzt in der Lage sein, auf "Beenden" zu klicken und Minicom zum Sprechen mit dem NerdKit zu verwenden.
Empfohlen:
Servo-Tutorial: 7 Schritte
Servo-Tutorial: Verwenden eines Arduino zur Steuerung eines Servomotors mit zwei Drucktasten
Arduino Servo-Tutorial: 3 Schritte (mit Bildern)
Arduino Servo Tutorial: Heute erfahren Sie, wie Sie Servomotoren mit Arduino verwenden. Eine sehr wichtige Fähigkeit für jeden, der in der Heimautomatisierung und Elektronik vorankommen möchte. Wenn Sie das fertige Projekt haben, drücken Sie einfach die Taste und beobachten Sie, wie sich das Servo zufällig dreht
SERVO-Steuerung lernen (auf einen Blick): 6 Schritte
SERVO-Steuerung lernen (auf einen Blick): In diesem Modul lernen Sie die Steuerung eines mit Arduino kompatiblen Mikro- oder Mini-Servos. Ein Servomotor wird im Allgemeinen in allen Automatisierungsprojekten verwendet, die bewegliche Teile haben. Es spielt eine sehr wichtige Rolle Rolle in der Robotik, die präzise Bewegung