Advertisement
Guest User

SpeedTest

a guest
Nov 28th, 2013
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <time.h>
  4. #include "tick.h"
  5. #include <wiringPi.h>
  6. #include "BrickPi.h"
  7. #include <linux/i2c-dev.h>
  8. #include <fcntl.h>
  9.  
  10.  
  11.  
  12.  
  13.  
  14. long i=0;
  15.  
  16. long posdactual=0;
  17. long posiactual=0;
  18. float posdractual=0.0;
  19. float posdranterior=0.0;
  20. float posiractual=0.0;
  21. float posiranterior=0.0;
  22. float veldr=0.0;
  23. float velir=0.0;
  24.  
  25. float pul2rad=0.0174533;
  26. int main ()
  27. {
  28. ClearTick();
  29. BrickPiSetup();
  30. BrickPi.Address[0] = 1;
  31. BrickPi.Address[1] = 2;
  32. BrickPi.MotorEnable[PORT_A] = 1; //Enable the motors
  33. BrickPi.MotorEnable[PORT_D] = 1;
  34. BrickPiSetupSensors(); //Set up the properties of sensors for the BrickPi
  35. //printf("BrickPiSetupSensors: %d\n", result);
  36.  
  37. BrickPi.EncoderOffset[PORT_A]=BrickPi.Encoder[PORT_A];
  38. BrickPi.EncoderOffset[PORT_D]=BrickPi.Encoder[PORT_D];
  39. FILE *fichero;
  40. fichero = fopen("registro1.txt","a+");
  41.  
  42.  
  43. while(i<100)
  44. {
  45. BrickPiUpdateValues();
  46. //obtenemos la posicion de las ruedas en pulsos
  47. posdactual=BrickPi.Encoder[PORT_D];
  48. posiactual=BrickPi.Encoder[PORT_A];
  49.  
  50. //calculamos la posicion de las ruedas en radianes
  51. posdractual=pul2rad*posdactual;
  52. posiractual=pul2rad*posiactual;
  53.  
  54. //calculamos la velocidad de las ruedas en Radianes/S
  55. veldr=(posdractual-posdranterior)/0.05;
  56. velir=(posiractual-posiranterior)/0.05;
  57.  
  58. //dar control a los motores
  59. BrickPi.MotorSpeed[PORT_A] = 255;
  60. BrickPi.MotorSpeed[PORT_D] = 255;
  61.  
  62. //almacenamos los datos en el fichero de texto
  63. fprintf(fichero, " %f",posdractual);
  64. fprintf(fichero, " %f",posiractual);
  65. fprintf(fichero, " %f",veldr);
  66. fprintf(fichero, " %f\n",velir);
  67.  
  68. //almacenamos la posicion de las ruedas para poder calcular
  69. //la velocidad en la iteracion siguiente
  70. posdranterior=posdractual;
  71. posiranterior=posiractual;
  72.  
  73.  
  74.  
  75. //verificamos el periodo de muestreo e incrementamos el valor del contador
  76. usleep(50000);
  77. i++;
  78.  
  79. }
  80. fclose;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement