Tabla de contenido:
- Paso 1: Ensamble el chasis del robot
- Paso 2: Electrónica de cables
- Paso 3: crea un diagrama de bloques en Vivado
- Paso 4: Configurar el entorno de desarrollo de software
- Paso 5: modificar el programa de demostración
- Paso 6: Flash del firmware a QSPI
- Paso 7: configurar el punto de acceso inalámbrico
- Paso 8: ejecutar el programa Java
- Paso 9: calibre el telémetro
- Paso 10: Accesibilidad
Video: WiBot: 10 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
Este instructable detalla el proceso para construir un robot Wi-Fi en la plataforma ZYBO. Este proyecto utiliza un sistema operativo en tiempo real para la detección de objetos, la medición de distancias y el control de respuesta. Esta guía cubrirá la interconexión del ZYBO con periféricos, la ejecución de firmware personalizado y la comunicación a través de la aplicación Java. La siguiente es una lista de todos los componentes clave necesarios para este proyecto:
- 1 placa de desarrollo ZYBO
- 1 enrutador inalámbrico TL-WR802N
- 1 chasis de sombra
- 2 ruedas de 65 mm
- 2 motorreductores de 140 rpm
- Codificadores de 2 ruedas
- 1 sensor ultrasónico HC-SR04
- 1 convertidor de nivel lógico BSS138
- 1 controlador de motor de puente en H L293
- 1 convertidor DC / DC de 12V a 5V
- 1 batería LiPo de 2200 mAh
- 1 cable de Ethernet
- 1 cable USB Micro-B
- 1 conector hembra XT60
- 2 cables de puente macho a hembra
- 30 cables de puente macho a macho
- 2 resistencias de 10 kΩ
- 1 tablero
Además, se debe instalar el siguiente software en el equipo de destino:
- Xilinx Vivado Design Suite 2018.2
- Adepto Digilent 2.19.2
- FreeRTOS 10.1.1
- Kit de desarrollo de Java SE 8.191
Paso 1: Ensamble el chasis del robot
Ensamble el chasis de sombra y conecte los motorreductores y codificadores al marco inferior. El ZYBO, la placa de pruebas y el sensor ultrasónico se pueden montar con las piezas proporcionadas que se pueden imprimir en 3D y fijar al chasis mediante separadores y cinta adhesiva de doble cara. La batería debe montarse cerca de la parte posterior del robot y preferiblemente entre la parte superior y marcos inferiores. Monte el enrutador cerca del ZYBO y el convertidor CC / CC cerca de la placa de pruebas. Fije las ruedas a los motorreductores al final.
Paso 2: Electrónica de cables
Conecte la entrada y salida del convertidor CC / CC a los dos rieles de alimentación en la placa de prueba, respectivamente. Estos servirán como suministros de 12V y 5V para el sistema. Conecte el ZYBO al riel de 5V como se muestra en la imagen. Utilice un cable de alimentación USB Micro-B para conectar el enrutador al riel de 5V también. El cable XT60 debe conectarse al riel de 12V. No conecte la batería hasta que el resto de los componentes electrónicos estén conectados correctamente. El sensor ultrasónico debe conectarse al riel de 5V. Cree un riel de 3.3V en la placa de pruebas usando el pin 6 del puerto Pmod JC en el ZYBO. La entrada de alto voltaje del convertidor lógico debe conectarse al riel de 5 V, mientras que la entrada de bajo voltaje del convertidor lógico debe conectarse al riel de 3,3 V. Conecte los codificadores del motor al riel de 3.3V. Conecte VCC1 del controlador del motor al riel de 5V y conecte VCC2 al riel de 12V. Ate todos los pines EN a 5 V y conecte a tierra todos los pines GND.
Conecte los pines TRIG y ECHO del sensor ultrasónico a HV1 y HV2 del convertidor lógico respectivamente. LV1 debe conectarse a JC4 y LV2 debe conectarse a JC3. Consulte la tabla para conocer los pines de Pmod. Conecte los motores al controlador del motor. Y1 debe conectarse al terminal positivo del motor derecho y Y2 debe conectarse al terminal negativo del motor derecho. De manera similar, Y3 debe conectarse al terminal positivo del motor izquierdo y Y4 debe conectarse al terminal negativo del motor izquierdo. A1, A2, A3 y A4 deben asignarse a JB2, JB1, JB4 y JB3 respectivamente. Consulte el esquema para conocer los números de los pines. Conecte JC2 al codificador derecho y JC1 al codificador izquierdo. Asegúrese de que se utilicen resistencias pull-up para conectar estas señales al riel de 3.3V. Por último, utilice el cable Ethernet para conectar el ZYBO al enrutador.
Paso 3: crea un diagrama de bloques en Vivado
Cree un nuevo proyecto RTL en Vivado. Asegúrese de no especificar ninguna fuente en este momento. Busque "xc7z010clg400-1" y presione finalizar. Descarga encoder_driver.sv y ultrasic_driver.sv. Colóquelos en sus propias carpetas. Abra IP Packager en "Herramientas" y elija empaquetar un directorio específico. Pegue la ruta a la carpeta que contiene el controlador del codificador y presione "Siguiente". Haga clic en "paquete IP" y repita los procesos para el controlador del sensor ultrasónico. Luego, navegue hasta el administrador del repositorio en la subsección IP en el menú de configuración. Agregue las rutas a las carpetas del controlador y presione aplicar para incluirlas en la biblioteca de IP.
Cree un nuevo diagrama de bloques y agregue el "Sistema de procesamiento ZYNQ7". Haga doble clic en el bloque e importe el archivo ZYBO_zynq_def.xml proporcionado. En "Configuración MIO", habilite el temporizador 0 y GPIO MIO. presione "Aceptar" para guardar la configuración. Agregue 3 bloques "AXI GPIO" y 4 bloques "AXI Timer". Ejecute la automatización de bloques seguida de la automatización de conexiones para S_AXI. Haga doble clic en los bloques GPIO para configurarlos. Un bloque debe ser de doble canal con una entrada de 4 bits y una salida de 4 bits. Haga estas conexiones externas y etiquételas SW para entrada y LED para salida. El segundo bloque también debe ser de doble canal con 2 entradas de 32 bits. El último bloque GPIO será una única entrada de 32 bits. Haga que la salida pwm0 de cada bloque de temporizador sea externa. Etiquételos como PWM0, PWM1, PWM2 y PWM3.
Agregue el controlador del codificador al diagrama de bloques y conecte CLK a FCLK_CLK0. Conecte OD0 y OD1 a los canales de entrada del segundo bloque GPIO. Haga que ENC sea externo y cambie el nombre de ENC_0 a ENC. Agregue el bloque del sensor ultrasónico y conecte CLK a FCLK_CLK0. Haga que TRIG y ECHO sean externos y cambie el nombre de TRIG_0 a TRIG y ECHO_0 a ECHO. Conecte RF al tercer bloque GPIO. Consulte el diagrama de bloques proporcionado como referencia.
Haga clic con el botón derecho en su archivo de diagrama de bloques en el panel Fuentes y cree un contenedor HDL. Asegúrese de permitir las ediciones del usuario. Agregue el archivo ZYBO_Master.xdc proporcionado como restricción. Haga clic en "Generar Bitstream" y tómese un descanso para tomar café.
Paso 4: Configurar el entorno de desarrollo de software
Vaya a "Archivo" para exportar hardware al Vivado SDK. Asegúrese de incluir el flujo de bits. Importe el proyecto RTOSDemo dentro de "CORTEX_A9_Zynq_ZC702". Estará ubicado dentro del directorio de instalación de FreeRTOS. Cree un nuevo paquete de soporte de placa seleccione la biblioteca lwip202. Cambie el BSP al que se hace referencia en el proyecto RTOSDemo por el BSP que acaba de crear *.
* En el momento de escribir este Instructable, FreeRTOS parece tener un error al hacer referencia al BSP correcto. Para remediar esto, cree un nuevo BSP con la misma configuración que el primero. Cambie el BSP al que se hace referencia por el nuevo y luego cámbielo de nuevo al anterior después de que no se compile. FreeRTOS ahora debería compilarse sin errores. No dude en eliminar el BSP no utilizado.
Paso 5: modificar el programa de demostración
Cree una nueva carpeta llamada "controladores" en el directorio "src" de RTOSDemo. Copie el archivo gpio.h. gpio.c, pwm.h, pwm.c, odometer.h, odometer.c, rangefinder.c, rangefinder.h, motor.h y motor.c en el directorio "drivers".
Abra main.cy configure mainSELECTED_APPLICATION en 2. Reemplace main_lwIP.c en "lwIP_Demo" con la versión actualizada. BasicSocketCommandServer.c en "lwIP_Demo / apps / BasicSocketCommandServer" también debe actualizarse con una nueva versión. Por último, vaya a "FreeRTOSv10.1.1 / FreeRTOS-Plus / Demo / Common / FreeRTOS_Plus_CLI_Demos" y reemplace Sample-CLI-commands.c con la versión proporcionada. Cree el proyecto y asegúrese de que todo se compile correctamente.
Paso 6: Flash del firmware a QSPI
Cree un nuevo proyecto de aplicación llamado "FSBL" utilizando la plantilla "Zynq FSBL". Después de compilar el proyecto FSBL, cree una imagen de arranque del proyecto RTOSDemo. Asegúrese de que "FSBL / Debug / FSBL.elf" esté seleccionado como cargador de arranque en "Particiones de imagen de arranque". Agregue manualmente la ruta a este archivo si no está en la lista.
Mueva el puente JP5 en el ZYBO a "JTAG". Utilice un cable USB Micro-B para conectar su computadora al ZYBO. Conecte la batería y encienda el ZYBO. Ejecute Adept para asegurarse de que la computadora identifique correctamente el ZYBO. Haga clic en "Programa Flash" en Vivado SDK y proporcione las rutas al archivo BOOT.bin en RTOSDemo y el archivo FSBL.elf en FSBL. Asegúrese de seleccionar "Verificar después del flash" antes de presionar "Programa". Observe la consola para asegurarse de que la operación de parpadeo se haya completado con éxito. Luego, apague el ZYBO y desconecte el cable USB. Mueva el puente JP5 a "QSPI".
Paso 7: configurar el punto de acceso inalámbrico
Con la batería aún conectada, conéctese a la red Wi-Fi del enrutador. El SSID y la contraseña predeterminados deben estar en la parte inferior del enrutador. Luego, navegue a https://tplinkwifi.net e inicie sesión usando "admin" para el nombre de usuario y la contraseña. Ejecute el asistente de configuración rápida para configurar el enrutador en modo de punto de acceso con DHCP habilitado. Asegúrese de actualizar también el nombre de usuario y la contraseña predeterminados del dispositivo. El enrutador debería reiniciarse automáticamente en el modo de punto de acceso una vez que haya terminado.
Encienda el ZYBO y conéctese al enrutador usando el SSID que asignó. Lo más probable es que el enrutador aparezca en la dirección IP 192.168.0.100 o 192.160.0.101. Al ZYBO se le asignará cualquier dirección que no tenga el enrutador. Para determinar rápidamente la dirección IP del enrutador, puede ejecutar "ipconfig" desde el símbolo del sistema en Windows o "ifconfig" desde el terminal en Linux o MacOS. Si todavía está conectado al enrutador, verá su dirección IP junto a su interfaz inalámbrica. Utilice esta información para determinar la dirección IP del ZYBO. Para confirmar la dirección IP del ZYBO, puede hacer ping desde la línea de comandos o conectarse a través de telnet.
Paso 8: ejecutar el programa Java
Descargue RobotClient.java y compile el archivo usando el comando "javac RobotClient.java" desde la línea de comandos. Ejecute el comando "java RobotClient" donde "ip_address" es la dirección IP del ZYBO. La GUI de control aparecerá si se establece una conexión exitosa entre la computadora y el ZYBO. Después de enfocar la ventana, el robot debe poder controlarse usando las teclas de flecha del teclado. Pulsa el botón de escape para finalizar la sesión y desconectarte del robot.
La GUI resaltará las teclas que se presionan y mostrará la salida del motor en la parte superior derecha. El medidor de distancia de la izquierda llena una barra cada 2 metros hasta un máximo de 10 metros.
Paso 9: calibre el telémetro
Los interruptores integrados en el ZYBO se pueden utilizar para configurar el telémetro integrado. La distancia de detección mínima d se da en función de la entrada del interruptor i:
d = 50i + 250
La entrada puede variar entre 0 y 15 en pasos enteros. Esto se traduce en un rango de distancia de 0,25 metros a 1 metro. A la distancia mínima, el primer LED comenzará a parpadear. El número de LED que están activos es proporcional a la proximidad del objeto.
Paso 10: Accesibilidad
Este robot es de muy fácil acceso. Debido a la simplicidad de su control, se puede controlar completamente con un solo dedo. Para mejorar la accesibilidad, se podría agregar soporte para dispositivos de entrada adicionales. Esto podría permitir que los usuarios discapacitados controlen el robot con una parte diferente de su cuerpo.
Recomendado:
Oficina con pilas. Sistema solar con paneles solares y turbina eólica con conmutación automática Este / Oeste: 11 pasos (con imágenes)
Oficina con pilas. Sistema solar con paneles solares y turbina eólica con conmutación automática de este a oeste: El proyecto: Una oficina de 200 pies cuadrados debe funcionar con baterías. La oficina también debe contener todos los controladores, baterías y componentes necesarios para este sistema. La energía solar y eólica cargará las baterías. Hay un pequeño problema de solo
Cómo: Instalación de Raspberry PI 4 Headless (VNC) con Rpi-imager e imágenes: 7 pasos (con imágenes)
Cómo: Instalar Raspberry PI 4 Headless (VNC) con Rpi-imager e imágenes: planeo usar este Rapsberry PI en un montón de proyectos divertidos en mi blog. No dudes en comprobarlo. Quería volver a usar mi Raspberry PI, pero no tenía un teclado ni un mouse en mi nueva ubicación. Ha pasado un tiempo desde que configuré una Raspberry
Inteligencia artificial y reconocimiento de imágenes con HuskyLens: 6 pasos (con imágenes)
Inteligencia artificial y reconocimiento de imágenes con HuskyLens: ¡Hola, chicos! Akarsh aquí de CETech. En este proyecto, vamos a echar un vistazo a HuskyLens de DFRobot. Es un módulo de cámara impulsado por inteligencia artificial que es capaz de realizar varias operaciones de inteligencia artificial como el reconocimiento facial
Reconocimiento de imágenes con placas K210 y Arduino IDE / Micropython: 6 pasos (con imágenes)
Reconocimiento de imágenes con placas K210 y Arduino IDE / Micropython: ya escribí un artículo sobre cómo ejecutar demostraciones de OpenMV en Sipeed Maix Bit y también hice un video de demostración de detección de objetos con esta placa. Una de las muchas preguntas que la gente ha hecho es: ¿cómo puedo reconocer un objeto que la red neuronal no está tr
Cómo desmontar una computadora con sencillos pasos e imágenes: 13 pasos (con imágenes)
Cómo desmontar una computadora con sencillos pasos e imágenes: esta es una instrucción sobre cómo desmontar una PC. La mayoría de los componentes básicos son modulares y se quitan fácilmente. Sin embargo, es importante que se organice al respecto. Esto ayudará a evitar que pierda piezas y también a que el reensamblaje sea más fácil