- Erforderliche Komponenten für das Arduino RC-Boot
- 433 MHz HF-Sender- und Empfangsmodule
- 433 MHz HF-Sender
- Blockdiagramm des Arduino RC-Bootssenders
- Schaltplan der Arduino RC-Fernbedienung (Sender)
- Aufbau der RC BOAT-Senderschaltung
- Bau des Arduino RC Boat Transmitter Enclosure
- 433-MHz-Empfängermodul
- Blockdiagramm des Arduino RC-Bootsempfängers
- Schaltplan des Arduino RC-Bootsempfängers
- Aufbau der Empfängerschaltung des Arduino RC Boat
- RC-BOAT bauen
- Motoren und Propeller für Arduino Air Boat
- Arbeiten des Arduino RC Boat
- Arduino-Programmierung des RC-Bootes
In diesem Projekt werden wir ein ferngesteuertes Arduino-Luftboot bauen, das mithilfe der 433-MHz-HF-Funkmodule drahtlos gesteuert werden kann. Wir werden dieses Boot mit einer hausgemachten Fernbedienung steuern, indem wir unseren eigenen 433-MHz-Sender und ein Empfängermodul bauen. Bei ferngesteuerten Geräten oder der Kommunikation zwischen zwei Geräten haben wir viele Optionen wie IR, Bluetooth, Internet, RF usw. Im Vergleich zur IR-Kommunikation bietet die Funkkommunikation einige Vorteile wie mehr Reichweite und dies nicht erfordern eine Sichtverbindung zwischen Sender und Empfänger. Diese Module können auch auf zwei Arten kommunizieren, dh sie können gleichzeitig senden und empfangen. Lassen Sie uns mit diesem 433-MHz-HF-Modul ein Arduino RC-Boot bauen in diesem Tutorial.
Wir haben bereits viele ferngesteuerte Projekte mit diesen 433-MHz-HF-Modulen erstellt, um entweder einen Roboter wie diesen HF-gesteuerten Roboter oder für Hausautomationsanwendungen zur Steuerung von Haushaltsgeräten mithilfe von HF zu steuern. Neben der Verwendung von RF-Modulen haben wir zuvor auch ein Bluetooth-gesteuertes Raspberry Pi-Auto und einen DTMF-Mobiltelefon-gesteuerten Arduino-Roboter gebaut. Sie können diese Projekte auch überprüfen, wenn Sie interessiert sind.
Erforderliche Komponenten für das Arduino RC-Boot
- 433MHz Sender und Empfänger
- Arduino (jedes Arduino, um die Größe zu reduzieren, die ich Promini benutze)
- HT12E und HT12D
- Druckknöpfe - 4Nos
- Widerstände - 1 Megaohm, 47 kOhm
- L293d Motortreiber
- 9-V-Batterie (ich verwende eine 7,4-Volt-Batterie) - 2Nos
- 7805 Regler- 2Nos
- Gleichstrommotoren - 2Nr
- Motorblatt oder Propeller (ich benutze hausgemachte Propeller) - 2Nos
- .1uf Kondensator- 2Nos
- Gemeinsame Leiterplatte
433 MHz HF-Sender- und Empfangsmodule
Diese Arten von HF-Modulen sind bei Herstellern sehr beliebt. Wegen ihrer geringen Kosten und einfachen Verbindungen. Diese Module eignen sich am besten für alle Arten von Kommunikationsprojekten mit kurzer Reichweite. Diese Module sind HF-Module vom Typ ASK (Amplitude Shift Keying). Amplitude Shift Keying (ASK) ist eine Form der Amplitudenmodulation, die digitale Daten als Variationen der Amplitude einer Trägerwelle darstellt. In einem ASK-System wird das Binärsymbol 1 dargestellt, indem eine Trägerwelle mit fester Amplitude und eine feste Frequenz für eine Bitdauer von T Sekunden übertragen werden. Wenn der Signalwert 1 ist, wird das Trägersignal übertragen; Andernfalls wird ein Signalwert von 0 übertragen. Das bedeutet, dass sie normalerweise keinen Strom verbrauchen, wenn sie die Logik „Null“ übertragen. Dieser geringe Stromverbrauch macht sie sehr nützlich bei batteriebetriebenen Projekten.
433 MHz HF-Sender
Diese Art von Modul ist sehr klein und wird mit 3 Pins VCC, Masse und Daten geliefert. Einige andere Module werden mit einem zusätzlichen Antennenstift geliefert. Die Arbeitsspannung des Sendermoduls beträgt 3V-12V und dieses Modul hat keine einstellbaren Komponenten. Einer der Hauptvorteile dieses Moduls ist die geringe Stromaufnahme. Zum Senden von Bit Null wird ein Strom von nahezu Null benötigt.
Blockdiagramm des Arduino RC-Bootssenders
Im obigen Blockdiagramm gibt es vier Drucktasten (Steuertasten), mit denen die Richtung des Bootes gesteuert werden kann. Wir haben vier davon für vorwärts, rückwärts, links und rechts. Über die Drucktasten erhalten wir eine Logik für die Steuerung des Bootes, können jedoch keine direkte Verbindung zum Encoder herstellen. Deshalb haben wir den Arduino verwendet. Sie könnten denken, warum ich hier Arduino verwendet habe, es liegt einfach daran, dass wir zwei parallele Dateneingänge des Encoders gleichzeitig herunterziehen müssen, um eine Vorwärts- und Rückwärtsbewegung zu erzielen, die nicht nur mit Drucktasten erreicht werden kann. Dann codiert der Codierer die kommenden parallelen Daten in serielle Ausgänge. Dann können wir diese seriellen Daten mit Hilfe eines HF-Senders übertragen.
Schaltplan der Arduino RC-Fernbedienung (Sender)
In der obigen Schaltung sehen Sie eine Seite aller vier Drucktasten, die mit vier digitalen Pins von Arduino (D6-D9) verbunden sind, und alle vier anderen Seiten, die mit Masse verbunden sind. Wenn wir dann die Taste drücken, erhalten die entsprechenden digitalen Pins einen logisch niedrigen Wert. Die vier parallelen Eingänge des HT12E- Encoders sind mit weiteren vier digitalen Pins von Arduino (D2-D5) verbunden. Mit Hilfe von Arduino können wir also den Eingang des Encoders bestimmen.
Apropos Encoder HT12E ist ein 12-Bit-Encoder und ein Encoder mit parallelem Eingang und seriellem Ausgang. Von 12 Bits sind 8 Bits Adressbits, die zur Steuerung mehrerer Empfänger verwendet werden können. Die Pins A0-A7 sind die Adresseingangspins. In diesem Projekt steuern wir nur einen Empfänger, daher möchten wir seine Adresse nicht ändern. Deshalb habe ich alle Adresspins mit Masse verbunden. Wenn Sie verschiedene Empfänger mit einem Sender steuern möchten, können Sie hier DIP-Schalter verwenden. AD8-AD11 sind die Steuerbit-Eingänge. Diese Eingänge steuern die D0-D3-Ausgänge des HT12D-Decoders. Wir müssen einen Oszillator für die Kommunikation anschließen und die Oszillatorfrequenz sollte 3 kHz betragenfür 5V Betrieb. Dann beträgt der Widerstandswert für 5 V 1,1 MΩ. Dann habe ich den Ausgang des HT12E mit dem Sendermodul verbunden. Wir haben bereits erwähnt, dass das Arduino- und das HF-Sendermodul, beide Geräte arbeiten mit 5 V Hochspannung, es töten. Um dies zu vermeiden, habe ich den Spannungsregler 7805 hinzugefügt. Jetzt können wir (Vcc) 6-12 Volt Batterien aller Art an den Eingang anschließen.
Aufbau der RC BOAT-Senderschaltung
Ich habe jede Komponente auf eine gemeinsame Leiterplatte gelötet. Denken Sie daran, dass wir an einem HF-Projekt arbeiten, sodass viele verschiedene Arten von Interferenzen auftreten können. Verbinden Sie daher alle Komponenten so eng wie möglich. Es ist besser, weibliche Stiftleisten für Arduino und das Sendermodul zu verwenden. Versuchen Sie auch, alles auf die Kupferpads zu löten, anstatt zusätzliche Drähte zu verwenden. Schließen Sie zum Schluss ein kleines Kabel an das Sendermodul an, um die Gesamtreichweite zu erhöhen. Überprüfen Sie vor dem Anschließen des Arduino- und des Sendermoduls die Spannung des lm7805-Ausgangs.
Das obige Bild zeigt die Draufsicht auf die fertige RC-Bootssenderschaltung und die Unteransicht der fertigen RC-Bootssenderschaltung ist unten dargestellt.
Bau des Arduino RC Boat Transmitter Enclosure
Für die Fernbedienung ist ein anständiger Körper erforderlich. In diesem Schritt dreht sich alles um Ihre Ideen. Sie können mit Ihren Ideen einen entfernten Körper erstellen. Ich erkläre, wie ich das gemacht habe. Für die Herstellung eines Remote-Körpers wähle ich 4-mm-MDF-Platten. Sie können auch Sperrholz, Schaumstoff oder Pappe wählen. Dann schneide ich zwei Stücke mit einer Länge von 10 cm und einer Breite von 5 cm aus. Dann habe ich die Positionen für die Tasten markiert. Ich platzierte die Richtungstasten auf der linken Seite und die Vorwärts- und Rückwärtstasten auf der rechten Seite. Auf der anderen Seite des Blattes habe ich die Drucktasten mit dem Hauptübertragungskreis verbunden. Denken Sie daran, dass ein normaler Druckknopf 4 Stifte hat, die zwei Stifte für jede Seite sind. Verbinden Sie einen Pin mit Arduino und den anderen Pin mit Masse. Wenn Sie damit verwechselt werden, überprüfen Sie es bitte mit einem Multimeter oder überprüfen Sie das Datenblatt.
Nachdem ich all diese Dinge angeschlossen hatte, platzierte ich den Steuerkreis zwischen den beiden MDF-Karten und zog ihn mit einer langen Schraube fest (siehe die folgenden Bilder, wenn Sie möchten). Wieder einmal dreht sich bei der Schaffung eines guten Körpers alles um Ihre Ideen.
433-MHz-Empfängermodul
Dieser Empfänger ist ebenfalls sehr klein und wird mit 4 Pins VCC, Masse und den beiden mittleren Pins geliefert. Die Arbeitsspannung dieses Moduls beträgt 5V. Wie das Sendermodul ist auch dies ein Modul mit geringem Stromverbrauch. Einige Module werden mit einem zusätzlichen Antennenstift geliefert, aber in meinem Fall ist dieser nicht vorhanden.
Blockdiagramm des Arduino RC-Bootsempfängers
Das obige Blockdiagramm beschreibt die Arbeitsweise der HF-Empfängerschaltung. Erstens können wir die gesendeten Signale mit dem HF-Empfängermodul empfangen. Die Ausgabe dieses Empfängers sind serielle Daten. Mit diesen seriellen Daten können wir jedoch nichts steuern. Deshalb haben wir den Ausgang mit dem Decoder verbunden. Der Decoder decodiert die seriellen Daten in unsere ursprünglichen parallelen Daten. In diesem Abschnitt benötigen wir keine Mikrocontroller, wir können die Ausgänge direkt mit dem Motortreiber verbinden.
Schaltplan des Arduino RC-Bootsempfängers
Der HT12D ist ein 12-Bit-Decoder, der ein Decoder mit seriellem Eingang und parallelem Ausgang ist. Der Eingangspin des HT12D wird mit einem Empfänger verbunden, der über einen seriellen Ausgang verfügt. Unter den 12 Bits sind 8 Bits (A0-A7) Adressbits, und der HT12D decodiert den Eingang, wenn er nur mit seiner aktuellen Adresse übereinstimmt. D8-D11 sind die Ausgangsbits. Um diese Schaltung an die Senderschaltung anzupassen, habe ich alle Adresspins mit Masse verbunden. Daten aus dem Modul sind vom seriellen Typ, und der Decoder decodiert diese seriellen Daten in ursprüngliche parallele Daten, und wir gelangen über D8-D11 heraus. Um die Oszillationsfrequenz anzupassen, sollte der 33-56k-Widerstand an die Oszillatorstifte angeschlossen werden. Die LED am 17. Pin zeigt die gültige Übertragung an und leuchtet erst, wenn der Empfänger an einen Sender angeschlossen ist. Der Spannungseingang des Empfängers beträgt ebenfalls 6-12 Volt.
Zur Steuerung von Motoren habe ich den L293D-IC verwendet. Ich habe diesen IC gewählt, um Größe und Gewicht zu verringern. Dieser IC eignet sich am besten zur Steuerung von zwei Motoren in zwei Richtungen. L293D hat 16 Pins, das folgende Diagramm zeigt die Pinbelegung.
1, 9 Pins sind der Freigabepin, wir verbinden das mit 5 V, um die Motoren 1A, 2A, 3A und 4A sind die Steuerpins zu aktivieren. Der Motor dreht sich nach rechts, wenn der Stift 1A niedrig und 2A hoch geht, und der Motor dreht sich nach links, wenn 1A niedrig und 2A hoch geht. Also haben wir diese Pins mit dem Ausgang ps des Decoders verbunden. 1Y, 2Y, 3Y und 4Y sind die Motorverbindungsstifte. Vcc2 ist der Motorantriebsspannungsstift. Wenn Sie einen Hochspannungsmotor verwenden, verbinden Sie diesen Pin mit der entsprechenden Spannungsquelle.
Aufbau der Empfängerschaltung des Arduino RC Boat
Bevor Sie die Empfängerschaltung aufbauen, sollten Sie sich an einige wichtige Dinge erinnern. Das Wichtigste ist die Größe und das Gewicht, denn nach dem Bau der Rennstrecke müssen wir sie am Boot befestigen. Wenn also das Gewicht zunimmt, wirkt sich dies auf den Auftrieb und die Bewegung aus.
Löten Sie wie in der Senderschaltung jede Komponente in eine kleine gemeinsame Leiterplatte und versuchen Sie, minimale Drähte zu verwenden. Ich habe Pin 8 des Motortreibers an 5 V angeschlossen, weil ich 5 V-Motoren verwende.
RC-BOAT bauen
Ich habe verschiedene Materialien ausprobiert, um den Bootskörper zu bauen. Und ich habe mit Thermocol Sheet ein besseres Ergebnis erzielt. Also habe ich beschlossen, den Körper mit Thermocol zu bauen. Zuerst nahm ich ein 3 cm dickes Thermocol-Stück und legte die Empfängerschaltung darauf, dann markierte ich die Form des Bootes in Thermocol und schnitt. Das ist also meine Art, das Boot zu bauen. Sie können nach Ihren Vorstellungen bauen.
Motoren und Propeller für Arduino Air Boat
Wieder einmal zählt das Gewicht. Daher ist es wichtig, den richtigen Motor auszuwählen. Ich wähle normale Gleichstrommotoren vom Typ 5 Volt, n20, die klein und schwerelos sind. Um HF-Störungen zu vermeiden, sollte der 0,1uf-Kondensator parallel zu den Motoreingängen geschaltet werden.
Bei Propellern habe ich Propeller aus Plastikfolien hergestellt. Sie können Propeller im Laden kaufen oder Sie können Ihre eigenen bauen. Beide funktionieren einwandfrei. Um die Propeller zu bauen, nahm ich zuerst eine kleine Plastikfolie, schnitt zwei kleine Stücke daraus und bog die Stücke mit Hilfe von Kerzenhitze. Schließlich habe ich ein kleines Loch in die Mitte des Motors gesteckt und an dem Motor befestigt, der es ist.
Arbeiten des Arduino RC Boat
Dieses Boot hat zwei Motoren, die wir links und rechts nennen können. Wenn sich der Motor auch im Uhrzeigersinn bewegt (die Position des Propellers hängt auch davon ab), saugt der Propeller Luft von vorne und Auslass nach hinten an. Das erzeugt einen Vorwärtswiderstand.
Vorwärtsbewegung: Wenn sich sowohl der linke als auch der rechte Motor im Uhrzeigersinn drehen, wird die Vorwärtsbewegung ausgeführt
Rückwärtsbewegung: Wenn sich sowohl der linke als auch der rechte Motor gegen den Uhrzeigersinn drehen (dh der Propeller saugt Luft von der Rückseite und dem Auslass zur Vorderseite an), erfolgt eine Rückwärtsbewegung
Bewegung nach links: Wenn sich nur der rechte Motor dreht, der das Boot ist, ziehen Sie nur von der rechten Seite, damit sich das Boot zur linken Seite bewegt
Rechte Bewegung: Wenn sich nur der linke Motor dreht, wird das Boot nur von der linken Seite gezogen, wodurch sich das Boot zur rechten Seite bewegt.
Wir haben den Eingang des Motortreibers mit vier Ausgangsbits des Decoders (D8-D11) verbunden. Wir können diese 4 Ausgänge steuern, indem wir den AD8-AD11 mit der Masse verbinden, die die Tasten in der Fernbedienung sind. Zum Beispiel, wenn wir AD8 mit der Erde verbinden, die den D8 aktiviert. Auf diese Weise können wir die beiden Motoren mit diesen 4 Ausgängen in zwei Richtungen steuern. Aber wir können nicht zwei Motoren mit nur einem Knopf steuern (das brauchen wir für die Vorwärts- und Rückwärtsbewegung), deshalb haben wir den Arduino verwendet. Mit Hilfe von Arduino können wir die Eingangsdaten-Pins nach unseren Wünschen auswählen.
Arduino-Programmierung des RC-Bootes
Die Programmierung dieses Bootes ist sehr einfach, da wir nur eine logische Umschaltung wünschen. Und wir können alles mit grundlegenden Arduino-Funktionen erreichen. Das vollständige Programm für dieses Projekt finden Sie unten auf dieser Seite. Die Erklärung Ihres Programms lautet wie folgt
Wir starten das Programm, indem wir die Ganzzahlen für vier Eingangstasten und Decoder-Eingangspins definieren.
int f_button = 9; int b_button = 8; int l_button = 7; int r_button = 6; int m1 = 2; int m2 = 3; int m3 = 4; int m4 = 5;
Im Setup-Bereich habe ich die Pin-Modi definiert. Das heißt, die Tasten sind mit digitalen Pins verbunden, sodass diese Pins als Eingang definiert werden sollten und wir einen Ausgang für den Eingang des Decoders erhalten müssen, damit wir diese Pins als Ausgang definieren sollten.
pinMode (f_button, INPUT_PULLUP); pinMode (b_button, INPUT_PULLUP); pinMode (l_button, INPUT_PULLUP); pinMode (r_button, INPUT_PULLUP); PinMode (m1, OUTPUT); PinMode (m2, OUTPUT); PinMode (m3, OUTPUT); PinMode (m4, OUTPUT);
Als nächstes lesen wir in der Hauptschleifenfunktion den Tastenstatus mithilfe der Digitalread- Funktion von Arduino. Wenn der Pin-Status niedrig wird, was bedeutet, dass der entsprechende Pin gedrückt wird, führen wir die Bedingungen wie folgt aus:
if (digitalRead (f_button) == LOW)
Das heißt, die Vorwärts-Taste wird gedrückt
{ digitalWrite (m1, LOW); digitalWrite (m3, LOW); digitalWrite (m2, HIGH); digitalWrite (m4, HIGH); }}
Dadurch werden m1 und m2 des Encoders heruntergefahren, wodurch beide Motoren auf der Empfängerseite aktiviert werden. Ebenso für Rückwärtsbewegung
{ digitalWrite (m1, HIGH); digitalWrite (m3, HIGH); digitalWrite (m2, LOW); digitalWrite (m4, LOW); }}
Für Linksbewegung
{ digitalWrite (m1, LOW); digitalWrite (m3, HIGH); digitalWrite (m2, HIGH); digitalWrite (m4, HIGH); }}
Für die richtige Bewegung
{ digitalWrite (m1, HIGH); digitalWrite (m3, LOW); digitalWrite (m2, HIGH); digitalWrite (m4, HIGH); }}
Laden Sie den Code nach dem Kompilieren auf Ihr Arduino-Board hoch.
Fehlerbehebung: Stellen Sie das Boot auf die Wasseroberfläche und prüfen Sie, ob es sich richtig bewegt, wenn Sie nicht versuchen, die Polarität von Motoren und Propellern zu ändern. Versuchen Sie auch, das Gewicht auszugleichen.
Die vollständige Arbeitsweise des Projekts finden Sie in dem Video, das unten auf dieser Seite verlinkt ist. Wenn Sie Fragen haben, lassen Sie diese im Kommentarbereich.