AfstandbedieningIr.java 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. package boebot;
  2. import stamp.core.*;
  3. public class AfstandbedieningIR
  4. {
  5. int[] databits = new int[12];
  6. MotorAansturing motor;
  7. boolean status = false;
  8. public AfstandbedieningIR(MotorAansturing motor)
  9. {
  10. this.motor = motor;
  11. motor.setSnelheid(50);
  12. motor.setRichting(true);
  13. }
  14. public int detect(int pin)
  15. {
  16. int startPuls = CPU.pulseIn(2000, CPU.pins[pin], false);
  17. if(startPuls < 200)
  18. {
  19. return -1;
  20. }
  21. for(int i=0; i<12; i++)
  22. {
  23. databits[i] = CPU.pulseIn(300, CPU.pins[pin], false);
  24. }
  25. int resultaat = 0;
  26. for(int i=0; i<7; i++)
  27. {
  28. if(databits[i] < 0)
  29. {
  30. return -1;
  31. }
  32. if(databits[i] > 100)
  33. {
  34. resultaat |= 1<<i;
  35. }
  36. }
  37. return resultaat;
  38. }
  39. public void verwerkSignaal(int getal)
  40. {
  41. switch(getal)
  42. {
  43. case 0:
  44. motor.setSnelheidL(30);
  45. motor.setSnelheidR(0);
  46. motor.setRichting(true);
  47. motor.rijden();
  48. break;
  49. case 1:
  50. motor.setSnelheid(50);
  51. motor.setRichting(true);
  52. motor.rijden();
  53. break;
  54. case 2:
  55. motor.setSnelheidL(0);
  56. motor.setSnelheidR(30);
  57. motor.setRichting(true);
  58. motor.rijden();
  59. break;
  60. case 3:
  61. motor.noodStop();
  62. motor.turn(270);
  63. break;
  64. case 4:
  65. motor.noodStop();
  66. break;
  67. case 5:
  68. motor.noodStop();
  69. motor.turn(90);
  70. break;
  71. case 6:
  72. motor.setSnelheidL(30);
  73. motor.setSnelheidR(0);
  74. motor.setRichting(false);
  75. motor.rijden();
  76. break;
  77. case 7:
  78. motor.stop();
  79. motor.setSnelheid(50);
  80. motor.setRichting(false);
  81. motor.start();
  82. motor.rijden();
  83. break;
  84. case 8:
  85. motor.setSnelheidL(0);
  86. motor.setSnelheidR(30);
  87. motor.setRichting(false);
  88. motor.rijden();
  89. break;
  90. case 88:
  91. motor.setSnelheid(motor.getSnelheid() + 10);
  92. motor.rijden();
  93. break;
  94. case 89:
  95. motor.setSnelheid(motor.getSnelheid() - 10);
  96. motor.rijden();
  97. break;
  98. default:
  99. motor.stop();
  100. //System.out.println("test");
  101. }
  102. CPU.delay(500);
  103. }
  104. public boolean getStatus()
  105. {
  106. return status;
  107. }
  108. public void setStatus(boolean status)
  109. {
  110. this.status = status;
  111. }
  112. }