Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

WLAN-RC-Auto - Qi aktiviert

Komponenten und Verbrauchsmaterialien

IDT Qi 5W-Sender-Prototyp-Kit
× 1
IDT Qi 5W-Empfänger-Prototyp-Kit
× 1
Arduino MKR1000
× 1
• 2WD-Roboter-Auto-Chassis für Arduino
× 1
L293DNE
× 1
CN6009 - Step-up-Boost-Leistungswandlermodul
× 1
3,7-V-Li-Po-Akku
× 1
1N4007 – Hochspannungs-, Hochstrom-Nenndiode
× 8
LED (generisch)
× 1
Widerstand 221 Ohm
× 1
Krawattenwickel
× 5
Breadboard (generisch)
(Optional)
× 1

Notwendige Werkzeuge und Maschinen

Lötkolben (generisch)
Heißklebepistole (generisch)
Schraubendreher
Voltmeter

Apps und Onlinedienste

Arduino-IDE

Über dieses Projekt

Was wirst du in diesem Projekt bauen?

Dies ist ein Projekt, das Ihnen Schritt für Schritt zeigt, wie Sie ein Wi-Fi-gesteuertes RC-Auto erstellen, das sich beim Parken automatisch drahtlos auflädt.

Wie funktioniert es?

Das Gehirn des Projekts ist der Arduino MKR1000 und ist über Wi-Fi mit Ihrem Mobilgerät verbunden. Das Arduino-Board wird von einem 3,7-V-Li-Po-Akku mit Strom versorgt. Für die Motorsteuerung wird ein L293DNE Motortreiber verwendet. Es benötigt jedoch mindestens 4,5 V zum Betrieb. Wir erhöhen die Spannung von 3,7 V auf 5 V mit einem Step-up-Boost-Leistungswandlermodul (wandelt die niedrige Spannung in eine höhere um) und auf diese Weise wird der Motortreiber mit 5 V versorgt.

Zum Aufladen des Akkus verfügt das Arduino MKR1000 Board über ein automatisches Ladesystem für Li-Po Akkus. Wenn eine externe Stromquelle (5 V DC) angeschlossen wird, wird die an das Board angeschlossene Batterie geladen. Also die IDT P9025AC-R-EVK – Qi 5W Der Empfänger wird als externe Quelle (5V DC) an das Arduino-Board angeschlossen. Wenn das Auto über der Ladestation parkt (das ist der IDT P9038-R-EVK – Qi 5W Sender) wird der Akku geladen.

Das Steuerungssystem bietet zwei Geschwindigkeitsmodi:Schnell und Langsam.

Wie baue ich es?

Hardware-Teil

Lötdrähte an den Motorpolen und an der IDT-Empfängerplatine (Pin OUT mit rotem Draht und Pin GND mit schwarzem Draht). Für diesen Schritt benötigen Sie einen Lötkolben und 6 Drähte.

Herstellung der elektronischen Schaltung. Sie können ein Steckbrett verwenden, um Ihre Schaltung zu erstellen, oder Sie können alle Verbindungen löten.

ACHTUNG:Verwenden Sie einen 3,7V Li-Po Akku mit mindestens 700mAh Kapazität! Andernfalls kann der Akku überhitzen und explodieren!

Einstellen des CN6009. Aufwärtswandlermodul auf 5V. Um den Ausgabewert des CN6009 anzupassen, verwenden Sie einen Schraubendreher. Überprüfen Sie unbedingt die Ausgangsspannung (indem Sie ein Voltmeter an die Pins OUT+ und OUT- anschließen).

Anschließen des IDT Wireless Power Qi 5W-Empfängers. Nehmen Sie ein Stück Plastik (z. B. eine Plastikkarte), um eine Basis für den Wireless Power Receiver an der Unterseite des Autos zu schaffen. Kleben Sie dann das Plastikstück sowie den Empfänger mit Silikon auf die Unterseite des Autos. Verbinden Sie schließlich das rote Kabel des IDT-Empfängers mit dem VIN-Pin des Arduino und das schwarze Kabel mit dem GND-Pin.

Das Fahrzeug stabil machen. Befestigen Sie die Batterie und das Steckbrett mit Kabelbindern am Fahrzeug.

Softwareteil – Wi-Fi-Verbindung

Kopieren Sie für diesen Teil einfach den Code. Geben Sie in der Codedatei Ihre Netzwerk-SSID und Ihr Passwort ein (Zeilen 12, 13 in der Codedatei). Sie müssen den Kommentaranweisungen folgen. Der Code ist derzeit so eingestellt, dass er mit WPA/WPA2-Netzwerken funktioniert. Wenn Sie sich mit einem WEP oder einem offenen Netzwerk verbinden möchten, folgen Sie den Anweisungen in den Kommentaren des Codes (Zeilen 34-37).

Wie benutzt man es?

Schritt 1:Verbinden mit dem Arduino MKR1000

Die Steuerung des Fahrzeugs erfordert eine Wi-Fi-Verbindung. Das können Sie auf zwei Wegen erreichen. Die erste besteht darin, den Wi-Fi-Hotspot auf Ihrem Mobilgerät zu aktivieren und das Board mit dem Hotspot zu verbinden. Die zweite besteht darin, Ihr Mobilgerät und das Arduino-Board mit demselben Wi-Fi-Router zu verbinden. Stellen Sie sicher, dass Sie die SSID- und Passworteinstellungen Ihres Routers in die Codedatei eintragen, die auf das Arduino-Board hochgeladen wird.

Hinweis:Es ist besser, die erste Methode (WLAN-Hotspot) zu verwenden, da Sie auf diese Weise Ihr Fahrzeug ohne Router steuern können.

Schritt 2:Abrufen der IP-Adresse des Arduino MKR1000

Wenn das Arduino-Board mit dem Hotspot Ihres Mobilgeräts verbunden ist, gehen Sie zu den Wi-Fi-Hotspot-Einstellungen und dort sehen Sie die IP-Adresse Ihres Boards (z. B. 192.168.1.1).

Wenn das Arduino-Board mit einem Wi-Fi-Router verbunden ist, müssen Sie dies in den Router-Einstellungen überprüfen.

Die LED am Fahrzeug zeigt die erfolgreiche Verbindung mit dem angegebenen Netzwerk und die Serveraktivierung an.

Schritt 3:Auf den Webserver des Arduino MKR1000 zugreifen

Gehen Sie zu Ihrem Browser und geben Sie in das URL-Feld die IP-Adresse Ihres Arduino ein.

Schritt 4:Anschließen der Ladestation

Schließen Sie den IDT P9038-R-EVK – Qi 5 W-Sender mit einem 5 V DC-Adapter an eine Steckdose an.

Schritt 5:Viel Spaß!

Ladezeit!!

Probefahrt:

Gerber-Dateien von PCBWeb

Code

  • Arduino_IDT_Wi-Fi_Car.ino
Arduino_IDT_Wi-Fi_Car.inoArduino
Ersetzen Sie example und password in den Zeilen 12-13 durch Ihre ssid bzw. Ihr Passwort.
#include #include const int motor1Control =2; // Rechte motorconst int motor2Control =3; // Linker Motorconst int motor1Input1 =4;const int motor1Input2 =5;const int motor2Input1 =8;const int motor2Input2 =9;const int wifiLed =10; // Zur Anzeige einer erfolgreichen Wi-Fi-Verbindungchar ssid[] ="example"; // Geben Sie Ihre Netzwerk-SSID ein (name)char pass[] ="password"; // Geben Sie Ihr Netzwerk-Passwort einint keyIndex =0; // Geben Sie Ihren Netzwerkschlüssel ein. Indexnummer (optional - nur für WEP erforderlich)int status =WL_IDLE_STATUS;String readString;WiFiServer server(80); // Definiere den Port des ServerString speedMode ="fast";void setup() { pinMode(motor1Control, OUTPUT); pinMode (motor2Control, AUSGANG); pinMode (motor1Input1, OUTPUT); PinMode (Motor1Input2, OUTPUT); pinMode (motor2Input1, OUTPUT); pinMode (motor2Input2, OUTPUT); pinMode (wifiLed, AUSGANG); // Versuch, eine Verbindung zum Wifi-Netzwerk herzustellen:while ( status !=WL_CONNECTED) { // Verbindung zum WPA/WPA2-Netzwerk herstellen. Ändern Sie diese Zeile, wenn Sie ein offenes oder WEP-Netzwerk verwenden:// Für ein WEP-Netzwerk ersetzen Sie durch:status =WiFi.begin(ssid, keyIndex, pass); // Für offenes Netzwerk ersetzen durch:status =WiFi.begin(ssid); status =WiFi.begin(ssid, pass); // 10 Sekunden auf Verbindung warten:delay(10000); } // Starten Sie den Webserver server.begin(); // Zeigt an, dass auf dem Server digitalWrite(wifiLed, HIGH);}void loop() ausgeführt wird { // Auf eingehende Clients lauschen WiFiClient client =server.available(); if (client) { // eine http-Anfrage endet mit einer Leerzeile boolean currentLineIsBlank =true; while (client.connected()) { if (client.available()) { char c =client.read(); // Wenn Sie das Ende der Zeile erreicht haben (ein Newline-Zeichen // erhalten haben) und die Zeile leer ist, ist die http-Anfrage beendet, // also können Sie eine Antwort senden, wenn (readString.length() <100 ) { // Zeichen in String speichern readString +=c; } if (c =='\n') { // Sende einen Standard-HTTP-Antwortheader client.println("HTTP/1.1 200 OK"); client.println("Inhaltstyp:text/html"); client.println(); client.println(""); client.println(""); client.println(""); client.println(""); client.println("a.button {-webkit-appearance:button;"); client.println("-moz-auftritt:button;"); client.println("Erscheinungsbild:Schaltfläche;"); client.println("Höhe:400px;"); client.println("Zeilenhöhe:400px;"); client.println("text-align:center;"); client.println("Textdekoration:keine;"); client.println("Schriftgröße:100px;"); client.println("Farbe:Initiale;}"); client.println(""); client.println(""); client.println(""); // Schaltfläche zum Vorwärtsbewegen client.println("FORWARDS
"); client.println("
"); // Button zum Linksabbiegen client.println("LINKS "); // Schaltfläche zum Anhalten des Autos client.println("STOP " ); // Button zum Rechtsdrehen client.println("RIGHT "); client.println("
"); // Schaltfläche zum Rückwärtsbewegen client.println("BACKWARDS "); client.println("
"); client.println("
"); // Schaltfläche zum Rückwärtsbewegen client.println("

GESCHWINDIGKEITSMODI

"); client.println("SCHNELL"); client.println("SLOW "); client.println(" "); client.println(""); break; } // Entscheide, welcher Button angeklickt wurde (falls vorhanden) // Fast Mode Button if (readString.indexOf("?fast")> 0){ speedMode ="fast"; // Löschen Sie den readString, um den nächsten Befehl zu erhalten readString =""; } // Schaltfläche Slow Mode if (readString.indexOf("?slow")> 0){ speedMode ="slow"; // lösche den readString um den nächsten Befehl zu bekommen readString =""; } // Fast Mode if (speedMode =="fast"){ if (readString.indexOf("?moveForwards")> 0 ){ moveForwards(); // lösche den readString um den nächsten Befehl zu bekommen readString =""; } if (readString.indexOf("?moveBackwards")> 0){ moveBackwards(); // lösche den readString to in der Lage sein, den nächsten Befehl zu erhalten readString =""; } } else if (speedMode =="slow"){ // Slow Mode if (readString.indexOf("?moveForwards")> 0){ moveForwardsSlow(); // Löschen Sie den readString, um den nächsten Befehl zu erhalten r eadString =""; } if (readString.indexOf("?moveBackwards")> 0){ moveBackwardsSlow(); // ReadString löschen, um den nächsten Befehl abrufen zu können readString =""; } } if (readString.indexOf("?turnLeft")> 0){turnLeft(); // ReadString löschen, um den nächsten Befehl abrufen zu können readString =""; } if (readString.indexOf("?turnRight")> 0){turnRight(); // ReadString löschen, um den nächsten Befehl abrufen zu können readString =""; } if (readString.indexOf("?stopMoving")> 0){ stopMoving(); // ReadString löschen, um den nächsten Befehl abrufen zu können readString =""; } } } // Geben Sie dem Webbrowser Zeit, die Daten zu empfangen delay(1); // Verbindung schließen:client.stop(); }} // Befehle zum Vorwärtsbewegensvoid moveForwards () { digitalWrite (motor1Control, HIGH); digitalWrite (motor2Control, HIGH); digitalWrite (motor1Input1, LOW); digitalWrite (motor1Input2, HIGH); digitalWrite (motor2Input1, LOW); digitalWrite (motor2Input2, HIGH);} // Befehle zum Rückwärtsfahrenvoid moveBackwards () { digitalWrite (motor1Control, HIGH); digitalWrite (motor2Control, HIGH); digitalWrite (motor1Input1, HIGH); digitalWrite (motor1Input2, LOW); digitalWrite (motor2Input1, HIGH); digitalWrite (motor2Input2, LOW);} // Befehle zum Rechtsdrehenvoid turnRight () {// Eine niedrigere Spannung wird bereitgestellt, um langsamer zu drehen - bessere Steuerung analogWrite (motor1Control, 0); analogWrite (motor2Control, 200); digitalWrite (motor1Input1, HIGH); digitalWrite (motor1Input2, LOW); digitalWrite (motor2Input1, LOW); digitalWrite (motor2Input2, HIGH);} // Befehle zum Drehen nach linksvoid turnLeft () { // Eine niedrigere Spannung wird bereitgestellt, um langsamer zu drehen - bessere Steuerung analogWrite (motor1Control, 200); analogWrite (motor2Control, 0); digitalWrite (motor1Input1, LOW); digitalWrite (motor1Input2, HIGH); digitalWrite (motor2Input1, HIGH); digitalWrite (motor2Input2, LOW);} // Befehle zum Stoppen des Carvoid stopMoving () { digitalWrite (motor1Control, LOW); digitalWrite (motor2Control, LOW); digitalWrite (motor1Input1, LOW); digitalWrite (motor1Input2, LOW); digitalWrite (motor2Input1, LOW); digitalWrite (motor2Input2, LOW);} // Befehle für langsame Vorwärtsbewegungvoid moveForwardsSlow () { analogWrite (motor1Control, 200); analogWrite (motor2Control, 200); digitalWrite (motor1Input1, LOW); digitalWrite (motor1Input2, HIGH); digitalWrite (motor2Input1, LOW); digitalWrite (motor2Input2, HIGH);} // Befehle für langsame Rückwärtsbewegungvoid moveBackwardsSlow () { analogWrite (motor1Control, 200); analogWrite (motor2Control, 200); digitalWrite (motor1Input1, HIGH); digitalWrite (motor1Input2, LOW); digitalWrite (motor2Input1, HIGH); digitalWrite(motor2Input2, LOW);}

Kundenspezifische Teile und Gehäuse

Arduino%20IDT%20Wireless%20charging%20wifi%20car.cad

Schaltpläne


Herstellungsprozess

  1. C#-Konstruktor
  2. Verschachtelte C#-Klasse
  3. Überladen des C#-Konstruktors
  4. Die wachsende Bedrohung durch Wi-Fi-fähiges IoT
  5. Präzisionsgefertigte Teile für Automotoren
  6. Wagenhebersystem verstehen
  7. Zylinderkonfigurationen von Automotoren
  8. Wie behebe ich ein Gasleck in meinem Auto?
  9. Beeinflusst das Auto-Upgrade die Garantie?
  10. So reparieren Sie Ihren Autotürgriff