Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Recycelter Schatz
- Schritt 2: Theorie
- Schritt 3: Der NRF24L01+
- Schritt 4: Der L293D - Doppel-H-Brücken-Motortreiber
- Schritt 5: Ausnehmen des Autos
- Schritt 6: Wie funktioniert das Auto?
- Schritt 7: Das Thema Macht
- Schritt 8: RC-Auto-Schaltung
- Schritt 9: PCB
- Schritt 10: Endgültige Verbindungen
- Schritt 11: Tipp 1: Platzierung des Funkmoduls
- Schritt 12: Tipp 2: Halten Sie es modular
- Schritt 13: Tipp 3: Verwenden Sie Kühlkörper
- Schritt 14: RC-Controller-Zeit
- Schritt 15: Grundlagen des analogen Joysticks
- Schritt 16: Controller-Verbindungen
- Schritt 17: Tipp 1: Verwenden Sie die Teile zu Ihrer Verfügung
- Schritt 18: Tipp 2: Entfernen Sie unnötige Spuren
- Schritt 19: Tipp 3: Halten Sie die Drähte so kurz wie möglich
- Schritt 20: Tipp 4: Platzierung! Platzierung! Platzierung
- Schritt 21: Code
- Schritt 22: Endprodukt
- Schritt 23: Zusätzliche Messwerte:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
RC-Cars haben mich schon immer begeistert. Sie sind schnell, sie machen Spaß und Sie müssen sich keine Sorgen machen, wenn Sie sie abstürzen. Als älterer, reifer RC-Enthusiast kann ich jedoch nicht mit kleinen RC-Autos für Kinder herumspielen. Ich muss große, mannsgroße haben. Hier entsteht ein Problem: RC-Cars für Erwachsene sind teuer. Beim Surfen im Internet kostete das billigste, das ich finden konnte, 320 US-Dollar, der Durchschnitt lag bei etwa 800 US-Dollar. Mein Computer ist billiger als dieses Spielzeug!
Da ich wusste, dass ich mir diese Spielzeuge nicht leisten kann, sagte der Hersteller in mir, dass ich ein Auto für ein Zehntel des Preises herstellen könnte. So begann meine Reise, Müll in Gold zu verwandeln
Lieferungen
Die für das RC-Car benötigten Teile sind wie folgt:
- Gebrauchtes RC-Auto
- L293D Motortreiber (DIP-Formular)
- Arduino Nano
- NRF24L01+ Funkmodul
- RC Drohnenbatterie (oder jede andere Hochstrombatterie)
- LM2596 Abwärtswandler (2)
- Drähte
- Perfboard
- Kleine, verschiedene Komponenten (Stiftstifte, Schraubklemmen, Kondensatoren usw.)
Die für den RC-Controller benötigten Teile sind wie folgt:
- Gebrauchter Controller (muss 2 analoge Joysticks haben)
- Arduino Nano
- NRF24L01+ Funkmodul
- Stromkabel
Schritt 1: Recycelter Schatz
Dieses Projekt begann ursprünglich vor etwa einem Jahr, als meine Freunde und ich planten, ein computergesteuertes Auto für ein Hackathon-Projekt (Coding-Wettbewerb) zu bauen. Mein Plan war, in einen Secondhand-Laden zu gehen, das größte RC-Auto zu kaufen, das ich finden konnte, das Innere auszuhöhlen und es durch einen ESP32 zu ersetzen.
In einer Zeitnot stürmte ich zu Savers, kaufte ein RC-Car und bereitete mich auf den Hackathon vor. Leider kamen viele der benötigten Teile nicht rechtzeitig an, so dass ich das Projekt komplett verschrotten musste.
Seitdem staubt das RC-Car unter meinem Bett, bis jetzt…
Schneller Überblick:
In diesem Projekt werde ich ein gebrauchtes Spielzeugauto und einen IR-Controller wiederverwenden, um das Upcycled RC Car zu erstellen. Ich werde das Innere ausnehmen, Arduino Nano implantieren und das Funkmodul NRF24L01 + verwenden, um zwischen den beiden zu kommunizieren.
Schritt 2: Theorie
Zu verstehen, wie etwas funktioniert, ist wichtiger als zu wissen, wie es funktioniert
- Kevin Yang 17.05.2020 (das habe ich mir gerade ausgedacht)
Lassen Sie uns damit beginnen, über die Theorie und Elektronik hinter dem Upcycled RC Car zu sprechen.
Auf der Autoseite werden wir einen NRF24L01+, einen Arduino Nano, einen L293D-Motortreiber, die Motoren im RC-Auto und zwei Abwärtswandler verwenden. Ein Abwärtswandler liefert die Antriebsspannung für den Motor, während der andere 5V für den Arduino Nano liefert.
Auf der Controller-Seite werden wir einen NRF24L01+, einen Arduino Nano und die analogen Joysticks im umfunktionierten Controller verwenden.
Schritt 3: Der NRF24L01+
Bevor wir beginnen, sollte ich wohl den Elefanten im Raum erklären: den NRF24L01+. Wenn Sie den Namen noch nicht kennen, der NRF24 ist ein Chip von Nordic Semiconductors. Es ist in der Maker-Community für die Funkkommunikation aufgrund seines niedrigen Preises, seiner geringen Größe und seiner gut geschriebenen Dokumentation sehr beliebt.
Wie funktioniert das NRF-Modul eigentlich? Zunächst einmal arbeitet der NRF24L01+ auf der 2,4-GHz-Frequenz. Dies ist die gleiche Frequenz, auf der Bluetooth und Wifi arbeiten (mit leichten Abweichungen!). Der Chip kommuniziert zwischen einem Arduino mit SPI, einem vierpoligen Kommunikationsprotokoll. Für die Stromversorgung verwendet das NRF24 3,3 V, aber die Pins sind auch 5 V tolerant. Dies ermöglicht es uns, einen Arduino Nano, der eine 5V-Logik verwendet, mit dem NRF24 zu verwenden, der eine 3,3-V-Logik verwendet. Einige andere Funktionen sind wie folgt.
Bemerkenswerte Funktionen:
- Läuft auf der 2,4-GHz-Bandbreite
- Versorgungsspannungsbereich: 1,6 - 3,6 V
- 5V tolerant
- Verwendet SPI-Kommunikation (MISO, MOSI, SCK)
- Nimmt 5 Pins auf (MISO, MOSI, SCK, CE, CS)
- Kann Interrupts auslösen - IRQ (Sehr wichtig in diesem Projekt!)
- Schlafmodus
- Verbraucht 900nA - 12mA
- Übertragungsreichweite: ~100 Meter (variiert je nach geografischem Standort)
- Kosten: $1,20 pro Modul (Amazon)
Wenn Sie mehr über das NRF24L01+ erfahren möchten, lesen Sie den Abschnitt Zusätzliche Messwerte am Ende
Schritt 4: Der L293D - Doppel-H-Brücken-Motortreiber
Obwohl der Arduino Nano genug Strom liefern kann, um eine LED mit Strom zu versorgen, kann der Nano keinen Motor selbst antreiben. Daher müssen wir einen speziellen Treiber verwenden, um den Motor zu steuern. Der Treiberchip kann nicht nur den Strom liefern, sondern auch den Arduino vor Spannungsspitzen schützen, die durch das Ein- und Ausschalten des Motors entstehen.
Setzen Sie den L293D ein, einen Vierfach-Halb-H-Brücken-Motortreiber oder, für Laien ausgedrückt, einen Chip, der zwei Motoren vorwärts und rückwärts antreiben kann.
Der L293D verwendet H-Brücken, um sowohl die Geschwindigkeit eines Motors als auch die Richtung zu steuern. Ein weiteres Merkmal ist die Stromversorgungsisolierung, die es dem Arduino ermöglicht, von einer Stromquelle getrennt von den Motoren zu laufen.
Schritt 5: Ausnehmen des Autos
Genug der Theorie und los geht's mit dem Bauen!
Da das RC-Auto nicht mit einem Controller geliefert wird (denken Sie daran, dass er aus einem Secondhand-Laden stammt), ist die Elektronik im Inneren im Grunde nutzlos. Also öffnete ich das RC-Car und warf das Controller-Board in meinen Schrotteimer.
Jetzt ist es wichtig, ein paar Notizen zu machen, bevor wir beginnen. Zu beachten ist die Versorgungsspannung für das RC-Car. Das Auto, das ich gekauft habe, ist sehr alt, lange bevor Lithium-basierte Batterien Mainstream waren. Dies bedeutet, dass dieses RC-Auto mit einem Ni-Mh-Akku mit einer Nennspannung von 9,6 Volt betrieben wurde. Dies ist wichtig, da dies die Spannung ist, mit der wir die Motoren antreiben.
Schritt 6: Wie funktioniert das Auto?
Ich kann mit 99%iger Sicherheit sagen, dass mein Auto nicht mit Ihrem identisch ist, was bedeutet, dass dieser Abschnitt im Wesentlichen nutzlos ist. Es ist jedoch wichtig, auf einige Funktionen meines Autos hinzuweisen, da ich mein Design darauf aufbauen werde.
Lenkung
Im Gegensatz zu modernen RC-Cars verwendet das Auto, das ich modifiziere, kein Servo zum Drehen. Stattdessen verwendet mein Auto einen einfachen Bürstenmotor und Federn. Dies hat viele Nachteile, insbesondere weil ich keine Fähigkeit habe, feine Kurven zu machen. Ein unmittelbarer Vorteil ist jedoch, dass ich keine komplizierte Bedienoberfläche zum Drehen benötige. Alles, was ich tun muss, ist, den Motor mit einer bestimmten Polarität zu bestromen (je nachdem, in welche Richtung ich mich drehen möchte).
Differentialachse
Erstaunlicherweise enthält mein RC-Car auch eine Differentialachse und zwei verschiedene Gangmodi. Dies ist ziemlich amüsant, da Differentiale normalerweise in echten Autos zu finden sind, nicht in kleinen RC-Modellen. Ich würde denken, dass dieses Auto, bevor es in den Regalen eines Secondhand-Ladens stand, ein High-End-RC-Modell war.
Schritt 7: Das Thema Macht
Nachdem die Funktionen aus dem Weg geräumt sind, müssen wir jetzt über den wichtigsten Teil dieses Builds sprechen: Wie werden wir das RC-Auto antreiben? Und um genauer zu sein: Wie viel Strom wird benötigt, um die Motoren anzutreiben?
Um dies zu beantworten, habe ich eine Drohnenbatterie an einen Abwärtswandler angeschlossen, wobei ich die 11V der Batterie auf die 9,6V der Motoren abgesenkt habe. Von dort aus habe ich das Multimeter auf 10A Strommodus eingestellt und die Schaltung abgeschlossen. Mein Messgerät zeigte an, dass die Motoren 300 mA Strom benötigten, um sich in freier Luft zu drehen.
Auch wenn dies nicht viel klingt, ist die Messung, die uns wirklich wichtig ist, der Stillstandsstrom der Motoren. Um dies zu messen, lege ich meine Hände über die Räder, damit sie sich nicht drehen. Als ich auf mein Messgerät schaute, zeigte es ein solides 1A an.
Da ich wusste, dass die Antriebsmotoren ungefähr einen Ampere ziehen werden, fuhr ich dann fort, die Lenkmotoren zu testen, die beim Abwürgen 500 mA zogen. Mit diesem Wissen bin ich zu dem Schluss gekommen, dass ich das gesamte System mit einem RC-Drohnen-Akku und zwei LM2596-Abwärtswandlern* betreiben kann.
*Warum Zwei-Buck-Controller? Nun, jeder LM2596 hat einen maximalen Strom von 3A. Wenn ich alles von einem Abwärtswandler ausschalte, würde ich viel Strom ziehen und hätte daher ziemlich große Spannungsspitzen. Konstruktionsbedingt ruht die Arduino Nano-Kraft jedes Mal, wenn eine große Spannungsspitze auftritt. Daher habe ich zwei Konverter verwendet, um die Last zu verringern und den Nano von den Motoren isoliert zu halten.
Eine letzte wichtige Komponente, die wir brauchen, ist ein Li-Po-Zellspannungstester. Dies dient dazu, den Akku vor Tiefentladung zu schützen, um die Lebensdauer des Akkus nicht zu beeinträchtigen (halten Sie die Zellspannung eines Lithium-basierten Akkus immer über 3,5 V!)
Schritt 8: RC-Auto-Schaltung
Nachdem das Stromproblem aus dem Weg geräumt ist, können wir jetzt die Schaltung konstruieren. Oben ist der Schaltplan, den ich für das RC-Auto gemacht habe.
Denken Sie daran, dass ich den Anschluss des Batterievoltmeters nicht eingeschlossen habe. Um das Voltmeter zu verwenden, müssen Sie nur den Balancerstecker mit den entsprechenden Pins des Voltmeters verbinden. Wenn Sie dies noch nie getan haben, klicken Sie auf das Video, das im Abschnitt Extra Readings verlinkt ist, um mehr zu erfahren.
Hinweise zur Schaltung
Die Enable-Pins (1, 9) des L293D erfordern ein PWM-Signal mit variabler Geschwindigkeit. Das bedeutet, dass nur wenige Pins des Arduino Nano damit verbunden werden können. Für die anderen Pins des L293D ist alles möglich.
Da der NRF24L01+ über SPI kommuniziert, müssen wir seine SPI-Pins mit den SPI-Pins des Arduino Nano verbinden (also MOSI -> MOSI, MISO -> MISO und SCK -> SCK anschließen). Es ist auch wichtig zu beachten, dass ich den IRQ-Pin des NRF24 mit Pin 2 des Arduino Nano verbunden habe. Dies liegt daran, dass der IRQ-Pin jedes Mal auf LOW geht, wenn der NR24 eine Nachricht empfängt. Wenn ich das weiß, kann ich einen Interrupt auslösen, um dem Nano mitzuteilen, dass er das Funkgerät lesen soll. Dadurch kann der Nano andere Dinge tun, während er auf neue Daten wartet.
Schritt 9: PCB
Da ich dies zu einem modularen Design machen möchte, habe ich eine Leiterplatte mit Perfboard und vielen Header-Pins erstellt.
Schritt 10: Endgültige Verbindungen
Nachdem die Platine fertig und das RC-Auto entkernt war, habe ich Alligatordrähte verwendet, um zu testen, ob alles funktioniert.
Nachdem ich getestet hatte, dass alle Verbindungen korrekt sind, habe ich die Alligatordrähte durch echte Kabel ersetzt und alle Komponenten am Chassis befestigt.
An dieser Stelle haben Sie vielleicht festgestellt, dass dieser Artikel keine Schritt-für-Schritt-Anleitung ist. Dies liegt daran, dass es einfach unmöglich ist, jeden einzelnen Schritt zu schreiben. Stattdessen werde ich in den nächsten Instructables-Schritten ein paar Tipps geben, die ich bei der Herstellung des Autos gelernt habe.
Schritt 11: Tipp 1: Platzierung des Funkmoduls
Um die Reichweite des RC-Cars zu erhöhen, habe ich das NRF-Funkmodul so weit wie möglich seitlich platziert. Dies liegt daran, dass Funkwellen von Metallen wie PCBs und Drähten reflektiert werden, wodurch die Reichweite verringert wird. Um dies zu lösen, lege ich das Modul ganz auf die Seite der Platine und schneide einen Schlitz in das Autogehäuse, damit es herausragen kann.
Schritt 12: Tipp 2: Halten Sie es modular
Eine andere Sache, die ich mir ein paar Mal erspart habe, ist, alles über Kopfstifte und Klemmenblöcke zu verbinden. Dies ermöglicht einen einfachen Austausch von Teilen, wenn eine der Komponenten gebraten wird (aus welchen Gründen auch immer …).
Schritt 13: Tipp 3: Verwenden Sie Kühlkörper
Die Motoren in meinem RC-Car bringen den L293D an seine Grenzen. Während der Motortreiber bis zu 600 mA kontinuierlich verarbeiten kann, bedeutet dies auch, dass er sehr heiß und schnell wird! Aus diesem Grund ist es eine gute Idee, Wärmeleitpaste und Kühlkörper hinzuzufügen, um zu verhindern, dass sich der L293D selbst kocht. Aber auch mit Kühlkörpern kann der Chip immer noch zu heiß zum Anfassen werden. Deshalb ist es ratsam, das Auto nach 2-3 Minuten Spielzeit abkühlen zu lassen.
Schritt 14: RC-Controller-Zeit
Wenn das RC-Auto fertig ist, können wir mit der Herstellung des Controllers beginnen.
Wie das RC-Auto habe ich auch den Controller vor einiger Zeit gekauft, weil ich dachte, ich könnte etwas damit machen. Ironischerweise ist der Controller eigentlich ein IR-Controller, so dass er IR-LEDs verwendet, um zwischen Geräten zu kommunizieren.
Die Grundidee bei diesem Build besteht darin, das Originalboard im Controller zu behalten und das Arduino und NRF24L01 + darum herum zu bauen.
Schritt 15: Grundlagen des analogen Joysticks
Das Anschließen an einen analogen Joystick kann entmutigend sein, insbesondere da es keine Breakout-Platine für die Pins gibt. Keine Sorge! Alle analogen Joysticks arbeiten nach dem gleichen Leitprinzip und haben in der Regel die gleiche Pinbelegung.
Im Wesentlichen sind analoge Joysticks nur zwei Potentiometer, die den Widerstand ändern, wenn sie in verschiedene Richtungen bewegt werden. Wenn Sie beispielsweise den Joystick nach rechts bewegen, ändert sich der Wert des X-Achsen-Potentiometers. Wenn Sie nun den Joystick nach vorne bewegen, ändert sich der Wert des Y-Achsen-Potentiometers.
In diesem Sinne sehen wir auf der Unterseite des analogen Joysticks 6 Pins, 3 für das x-Achsen-Potentiometer und 3 für das y-Achsen-Potentiometer. Alles, was Sie tun müssen, ist, 5V und Masse an die äußeren Pins anzuschließen und den mittleren Pin an einen analogen Eingang des Arduino anzuschließen.
Beachten Sie, dass die Werte für das Potentiometer auf 1024 und nicht auf 512 abgebildet werden! Dies bedeutet, dass wir die eingebaute map()-Funktion in Arduino verwenden müssen, um alle digitalen Ausgänge zu steuern (wie das PWM-Signal, das wir zur Steuerung des L293D verwenden). Dies ist bereits im Code geschehen, aber wenn Sie vorhaben, Ihr eigenes Programm zu schreiben, müssen Sie dies im Hinterkopf behalten.
Schritt 16: Controller-Verbindungen
Die Verbindungen zwischen NRF24 und Nano sind für den Controller immer noch die gleichen, jedoch abzüglich des IRQ-Anschlusses.
Die Schaltung für den Controller ist oben gezeigt.
Einen Controller zu modden ist definitiv eine Kunstform. Ich habe diesen Punkt schon unzählige Male erwähnt, aber es ist einfach nicht möglich, eine Schritt-für-Schritt-Anleitung dazu zu schreiben. Daher werde ich, wie zuvor, ein paar Tipps zu dem geben, was ich bei der Herstellung meines Controllers gelernt habe.
Schritt 17: Tipp 1: Verwenden Sie die Teile zu Ihrer Verfügung
Der Platz im Controller ist wirklich eng, wenn Sie also weitere Eingänge für das Auto aufnehmen möchten, verwenden Sie die bereits vorhandenen Schalter und Knöpfe. Für meinen Controller habe ich auch ein Potentiometer und einen 3-Wege-Schalter an den Nano angeschlossen.
Eine andere Sache, die Sie beachten sollten, ist, dass dies Ihr Controller ist. Wenn die Pinbelegungen nicht Ihren Vorstellungen entsprechen, können Sie sie jederzeit neu anordnen!
Schritt 18: Tipp 2: Entfernen Sie unnötige Spuren
Da wir die Originalplatine verwenden, sollten Sie alle Spuren abkratzen, die zu den analogen Joysticks und zu allen anderen von Ihnen verwendeten Sensoren führen. Auf diese Weise verhindern Sie, dass ein unerwartetes Sensorverhalten auftritt.
Um diese Schnitte zu machen, habe ich einfach einen Kastenschneider verwendet und die Leiterplatte ein paar Mal angeritzt, um die Spuren wirklich zu trennen.
Schritt 19: Tipp 3: Halten Sie die Drähte so kurz wie möglich
Dieser Tipp bezieht sich speziell auf die SPI-Leitungen zwischen dem Arduino und dem NRF24-Modul, aber dies gilt auch für die anderen Verbindungen. Der NRF24L01+ ist extrem störempfindlich. Wenn Rauschen von den Kabeln aufgenommen wird, werden die Daten beschädigt. Dies ist einer der Hauptnachteile der SPI-Kommunikation. Indem Sie die Kabel so kurz wie möglich halten, machen Sie auch den gesamten Controller sauberer und organisierter.
Schritt 20: Tipp 4: Platzierung! Platzierung! Platzierung
Dies bedeutet nicht nur, die Drähte so kurz wie möglich zu halten, sondern auch den Abstand zwischen den Teilen so kurz wie möglich zu halten.
Denken Sie bei der Suche nach Orten für die Montage des NRF24 und des Arduino daran, sie so nah wie möglich aneinander und an den Joysticks zu halten.
Eine andere Sache, die Sie beachten sollten, ist, wo das NRF24-Modul platziert werden soll. Wie bereits erwähnt, können Funkwellen kein Metall durchdringen, daher sollten Sie das Modul nahe der Seite des Controllers montieren. Dazu habe ich mit einem Dremel einen kleinen Schlitz geschnitten, damit das NRF24 seitlich herausragen kann.
Schritt 21: Code
Der wahrscheinlich wichtigste Teil dieses Builds ist der eigentliche Code. Ich habe Kommentare und alles eingefügt, damit ich nicht jedes Programm Zeile für Zeile erklären werde.
Vor diesem Hintergrund möchte ich auf einige wichtige Dinge hinweisen, dass Sie die NRF24-Bibliothek herunterladen müssen, um die Programme auszuführen. Wenn Sie die Bibliotheken noch nicht installiert haben, empfehle ich Ihnen, die im Abschnitt Extra Readings verlinkten Tutorials zu lesen, um zu erfahren, wie. Schalten Sie beim Senden von Signalen an den L293D niemals beide Richtungsstifte ein. Dadurch wird der Motortreiber kurzgeschlossen und verbrennt.
Github-
Schritt 22: Endprodukt
Endlich, nach einem Jahr Staubsammeln und 3 Wochen Handarbeit, habe ich endlich das Upcycled RC Car fertig gebaut. Ich muss zwar zugeben, dass es nirgendwo so leistungsstark ist wie die Autos in der Einführung, aber es kam viel besser heraus, als ich dachte. Das Auto kann 40 Minuten lang fahren, bevor ihm der Strom ausgeht, und kann bis zu 150 m vom Controller entfernt fahren.
Ein paar Dinge, die ich definitiv tun würde, um das Auto zu verbessern, ist, den L293D gegen den L298 auszutauschen, einen größeren, leistungsstärkeren Motortreiber. Eine andere Sache, die ich tun würde, ist das Standard-NRF-Funkmodul gegen die verstärkte Antennenversion auszutauschen. Diese Modifikationen würden das Drehmoment bzw. die Reichweite des Autos erhöhen.
Schritt 23: Zusätzliche Messwerte:
NRF24L01+
- Nordic Semiconductor Datenblatt
- SPI-Mitteilung (Artikel)
- Grundkonfiguration (Video)
- Ausführliches Tutorial (Artikel)
- Tipps und Tricks für Fortgeschrittene (Videoserie)
L293D
- Texas Instruments Datenblatt
- Ausführliches Tutorial (Artikel)