Arduino рдкрд░ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдХрдЫреБрдЖ рд░реЛрдмреЛрдЯ

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

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





рд╡рд┐рдЪрд╛рд░



рдореИрдВ рдЕрдкрдиреЗ 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); } 


рд╡реАрдбрд┐рдпреЛ




рдирд┐рд╖реНрдХрд░реНрд╖


рдПрдХ рд╢рд╛рдо рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд░реЛрдмреЛрдЯ рдмрдирд╛рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрднрд╡ рд╣реИред рдмреЗрд╢рдХ рдЦрд╛рдорд┐рдпрд╛рдВ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реЗрдВрд╕рд░ рдХреЛ рдПрдХ рд╕рд░реНрд╡реЛрдореЛрдЯрд░ рдкрд░ рд▓рдЯрдХрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рддрд╛рд░реЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╡рд╛рдкрд╕ рд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рд░реЛрдмреЛрдЯ рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВрдЧреЗред

Source: https://habr.com/ru/post/In135529/


All Articles