рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░, рд╣рдм рд╕рд╣рд┐рдд рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реЛрдмреЛрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдПрдХ рдмреЗрдХрд╛рд░ рдкрдбрд╝рд╛ рд╣реИред

рд░реЛрдмреЛрдЯ рдХреЗ рд▓рд┐рдП рдЪреЗрд╕рд┐рд╕ рдкрд░ рдкреИрд╕реЗ рдХреА рдХрдореА рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╕рдмрд╕реЗ рд╕рд╕реНрддрд╛ рдФрд░ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдПрдХ рдЕрд▓реНрдЯреНрд░рд╛рд╕реЛрдирд┐рдХ рд░реЗрдВрдЬ рдлрд╛рдЗрдВрдбрд░ рдХреЛ рд╕рдВрд╡реЗрджреА рдЕрдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред

рд╡рд┐рдЪрд╛рд░
рдореИрдВ рдЕрдкрдиреЗ arduins рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╕реНрддрд╛ рдФрд░ рдЖрд╕рд╛рди рдордВрдЪ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред
рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд░реЗрдбрд┐рдпреЛ-рдирд┐рдпрдВрддреНрд░рд┐рдд рдЬреАрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдореЛрдЯрд░рд╢рд┐рд▓реНрдб рдХреА рд╢рдХреНрддрд┐ рд╕рд╛рдорд╛рдиреНрдп рдЖрдВрджреЛрд▓рди рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рдереА (рдореИрдВрдиреЗ рдЧрд▓рддреА рд╕реЗ рдЗрдВрдЬрди рдЪрд╛рд▓рдХ рдХреЛ рднреА рдЬрд▓рд╛ рджрд┐рдпрд╛ рдерд╛)ред 4 рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рд╡рд╛рд▓реЗ рдПрдХ рдПрдЪ-рдмреНрд░рд┐рдЬ рдХреА рдЬрд░реВрд░рдд рдереАред рдЦрд┐рд▓реМрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдордЭрдирд╛ рдЖрд▓рд╕реА рдерд╛ (рдФрд░ рдореИрдВ рдЗрд╕реЗ рддреЛрдбрд╝рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдерд╛), рд▓реЗрдХрд┐рди рдЯрд╛рдВрдХрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рддреГрднреВрдорд┐ рдХреЗ рдбрд┐рдмреНрдмреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдлрд╡рд╛рд╣ рдХрд░рдирд╛ рдФрд░ рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рдХреА рддрд▓рд╛рд╢ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред
рдореЗрд░реЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рдХрдИ рдореЛрдЯрд░реНрд╕, рдПрд▓реНрдпреВрдореАрдирд┐рдпрдо рд╢реАрдЯ рдХреЗ рд╕реНрдХреНрд░реИрдк рдФрд░ рдПрдХ рд╕реЛрд╡рд┐рдпрдд рдзрд╛рддреБ рдирд┐рд░реНрдорд╛рддрд╛ рдереЗред
рдбрд┐рдЬрд╝рд╛рдЗрди
рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдпрд╛рддреНрд░рд╛ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВ рдЕрдХреНрд╕рд░ рдмреАрдо-рд░реЛрдмреЛрдЯ рдореЗрдВ рдЖрдпрд╛ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рди рддреЛ рдкрд╣рд┐рдП рдереЗ рдФрд░ рди рд╣реА рдЯреНрд░реИрдХ, рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рдереА рдХрд┐ рдЗрд╕рдореЗрдВ рдЧрд┐рдпрд░рдмреЙрдХреНрд╕ рдирд╣реАрдВ рдереЗред
рд╕рдВрдкреВрд░реНрдг рд░рд╣рд╕реНрдп рдореЛрдЯрд░реЛрдВ рдореЗрдВ рдерд╛, рдЬреЛ рдлрд░реНрд╢ рд╕реЗ рдХреЛрдг рдкрд░ рд╕реНрдерд┐рдд рдереЗред рд░реЛрдмреЛрдЯ рдареАрдХ рд╢рд╛рдлреНрдЯ рдкрд░ рдЦрдбрд╝рд╛ рдерд╛ред

