ዝርዝር ሁኔታ:

አርዱዲኖን በመጠቀም ዘመናዊ ሮቦት እንዴት መሥራት እንደሚቻል -4 ደረጃዎች
አርዱዲኖን በመጠቀም ዘመናዊ ሮቦት እንዴት መሥራት እንደሚቻል -4 ደረጃዎች

ቪዲዮ: አርዱዲኖን በመጠቀም ዘመናዊ ሮቦት እንዴት መሥራት እንደሚቻል -4 ደረጃዎች

ቪዲዮ: አርዱዲኖን በመጠቀም ዘመናዊ ሮቦት እንዴት መሥራት እንደሚቻል -4 ደረጃዎች
ቪዲዮ: የአርዱዪኖ ሶፍትዌርን እንዴት ማውረድ እና መጫን እንደሚቻል 2024, ህዳር
Anonim
Image
Image

ሰላም,

እኔ አርዱዲኖ ሰሪ ነኝ እና በዚህ መማሪያ ውስጥ አርዱዲኖን በመጠቀም እንዴት ዘመናዊ ሮቦት መሥራት እንደሚችሉ ላሳይዎት ነው

ትምህርቴን ከወደዱ አርዱዲኖ ሰሪ የተባለውን የዩቲዩብ ጣቢያዬን ለመደገፍ ያስቡበት

አቅርቦቶች

የሚፈልጓቸው ነገሮች ፦

1) arduino uno

2) የአልትራሳውንድ ዳሳሽ

3) ቦ ሞተር

4) መንኮራኩሮች

5) አይስ ክሬም ተጣብቋል

6) 9v ባትሪ

ደረጃ 1 - ግንኙነቶች

በቦታው ላይ ያሉትን ሁሉንም ነገሮች ያጣምሩ
በቦታው ላይ ያሉትን ሁሉንም ነገሮች ያጣምሩ

በኋላ ፣ ሁሉንም አቅርቦቶች አሁን ማግኘት ከላይ በተጠቀሰው የወረዳ ንድፍ መሠረት ሁሉንም ነገሮች ማገናኘት መጀመር አለብዎት

ደረጃ 2 - ሁሉንም አካላት በቦታው ላይ ማጣበቅ

እሺ

ከላይ ባለው ሥዕል ላይ እንደሚታየው አሁን ሁሉንም ነገሮች በቦታው ያገናኙ

ደረጃ 3 - መርሃ ግብር

አሁን ፣

ከዚህ በታች በተሰጠው ኮድ ሰሌዳውን ማዘጋጀት ይጀምሩ

// ARDUINO OBSTACLE AVOIDING CAR //// ኮዱን ከመስቀልዎ በፊት አስፈላጊውን ቤተ-መጽሐፍት መጫን አለብዎት // // AFMotor Library https://learn.adafruit.com/adafruit-motor-shield/library-install // // የኒው ፒንግ ቤተ-መጽሐፍት https://github.com/livetronic/Arduino-NewPing// // Servo Library https://github.com/arduino-libraries/Servo.git // // ቤተ-ፍርግሞቹን ለመጫን ወደ ንድፍ ይሂዱ >> አካትት ቤተመጻሕፍት >>. ZIP ፋይል አክል >> የወረዱትን ዚፕ ፋይሎችን ከላይ ከሚገኙት አገናኞች ውስጥ ይምረጡ //

#ያካትቱ

#ያካትቱ

#ያካትቱ

#TRIG_PIN A0 ን ይግለጹ

#መግለፅ ECHO_PIN A1 #MAX_DISTANCE 200 ን ይግለጹ

#ጥራት MAX_SPEED 150 // የዲሲ ሞተሮችን ፍጥነት ያዘጋጃል

#ጥራት MAX_SPEED_OFFSET 20

የኒው ፒንግ ሶናር (TRIG_PIN ፣ ECHO_PIN ፣ MAX_DISTANCE);

AF_DCMotor motor1 (1 ፣ MOTOR12_1KHZ);

