Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

voiture Wi-Fi RC - Qi activé

Composants et fournitures

Kit prototype d'émetteur IDT Qi 5W
× 1
Kit prototype de récepteur IDT Qi 5W
× 1
Arduino MKR1000
× 1
• Châssis de voiture robot 2WD pour Arduino
× 1
L293DNE
× 1
CN6009 - Module convertisseur de puissance survolteur
× 1
Batterie Li-Po 3,7 V
× 1
1N4007 – Diode haute tension et courant nominal élevé
× 8
LED (générique)
× 1
Résistance 221 ohm
× 1
Cravates
× 5
Planche à pain (générique)
(Facultatif)
× 1

Outils et machines nécessaires

Fer à souder (générique)
Pistolet à colle chaude (générique)
Tournevis
Voltmètre

Applications et services en ligne

Arduino IDE

À propos de ce projet

Qu'allez-vous construire dans ce projet ?

Il s'agit d'un projet qui vous montrera étape par étape comment créer une voiture RC contrôlée par Wi-Fi qui se rechargera automatiquement sans fil pendant qu'elle est garée.

Comment ça marche ?

Le cerveau du projet est l'Arduino MKR1000 et il est connecté via Wi-Fi avec votre appareil mobile. La carte Arduino est alimentée par une batterie Li-Po de 3,7 V. Pour la commande du moteur, un pilote de moteur L293DNE est utilisé. Cependant, il a besoin d'au moins 4,5 V pour fonctionner. Nous augmenterons la tension de 3,7 V à 5 V avec un module de convertisseur de puissance élévateur (convertit la basse tension en une tension plus élevée) et de cette manière, le pilote du moteur sera alimenté en 5 V.

Pour charger la batterie, la carte Arduino MKR1000 dispose d'un système de charge automatique pour les batteries Li-Po. Lorsqu'une source d'alimentation externe (5 V CC) est connectée, la batterie connectée à la carte est en cours de charge. Donc le IDT P9025AC-R-EVK – Qi 5W Le récepteur sera connecté à la carte Arduino en tant que source externe (5V DC). Lorsque la voiture se gare sur la borne de recharge (qui est la IDT P9038-R-EVK – Qi 5W Transmetteur), la batterie se chargera.

Le système de contrôle propose deux modes de vitesse :rapide et lent.

Comment le construire ?

Partie matérielle

Fils à souder sur les pôles du moteur et sur la carte du récepteur IDT (Broche OUT avec fil rouge et broche GND avec fil noir). Pour cette étape, vous aurez besoin d'un fer à souder et de 6 fils.

Faire le circuit électronique. Vous pouvez utiliser une maquette pour créer votre circuit ou vous pouvez souder toutes les connexions.

ATTENTION : utilisez une batterie Li-Po 3,7 V avec une capacité d'au moins 700 mAh ! Sinon, la batterie peut surchauffer et exploser !

Réglage du CN6009. Module convertisseur de puissance élévateur à 5V. Pour régler la valeur de sortie du CN6009, utilisez un tournevis. Assurez-vous de vérifier la tension de sortie (en connectant un voltmètre aux broches OUT+ et OUT-).

Connexion du récepteur sans fil IDT Qi 5W. Prenez un morceau de plastique (par exemple, une carte en plastique) pour faire une base pour le récepteur d'alimentation sans fil au bas de la voiture. Collez ensuite le morceau de plastique ainsi que le récepteur au fond de la voiture avec du silicone. Enfin, connectez le fil rouge du récepteur IDT à la broche VIN de l'arduino et le fil noir à la broche GND.

Rendre le véhicule stable. Fixez avec une attache enveloppe la batterie et la planche à pain au véhicule.

Partie logicielle - Connexion Wi-Fi

Pour cette partie il suffit de copier le code. Dans le fichier de code, renseignez le SSID et le mot de passe de votre réseau (lignes 12, 13 du fichier de code). Vous devez suivre les instructions de commentaire. Le code est actuellement configuré pour fonctionner avec les réseaux WPA/WPA2. Si vous souhaitez vous connecter à un WEP ou à un réseau ouvert suivez les instructions dans les commentaires du code (lignes 34-37).

Comment l'utiliser ?

Étape 1 :connexion à l'Arduino MKR1000

Le contrôle du véhicule nécessite une connexion Wi-Fi. Vous pouvez y parvenir de deux manières. La première consiste à activer le Wi-Fi Hotspot sur votre appareil mobile et à connecter la carte au Hotspot. La seconde consiste à connecter votre appareil mobile et la carte Arduino au même routeur Wi-Fi. Assurez-vous de renseigner les paramètres SSID et mot de passe de votre routeur dans le fichier de code qui sera téléchargé sur la carte Arduino.

