Advertisement
Guest User

Kod so posebno za k

a guest
Jan 18th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.82 KB | None | 0 0
  1. #!/usr/bin/env python3
  2. from ev3dev.ev3 import * #Ev3 crucial lib
  3. from time import sleep #Importing the sleep only from the library time
  4. import math #Import math lib for math functions
  5.  
  6. gyro_sensor = GyroSensor() #Defining Gyro Sensor
  7. left_motor = LargeMotor("outB") #Defining the LargeMotor which is connected to the port B as left motor
  8. right_motor = LargeMotor("outC") #Defining the LargeMotor which is connected to the port C as right motor
  9.  
  10. assert gyro_sensor.connected #Ensuring that
  11. assert left_motor.connected #everything is
  12. assert right_motor.connected #connected!
  13.  
  14. gyro_sensor.mode = 'GYRO-ANG' #Setting the mode to gyro sense to measure angles
  15. numofAtts=int(input("Input the number of graphs you want to draw:"))
  16. while(numofAtts>0):
  17. k=float(input("Input k from y=k*x+n:")) #Input value for k
  18.  
  19. print("\n") #New line
  20.  
  21. n=float(input("Input n from y=k*x+n:")) #Input value for n
  22.  
  23.  
  24. if(n > 0): #If N is larger than 0
  25. left_motor.run_timed(time_sp=1000*n,speed_sp=100)
  26. right_motor.run_timed(time_sp=1000*n,speed_sp=100)
  27. if (n < 0): #If N is less than 0
  28. left_motor.run_timed(time_sp=1000*abs(n),speed_sp=-100)
  29. right_motor.run_timed(time_sp=1000*abs(n),speed_sp=-100)
  30. time.sleep(3)
  31. gyro_sensor.mode = 'GYRO-RATE'
  32. gyro_sensor.mode = 'GYRO-ANG'
  33. gcal=abs(gyro_sensor.value()) #Storing value from gyro sensor (-33,33)
  34. time.sleep(2) #Rest a bit with functioning
  35. angle=0 #At the start the angle that robot and y-axis take should be 0
  36. angleneeded=abs(math.degrees(math.atan(k))) #Computation of the angle we need to achieve (45)
  37. print(angleneeded)
  38. angle=gcal #33
  39. if k<0: #If k is less than 0 than the angle is > 90
  40.  
  41. while abs(angle-gcal)<90-angleneeded: #While we don't achieve the needed complementary angle
  42.  
  43. left_motor.run_forever(speed_sp=-10) #Move the robot to the
  44. right_motor.run_forever(speed_sp=10) #Right
  45. angle=abs(gyro_sensor.value()) #Constantly update the angle
  46. print(angle)
  47. print(gcal)
  48.  
  49. elif k > 0: #If k is large than 0 than the angle is < 90
  50. gcal=abs(gyro_sensor.value())
  51. angle=abs(gyro_sensor.value())
  52. #if gyro_sensor.value()<0:
  53. # angleneeded+=abs(gyro_sensor.value())
  54. while angle-gcal<abs(90-angleneeded): #While we don't achieve the needed complementary angle
  55. left_motor.run_forever(speed_sp=10) #Move the robot to the
  56. right_motor.run_forever(speed_sp=-10) #Left
  57. angle=abs(gyro_sensor.value()) #While we don't achieve the needed complementary angle
  58. print(angle)
  59. print(gcal)
  60.  
  61. elif k == 0: #If k is equal to 0 than the angle is 0 with x axis
  62. gcal=abs(gyro_sensor.value())
  63. angle=abs(gyro_sensor.value())
  64. #if gyro_sensor.value()<0:
  65. # angleneeded+=abs(gyro_sensor.value())
  66. while angle-gcal<abs(90-angleneeded): #While we don't achieve the needed complementary angle
  67. left_motor.run_forever(speed_sp=10) #Move the robot to the
  68. right_motor.run_forever(speed_sp=-10) #Left
  69. angle=abs(gyro_sensor.value()) #While we don't achieve the needed complementary angle
  70. print(angle)
  71. print(gcal)
  72.  
  73. #Assuring that we didn't made motors to move @ all
  74. left_motor.stop() #When we get out from the loop
  75. right_motor.stop()# we make the robot to stop rotating since it achieved the desired angle
  76. left_motor.run_timed(time_sp=3250,speed_sp=100,stop_action="brake") #Moving the robot to some point backwards *Both motors
  77. right_motor.run_timed(time_sp=3250,speed_sp=100,stop_action="brake") #Moving the robot to some point backwards *Both motors
  78.  
  79. time.sleep(8) #The robot is tired,and calculates ;)
  80.  
  81. left_motor.run_timed(time_sp=6500,speed_sp=-100,stop_action="brake") #Moving the robot to some point backwards *Both motors
  82. right_motor.run_timed(time_sp=6500,speed_sp=-100,stop_action="brake") #Moving the robot to some point backwards *Both motors
  83.  
  84. time.sleep(5)
  85.  
  86. numofAtts-=1
  87. raise SystemExit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement