//import your motor shield library #include // define the pins of your sensor const int trigPin = 2 ; const int echoPin = 13 ; // set up motors. AF_DCMotor motor1(1,MOTOR12_64KHZ); AF_DCMotor motor2(2, MOTOR12_64KHZ); AF_DCMotor motor3(3, MOTOR34_64KHZ); AF_DCMotor motor4(4, MOTOR34_64KHZ); // sets speed of DC motors, between 0-255 #define MAX_SPEED 200 long duration, distance; void setup() { // begin serial communication Serial.begin(9600); pinMode(trigPin, OUTPUT); // set the trig pin to output pinMode(echoPin, INPUT); // set the echo pin to input //set the speed of the motors motor1.setSpeed(MAX_SPEED); motor2.setSpeed (MAX_SPEED); motor3.setSpeed (MAX_SPEED); motor4.setSpeed (MAX_SPEED); } void loop() { // start the scan digitalWrite(trigPin, LOW); delayMicroseconds(2); // 2us delays are required for a succesful sensor operation. digitalWrite(trigPin, HIGH); delayMicroseconds(10); // 10us delay is required digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = (duration/2) * 0.0343; // convert the distance to centimeters. if (distance < 25) /*if there's an obstacle 25 centimers, car go backward then turn right */ { Serial.println ("Obstacle detected" ); Serial.print ("Distance from the car is " ); Serial.print ( distance); Serial.println ( " cm");// print out the distance in centimeters. Serial.println (" move backward during half second !"); delay(100); moveBackward(); delay(500); Serial.println (" release movment !"); moveStop(); delay(200); Serial.println (" turn right durin 1 second !"); turnRight(); delay(1000); } else { Serial.println ("If no obstacle detected, car move forward"); delay (15); moveForward(); } } //Move forward Function void moveForward() { motor1.run(FORWARD); motor2.run(FORWARD); motor3.run(FORWARD); motor4.run(FORWARD); } //release movment Function void moveStop() { motor1.run(RELEASE); motor2.run(RELEASE); motor3.run(RELEASE); motor4.run(RELEASE); } //Move backward Function void moveBackward() { motor1.run(BACKWARD); motor2.run(BACKWARD); motor3.run(BACKWARD); motor4.run(BACKWARD); } //Turn Right Function void turnRight() { motor1.run(FORWARD); motor3.run(FORWARD); motor2.run(BACKWARD); motor4.run(BACKWARD); }
مشكور جهدك ولاكن نرجو فديو تشرح فيه طريقة تركيب وتجميع وبرمجة الربوت الذي يتبع الخط الاسود (لين فولور) لاننا تحتاجه لدخول مسابقة جامعية لك منا كامل الشكر والاحترام اخي الفاضل
السلام عليكم ورحمة اله وبركاته جهدكم مشكور والشرح شافي وكافي ,ولكني اريد الكود مكتوب في صندوق الوصف او في العليقات علي هي التجربة وعلي الجربة "روبوت يمشي علي الخط الاسود" ارجو الرد سريعا وشكرا جزيلا..