Remarque : Il est préférable d'utiliser la première méthode (Wi-Fi Hotspot) car de cette façon, vous pouvez contrôler votre véhicule sans avoir besoin d'un routeur.

Étape 2 :Obtention de l'adresse IP de l'Arduino MKR1000

Si la carte Arduino est connectée au point d'accès de votre appareil mobile, accédez aux paramètres du point d'accès Wi-Fi et vous y verrez l'adresse IP de votre carte (par exemple 192.168.1.1).

Si la carte Arduino est connectée à un routeur Wi-Fi, vous devez le vérifier à partir des paramètres du routeur.

La LED sur la voiture indique une connexion réussie au réseau spécifié et à l'activation du serveur.

Étape 3 :Accéder au serveur Web de l'Arduino MKR1000

Accédez à votre navigateur et dans la zone URL, saisissez l'adresse IP de votre Arduino.

Étape 4 :connexion de la base de chargement

Connectez l'émetteur IDT P9038-R-EVK - Qi 5 W à une prise murale à l'aide d'un adaptateur 5 V CC.

Étape 5 :Amusez-vous !

Temps de charge !!

Essai routier :

Fichiers Gerber de PCBWeb

Code

  • Arduino_IDT_Wi-Fi_Car.ino
Arduino_IDT_Wi-Fi_Car.inoArduino
Remplacez l'exemple et le mot de passe aux lignes 12-13 par votre ssid et votre mot de passe respectivement.
#include #include const int motor1Control =2; // Right motorconst int motor2Control =3; // Gauche motorconst int motor1Input1 =4;const int motor1Input2 =5;const int motor2Input1 =8;const int motor2Input2 =9;const int wifiLed =10; // Pour indiquer une connexion Wi-Fi réussiechar ssid[] ="example"; // Renseignez votre réseau SSID (name)char pass[] ="password"; // Remplissez votre mot de passe réseauint keyIndex =0; // Remplissez votre clé réseau Numéro d'index (facultatif - nécessaire uniquement pour WEP)int status =WL_IDLE_STATUS;String readString;WiFiServer server(80); // Définit le port du serverString speedMode ="fast";void setup() { pinMode(motor1Control, OUTPUT); pinMode(motor2Control, OUTPUT); pinMode(motor1Input1, OUTPUT); pinMode(motor1Input2, OUTPUT); pinMode(motor2Input1, OUTPUT); pinMode(motor2Input2, OUTPUT); pinMode (wifiLed, SORTIE); // Tentative de connexion au réseau Wifi :while ( status !=WL_CONNECTED) { // Connexion au réseau WPA/WPA2. Modifiez cette ligne si vous utilisez un réseau ouvert ou WEP :// Pour le réseau WEP, remplacez par :status =WiFi.begin(ssid, keyIndex, pass); // Pour un réseau ouvert, remplacez par :status =WiFi.begin(ssid); status =WiFi.begin(ssid, pass); // attend 10 secondes pour la connexion :delay(10000); } // Commencer le serveur web server.begin(); // Indique que le serveur exécute digitalWrite(wifiLed, HIGH);}void loop() { // Écoute les clients entrants WiFiClient client =server.available(); if (client) { // une requête http se termine par une ligne vide boolean currentLineIsBlank =true; while (client.connected()) { if (client.available()) { char c =client.read(); // Si vous êtes arrivé à la fin de la ligne (reçu un caractère de nouvelle ligne //) et que la ligne est vide, la requête http est terminée, // vous pouvez donc envoyer une réponse si (readString.length() <100 ) { //stocker les caractères dans la chaîne readString +=c; } if (c =='\n') { // envoie un en-tête de réponse http standard client.println("HTTP/1.1 200 OK"); client.println("Type de contenu :text/html"); client.println(); client.println(""); client.println(""); client.println(""); client.println(""); client.println(""); client.println(""); // Bouton de déplacement Forwards client.println("FORWARDS
"); client.println("
"); // Bouton pour tourner à gauche client.println("GAUCHE "); // Bouton pour arrêter la voiture client.println("STOP " ); // Bouton pour tourner à droite client.println("RIGHT "); client.println("
"); // Bouton pour reculer client.println("BACKWARDS "); client.println("
"); client.println("
"); // Bouton pour reculer client.println("

MODES DE VITESSE

"); client.println("RAPIDE"); client.println("SLOW "); client.println(" "); client.println(""); break; } // Décidez sur quel bouton a été cliqué (le cas échéant) // Bouton Fast Mode if (readString.indexOf("?fast")> 0){ speedMode ="fast"; // Efface le readString pour pouvoir obtenir la commande suivante readString =""; } // Bouton Mode lent if (readString.indexOf("?slow")> 0){ speedMode ="slow" ; // Efface le readString pour pouvoir obtenir la prochaine commande readString =""; } // Mode rapide if (speedMode =="fast"){ if (readString.indexOf("?moveForwards")> 0 ){ moveForwards(); // Efface le readString pour pouvoir obtenir la commande suivante readString =""; } if (readString.indexOf("?moveBackwards")> 0){ moveBackwards(); // Efface le readString à pouvoir obtenir la commande suivante readString =""; } } else if (speedMode =="slow"){ // Mode lent if (readString.indexOf("?moveForwards")> 0){ moveForwardsSlow(); // Effacez le readString pour pouvoir obtenir la prochaine commande r eadString =""; } if (readString.indexOf("?moveBackwards")> 0){ moveBackwardsSlow(); // Efface le readString pour pouvoir obtenir la prochaine commande readString =""; } } if (readString.indexOf("?turnLeft")> 0){ turnLeft(); // Efface le readString pour pouvoir obtenir la prochaine commande readString =""; } if (readString.indexOf("?turnRight")> 0){ turnRight(); // Efface le readString pour pouvoir obtenir la prochaine commande readString =""; } if (readString.indexOf("?stopMoving")> 0){ stopMoving(); // Efface le readString pour pouvoir obtenir la prochaine commande readString =""; } } } // Donne au navigateur Web le temps de recevoir le délai de données (1) ; // Ferme la connexion :client.stop(); }}// Commandes pour avancer void moveForwards(){ digitalWrite(motor1Control, HIGH); digitalWrite(motor2Control, HIGH); digitalWrite(motor1Input1, LOW); digitalWrite(motor1Input2, HIGH); digitalWrite(motor2Input1, LOW); digitalWrite(motor2Input2, HIGH);}// Commandes de déplacement vers l'arrièrevoid moveBackwards(){ digitalWrite(motor1Control, HIGH); digitalWrite(motor2Control, HIGH); digitalWrite(motor1Input1, HIGH); digitalWrite(motor1Input2, LOW); digitalWrite(motor2Input1, HIGH); digitalWrite(motor2Input2, LOW);}// Commandes pour tourner à droitevoid turnRight(){ // Une tension inférieure est fournie pour tourner plus lentement - un meilleur contrôle analogWrite(motor1Control, 0); analogWrite(motor2Control, 200); digitalWrite(motor1Input1, HIGH); digitalWrite(motor1Input2, LOW); digitalWrite(motor2Input1, LOW); digitalWrite(motor2Input2, HIGH);}// Commandes pour tourner leftvoid turnLeft(){ // Une tension inférieure est fournie pour tourner plus lentement - un meilleur contrôle analogWrite(motor1Control, 200); analogWrite(motor2Control, 0); digitalWrite(motor1Input1, LOW); digitalWrite(motor1Input2, HIGH); digitalWrite(motor2Input1, HIGH); digitalWrite(motor2Input2, LOW);}// Commandes pour arrêter le carvoid stopMoving() { digitalWrite(motor1Control, LOW); digitalWrite(motor2Control, LOW); digitalWrite(motor1Input1, LOW); digitalWrite(motor1Input2, LOW); digitalWrite(motor2Input1, LOW); digitalWrite(motor2Input2, LOW);}// Commandes pour le déplacement avant à basse vitessevoid moveForwardsSlow(){ analogWrite(motor1Control, 200); analogWrite(motor2Control, 200); digitalWrite(motor1Input1, LOW); digitalWrite(motor1Input2, HIGH); digitalWrite(motor2Input1, LOW); digitalWrite(motor2Input2, HIGH);}// Commandes pour le déplacement arrière à basse vitessevoid moveBackwardsSlow(){ analogWrite(motor1Control, 200); analogWrite(motor2Control, 200); digitalWrite(motor1Input1, HIGH); digitalWrite(motor1Input2, LOW); digitalWrite(motor2Input1, HIGH); digitalWrite(motor2Input2, LOW);}

Pièces et boîtiers personnalisés

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

Schémas


Processus de fabrication

  1. Constructeur C#
  2. Classe imbriquée C#
  3. Surcharge du constructeur C#
  4. La menace croissante de l'IoT compatible Wi-Fi
  5. Pièces de moteur de voiture fabriquées avec précision
  6. Comprendre le système de cric automobile
  7. Configurations de cylindre de moteur de voiture
  8. Comprendre le fonctionnement d'un moteur de voiture
  9. Comment réparer une fuite de gaz dans ma voiture ?