Taula de continguts:
- Pas 1: Munteu el xassís del robot
- Pas 2: Electrònica per cable
- Pas 3: Creeu un diagrama de blocs a Vivado
- Pas 4: Configuració de l'entorn de desenvolupament de programari
- Pas 5: Modifiqueu el programa de demostració
- Pas 6: Firmware de Flash a QSPI
- Pas 7: configureu el punt d'accés sense fils
- Pas 8: executeu el programa Java
- Pas 9: calibra el telemetre
- Pas 10: accessibilitat
Vídeo: WiBot: 10 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
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
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
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
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
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
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:
Llum (s) LED amb bateria amb càrrega solar: 11 passos (amb imatges)
Llums LED amb bateria amb càrrega solar: la meva dona ensenya a la gent a fer sabó, la majoria de les seves classes eren al vespre i aquí a l’hivern es fa fosc cap a les 4:30 de la tarda, alguns dels seus alumnes tenien problemes per trobar el nostre casa. Teníem un rètol frontal però fins i tot amb un lligam al carrer
Porta imatges amb altaveu incorporat: 7 passos (amb imatges)
Suport d'imatges amb altaveu incorporat: aquí teniu un gran projecte per dur a terme durant el cap de setmana, si voleu que us poseu un altaveu que pugui contenir imatges / postals o fins i tot la vostra llista de tasques. Com a part de la construcció, utilitzarem un Raspberry Pi Zero W com a centre del projecte i un
Reconeixement d'imatges amb plaques K210 i Arduino IDE / Micropython: 6 passos (amb imatges)
Reconeixement d’imatges amb plaques K210 i Arduino IDE / Micropython: ja vaig escriure un article sobre com executar demostracions d’OpenMV a Sipeed Maix Bit i també vaig fer un vídeo de demostració de detecció d’objectes amb aquesta placa. Una de les moltes preguntes que la gent ha formulat és: com puc reconèixer un objecte que la xarxa neuronal no és tr
Gesture Hawk: robot controlat amb gestos manuals mitjançant la interfície basada en el processament d’imatges: 13 passos (amb imatges)
Gesture Hawk: robot controlat amb gestos manuals mitjançant interfície basada en el processament d’imatges: Gesture Hawk es va mostrar a TechEvince 4.0 com una interfície simple màquina basada en el processament d’imatges. La seva utilitat rau en el fet que no es requereixen cap sensor addicional ni un dispositiu portàtil, excepte un guant, per controlar el cotxe robòtic que funciona amb diferents
Com desmuntar un ordinador amb passos i imatges senzills: 13 passos (amb imatges)
Com desmuntar un ordinador amb passos i imatges senzills: és una instrucció sobre com desmuntar un ordinador. La majoria dels components bàsics són modulars i fàcilment eliminables. Tanmateix, és important que us organitzeu al respecte. Això us ajudarà a evitar la pèrdua de peces i també a fer el muntatge