// AF_DCMotor motor2 (2 ፣ MOTOR12_1KHZ); // AF_DCMotor motor3 (3 ፣ MOTOR34_1KHZ); AF_DCMotor motor4 (4 ፣ MOTOR34_1KHZ); Servo myservo;

ቡሊያን ይሄዳል Forward = ሐሰት;

int ርቀት = 100; int speedSet = 0;

ባዶነት ማዋቀር () {

myservo.attach (10);

myservo.write (115); መዘግየት (1000); ርቀት = readPing (); መዘግየት (100); ርቀት = readPing (); መዘግየት (100); ርቀት = readPing (); መዘግየት (100); ርቀት = readPing (); መዘግየት (100); }

ባዶነት loop () {

int distanceR = 0; int distanceL = 0; መዘግየት (40); ከሆነ (ርቀት <= 15) {moveStop (); መዘግየት (100); moveBackward (); መዘግየት (300); moveStop (); መዘግየት (200); distanceR = lookRight (); መዘግየት (300); distanceL = lookLeft (); መዘግየት (300);

ከሆነ (distanceR> = distanceL)

{ ወደ ቀኝ ታጠፍ(); moveStop (); } ሌላ {turnLeft (); moveStop (); }} ሌላ {moveForward (); } ርቀት = readPing (); }

int lookRight ()

{myservo.write (50); መዘግየት (650); int ርቀት = readPing (); መዘግየት (100); myservo.write (115); የመመለሻ ርቀት; }

int lookLeft ()

{myservo.write (170); መዘግየት (650); int ርቀት = readPing (); መዘግየት (100); myservo.write (115); የመመለሻ ርቀት; መዘግየት (100); }

int readPing () {

መዘግየት (70); int cm = sonar.ping_cm (); ከሆነ (cm == 0) {cm = 250; } ተመለስ ሴሜ; }

ባዶ እንቅስቃሴ moveStop () {

ሞተር 1. ሩጫ (መልቀቅ); //motor2.run(RELEASE); //motor3.run(RELEASE); ሞተር 4.run (መልቀቅ); } ባዶ እንቅስቃሴ ወደፊት () {

ከሆነ (! goForward)

{goForward = እውነት; ሞተር1.run (ወደፊት); //motor2.run(FORWARD); // ሞተር 3.run(FORWARD); ሞተር 4.run (ወደፊት); ለ (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // ባትሪዎቹን በፍጥነት እንዳይጭኑ ፍጥነቱን ቀስ ብለው ያመጣሉ {motor1.setSpeed (speedSet); //motor2.setSpeed (speedSet); //motor3.setSpeed (speedSet); ሞተር 4.setSpeed (speedSet); መዘግየት (5); }}}

ባዶ እንቅስቃሴ ወደኋላ () {

goForward = ሐሰት; ሞተር 1. ሩጫ (የኋላ ታሪክ); //motor2.run(BACKWARD); //motor3.run(BACKWARD); ሞተር 4.run (ጀርባ); ለ (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // ባትሪዎቹን በፍጥነት እንዳይጭኑ ፍጥነቱን ቀስ ብለው ያመጣሉ {motor1.setSpeed (speedSet); //motor2.setSpeed (speedSet); //motor3.setSpeed (speedSet); ሞተር 4.setSpeed (speedSet); መዘግየት (5); }}

ባዶ መዞር () {

ሞተር 1. ሩጫ (የኋላ ታሪክ); //motor2.run(BACKWARD); // ሞተር 3.run(FORWARD); ሞተር 4.run (ወደፊት); መዘግየት (350); ሞተር1.run (ወደፊት); //motor2.run(FORWARD); // ሞተር 3.run(FORWARD); ሞተር 4.run (ወደፊት); } ባዶ ባዶ መታጠፊያ () {motor1.run (FORWARD); //motor2.run(FORWARD); //motor3.run(BACKWARD); ሞተር 4.run (ጀርባ); መዘግየት (350); ሞተር1.run (ወደፊት); //motor2.run(FORWARD); // ሞተር 3.run(FORWARD); ሞተር 4.run (ወደፊት); }

የሚመከር: