Taula de continguts:

WiBot: 10 passos (amb imatges)
WiBot: 10 passos (amb imatges)

Vídeo: WiBot: 10 passos (amb imatges)

Vídeo: WiBot: 10 passos (amb imatges)
Vídeo: 10 STEPS TO IMPROVISE JAZZ 2024, De novembre
Anonim
WiBot
WiBot

Aquest document instructiu detalla el procés per construir un robot Wi-Fi a la plataforma ZYBO. Aquest projecte utilitza un sistema operatiu en temps real per a la detecció d’objectes, la mesura de distància i el control sensible. Aquesta guia tractarà sobre la interfície del ZYBO amb els perifèrics, l'execució de microprogramari personalitzat i la comunicació a través de l'aplicació Java. A continuació es mostra una llista de tots els components clau necessaris per a aquest projecte:

  • 1 Tauler de desenvolupament de ZYBO
  • 1 enrutador sense fils TL-WR802N
  • 1 xassís Shadow
  • 2 rodes de 65 mm
  • 2 motors de 140 rpm
  • 2 codificadors de rodes
  • 1 sensor ultrasònic HC-SR04
  • 1 convertidor de nivell lògic BSS138
  • 1 controlador de motor pont L H. L293
  • 1 convertidor de 12V a 5V CC / CC
  • 1 bateria LiPo de 2200 mAh
  • 1 cable Ethernet
  • 1 cable USB Micro-B
  • 1 connector femella XT60
  • 2 cables de pont masculí a femení
  • 30 cables de pont masculí a home
  • 2 resistències de 10kΩ
  • 1 tauler de pa

A més, cal instal·lar el següent programari a l'ordinador de destinació:

  • Xilinx Vivado Design Suite 2018.2
  • Digilent Adept 2.19.2
  • FreeRTOS 10.1.1
  • Kit de desenvolupament Java SE 8.191

Pas 1: Munteu el xassís del robot

Muntatge del xassís del robot
Muntatge del xassís del robot
Muntatge del xassís del robot
Muntatge del xassís del robot
Muntatge del xassís del robot
Muntatge del xassís del robot

Muntar el xassís d’ombra i connectar els motors i els codificadors al quadre inferior. El sensor ZYBO, el tauler de control i els ultrasons es poden muntar amb les parts que es poden imprimir i fixar en 3D al xassís mitjançant separadors i cinta de doble cara. La bateria s’ha de muntar a la part posterior del robot i preferiblement entre marcs inferiors. Munteu l’encaminador a prop del ZYBO i el convertidor CC / CC a prop de la placa de control. Connecteu les rodes als motors d’engranatges al final.

Pas 2: Electrònica per cable

Electrònica de filferro
Electrònica de filferro
Electrònica de filferro
Electrònica de filferro
Electrònica de filferro
Electrònica de filferro

Connecteu l'entrada i la sortida del convertidor CC / CC als dos rails d'alimentació de la placa de control, respectivament. Aquests serviran com a subministraments de 12V i 5V per al sistema. Connecteu el ZYBO al carril de 5V com es mostra a la imatge. Utilitzeu un cable d’alimentació USB Micro-B per connectar també l’encaminador al carril de 5V. El cable XT60 s’ha d’adherir al carril de 12V. No connecteu la bateria fins que la resta d’electrònics estiguin correctament connectats. El sensor ultrasònic s’ha de connectar al carril de 5V. Creeu un rail de 3,3 V a la placa mitjançant el pin 6 del port JC Pmod del ZYBO. L’entrada d’alta tensió del convertidor lògic s’ha de connectar al carril de 5 V mentre que l’entrada de baixa tensió del convertidor lògic s’ha de connectar al carril de 3,3 V. Connecteu els codificadors del motor al carril de 3,3 V. Connecteu VCC1 del controlador del motor al carril de 5V i connecteu VCC2 al carril de 12V. Lligueu tots els pins EN a 5V i poseu a terra tots els pins GND.

Connecteu els pins TRIG i ECHO del sensor d'ultrasons a HV1 i HV2 del convertidor lògic respectivament. LV1 s’ha de connectar a JC4 i LV2 s’ha de connectar a JC3. Consulteu el gràfic per als pinouts Pmod. Connecteu els motors al controlador del motor. Y1 s’ha de connectar al terminal positiu del motor dret i Y2 s’ha de connectar al terminal negatiu del motor dret. De la mateixa manera, Y3 s’hauria de connectar al terminal positiu del motor esquerre i Y4 hauria de connectar-se al terminal negatiu del motor esquerre. A1, A2, A3 i A4 s’han d’assignar a JB2, JB1, JB4 i JB3 respectivament. Consulteu l’esquema per obtenir números de pin. Connecteu JC2 al codificador dret i JC1 al codificador esquerre. Assegureu-vos que s’utilitzen resistències de tracció per lligar aquests senyals al carril de 3,3 V. Per últim, utilitzeu el cable ethernet per connectar el ZYBO al router.

