Inhaltsverzeichnis:

Arduino Wireless Control Robot Car - Gunook
Arduino Wireless Control Robot Car - Gunook

Video: Arduino Wireless Control Robot Car - Gunook

Video: Arduino Wireless Control Robot Car - Gunook
Video: Arduino Robot Car Wireless Control using HC-05 Bluetooth, NRF24L01 and HC-12 Transceiver Modules 2024, September
Anonim
Arduino Wireless Control Robot Car
Arduino Wireless Control Robot Car

In diesem Beitrag erfahren Sie, wie Sie ein drahtloses Arduino-Roboterauto bauen. Wir bauen sowohl die Sender- als auch die Empfängerseite.

Auf der Senderseite befinden sich ein Arduino Nano, ein Joystick-Modul und ein NRF24L01, um die Daten drahtlos zu senden. Die Empfängerseite umfasst Arduino nano, NRF24L01 zum Empfangen der Daten und L293D-Motortreiber-IC zur Steuerung der Motoren. Sowohl die Sender- als auch die Empfängerschaltungen werden mit 9-V-Batterien betrieben.

Erforderliche KomponentenDie Komponenten, die Sie für dieses Projekt benötigen, sind wie folgt

Senderseite

  • Arduino Nano
  • Joystick-Modul
  • NRF24L01
  • 100uf Kondensator
  • 3-poliger Schiebeschalter
  • 2-poliger Klemmenblock
  • 9V Batterie

Empfängerseite

  • Arduino Nano
  • NRF24L01
  • 100uf Kondensator
  • 0.1uf Kondensator
  • 10uf Kondensator
  • 3-poliger Schiebeschalter
  • 2-polige Klemmenblöcke (3 Stück)
  • L293D Motortreiber-IC
  • 9V Batterie

Schritt 1: Schaltplan

Schaltplan
Schaltplan

Der Hauptteil der Sender- und Empfängerschaltungen ist Arduino Nano, das von der 9V-Batterie gespeist wird. Dann haben wir auf beiden Seiten das Modul NRF24L01, um drahtlos zu kommunizieren.

Das Joystick-Modul auf der Senderseite wird verwendet, um die x- und y-Werte zu erhalten, die an die Empfängerseite gesendet und zur Steuerung der Motoren verwendet werden. Der L293D-Motortreiber-IC auf der Empfängerseite erhält auch Strom von der 9-V-Stromversorgung und steuert die Motoren.

Mit dem obigen Schaltplan können Sie die Schaltung auf dem Steckbrett erstellen, um sicherzustellen, dass alles so funktioniert, wie Sie es möchten.

Schritt 2: PCB-Design

PCB-Design
PCB-Design
PCB-Design
PCB-Design

Nachdem ich sichergestellt habe, dass auf dem Steckbrett alles gut funktioniert, habe ich die Platine auf EasyEDA entworfen. EasyEDA ist ein Open-Source-Online-PCB-Design-Tool.

Hier ist ein Link zum PCB-Design dieses Projekts. Nach dem Design der Leiterplatten habe ich die Gerber-Dateien generiert, die für die Herstellung von Leiterplatten benötigt werden.

Sie können die Gerber-Dateien über die folgenden Links herunterladen

Gerber_Transmitter_20190711100324Download

Gerber_Receiver_20190711100335Download

Schritt 3: Bestellung der Leiterplatten

Bestellung der Leiterplatten
Bestellung der Leiterplatten
Bestellung der Leiterplatten
Bestellung der Leiterplatten
Bestellung der Leiterplatten
Bestellung der Leiterplatten
Bestellung der Leiterplatten
Bestellung der Leiterplatten

Jetzt haben wir das PCB-Design und es ist Zeit, die PCBs zu bestellen. Dazu müssen Sie nur zu JLCPCB.com gehen und auf die Schaltfläche „JETZT QUOTE“klicken.

JLCPCB ist auch Sponsor dieses Projekts. JLCPCB (Shenzhen JLC Electronics Co., Ltd.) ist das größte Unternehmen für PCB-Prototypen in China und ein High-Tech-Hersteller, der sich auf die schnelle Herstellung von PCB-Prototypen und PCB-Kleinserien spezialisiert hat. Sie können mindestens 5 Leiterplatten für nur 2 US-Dollar bestellen.

Um die Leiterplatte herzustellen, laden Sie die im letzten Schritt heruntergeladene Gerber-Datei hoch. Laden Sie die.zip-Datei hoch oder ziehen Sie die Gerber-Dateien per Drag & Drop.

Nach dem Hochladen der ZIP-Datei sehen Sie unten eine Erfolgsmeldung, wenn die Datei erfolgreich hochgeladen wurde. Sie können die Leiterplatte im Gerber-Viewer überprüfen, um sicherzustellen, dass alles in Ordnung ist.

Sie können sowohl die Ober- als auch die Unterseite der Platine anzeigen.

Nachdem wir sichergestellt haben, dass unsere Leiterplatte gut aussieht, können wir die Bestellung jetzt zu einem vernünftigen Preis aufgeben. Sie können 5 PCBs für nur 2 USD bestellen, aber wenn es Ihre erste Bestellung ist, können Sie 10 PCBs für 2 USD erhalten.

Um die Bestellung aufzugeben, klicken Sie auf die Schaltfläche „IN DEN WARENKORB SPEICHERN“.

Meine Leiterplatten brauchten 2 Tage, um hergestellt zu werden, und kamen innerhalb einer Woche mit der DHL-Lieferoption an. PCBs waren gut verpackt und die Qualität war wirklich gut.

Nachdem Sie alles zusammengebaut und die Motoren angeschlossen haben, sieht es in diesem Schritt wie im letzten Bild gezeigt aus.

Schritt 4: Code

Sendercode

Zuerst müssen wir die SPI- und RF24-Bibliothek für die drahtlose Kommunikation einbinden. Dann müssen wir die digitalen Pins für das NRF24L01-Modul und die analogen Pins für das Joystick-Modul definieren. Danach müssen wir das Funkobjekt, die Kommunikationsadresse dafür und ein Array definieren, um die Joystick-Modulwerte darin zu speichern.

In der Setup-Funktion müssen wir die serielle und die Funkkommunikation initialisieren.

In der Loop-Funktion lesen wir zunächst die Werte aus dem Joystick-Modul und speichern sie im Array. Danach senden wir diese Nachricht mit der Funktion radio.write() an den Empfänger. Das erste Argument in dieser Funktion ist die Nachricht und das zweite Argument ist die Anzahl der Bytes in dieser Nachricht. Die Funktion radio.write() gibt einen Bool zurück und es ist wahr, dann bedeutet dies, dass die Daten den Empfänger erreicht haben und wenn sie zurückkehrt false, Daten sind verloren gegangen.

EmpfängercodeAuf der Empfängerseite müssen wir auch die SPI- und RF24-Bibliotheken für die drahtlose Kommunikation einbinden. Dann müssen wir die digitalen Pins für das NRF24L01-Modul und den l293d-Motortreiber-IC sowie einige Variablen definieren. Danach müssen wir das Funkobjekt, die Kommunikationsadresse dafür und ein Array definieren, um eingehende Werte darin zu speichern.

In der Setup-Funktion müssen wir die serielle und die Funkkommunikation initialisieren. Dann müssen wir einige Pins von L293D als Ausgangspins definieren.

In der Schleifenfunktion prüfen wir zunächst, ob Informationen vorhanden sind oder nicht. Wenn es dort ist, werden wir es in Variablen speichern. Danach werden wir Motoren nach diesen Werten ansteuern.

Die Codes erhalten Sie auch unter

Empfohlen: