Skip to content

jlnbotello/CarSpeedControl

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sistemas Operativos de Tiempo Real - TP Final - Junio 2019

Requesitos

Alto nivel

  • Movimientos: adelante, atrás, giro horario/antihorario
  • Velocidad variable (control retroalimentado)
  • Cumplir instrucciones de distancia y angulo a velocidad controlada

Técnicos

  • Para la lectura de velocidad con encoders se require configurar:
    • TIMER: para medición de tiempos
    • GPIO: para detectar el giro del encoder (interrupción)
  • Para controlar la velocidad y dirección de giro de la ruedas se debe configurar:
    • TIMER SCT: para la generación de PWM
    • GPIO: para cambiar el sentido de giro de las ruedas

Diseño

Diagrama de capas

alt text

Pruebas

alt text

Se observa en azul la velocidad de una rueda y en naranja el PWM asociado [duty cycle (DC) 0 a 100%]. La velocidad de referencia se seteó en 30 cm/s. En el primer segundo se observa el DC creciendo. A partir del segundo 2 la rueda comienza a moverse. Se observa un abrupto incremento de la velocidad y un sobreimpulso. Luego la velocidad se estabiliza en torno a 30cm/s. En el segundo 12 se ha frenado manual e intencionalmente la rueda con el objetivo de visualizar la respusta del DC. El DC se incrementa para vencer la resistencia y volver a la velocidad de referencia. En el segundo 22 se libera la rueda. Se observa un sobreimpulso producto de la liberación repentina de la carga. Luego tanto el PWM como la velocidad se estabilizan nuevamente.

Videos

Se implementaron de versiones de hardware. La primer versión consistió un auto 4x4. En la segundo versión se eliminaron dos ruedas motorizadas y se instaló una rueda giratoria.

En ambos videos el robot realiza un cuadrado de 50 cm de lado.

Robot versión 4 ruedas: https://youtu.be/LLtVGU3WwLI Robot versión 3 ruedas: https://youtu.be/DRokiPrVlq4

Compiladores soportados

  • gcc-arm-none-eabi

Compilar y grabar un proyecto

Asegurese de tener configurado el compilador arm-none-eabi-* en el PATH.

  • Defina las variables PROJECT_NAME y PROJECT_PATH en el archivo project.mk de acuerdo con el proyecto que quiera compilar. La variable PROJECT_PATH es relativa a carpeta principal del repositorio (la carpeta donde se encuentra este archivo).
  • Asegurese de tener configurado openocd en el PATH.
  • ParaeEiminar el resultado de una compilacion previa make clean.
  • Para compilar el proyecto use make.
  • Para grabar el proyecto en la placa use make download.

Agradecimientos

En esta plantilla está la estructura y muchos de los archivos de la plantilla desarrollada por Eric Pernia y Martin Ribelota para CESE FI-UBA la Especialización en Sistemas Embebidos de la Universidad de Buenos Aires. El repositorio original puede descargarse de este enlace.

Este trabajo se apoya en el Proyecto-CIAA, un desarrollo nacional impulsador por instrituciones publicas y privadas que busca impulsar la industria argentina.

About

TP Final - Sistemas Operativos de Tiempo Real - ESE - 2019

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 99.0%
  • Other 1.0%