Pas 3: Creeu un diagrama de blocs a Vivado

Crea un diagrama de blocs a Vivado
Crea un diagrama de blocs a Vivado

Creeu un nou projecte RTL a Vivado. Assegureu-vos que no especifiqueu cap font en aquest moment. Cerqueu "xc7z010clg400-1" i feu clic a Finalitza. Baixeu encoder_driver.sv i ultrasonic_driver.sv. Col·loqueu-los a les seves pròpies carpetes. Obriu el paquet d'IP a "Eines" i trieu empaquetar un directori especificat. Enganxeu el camí a la carpeta que conté el controlador del codificador i premeu "Següent". Feu clic a "Paquet IP" i repetiu els processos per al controlador del sensor d'ultrasons. Després, aneu al gestor de dipòsits a la subsecció IP del menú de configuració. Afegiu els camins a les carpetes del controlador i feu clic a Aplica per incloure-los a la biblioteca IP.

Creeu un nou diagrama de blocs i afegiu el "Sistema de processament ZYNQ7". Feu doble clic al bloc i importeu el fitxer ZYBO_zynq_def.xml proporcionat. A "Configuració MIO", activeu el temporitzador 0 i GPIO MIO. premeu "D'acord" per desar la configuració. Afegiu 3 blocs "AXI GPIO" i 4 blocs "AXI Timer". Executeu l’automatització de blocs seguida d’automatització de connexions per a S_AXI. Feu doble clic als blocs GPIO per configurar-los. Un bloc ha de ser de doble canal amb una entrada de 4 bits i una sortida de 4 bits. Feu que aquestes connexions siguin externes i etiqueteu-les SW com a entrada i LED per a sortida. El segon bloc també hauria de ser de doble canal amb 2 entrades de 32 bits. L'últim bloc GPIO serà una única entrada de 32 bits. Feu que la sortida pwm0 de cada bloc de temporitzador sigui externa. Etiqueu-los PWM0, PWM1, PWM2 i PWM3.

Afegiu el controlador del codificador al diagrama de blocs i connecteu CLK a FCLK_CLK0. Connecteu OD0 i OD1 als canals d’entrada del segon bloc GPIO. Feu que ENC sigui extern i canvieu el nom de ENC_0 a ENC. Afegiu el bloc de sensors d’ultrasons i connecteu CLK a FCLK_CLK0. Feu que TRIG i ECHO siguin externs i canvieu el nom de TRIG_0 a TRIG i ECHO_0 a ECHO. Connecteu RF al tercer bloc GPIO. Consulteu el diagrama de blocs proporcionat com a referència.

Feu clic amb el botó dret al fitxer del diagrama de blocs al tauler Fonts i creeu un embolcall HDL. Assegureu-vos de permetre les modificacions dels usuaris. Afegiu el fitxer ZYBO_Master.xdc proporcionat com a restricció. Feu clic a "Genera Bitstream" i feu una pausa per prendre un cafè.

Pas 4: Configuració de l'entorn de desenvolupament de programari

Aneu a "Fitxer" per exportar maquinari a l'SDK de Vivado. Assegureu-vos d’incloure el flux de bits. Importeu el projecte RTOSDemo dins del "CORTEX_A9_Zynq_ZC702". Estarà situat al directori d’instal·lació de FreeRTOS. Creeu un nou paquet de suport per a taulers, seleccioneu la biblioteca lwip202. Canvieu el BSP referenciat al projecte RTOSDemo pel BSP que acabeu de crear *.

* En el moment d’escriure aquest instructiu, FreeRTOS sembla tenir un error en fer referència al BSP correcte. Per solucionar-ho, creeu un BSP nou amb la mateixa configuració que la primera. Canvieu el BSP a què fa referència el nou i, a continuació, torneu a canviar-lo al vell després que no es construeixi. FreeRTOS ara hauria de compilar-se sense errors. No dubteu a suprimir el BSP no utilitzat.

Pas 5: Modifiqueu el programa de demostració

Creeu una nova carpeta anomenada "controladors" al directori "src" de RTOSDemo. Copieu el gpio.h proporcionat. gpio.c, pwm.h, pwm.c, odometer.h, odometer.c, rangefinder.c, rangefinder.h, motor.h i motor.c al directori "controladors".

Obriu main.c i configureu mainSELECTED_APPLICATION en 2. Substituïu main_lwIP.c a "lwIP_Demo" per la versió actualitzada. BasicSocketCommandServer.c a "lwIP_Demo / apps / BasicSocketCommandServer" també s'ha d'actualitzar amb una nova versió. Per últim, aneu a "FreeRTOSv10.1.1 / FreeRTOS-Plus / Demo / Common / FreeRTOS_Plus_CLI_Demos" i substituïu Sample-CLI-commands.c per la versió proporcionada. Construïu el projecte i assegureu-vos que tot es compila amb èxit.

Pas 6: Firmware de Flash a QSPI

Firmware Flash a QSPI
Firmware Flash a QSPI
Firmware Flash a QSPI
Firmware Flash a QSPI
Firmware Flash a QSPI
Firmware Flash a QSPI

Creeu un nou projecte d'aplicació anomenat "FSBL" mitjançant la plantilla "Zynq FSBL". Després de compilar el projecte FSBL, creeu una imatge d’arrencada del projecte RTOSDemo. Assegureu-vos que "FSBL / Debug / FSBL.elf" estigui seleccionat com a carregador d'arrencada a "Particions d'imatge d'arrencada". Afegiu el camí a aquest fitxer manualment si no apareix a la llista.

Moveu el pont JP5 al ZYBO a "JTAG". Utilitzeu un cable USB Micro-B per connectar l’ordinador al ZYBO. Connecteu la bateria i engegueu el ZYBO. Executeu Adept per assegurar-vos que l’ordinador identifica correctament el ZYBO. Feu clic a "Programa Flash" a l'SDK de Vivado i proporcioneu els camins d'accés al fitxer BOOT.bin a RTOSDemo i al fitxer FSBL.elf a FSBL. Assegureu-vos de seleccionar "Verifica després del flaix" abans de prémer "Programa". Mireu la consola per assegurar-vos que l'operació intermitent s'ha completat correctament. Després, apagueu el ZYBO i desconnecteu el cable USB. Mou el pont JP5 a "QSPI".

Pas 7: configureu el punt d'accés sense fils

Amb la bateria encara connectada, connecteu-vos a la xarxa Wi-Fi del router. El SSID i la contrasenya per defecte haurien d’estar a la part inferior del router. Després, aneu a https://tplinkwifi.net i inicieu la sessió amb "admin" per obtenir el nom d'usuari i la contrasenya. Executeu l'assistent de configuració ràpida per configurar l'encaminador en mode de punt d'accés amb DHCP activat. Assegureu-vos d’actualitzar també el nom d’usuari i la contrasenya per defecte del dispositiu. Un cop hagueu acabat, l'encaminador s'ha de reiniciar automàticament al mode de punt d'accés.

Enceneu el ZYBO i connecteu-vos al router mitjançant l’SSID que heu assignat. És probable que el router aparegui amb l'adreça IP 192.168.0.100 o 192.160.0.101. El ZYBO s’assignarà a qualsevol adreça que no tingui l’encaminador. Per determinar ràpidament l'adreça IP del router, podeu executar "ipconfig" des del símbol del sistema a Windows o "ifconfig" des del terminal a Linux o MacOS. Si encara esteu connectat al router, veureu la seva adreça IP al costat de la vostra interfície sense fils. Utilitzeu aquesta informació per determinar l'adreça IP del ZYBO. Per confirmar l'adreça IP del ZYBO, podeu fer ping des de la línia d'ordres o connectar-vos-hi mitjançant telnet.

Pas 8: executeu el programa Java

Executeu el programa Java
Executeu el programa Java

Descarregueu RobotClient.java i compileu el fitxer amb l'ordre "javac RobotClient.java" de la línia d'ordres. Executeu l'ordre "java RobotClient" on "ip_address" és l'adreça IP del ZYBO. La interfície gràfica de control apareixerà si s'estableix una connexió correcta entre l'ordinador i el ZYBO. Després d’enfocar la finestra, el robot hauria de ser controlable mitjançant les tecles de fletxa del teclat. Premeu el botó d'escapament per finalitzar la sessió i desconnecteu-vos del robot.

La GUI ressaltarà les tecles que es premen i mostrarà la sortida del motor a la part superior dreta. El mesurador de distància de l’esquerra omple una barra cada 2 metres fins a un màxim de 10 metres.

Pas 9: calibra el telemetre

Els commutadors integrats al ZYBO es poden utilitzar per configurar el telemetre integrat. La distància mínima de detecció d es dóna en funció de l’entrada del commutador i:

d = 50i + 250

L'entrada pot variar entre 0 i 15 en passos enters. Això es tradueix en un rang de distància de 0,25 a 1 metre. A la distància mínima, el primer LED començarà a parpellejar. El nombre de LEDs actius és proporcional a la proximitat de l'objecte.

Pas 10: accessibilitat

Aquest robot és molt fàcilment accessible. A causa de la simplicitat del seu control, es pot controlar completament amb només un dit. Per millorar l'accessibilitat, es podria afegir suport per a dispositius d'entrada addicionals. Això podria permetre que els usos discapacitats puguin controlar el robot amb una part diferent del seu cos.

Recomanat: