Tamaño: 2952
Comentario:
|
Tamaño: 5386
Comentario:
|
Los textos eliminados se marcan así. | Los textos añadidos se marcan así. |
Línea 1: | Línea 1: |
## page was copied from LabElectronica/RoMAAFirmware22 ## page was copied from LabElectronica/RoMAAFirmware21 |
|
Línea 3: | Línea 5: |
= Firmware del robot móvil RoMAA-II = <<TableOfContents()>> |
|
Línea 4: | Línea 8: |
= Firmware del controlador embebido del robot móvil RoMAA-II = | = Objetivos = Aquí se documentarán y organizarán todas las investigaciones y desarrollos ha realizar y realizados para la optimización del firmware de la plataforma robótica móvil RoMAA-II, en su aplicación con el sistema operativo en tiempo real FreeRTOS. |
Línea 6: | Línea 11: |
== Firmware con kernel en tiempo real == El código que actualmente se utiliza tanto en el RoMAA II como en el RoMAA original esta basado en el desarrollado para el proyecto "Hardware de Control de Plataforma Robótica Móvil con Arquitectura ARM7 y RTOS embebido. Caracterización". Tesis de grado para obtener el título de Ing. en electrónica de Santiago Pérez y Martín Baudino [[LabElectronica/FreeRTOSLpc2114Web|Ir]]. |
= Caracteterísitcas generales del FW = == Trabajos iniciales == == FreeRTOS == == Modo de funcionamiento == === Tareas === = Versiones del FW = === v2.1 === [[LabElectronica/RoMAAFirmware23/v2.1|Características de la versión. Modificaciones respecto a versiones anterioriores]] |
Línea 9: | Línea 20: |
La versión actual se encuentra en el repositorio [[http://proyectos.ciii.frc.utn.edu.ar/romaa_firmware|romaa_firmware]]. Y se puede descargar del servidor con {{{hg clone https://proyectos.ciii.frc.utn.edu.ar/hg/romaa_firmware}}} |
=== v2.2 → === [[LabElectronica/RoMAAFirmware23/v2.2|Características de la versión. Modificaciones respecto a versiones anterioriores]] |
Línea 12: | Línea 23: |
=== Organización del Código === La estructura de directorios es la siguiente: |
=== v2.3 Innovar→ Stable === [[LabElectronica/RoMAAFirmware23/v2.3|Características de la versión. Modificaciones respecto a versiones anterioriores]] |
Línea 15: | Línea 26: |
{{attachment:romaa_freertos_structure.png||height="137px",width="489px"}} | === v2.4 → desarrollo === [[LabElectronica/RoMAAFirmware23/v2.4|Características de la versión. Modificaciones respecto a versiones anterioriores]] |
Línea 17: | Línea 29: |
Las librerías CIIIEmbLibs se incluyen dentro del proyecto porque son una versión anterior a la revisión 0 (la más antigua disponible en los [[http://proyectos.ciii.frc.utn.edu.ar/ciiiemblibs|repositorios]]) y esto significa que contiene implementaciones incompatibles con las librerías que tienen mantenimiento hoy en día. | === v2.5 → FINAL === [[LabElectronica/RoMAAFirmware23/v2.5|Características de la versión. Modificaciones respecto a versiones anterioriores]] |
Línea 19: | Línea 32: |
El principal cambio que habría que llevar a cabo para actualizar el proyecto a las nuevas CIIIEmbLibs es modificar las interrupciones para que utilicen callbacks. | = Información para usuarios del RoMAA-II = * [[CaracteristicasGenerales|Link a características generales de la plataforma. Diferencias entre RoMAAs]] * [[LabElectronica/RoMAAFirmware23/FuncionamientoBasico|Funcionamiento básico]] * Encendido, apagado, reseteo, etc. * Grabación del FW * [[LabElectronica/RoMAAFirmware23/Condiciones iniciales|Condiciones iniciales]]<<BR>> * [[LabElectronica/RoMAAFirmware23/LogicaFuncionamiento|Lógica simple de funcionamiento del FW]] * [[LabElectronica/RoMAAFirmware23/Comandos|Comandos]]<<BR>>Se describen todos los comandos disponibles para la utiización de la plataforma y los básicos iniciales para comenzar en cualquier aplicación de nivel superior a desarrollar. * Descripción agrupada por tipos de comandos * Detalle del efecto que tienen sobre el RoMAA, en que secuencia debería usarse * Detalle de la trama, envío y recepción a codificar |
Línea 21: | Línea 44: |
=== Compilación === Para compilar el proyecto es necesario ubicarse en la carpeta "app" y ejecutar: |
Para descargar la última versión funcional del FW, referirse a: http://ciii.frc.utn.edu.ar/LabElectronica/RoMAAFirmware22 Para los desarrolladores de nivel superior, que quieran ver al RoMAA-II como una caja negra para sus investigaciones en Visión o Robótica en general, a continuación se citan algunas páginas de interés para comprender su funcionamiento y poder hacer un uso óptimo de la plataforma en sus investigaciones: = Información para desarrolladores del FW del RoMAA-II = == Repositorio == El código que actualmente se utiliza tanto en el RoMAA II como en el RoMAA original esta basado en el desarrollado para el proyecto "Hardware de Control de Plataforma Robótica Móvil con Arquitectura ARM7 y RTOS embebido. Caracterización". Tesis de grado para obtener el título de Ing. en electrónica de Santiago Pérez y Martín Baudino [[LabElectronica/FreeRTOSLpc2114Web|Ir]]. La versión en desarrollo actual (v2.4) se encuentra en el repositorio [[http://proyectos.ciii.frc.utn.edu.ar/romaa_firmware|romaa_firmware]]. Y se puede descargar del servidor con: |
Línea 25: | Línea 55: |
romaa_freertos/app$ ./rom_arm.sh | hg clone https://proyectos.ciii.frc.utn.edu.ar/hg/romaa_firmware romaa_firmware_v2.4_trunk |
Línea 27: | Línea 57: |
(este script debe tener permisos de ejecución) | == Tareas == 1. [[LabElectronica/RoMAAFirmware23/Repositorio|Repositorio]]<<BR>>Creación del tag v2.2 disponible para utilizar con ambos RoMAAs. Creación y utilización del trunk v2.3 para el desarrollo del proyecto. 1. [[LabElectronica/RoMAAFirmware23/Memoria|Memoria]]<<BR>>Estudiar e implementar el uso optimizado de memoria de la aplicación con FreeRTOS'''.''' 1. [[LabElectronica/RoMAAFirmware23/Grabación del Firmware|Grabación del Firmware con LPC2isp]]<<BR>>Estudio y corrección de los problemas de grabación con el software LPC2isp. 1. [[LabElectronica/RoMAAFirmware23/Reset|Reset]]<<BR>>Modificar las acciones a realizar por el comando "reset" del micro, garantizando la estabilidad del robot. 1. [[LabElectronica/RoMAAFirmware23/PID|PID]]<<BR>>Implementación de la codificación del PID del cuadricóptero QA3, variables, recursos del FreeRTOS e interacción con las demás tareas. 1. [[LabElectronica/RoMAAFirmware23/VariosAplicacion|Varios Aplicación]]<<BR>>Optimización y utilización de varios recursos y configuraciones del FreeRTOS para la aplicación. 1. [[LabElectronica/RoMAAFirmware23/Interrupciones y RTOS|Interrupciones y RTOS]]<<BR>>Estudio e implementación de las interrupciones bajo programación segura con los recursos del FreeRTOS. 1. [[LabElectronica/RoMAAFirmware23/Uso y medición de los recursos del micro|Uso y medición de los recursos del micro]]<<BR>>Estudio e implementación de mediciones de recursos del micro, FreeRTOS y aplicación.<<BR>> |
Línea 29: | Línea 67: |
Este script define una serie de variables de entornos para que el código sea generado en modo ARM, sin optimización, y preparado para ser grabado en memoria flash. Para limpiar el proyecto es necesario ejecutar: {{{ romaa_freertos/app$ make clean }}} De esta forma se borran todos los objetos generados en toda la estructura de directorios. === Grabación del Firmware: === Luego de una compilación exitosa, se generará un archivo llamado "romaii.hex", que es donde se encuentra el programa compilado y linkeado. Dependiendo del cable utilizado, hay dos formas de grabar el firmware en el microcontrolador: * Cable RS232: {{{ romaa_freertos/app$ make grabar_s }}} * Cable USB: {{{ romaa_freertos/app$ make grabar_u }}} ==== Nota: ==== Esta información también está presente en la el archivo LEAME.txt, dentro de la carpeta app. ------ Temporalmente se puede descargar de esta página el firmware v2.0 del RoMAA-II (con FreeRTOS), con dos diferentes configuraciones de encoders y reducción de velocidad * versión para el [[attachment:romaaii_firware_chaco.hex|RoMAA-II del Chaco]] ([[attachment:romaaii_firmware_chaco_20100414.hex|con inversión de encoders]]) * versión para el [[attachment:romaaii_firware_cba.hex|RoMAA de Córdoba]] |
== Otros == * [[LabElectronica/RoMAAFirmware23/Compilacion|Compilación]]<<BR>>Errores posibles en la compilación y como solucionarlos. * [[LabElectronica/RoMAAFirmware23/Makefile|Makefile]]<<BR>>Errores posibles en el Makefile y como solucionarlos. |
Firmware del robot móvil RoMAA-II
Tabla de Contenidos
Objetivos
Aquí se documentarán y organizarán todas las investigaciones y desarrollos ha realizar y realizados para la optimización del firmware de la plataforma robótica móvil RoMAA-II, en su aplicación con el sistema operativo en tiempo real FreeRTOS.
Caracteterísitcas generales del FW
Trabajos iniciales
FreeRTOS
Modo de funcionamiento
Tareas
Versiones del FW
v2.1
Características de la versión. Modificaciones respecto a versiones anterioriores
v2.2 →
Características de la versión. Modificaciones respecto a versiones anterioriores
v2.3 Innovar→ Stable
Características de la versión. Modificaciones respecto a versiones anterioriores
v2.4 → desarrollo
Características de la versión. Modificaciones respecto a versiones anterioriores
v2.5 → FINAL
Características de la versión. Modificaciones respecto a versiones anterioriores
Información para usuarios del RoMAA-II
Link a características generales de la plataforma. Diferencias entre RoMAAs
- Encendido, apagado, reseteo, etc.
- Grabación del FW
Comandos
Se describen todos los comandos disponibles para la utiización de la plataforma y los básicos iniciales para comenzar en cualquier aplicación de nivel superior a desarrollar.- Descripción agrupada por tipos de comandos
- Detalle del efecto que tienen sobre el RoMAA, en que secuencia debería usarse
- Detalle de la trama, envío y recepción a codificar
Para descargar la última versión funcional del FW, referirse a: http://ciii.frc.utn.edu.ar/LabElectronica/RoMAAFirmware22
Para los desarrolladores de nivel superior, que quieran ver al RoMAA-II como una caja negra para sus investigaciones en Visión o Robótica en general, a continuación se citan algunas páginas de interés para comprender su funcionamiento y poder hacer un uso óptimo de la plataforma en sus investigaciones:
Información para desarrolladores del FW del RoMAA-II
Repositorio
El código que actualmente se utiliza tanto en el RoMAA II como en el RoMAA original esta basado en el desarrollado para el proyecto "Hardware de Control de Plataforma Robótica Móvil con Arquitectura ARM7 y RTOS embebido. Caracterización". Tesis de grado para obtener el título de Ing. en electrónica de Santiago Pérez y Martín Baudino Ir.
La versión en desarrollo actual (v2.4) se encuentra en el repositorio romaa_firmware. Y se puede descargar del servidor con:
hg clone https://proyectos.ciii.frc.utn.edu.ar/hg/romaa_firmware romaa_firmware_v2.4_trunk
Tareas
Repositorio
Creación del tag v2.2 disponible para utilizar con ambos RoMAAs. Creación y utilización del trunk v2.3 para el desarrollo del proyecto.Memoria
Estudiar e implementar el uso optimizado de memoria de la aplicación con FreeRTOS.Grabación del Firmware con LPC2isp
Estudio y corrección de los problemas de grabación con el software LPC2isp.Reset
Modificar las acciones a realizar por el comando "reset" del micro, garantizando la estabilidad del robot.PID
Implementación de la codificación del PID del cuadricóptero QA3, variables, recursos del FreeRTOS e interacción con las demás tareas.Varios Aplicación
Optimización y utilización de varios recursos y configuraciones del FreeRTOS para la aplicación.Interrupciones y RTOS
Estudio e implementación de las interrupciones bajo programación segura con los recursos del FreeRTOS.Uso y medición de los recursos del micro
Estudio e implementación de mediciones de recursos del micro, FreeRTOS y aplicación.
Otros
Compilación
Errores posibles en la compilación y como solucionarlos.Makefile
Errores posibles en el Makefile y como solucionarlos.