Advertisement
Guest User

robert pelottaa

a guest
Dec 10th, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.61 KB | None | 0 0
  1. #if 1
  2. //Labyrintti 1.0 10.12.2019 Robert
  3.  
  4. void zmain(void)
  5. {
  6. TickType_t start; // Aloita ajanlasku
  7. start = xTaskGetTickCount();
  8. IR_Start();
  9.  
  10. struct sensors_ ref; // Sensorit päälle
  11. struct sensors_ dig;
  12. reflectance_start();
  13. reflectance_set_threshold(10000, 10000, 12000, 12000, 10000, 10000);
  14.  
  15. motor_start(); // Käynnistetään moottori
  16. motor_forward(0,0);
  17.  
  18. int x = 0; // Tarvittavat muuttujat
  19. int y = -1;
  20. int este = 0;
  21. int nappi = 0;
  22. int nappi1 = 0;
  23. int kytkin = 0;
  24. int risteys = 0;
  25. int valiaika;
  26. int risteyslupa = 0;
  27. int suunta =0;
  28.  
  29. Ultra_Start(); // Ultra Sonic Start function
  30. while(nappi1 == 0) {
  31. vTaskDelay(10);
  32. if(SW1_Read() == 0){ // Liikkeellelähtö napista
  33. printf("nappi painettu, lahen menee \n");
  34. nappi = 1;
  35. nappi1 = 1;
  36. }
  37. }
  38.  
  39. while(nappi == 1 && kytkin == 0){ // Odotus ensimmäisellä viivalla kunnes IR
  40. reflectance_digital(&dig);
  41. printf("ajossa\n");
  42. motor_forward(50, 10);
  43. if (dig.l3 == 1 && dig.l2 == 1 && dig.l1 == 1 && dig.r1 == 1 && dig.r2 == 1 && dig.r3 == 1) {
  44. motor_forward(0,0);
  45.  
  46. printf("olen pauses\n"); //send_mqtt(ready)
  47. IR_flush();
  48. IR_wait();
  49. printf("nappia painettu\n");
  50. valiaika = xTaskGetTickCount();
  51. printf("%d\n", valiaika); //stoptime print
  52. motor_forward(100, 300);
  53. kytkin = 1;
  54. }
  55. }
  56. while(kytkin == 1 && nappi == 1) {
  57. while(kytkin == 1 && nappi == 1 && risteys == 0) { // Eteenpäin ajo, kunnes viiva.
  58.  
  59. reflectance_digital(&dig);
  60.  
  61. if (dig.l3 == 1 && dig.l2 == 1 && dig.l1 == 1 && dig.r1 == 1 && dig.r2 == 1 && dig.r3 == 1 && suunta== 0) {
  62. motor_forward(0, 10); // Risteykseen ajo
  63. y++;
  64. Beep(100, 100);BatteryLed_Write(1);
  65. risteys = 1;
  66. }
  67. else if (dig.l3 == 0 && dig.l2 == 0 && dig.l1 == 0 && dig.r1 == 0 && dig.r2 == 1 && dig.r3 == 1 && suunta== 1) {
  68. motor_forward(50, 100); // x lisää
  69. x++;
  70. Beep(100, 100);BatteryLed_Write(1);
  71.  
  72. }
  73.  
  74. else if(dig.l3 == 0 && dig.l2 == 0 && dig.l1 == 1 && dig.r1 == 1 && dig.r2 == 0 && dig.r3 == 0) {
  75. motor_forward(50, 10);
  76. }
  77.  
  78. else if(dig.l3 == 0 && dig.l2 == 1 && dig.l1 == 1 && dig.r1 == 0 && dig.r2 == 0 && dig.r3 == 0) {
  79. motor_turn(30, 50, 10); // Korjaus vasemmalle
  80. }
  81.  
  82. else if(dig.l3 == 0 && dig.l2 == 0 && dig.l1 == 0 && dig.r1 == 1 && dig.r2 == 1 && dig.r3 == 0) {
  83. motor_turn(50, 30, 10); // Korjaus oikealle
  84. }
  85. }
  86. while(kytkin == 1 && nappi == 1 && risteys == 1) { // Risteys
  87.  
  88. reflectance_digital(&dig);
  89.  
  90. if (dig.l3 == 1 && dig.l2 == 1 && dig.l1 == 1 && dig.r1 == 1 && dig.r2 == 1 && dig.r3 == 1) {
  91. motor_forward(50, 150);
  92. motor_hardturnleft(60, 90, 150);
  93. }
  94.  
  95. else if (dig.r1 == 0){
  96. motor_hardturnleft(60, 90, 1);
  97. }
  98. else if (dig.r1 == 1){
  99. risteys = 0;
  100. suunta =1;
  101. }
  102. }
  103. }
  104. }
  105. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement