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

Wi-Fi RC Car - Qi ingeschakeld

Componenten en benodigdheden

Prototypekit IDT Qi 5W zender
× 1
Prototypekit IDT Qi 5W-ontvanger
× 1
Arduino MKR1000
× 1
• 2WD Robot Car Chassis voor Arduino
× 1
L293DNE
× 1
CN6009 - Step-up boost Power Converter Module
× 1
3.7V Li-Po-batterij
× 1
1N4007 – Diode voor hoge spanning, hoge stroomsterkte
× 8
LED (generiek)
× 1
Weerstand 221 ohm
× 1
Tie Wraps
× 5
Broodplank (algemeen)
(Optioneel)
× 1

Benodigde gereedschappen en machines

Soldeerbout (algemeen)
Hot lijmpistool (algemeen)
Schroevendraaier
Voltmeter

Apps en online services

Arduino IDE

Over dit project

Wat ga je bouwen in dit project?

Dit is een project dat je stap voor stap laat zien hoe je een door Wi-Fi bestuurde RC-auto kunt maken die automatisch draadloos wordt opgeladen terwijl hij geparkeerd staat.

Hoe het werkt?

Het brein van het project is de Arduino MKR1000 en is via Wi-Fi verbonden met je mobiele apparaat. Het Arduino-bord wordt aangedreven door een 3.7V Li-Po-batterij. Voor de motorbesturing wordt een L293DNE motordriver gebruikt. Het heeft echter minimaal 4,5 V nodig om te werken. We zullen de spanning verhogen van 3,7 V naar 5 V met een Step-up boost Power Converter Module (converteert lage spanning naar hoger) en op deze manier wordt de motordriver gevoed met 5V.

Voor het opladen van de batterij beschikt het Arduino MKR1000-bord over een automatisch oplaadsysteem voor Li-Po-batterijen. Wanneer een externe voedingsbron (5V DC) is aangesloten, wordt de batterij die op het bord is aangesloten opgeladen. Dus de IDT P9025AC-R-EVK – Qi 5W De ontvanger wordt als externe bron (5V DC) op het Arduino-bord aangesloten. Wanneer de auto boven het laadstation parkeert (dit is de IDT P9038-R-EVK – Qi 5W zender), wordt de batterij opgeladen.

Het besturingssysteem heeft twee snelheidsmodi:snel en langzaam.

Hoe het te bouwen?

Hardware-onderdeel

Soldeerdraden op de motorpolen en op de IDT-ontvangerkaart (Pin OUT met rode draad en pin GND met zwarte draad). Voor deze stap heb je een soldeerbout en 6 draden nodig.

Het elektronische circuit maken. Je kunt een breadboard gebruiken om je circuit te maken of anders kun je alle verbindingen solderen.

LET OP:Gebruik een 3.7V Li-Po batterij met minstens 700mAh capaciteit! Anders kan de batterij oververhit raken en exploderen!

De CN6009 afstellen. Step-up power converter module naar 5V. Gebruik een schroevendraaier om de uitvoerwaarde van de CN6009 aan te passen. Controleer de uitgangsspanning (door een voltmeter aan te sluiten op de pinnen OUT+ en OUT-).

Aansluiten van de IDT draadloze power Qi 5W ontvanger. Neem een ​​stuk plastic (bijvoorbeeld een plastic kaart) om een ​​basis te maken voor de Wireless Power Receiver aan de onderkant van de auto. Lijm vervolgens het stuk plastic en de ontvanger met siliconen aan de onderkant van de auto. Sluit tot slot de rode draad van de IDT-ontvanger aan op de VIN-pin van de Arduino en de zwarte draad op de GND-pin.

Het voertuig stabiel maken. Bevestig met tie-wraps de batterij en het breadboard aan het voertuig.

Softwareonderdeel– Wi-Fi-verbinding

Kopieer voor dit onderdeel gewoon de code. Vul in het codebestand uw netwerk-SSID en wachtwoord in (regel 12, 13 in het codebestand). U moet de commentaarinstructies volgen. De code is momenteel ingesteld om te werken met WPA/WPA2-netwerken. Als je verbinding wilt maken met een WEP of een open netwerk, volg dan de instructies in de opmerkingen bij de code (regels 34-37).

Hoe te gebruiken?

Stap 1:Verbinding maken met de Arduino MKR1000

Voor het besturen van het voertuig is een Wi-Fi-verbinding vereist. Dat kun je op twee manieren bereiken. De eerste is om Wi-Fi Hotspot op uw mobiele apparaat in te schakelen en het bord met de Hotspot te verbinden. De tweede is om je mobiele apparaat en het Arduino-bord met dezelfde wifi-router te verbinden. Zorg ervoor dat u de SSID- en wachtwoordinstellingen van uw router invult in het codebestand dat naar het Arduino-bord wordt geüpload.

Opmerking:het is beter om de eerste methode (Wi-Fi Hotspot) te gebruiken, omdat u op deze manier uw voertuig kunt besturen zonder dat u een router nodig heeft.

Stap 2:Het IP-adres van de Arduino MKR1000 verkrijgen

Als het Arduino-bord is verbonden met de hotspot van je mobiele apparaat, ga dan naar Wi-Fi Hotspot-instellingen en daar zie je het IP-adres van je bord (bijv. 192.168.1.1).

Als het Arduino-bord is verbonden met een wifi-router, moet je dat controleren in de routerinstellingen.

De LED op de auto geeft een succesvolle verbinding met het opgegeven netwerk en serveractivering aan.

Stap 3:Toegang tot de webserver van de Arduino MKR1000

Ga naar je browser en typ in het URL-vak het IP-adres van je Arduino.

Stap 4:Het oplaadstation aansluiten

Sluit de IDT P9038-R-EVK – Qi 5W-zender aan op een stopcontact met behulp van een 5V DC-adapter.

Stap 5:Veel plezier!

Oplaadtijd!!

Testrit:

Gerber-bestanden van PCBWeb

Code

  • Arduino_IDT_Wi-Fi_Car.ino
Arduino_IDT_Wi-Fi_Car.inoArduino
Vervang voorbeeld en wachtwoord in regel 12-13 door respectievelijk uw ssid en wachtwoord.
#include #include const int motor1Control =2; // Rechts 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; // Voor het aangeven van een succesvolle Wi-Fi-verbindingchar ssid[] ="voorbeeld"; // Vul uw netwerk SSID (naam)char pass[] ="wachtwoord" in; // Vul uw netwerkwachtwoord in keyIndex =0; // Vul uw netwerksleutel in Indexnummer (optioneel - alleen nodig voor WEP)int status =WL_IDLE_STATUS;String readString;WiFiServer server(80); // Definieer de poort van de serverString speedMode ="fast";void setup() { pinMode(motor1Control, OUTPUT); pinMode (motor2Control, UITGANG); pinMode (motor1Input1, OUTPUT); pinMode (motor1Input2, OUTPUT); pinMode (motor2Input1, OUTPUT); pinMode (motor2Input2, OUTPUT); pinMode (wifiLed, UITGANG); // Poging om verbinding te maken met wifi-netwerk:while (status! =WL_CONNECTED) { // Maak verbinding met WPA/WPA2-netwerk. Wijzig deze regel bij gebruik van een open of WEP-netwerk:// Vervang voor een WEP-netwerk door:status =WiFi.begin(ssid, keyIndex, pass); // Vervang voor open netwerk door:status =WiFi.begin(ssid); status =WiFi.begin(ssid, pass); // wacht 10 seconden op verbinding:vertraging (10000); } // Begin de webserver server.begin(); // Geef aan dat de server digitalWrite (wifiLed, HIGH);}void loop () gebruikt { // Luister naar inkomende clients WiFiClient client =server.available (); if (client) { // een http-verzoek eindigt met een lege regel boolean currentLineIsBlank =true; while (client.connected()) { if (client.available()) { char c =client.read(); // Als je aan het einde van de regel bent gekomen (een nieuwe regel //-teken ontvangen) en de regel is leeg, is het http-verzoek beëindigd, // dus je kunt een antwoord sturen als (readString.length() <100 ) {//opslaan karakters naar string readString +=c; } if (c =='\n') { // stuur een standaard http-antwoordheader client.println ("HTTP/1.1 200 OK"); client.println ("Inhoudstype:tekst/html"); klant.println(); client.println(""); cliënt.println(""); client.println(""); client.println(""); client.println("a.button {-webkit-uiterlijk:button;"); client.println ("-moz-uiterlijk:knop;"); client.println("uiterlijk:knop;"); client.println("hoogte:400px;"); client.println("regelhoogte:400px;"); client.println("text-align:center;"); client.println("tekstdecoratie:geen;"); client.println ("lettergrootte:100px;"); client.println("kleur:initiaal;}"); cliënt.println(""); cliënt.println(""); client.println(""); // Knop om vooruit te gaan client.println("FORWARDS
"); client.println("
"); // Knop om naar links te draaien client.println("LINKS "); // Knop om de auto te stoppen client.println("STOP " ); // Knop om naar rechts te draaien client.println("RECHTS "); cliënt.println("
"); // Knop om achteruit te gaan client.println("ACHTERUIT "); client.println("
"); client.println("
"); // Knop om achteruit te gaan client.println("

SNELHEIDSMODUS

"); client.println("FAST"); client.println("SLOW "); client.println(" "); client.println(""); break; } // Bepaal op welke knop is geklikt (indien aanwezig) // Fast Mode-knop if (readString.indexOf("?fast")> 0){ speedMode ="fast"; // Wis de readString om de volgende opdracht te kunnen krijgen readString =""; } // Slow Mode-knop if (readString.indexOf("?slow")> 0){ speedMode ="slow"; // Wis de readString om het volgende commando readString ="" te krijgen; } // Fast Mode if (speedMode =="fast"){ if (readString.indexOf("?moveForwards")> 0 ){ moveForwards(); // Wis de readString om het volgende commando readString ="" te krijgen; } if (readString.indexOf("?moveBackwards")> 0){ moveBackwards(); // Wis de readString naar in staat zijn om het volgende commando readString =""; } } else if (speedMode =="slow"){ // Slow Mode if (readString.indexOf("?moveForwards")> 0){ moveForwardsSlow(); // Wis de readString om het volgende commando r . te krijgen eadString =""; } if (readString.indexOf("?moveBackwards")> 0){ moveBackwardsSlow(); // Wis de readString om het volgende commando readString ="" te krijgen; } } if (readString.indexOf("?turnLeft")> 0){ turnLeft(); // Wis de readString om het volgende commando readString ="" te krijgen; } if (readString.indexOf("?turnRight")> 0){ turnRight(); // Wis de readString om het volgende commando readString ="" te krijgen; } if (readString.indexOf("?stopMoving")> 0){ stopMoving(); // Wis de readString om het volgende commando readString ="" te krijgen; } } } // Geef de webbrowser de tijd om de gegevensvertraging te ontvangen(1); // Sluit de verbinding:client.stop(); }}// Commando's om vooruit te gaanvoid moveForwards(){ digitalWrite(motor1Control, HIGH); digitalWrite (motor2Control, HOOG); digitalWrite (motor1Input1, LAAG); digitalWrite (motor1Input2, HOOG); digitalWrite (motor2Input1, LAAG); digitalWrite(motor2Input2, HIGH);}// Commando's om achteruit te gaan, ongeldig moveBackwards(){ digitalWrite(motor1Control, HIGH); digitalWrite (motor2Control, HOOG); digitalWrite (motor1Input1, HOOG); digitalWrite (motor1Input2, LAAG); digitalWrite (motor2Input1, HOOG); digitalWrite (motor2Input2, LOW);}// Commando's voor rechtsdraaien ongeldig turnRight(){ // Lagere spanning wordt geleverd om langzamer te draaien - betere controle analogWrite (motor1Control, 0); analoogWrite(motor2Control, 200); digitalWrite (motor1Input1, HOOG); digitalWrite (motor1Input2, LAAG); digitalWrite (motor2Input1, LAAG); digitalWrite (motor2Input2, HIGH);}// Commando's voor het draaien naar links niet naar links (){ // Er wordt een lagere spanning geleverd om langzamer te draaien - betere controle analogWrite (motor1Control, 200); analoogWrite(motor2Control, 0); digitalWrite (motor1Input1, LAAG); digitalWrite (motor1Input2, HOOG); digitalWrite (motor2Input1, HOOG); digitalWrite(motor2Input2, LOW);}// Commando's voor het stoppen van de carvoid stopMoving() {digitalWrite(motor1Control, LOW); digitalWrite (motor2Control, LAAG); digitalWrite (motor1Input1, LAAG); digitalWrite (motor1Input2, LAAG); digitalWrite (motor2Input1, LAAG); digitalWrite (motor2Input2, LOW);}// Commando's voor voorwaartse beweging met lage snelheid, beweging ForwardsSlow () {analogeWrite (motor1Control, 200); analoogWrite(motor2Control, 200); digitalWrite (motor1Input1, LAAG); digitalWrite (motor1Input2, HOOG); digitalWrite (motor2Input1, LAAG); digitalWrite(motor2Input2, HIGH);}// Commando's voor achterwaarts bewegen met lage snelheid void moveBackwardsSlow(){ analogWrite(motor1Control, 200); analoogWrite(motor2Control, 200); digitalWrite (motor1Input1, HOOG); digitalWrite (motor1Input2, LAAG); digitalWrite (motor2Input1, HOOG); digitalWrite(motor2Input2, LOW);}

Aangepaste onderdelen en behuizingen

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

Schema's


Productieproces

  1. C# Constructor
  2. C# geneste klasse
  3. C# Constructor Overbelasting
  4. De groeiende dreiging van IoT met Wi-Fi
  5. Precisie gemaakte motoronderdelen voor auto's
  6. Het autokriksysteem begrijpen
  7. Cilinderconfiguraties van automotor
  8. Begrijpen hoe de motor van een auto werkt
  9. Hoe repareer ik een gaslek in mijn auto?
  10. Heeft een auto-upgrade invloed op de garantie?
  11. Hoe de deurklink van uw auto te repareren?