Table des matières:

WiBot : 10 étapes (avec photos)
WiBot : 10 étapes (avec photos)

Vidéo: WiBot : 10 étapes (avec photos)

Vidéo: WiBot : 10 étapes (avec photos)
Vidéo: Нерф Бластерс Плавающая битва на острове | Чудеса 2024, Novembre
Anonim
WiBot
WiBot

Cette instructable détaille le processus de construction d'un robot Wi-Fi sur la plate-forme ZYBO. Ce projet utilise un système d'exploitation en temps réel pour la détection d'objets, la mesure de distance et le contrôle réactif. Ce guide couvrira l'interfaçage du ZYBO avec des périphériques, l'exécution d'un micrologiciel personnalisé et la communication via une application Java. Voici une liste de tous les composants clés requis pour ce projet:

  • 1 carte de développement ZYBO
  • 1 routeur sans fil TL-WR802N
  • 1 châssis d'ombre
  • 2 roues de 65 mm
  • 2 motoréducteurs 140 tr/min
  • 2 encodeurs de roue
  • 1 capteur à ultrasons HC-SR04
  • 1 convertisseur de niveau logique BSS138
  • 1 pilote de moteur pont en H L293
  • 1 Convertisseur 12V à 5V DC/DC
  • 1 batterie LiPo 2200mAh
  • 1 câble Ethernet
  • 1 câble USB Micro-B
  • 1 connecteur femelle XT60
  • 2 fils de connexion mâle-femelle
  • 30 fils de connexion mâle-mâle
  • 2 résistances 10kΩ
  • 1 planche à pain

De plus, les logiciels suivants doivent être installés sur l'ordinateur cible:

  • Xilinx Vivado Design Suite 2018.2
  • Adepte de Digilent 2.19.2
  • FreeRTOS 10.1.1
  • Kit de développement Java SE 8.191

Étape 1: Assembler le châssis du robot

Assembler le châssis du robot
Assembler le châssis du robot
Assembler le châssis du robot
Assembler le châssis du robot
Assembler le châssis du robot
Assembler le châssis du robot

Assemblez le châssis fantôme et fixez les motoréducteurs et les encodeurs au châssis inférieur. Le ZYBO, la planche à pain et le capteur à ultrasons peuvent être montés avec les pièces fournies qui peuvent être imprimées en 3D et fixées au châssis à l'aide d'entretoises et de ruban adhésif double face. La batterie doit être montée près de l'arrière du robot et de préférence entre le haut et cadres inférieurs. Montez le routeur à proximité du ZYBO et le convertisseur DC/DC à proximité de la maquette. Fixez les roues aux motoréducteurs à la toute fin.

Étape 2: Câbler l'électronique

Fil Électronique
Fil Électronique
Fil Électronique
Fil Électronique
Fil Électronique
Fil Électronique

Connectez respectivement l'entrée et la sortie du convertisseur DC/DC aux deux rails d'alimentation de la maquette. Ceux-ci serviront d'alimentations 12V et 5V pour le système. Connectez le ZYBO au rail 5V comme indiqué sur l'image. Utilisez également un câble d'alimentation USB Micro-B pour connecter le routeur au rail 5V. Le câble XT60 doit être attaché au rail 12V. Ne branchez pas la batterie tant que le reste de l'électronique n'est pas correctement câblé. Le capteur à ultrasons doit être câblé au rail 5V. Créez un rail 3,3 V sur la maquette en utilisant la broche 6 du port Pmod JC sur le ZYBO. L'entrée haute tension du convertisseur logique doit être câblée au rail 5V tandis que l'entrée basse tension du convertisseur logique doit être câblée au rail 3,3V. Câblez les encodeurs du moteur au rail 3,3 V. Connectez VCC1 du pilote de moteur au rail 5V et connectez VCC2 au rail 12V. Attachez toutes les broches EN à 5V et mettez à la terre toutes les broches GND.

Connectez les broches TRIG et ECHO du capteur à ultrasons respectivement à HV1 et HV2 du convertisseur logique. LV1 doit être câblé à JC4 et LV2 doit être câblé à JC3. Reportez-vous au tableau pour les brochages Pmod. Connectez les moteurs au pilote de moteur. Y1 doit être connecté à la borne positive du moteur droit et Y2 doit être connecté à la borne négative du moteur droit. De même, Y3 doit être connecté à la borne positive du moteur gauche et Y4 doit être connecté à la borne négative du moteur gauche. A1, A2, A3 et A4 doivent être mappés sur JB2, JB1, JB4 et JB3 respectivement. Reportez-vous au schéma pour les numéros de broche. Câblez JC2 à l'encodeur droit et JC1 à l'encodeur gauche. Assurez-vous que des résistances de rappel sont utilisées pour lier ces signaux au rail 3,3 V. Enfin, utilisez le câble Ethernet pour connecter le ZYBO au routeur.

Étape 3: Créer un diagramme dans Vivado

Créer un diagramme dans Vivado
Créer un diagramme dans Vivado

Créez un nouveau projet RTL dans Vivado. Assurez-vous de ne spécifier aucune source pour le moment. Recherchez "xc7z010clg400-1" et appuyez sur Terminer. Téléchargez encoder_driver.sv et ultrasonic_driver.sv. Placez-les dans leurs propres dossiers. Ouvrez le packager IP sous "Outils" et choisissez de packager un répertoire spécifié. Collez le chemin d'accès au dossier contenant le pilote de l'encodeur et cliquez sur "Suivant". Cliquez sur "package IP" et répétez les processus pour le pilote de capteur à ultrasons. Ensuite, accédez au gestionnaire de référentiel sous la sous-section IP dans le menu des paramètres. Ajoutez les chemins d'accès aux dossiers des pilotes et appuyez sur Appliquer pour les inclure dans la bibliothèque IP.

Créez un nouveau diagramme et ajoutez le "ZYNQ7 Processing System". Double-cliquez sur le bloc et importez le fichier ZYBO_zynq_def.xml fourni. Sous "Configuration MIO", activez Timer 0 et GPIO MIO. appuyez sur "OK" pour enregistrer la configuration. Ajoutez 3 blocs "AXI GPIO" et 4 blocs "AXI Timer". Exécutez l'automatisation de bloc suivie de l'automatisation de connexion pour S_AXI. Double-cliquez sur les blocs GPIO pour les configurer. Un bloc doit être à double canal avec une entrée 4 bits et une sortie 4 bits. Faites ces connexions externes et étiquetez-les SW pour l'entrée et LED pour la sortie. Le deuxième bloc doit également être à double canal avec 2 entrées 32 bits. Le dernier bloc GPIO sera une seule entrée 32 bits. Rendez la sortie pwm0 de chaque bloc de minuterie externe. Nommez-les PWM0, PWM1, PWM2 et PWM3.

Ajoutez le pilote d'encodeur au diagramme et connectez CLK à FCLK_CLK0. Connectez OD0 et OD1 aux canaux d'entrée du deuxième bloc GPIO. Rendez ENC externe et renommez ENC_0 en ENC. Ajoutez le bloc de capteur à ultrasons et connectez CLK à FCLK_CLK0. Rendez TRIG et ECHO externes et renommez TRIG_0 en TRIG et ECHO_0 en ECHO. Connectez RF au troisième bloc GPIO. Reportez-vous au schéma fonctionnel fourni pour référence.

Cliquez avec le bouton droit sur votre fichier de diagramme dans le volet Sources et créez un wrapper HDL. Assurez-vous d'autoriser les modifications par l'utilisateur. Ajoutez le fichier ZYBO_Master.xdc fourni en tant que contrainte. Appuyez sur "Générer Bitstream" et faites une pause-café.

Étape 4: Configuration de l'environnement de développement logiciel

Allez sous "Fichier" pour exporter le matériel vers le SDK Vivado. Assurez-vous d'inclure le flux binaire. Importez le projet RTOSDemo dans le "CORTEX_A9_Zynq_ZC702". Il sera situé dans le répertoire d'installation de FreeRTOS. Créez un nouveau Board Support Package, sélectionnez la bibliothèque lwip202. Remplacez le BSP référencé dans le projet RTOSDemo par le BSP que vous venez de créer*.

* Au moment de la rédaction de ce Instructable, FreeRTOS semble avoir un bogue avec le référencement du BSP correct. Pour y remédier, créez un nouveau BSP avec les mêmes paramètres que le premier. Remplacez le BSP référencé par le nouveau, puis remplacez-le par l'ancien après l'échec de la génération. FreeRTOS devrait maintenant compiler sans erreur. N'hésitez pas à supprimer le BSP inutilisé.

Étape 5: Modifier le programme de démonstration

Créez un nouveau dossier appelé "drivers" sous le répertoire "src" de RTOSDemo. Copiez le fichier gpio.h fourni. gpio.c, pwm.h, pwm.c, odometer.h, odometer.c, rangefinder.c, rangefinder.h, motor.h et motor.c dans le répertoire "drivers".

Ouvrez main.c et définissez mainSELECTED_APPLICATION sur 2. Remplacez main_lwIP.c sous "lwIP_Demo" par la version mise à jour. BasicSocketCommandServer.c sous "lwIP_Demo/apps/BasicSocketCommandServer" doit également être mis à jour avec une nouvelle version. Enfin, accédez à "FreeRTOSv10.1.1/FreeRTOS-Plus/Demo/Common/FreeRTOS_Plus_CLI_Demos" et remplacez Sample-CLI-commands.c par la version fournie. Construisez le projet et assurez-vous que tout se compile avec succès.

Étape 6: Flasher le micrologiciel vers QSPI

Micrologiciel Flash vers QSPI
Micrologiciel Flash vers QSPI
Flash du micrologiciel vers QSPI
Flash du micrologiciel vers QSPI
Micrologiciel Flash vers QSPI
Micrologiciel Flash vers QSPI

Créez un nouveau projet d'application appelé "FSBL" à l'aide du modèle "Zynq FSBL". Après avoir compilé le projet FSBL, créez une image de démarrage du projet RTOSDemo. Assurez-vous que "FSBL/Debug/FSBL.elf" est sélectionné comme chargeur de démarrage sous "Boot image partitions". Ajoutez manuellement le chemin d'accès à ce fichier s'il n'est pas répertorié.

Déplacez le cavalier JP5 du ZYBO sur "JTAG". Utilisez un câble USB Micro-B pour connecter votre ordinateur au ZYBO. Connectez la batterie et allumez le ZYBO. Exécutez Adept pour vous assurer que le ZYBO est correctement identifié par l'ordinateur. Cliquez sur "Program Flash" dans le SDK Vivado et fournissez les chemins vers le fichier BOOT.bin dans RTOSDemo et le fichier FSBL.elf dans FSBL. Assurez-vous de sélectionner "Vérifier après flash" avant de cliquer sur "Programme". Surveillez la console pour vous assurer que l'opération de clignotement s'est terminée avec succès. Ensuite, éteignez le ZYBO et débranchez le câble USB. Déplacez le cavalier JP5 sur "QSPI".

Étape 7: Configurez le point d'accès sans fil

Avec la batterie toujours connectée, connectez-vous au réseau Wi-Fi du routeur. Le SSID et le mot de passe par défaut doivent se trouver sous le routeur. Ensuite, accédez à https://tplinkwifi.net et connectez-vous en utilisant "admin" pour le nom d'utilisateur et le mot de passe. Exécutez l'assistant de configuration rapide pour configurer le routeur en mode point d'accès avec DHCP activé. Assurez-vous également de mettre à jour le nom d'utilisateur et le mot de passe par défaut de l'appareil. Le routeur devrait redémarrer automatiquement en mode point d'accès une fois que vous avez terminé.

Allumez le ZYBO et connectez-vous au routeur en utilisant le SSID que vous avez attribué. Le routeur apparaîtra très probablement sur l'adresse IP 192.168.0.100 ou 192.160.0.101. Le ZYBO se verra attribuer l'adresse que le routeur n'a pas. Pour déterminer rapidement l'adresse IP du routeur, vous pouvez exécuter "ipconfig" à partir de l'invite de commande sous Windows ou "ifconfig" à partir du terminal sous Linux ou MacOS. Si vous êtes toujours connecté au routeur, vous verrez son adresse IP s'afficher à côté de votre interface sans fil. Utilisez ces informations pour déterminer l'adresse IP du ZYBO. Pour confirmer l'adresse IP du ZYBO, vous pouvez soit lui envoyer un ping depuis la ligne de commande, soit vous y connecter via telnet.

Étape 8: Exécutez le programme Java

Exécuter le programme Java
Exécuter le programme Java

Téléchargez RobotClient.java et compilez le fichier à l'aide de la commande « javac RobotClient.java » à partir de la ligne de commande. Exécutez la commande "java RobotClient" où "ip_address" est l'adresse IP du ZYBO. L'interface graphique de contrôle apparaîtra si une connexion réussie est établie entre l'ordinateur et le ZYBO. Après avoir focalisé la fenêtre, le robot doit être contrôlable à l'aide des touches fléchées du clavier. Appuyez sur le bouton d'échappement pour terminer la session et vous déconnecter du robot.

L'interface graphique mettra en surbrillance les touches enfoncées et affichera la sortie du moteur en haut à droite. Le télémètre de gauche remplit une barre tous les 2 mètres jusqu'à un maximum de 10 mètres.

Étape 9: Calibrer le télémètre

Les commutateurs à bord du ZYBO peuvent être utilisés pour configurer le télémètre embarqué. La distance minimale de détection d est donnée en fonction de l'entrée du commutateur i:

d = 50i + 250

L'entrée peut varier entre 0 et 15 par pas entiers. Cela se traduit par une plage de distance de 0,25 mètre à 1 mètre. À la distance minimale, la première LED commencera à clignoter. Le nombre de LED actives est proportionnel à la proximité de l'objet.

Étape 10: Accessibilité

Ce robot est très facilement accessible. En raison de la simplicité de son contrôle, il peut être entièrement contrôlé avec un seul doigt. Pour améliorer l'accessibilité, la prise en charge de périphériques d'entrée supplémentaires pourrait être ajoutée. Cela pourrait permettre aux utilisateurs handicapés de contrôler le robot avec une autre partie de leur corps.

Conseillé: