Advertisement
safwan092

GOLF_CAR_Cam_JEDDAH_U_AMER_CAR_11_2_2023

Feb 10th, 2023
20
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.29 KB | None | 0 0
  1. #include <Arduino.h>
  2. #include <MuVisionSensor.h>
  3. #include <Wire.h>
  4. #include <SoftwareSerial.h>
  5. #define I2C_MODE
  6. #define MU_ADDRESS 0x60
  7.  
  8.  
  9. MuVisionSensor Mu(MU_ADDRESS);
  10.  
  11.  
  12. int Sensor1 = A0; // connect ir sensor module to Arduino pin 7
  13. int Sensor2 = 9; // connect ir sensor module to Arduino pin 9
  14. int Sensor3 = 10; // connect ir sensor module to Arduino pin 10
  15. int Sensor4 = 11; // connect ir sensor module to Arduino pin 11
  16. int Move = 3; // connect ir sensor module to Arduino pin 11
  17. int Speed1 = 4;
  18. int Speed2 = 5;
  19. int Stop = 6;
  20.  
  21. void setup()
  22. {
  23. Serial.begin(9600); // Init Serila at 115200 Baud
  24. Serial.println("Serial Working"); // Test to check if serial is working or not
  25. pinMode(13,OUTPUT);
  26. digitalWrite(13,0);
  27. pinMode(Sensor1, INPUT); // IR Sensor pin INPUT
  28. pinMode(Sensor2, INPUT); // IR Sensor pin INPUT
  29. pinMode(Sensor3, INPUT); // IR Sensor pin INPUT
  30. pinMode(Sensor4, INPUT); // IR Sensor pin INPUT
  31. pinMode(Move, OUTPUT ); // IR Sensor pin INPUT
  32. pinMode(Speed1, OUTPUT ); // IR Sensor pin INPUT
  33. pinMode(Speed2, OUTPUT ); // IR Sensor pin INPUT
  34. pinMode(Stop, OUTPUT ); // IR Sensor pin INPUT
  35. digitalWrite (Move , LOW);
  36. digitalWrite (Speed1 , LOW);
  37. digitalWrite (Speed2 , LOW);
  38. digitalWrite (Stop , LOW);
  39. /////////////////////////Cam
  40. uint8_t err = MU_ERROR_FAIL;
  41. Wire.begin();
  42. err = Mu.begin(&Wire);
  43. if (err == MU_OK) {
  44. Serial.println("MU initialized.");
  45. } else {
  46. do {
  47. Serial.println("fail to initialize MU! Please check protocol "
  48. "version or make sure MU is working on the "
  49. "correct port with correct mode.");
  50. delay(5000);
  51. } while (1);
  52. }
  53. // enable vision: number card
  54. Mu.VisionBegin(VISION_COLOR_RECOGNITION);
  55. Mu.write(VISION_COLOR_RECOGNITION, kXValue, 100); // set detect region center x value(0~100)
  56. Mu.write(VISION_COLOR_RECOGNITION, kYValue, 100); // set detect region center y value(0~100)
  57. Mu.write(VISION_COLOR_RECOGNITION, kWidthValue, 50); // set detect region center width value(0~100)
  58. Mu.write(VISION_COLOR_RECOGNITION, kHeightValue, 50); // set detect region center height value(0~100)
  59. Mu.CameraSetAwb(kLockWhiteBalance);
  60.  
  61. }
  62.  
  63. void loop()
  64. {
  65. int sensorStatus1 = digitalRead(Sensor1);
  66. int sensorStatus2 = digitalRead(Sensor2);
  67. int sensorStatus3 = digitalRead(Sensor3);
  68. int sensorStatus4 = digitalRead(Sensor4);
  69. Serial.print(sensorStatus1);
  70. Serial.print(" ");
  71. Serial.print(sensorStatus2);
  72. Serial.print(" ");
  73. Serial.print(sensorStatus3);
  74. Serial.print(" ");
  75. Serial.println(sensorStatus4);
  76.  
  77. if (sensorStatus1 == 0 || sensorStatus2 == 0 || sensorStatus3 == 0 || sensorStatus4 == 0 )
  78. {
  79. colorswitch();
  80. // if the pin is high turn off the onboard Led
  81. digitalWrite(Move, HIGH); // LED LOW
  82. //Serial.println("Motion Start!"); // print Motion Detected! on the serial monitor window
  83. }
  84. else
  85. {
  86. //else turn on the onboard LED
  87. digitalWrite(Move, LOW); // LED High
  88. //Serial.println("Motion Stop!"); // print Motion Ended! on the serial monitor window
  89. }
  90. }
  91.  
  92.  
  93. void colorswitch() {
  94.  
  95. if (Mu.GetValue(VISION_COLOR_RECOGNITION, kStatus)) { // update vision result and get status, 0: undetected, other: detected
  96. switch (Mu.GetValue(VISION_COLOR_RECOGNITION, kLabel)) { // get vision result: label value
  97.  
  98. case MU_COLOR_GREEN:
  99. Serial.println("green");
  100. digitalWrite (Speed1 , HIGH);
  101. digitalWrite (Speed2 , LOW);
  102. digitalWrite (Stop , LOW);
  103. digitalWrite(13,1);
  104. delay(3000);
  105. break;
  106. case MU_COLOR_PURPLE:
  107. Serial.println("purple");
  108. digitalWrite (Speed1 , LOW);
  109. digitalWrite (Speed2 , LOW);
  110. digitalWrite (Stop , HIGH);
  111. delay(500);
  112. digitalWrite (Speed1 , LOW);
  113. digitalWrite (Speed2 , LOW);
  114. digitalWrite (Stop , LOW);
  115. digitalWrite(13,0);
  116. delay(3000);
  117. break;
  118. case MU_COLOR_YELLOW:
  119. Serial.println("yellow");
  120. digitalWrite (Speed1 , LOW);
  121. digitalWrite (Speed2 , HIGH);
  122. digitalWrite (Stop , LOW);
  123. digitalWrite(13,0);
  124. delay(3000);
  125. break;
  126. default:
  127. break;
  128. }
  129. }
  130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement