Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Qi-geschikte Wi‑Fi RC-auto: bouwen van een draadloos oplaadbare bestuurbare auto

Onderdelen en benodigdheden

  • IDT Qi 5W Transmitter Prototype Kit (1×)
  • IDT Qi 5W Receiver Prototype Kit (1×)
  • Arduino MKR1000 (1×)
  • 2WD Robot Chassis voor Arduino (1×)
  • L293DNE motordriver (1×)
  • CN6009 Step-up boost converter module (1×)
  • 3,7 V Li-Po accu (min. 700 mAh) (1×)
  • 1N4007 diodes (8×)
  • LED (1×)
  • 221 Ω weerstand (1×)
  • Kabelbinders (5×)
  • Breadboard (optioneel) (1×)

Benodigde tools en machines

  • Solderbout
  • Lijmpistool
  • Schroevendraaier
  • Multimeter

Apps en online diensten

  • Arduino IDE

Over dit project

Deze handleiding laat stap voor stap zien hoe je een Wi-Fi-gecontroleerde RC-auto bouwt die zich zelf draadloos oplaat zodra hij geparkeerd staat op de laadstation.

Hoe het werkt

De Arduino MKR1000 is de hersenen en communiceert via Wi-Fi met je mobiele apparaat. Het bord wordt gevoed door een 3,7 V Li-Po accu. Voor de motorbesturing dient een L293DNE motordriver, die minimaal 4,5 V nodig heeft. Een CN6009 step-up converter verhoogt de 3,7 V naar 5 V voor de driver.

De MKR1000 heeft een ingebouwde laadcontroller voor Li-Po accu's. Wanneer een externe 5 V bron aangesloten is, laadt de accu. De IDT P9025AC-R-EVK Qi 5W Receiver (op de auto) fungeert als die externe bron. Zodra de auto over de IDT P9038-R-EVK Qi 5W Transmitter (laadstation) parkeert, begint de accu op te laden.

De besturing heeft twee snelheidsmodi: Snel en Langzaam.

Hoe te bouwen – Hardware

  1. Solder draden aan de motorpolen en aan de IDT Receiver (rood = OUT, zwart = GND).
  2. Bouw de elektronische schakeling op breadboard of soldeer vast. Let op: gebruik een 3,7 V Li-Po van minstens 700 mAh, anders oververhitting/explosierisico!
  3. Stel de CN6009 in op 5 V uitgang (schroevendraaier, meet met multimeter).
  4. Monteer de Qi-ontvanger op de onderkant van de auto (plastic kaartje als basis, vastlijmen met silicone). Rood draad → VIN Arduino, zwart → GND.
  5. Bevestig accu en breadboard met kabelbinders aan het chassis.
Qi-geschikte Wi‑Fi RC-auto: bouwen van een draadloos oplaadbare bestuurbare auto
Qi-geschikte Wi‑Fi RC-auto: bouwen van een draadloos oplaadbare bestuurbare auto
Qi-geschikte Wi‑Fi RC-auto: bouwen van een draadloos oplaadbare bestuurbare auto
Qi-geschikte Wi‑Fi RC-auto: bouwen van een draadloos oplaadbare bestuurbare auto
Qi-geschikte Wi‑Fi RC-auto: bouwen van een draadloos oplaadbare bestuurbare auto

Software – Wi-Fi verbinding

Kopieer de code en vul je netwerk-SSID en wachtwoord in (regels 12-13). De code werkt standaard met WPA/WPA2; voor WEP of open netwerk volg de commentaar-instructies (regels 34-37).

Qi-geschikte Wi‑Fi RC-auto: bouwen van een draadloos oplaadbare bestuurbare auto

Gebruik

Stap 1: Verbinden met de MKR1000

Twee opties: (1) Wi-Fi-hotspot op je telefoon aanzetten en de MKR1000 ermee verbinden, of (2) beide apparaten op dezelfde router zetten. Vul in de code de SSID/wachtwoord van de gekozen methode in. Hotspot-methode is handiger: geen router nodig.

Stap 2: IP-adres van de MKR1000 vinden

Bij hotspot: in hotspot-instellingen van je telefoon staat het IP-adres (bijv. 192.168.1.1). Bij router: in router-instellingen zoeken. De LED op de auto brandt bij succesvolle verbinding.

Stap 3: Webserver benaderen

Open browser, typ het IP-adres in de adresbalk.

Stap 4: Laadstation aansluiten

Sluit de IDT Qi 5W Transmitter aan op een 5 V DC-adapter in het stopcontact.

Stap 5: Genieten!

Testrit en draadloos laden!

Code

Arduino_IDT_Wi-Fi_Car.ino (Arduino)

#include <SPI.h>
#include <WiFi101.h>

const int motor1Control = 2;   // Rechter motor
const int motor2Control = 3;   // Linker motor
const int motor1Input1 = 4;
const int motor1Input2 = 5;
const int motor2Input1 = 8;
const int motor2Input2 = 9;
const int wifiLed = 10;

char ssid[] = "example";   // Vul je SSID in
char pass[] = "password";  // Vul je wachtwoord in
int keyIndex = 0;          // Alleen voor WEP
int status = WL_IDLE_STATUS;
String readString;
WiFiServer server(80);
String speedMode = "fast";

void setup() {
  pinMode(motor1Control, OUTPUT);
  pinMode(motor2Control, OUTPUT);
  pinMode(motor1Input1, OUTPUT);
  pinMode(motor1Input2, OUTPUT);
  pinMode(motor2Input1, OUTPUT);
  pinMode(motor2Input2, OUTPUT);
  pinMode(wifiLed, OUTPUT);

  while (status != WL_CONNECTED) {
    status = WiFi.begin(ssid, pass);        // WPA/WPA2
    // status = WiFi.begin(ssid, keyIndex, pass); // WEP
    // status = WiFi.begin(ssid);               // Open
    delay(10000);
  }
  server.begin();
  digitalWrite(wifiLed, HIGH);
}

void loop() {
  WiFiClient client = server.available();
  if (client) {
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        if (readString.length() < 100) readString += c;
        if (c == '\n') {
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
          client.println("");
          client.println("");
          client.println("FORWARDS
"); client.println("LEFT"); client.println("STOP"); client.println("RIGHT
"); client.println("BACKWARDS

"); client.println("

SPEED MODES

"); client.println("FAST"); client.println("SLOW"); client.println(""); break; } // Commando's verwerken if (readString.indexOf("?fast") > 0) { speedMode = "fast"; readString = ""; } if (readString.indexOf("?slow") > 0) { speedMode = "slow"; readString = ""; } if (speedMode == "fast") { if (readString.indexOf("?moveForwards") > 0) { moveForwards(); readString = ""; } if (readString.indexOf("?moveBackwards") > 0) { moveBackwards(); readString = ""; } } else { if (readString.indexOf("?moveForwards") > 0) { moveForwardsSlow(); readString = ""; } if (readString.indexOf("?moveBackwards") > 0) { moveBackwardsSlow(); readString = ""; } } if (readString.indexOf("?turnLeft") > 0) { turnLeft(); readString = ""; } if (readString.indexOf("?turnRight") > 0) { turnRight(); readString = ""; } if (readString.indexOf("?stopMoving") > 0) { stopMoving(); readString = ""; } } } delay(1); client.stop(); } } // Motor-functies void moveForwards() { digitalWrite(motor1Control, HIGH); digitalWrite(motor2Control, HIGH); digitalWrite(motor1Input1, LOW); digitalWrite(motor1Input2, HIGH); digitalWrite(motor2Input1, LOW); digitalWrite(motor2Input2, HIGH); } void moveBackwards() { digitalWrite(motor1Control, HIGH); digitalWrite(motor2Control, HIGH); digitalWrite(motor1Input1, HIGH); digitalWrite(motor1Input2, LOW); digitalWrite(motor2Input1, HIGH); digitalWrite(motor2Input2, LOW); } void turnRight() { analogWrite(motor1Control, 0); analogWrite(motor2Control, 200); digitalWrite(motor1Input1, HIGH); digitalWrite(motor1Input2, LOW); digitalWrite(motor2Input1, LOW); digitalWrite(motor2Input2, HIGH); } void turnLeft() { analogWrite(motor1Control, 200); analogWrite(motor2Control, 0); digitalWrite(motor1Input1, LOW); digitalWrite(motor1Input2, HIGH); digitalWrite(motor2Input1, HIGH); digitalWrite(motor2Input2, LOW); } void stopMoving() { digitalWrite(motor1Control, LOW); digitalWrite(motor2Control, LOW); digitalWrite(motor1Input1, LOW); digitalWrite(motor1Input2, LOW); digitalWrite(motor2Input1, LOW); digitalWrite(motor2Input2, LOW); } void moveForwardsSlow() { analogWrite(motor1Control, 200); analogWrite(motor2Control, 200); digitalWrite(motor1Input1, LOW); digitalWrite(motor1Input2, HIGH); digitalWrite(motor2Input1, LOW); digitalWrite(motor2Input2, HIGH); } void moveBackwardsSlow() { analogWrite(motor1Control, 200); analogWrite(motor2Control, 200); digitalWrite(motor1Input1, HIGH); digitalWrite(motor1Input2, LOW); digitalWrite(motor2Input1, HIGH); digitalWrite(motor2Input2, LOW); }

Aangepaste onderdelen en behuizingen

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

Schema's

Qi-geschikte Wi‑Fi RC-auto: bouwen van een draadloos oplaadbare bestuurbare auto

Productieproces

  1. Premium precisie motoronderdelen productie met CNC draai- en freesmachines
  2. Uw Wagenkrik Beheersen: Typen, Toepassingen en Veiligheidstips
  3. Hoe Cilinderaantal Moderne Motorprestaties Vormt
  4. Hoe AutoMotoren Werken: Inzicht in de Kracht Achter het Stuur
  5. Hoe u een benzinelek in uw auto snel en veilig repareert
  6. Hoe voertuig-upgrades uw garantie beïnvloeden: wat u moet weten
  7. Stap-voor-stap handleiding voor het repareren van uw autodeurhandvat
  8. Waarom Wi-Fi-ingeschakelde IoT-apparaten een groeiende beveiligingsdreiging vormen
  9. C# Constructors: Types, Voorbeelden en Geavanceerde Patronen
  10. C# Geneste Classes: Definitie, Gebruik en Inheritance
  11. Constructor overloading in C#: flexibele klassen ontwerpen