рдпрд╣ рдЖрдкрдХреЛ рдЧрд┐рдпрд░ рдЕрдиреБрдкрд╛рдд, рдЗрдВрдЬрди рд╢рдХреНрддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рд╢рд╛рдлреНрдЯ рдХреЗ рдЫреЛрдЯреЗ рд╡реНрдпрд╛рд╕ рдХреЗ рдХрд╛рд░рдг рдореЛрдЯрд░ рд╕реНрд╡рдпрдВ рдЧрд┐рдпрд░рдмреЙрдХреНрд╕ рд╣реИрдВред
рдирд┐рд░реНрдорд╛рдг
рдврд╛рдВрдЪрд╛
рдореИрдВрдиреЗ рдПрдХ рдПрд▓реНрдпреВрдореАрдирд┐рдпрдо рд╢реАрдЯ рд╕реЗ рдПрдХ рдореЛрдЯрд░ рдзрд╛рд░рдХ рдХреЛ рдХрд╛рдЯ рджрд┐рдпрд╛, рдЗрд╕реЗ рдбрд┐рдЬрд╛рдЗрдирд░ рд╕реЗ рдлреНрд░реЗрдо рд╕реЗ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдФрд░ Arduino рдзрд╛рд░рдХ рдХреЛ рдЦрд░рд╛рдм рдХрд░ рджрд┐рдпрд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, dremel, рдПрдХ рдкреЗрдЪрдХрд╢ рдФрд░ рдЕрдзрд┐рдХрддрдо 15 рдорд┐рдирдЯ рдХрд╛ рд╕рдордп рд╣реИред
рдЗрд▓реЗрдХреНрдЯреНрд░рд╛рдирд┐рдХреНрд╕
рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрд░реНрдбрд┐рдиреЛ рдореЛрдЯрд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореЛрдЯрд░реНрд╕ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЙрдирдХреЗ рдкрд╛рд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ рд╣реЛрддреА рд╣реИ рддрд╛рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рди рдЬрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдмрд╛рдж рдореЗрдВ рдореИрдВрдиреЗ рдПрдХ рд╢рдЯрдбрд╛рдЙрди рдмрдЯрди рдЬреЛрдбрд╝рд╛ред рдПрдХ рдЕрд▓реНрдЯреНрд░рд╛рд╕реЛрдирд┐рдХ рд░реЗрдВрдЬрдлрд╛рдЗрдВрдбрд░ SRF05 рдмреЛрд░реНрдбреЛрдВ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рд╡рд╣ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ 2 рдореЛрдб рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ, рдореИрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдирд╣реАрдВ рд░реЛрдХ рдкрд╛рдпрд╛, рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдкрд╣рд▓реЗ рдореЛрдб рдореЗрдВ 2 рдХреЙрдиреНрдЯреИрдХреНрдЯреНрд╕ (рд╕рд╛рдЙрдВрдб рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреНрд░рд┐рдЧрд░, рджреВрд╕рд░рд╛ рдбреЗрдЯрд╛ рд░рд┐рд╕реЗрдкреНрд╢рди) рдФрд░ рджреВрд╕рд░рд╛ рдХреНрд░рдорд╢рдГ, 1, рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЙрд╕реЗ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред рдПрдХ рдПрдбреЗрдкреНрдЯрд░ рд╕реЗрдВрд╕рд░ рдХреЗ рд▓рд┐рдП рдорд┐рд▓рд╛рдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рд╕реЗрдВрд╕рд░ рдХреЛ рджреВрд╕рд░реЗ рдореЛрдб (рдЬрдореАрди рдПрдХ рд╕рдВрдкрд░реНрдХ) рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ
рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛, рдореИрдВрдиреЗ рджреАрд╡рд╛рд░ рдХреЛ рджреЗрдЦрд╛, рдмрд╛рд░реАред рдпрд╣рд╛рдБ рдореИрдВ рдПрдХ рдЕрдзрд┐рдХ рд╕рд╛рд░реНрдердХ рдХреЛрдб рджреВрдВрдЧрд╛ред рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рд╣реИред
рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
1) рдЕрдкрдиреА рдзреБрд░реА рдкрд░ рдШреВрдореЗрдВ рдФрд░ рдЕрдзрд┐рдХрддрдо рджреВрд░реА рдЬреНрдЮрд╛рдд рдХрд░реЗрдВ
2) рдЕрдзрд┐рдХрддрдо рджреВрд░реА рдХреА рдУрд░ рдореБрдбрд╝реЗрдВ
3.1) рдпрджрд┐ рдЖрдк рдореБрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рд╣рдо рд╕реАрдзреЗ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ
рей.реи) рдЕрдЧрд░ рд╣рдо рдЖрдЧреЗ рдирд╣реАрдВ рдмрдврд╝ рд╕рдХреЗ
4.1) рдпрджрд┐ рдЕрдЯрдХ рдЧрдпрд╛ (рд╣рдо рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рджреВрд░реА рдирд╣реАрдВ рдмрджрд▓рддреА рд╣реИ) рд╣рдо рд╡рд╛рдкрд╕ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдмрд┐рдВрджреБ 1 рдкрд░ рд▓реМрдЯрддреЗ рд╣реИрдВ
4.2) рдпрджрд┐ рдЖрдк рджреАрд╡рд╛рд░ рддрдХ рдкрд╣реБрдБрдЪрддреЗ рд╣реИрдВ, рддреЛ рд░реБрдХреЗрдВ рдФрд░ рдмрд┐рдВрджреБ 1 рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдБ
рд╕реНрд░реЛрдд:
#include <AFMotor.h> #define MaxRange 23 // #define MaxTries 3 // int srfPin = 16; // Pin for SRF05 int ledPin = 2; // AF_DCMotor motorL(2); AF_DCMotor motorR(1); boolean isInRange(int value,int leftBorder,int rightBorder){ return (value>leftBorder && value<rightBorder); } // int getDistance(){ delay(50); int duration=0; // pinMode(srfPin, OUTPUT); digitalWrite(srfPin, LOW); // , delayMicroseconds(2); digitalWrite(srfPin, HIGH); // 10 delayMicroseconds(10); digitalWrite(srfPin, LOW); // pinMode(srfPin, INPUT); duration = pulseIn(srfPin, HIGH); // return duration/58; // } // void goForward(){ motorL.setSpeed(255); motorR.setSpeed(255); motorL.run(FORWARD); motorR.run(FORWARD); } void goBackward(){ motorL.setSpeed(255); motorR.setSpeed(255); motorL.run(BACKWARD); motorR.run(BACKWARD); } void turnLeft(){ motorL.setSpeed(255); motorR.setSpeed(255); motorL.run(BACKWARD); motorR.run(FORWARD); } void turnRight(){ motorL.setSpeed(255); motorR.setSpeed(255); motorL.run(FORWARD); motorR.run(BACKWARD); } void stopMovement(){ motorL.run(RELEASE); motorR.run(RELEASE); } // int getMaxDistanseAround(){ unsigned long timeStart=millis(); int maxFound=0; // if(random(100)<50){turnLeft();}else{turnRight();} // while(millis()-timeStart<3000){ int curDistance=getDistance(); if( curDistance > maxFound ){ maxFound=curDistance; } } return maxFound; } // boolean turnToDistance(int distance){ unsigned long timeStart=millis(); // if(random(100)<50){turnLeft();}else{turnRight();} // while(millis()-timeStart<3000){ // // , if( isInRange(getDistance(),distance-5,distance+5)){ // usb Serial.print("Turned to "); Serial.println(getDistance()); // ( ) goBackward(); delay(200); stopMovement(); blinkLed(); return true;// 1, .. } } Serial.println("distance not found"); return false;// } // , float getMySpeed(){ int secToMeas=2; float firstDistance=getDistance(); goForward(); delay(secToMeas*1000); stopMovement(); float newDistance=getDistance(); return (firstDistance-getDistance())/secToMeas/100; } // void blinkLed(){ digitalWrite(ledPin, HIGH); delay(1000); digitalWrite(ledPin, LOW); } float mySpeedSm=0;// /c float mySpeedM=0;// /c void setup() { Serial.begin(9600); // set up Serial library at 9600 bps // .. // randomSeed(analogRead(0)); // , pinMode(ledPin, OUTPUT); Serial.println("Testing systems"); blinkLed(); // getDistance(); if(getDistance()>0){ Serial.println("Ultrasonic sensor ready"); } delay(1000/4); // motorL.setSpeed(255); motorR.setSpeed(255); stopMovement(); blinkLed(); delay(1000/3); Serial.println("Getting averange speed"); blinkLed(); mySpeedSm=getMySpeed(); mySpeedM=mySpeedSm/100; blinkLed(); blinkLed(); blinkLed(); } int tries=MaxTries; // void loop(){ // int maxDist=getMaxDistanseAround(); Serial.print("Found max distance"); Serial.println(maxDist); delay(500); // if(turnToDistance(maxDist)){ tries=MaxTries;// int lastDistance=getDistance(); // while(lastDistance>MaxRange){ goForward(); delay(500); // int newDist=getDistance(); if(isInRange(newDist,lastDistance-2,lastDistance+2)){ goBackward(); delay(1000); lastDistance=0; } else{ lastDistance=newDist; } } }else{ // // tries--; if(tries==0){// - if(getDistance()>MaxRange*2){ goForward(); delay(1000); } else{ goBackward(); delay(1000); } } } stopMovement(); delay(500); }
рд╡реАрдбрд┐рдпреЛ
рдирд┐рд╖реНрдХрд░реНрд╖
рдПрдХ рд╢рд╛рдо рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд░реЛрдмреЛрдЯ рдмрдирд╛рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрднрд╡ рд╣реИред рдмреЗрд╢рдХ рдЦрд╛рдорд┐рдпрд╛рдВ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реЗрдВрд╕рд░ рдХреЛ рдПрдХ рд╕рд░реНрд╡реЛрдореЛрдЯрд░ рдкрд░ рд▓рдЯрдХрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рддрд╛рд░реЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╡рд╛рдкрд╕ рд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рд░реЛрдмреЛрдЯ рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВрдЧреЗред