תוכן עניינים:

כיצד להכין רובוט חכם באמצעות ארדואינו: 4 שלבים
כיצד להכין רובוט חכם באמצעות ארדואינו: 4 שלבים

וִידֵאוֹ: כיצד להכין רובוט חכם באמצעות ארדואינו: 4 שלבים

וִידֵאוֹ: כיצד להכין רובוט חכם באמצעות ארדואינו: 4 שלבים
וִידֵאוֹ: איך לבנות רובוט עוקף מכשולים. בקר ארדואינו 2024, יולי
Anonim
Image
Image

שלום,

אני יוצר arduino ובמדריך זה אני הולך להראות לך כיצד ליצור רובוט חכם באמצעות arduino

אם אהבת את ההדרכה שלי, שקול לתמוך בערוץ היוטיוב שלי בשם יצרנית הארדואינו

אספקה

דברים שתצטרך:

1) arduino uno

2) חיישן קולי

3) מנוע בו

4) גלגלים

5) מקלות גלידה

6) סוללה 9V

שלב 1: חיבורים

דבק בכל המרכיבים במקום
דבק בכל המרכיבים במקום

לאחר מכן, כאשר אתה מקבל את כל הציוד, עליך להתחיל לחבר את כל הדברים על פי תרשים המעגלים שניתן למעלה

שלב 2: הדבק את כל המרכיבים במקום

בסדר,

עכשיו חבר את כל הדברים במקום כפי שמוצג בתמונה למעלה

שלב 3: תכנות

עַכשָׁיו,

התחל לתכנת את הלוח עם הקוד הנתון להלן

// ARDUINO OBSTACLE HONYING CAR //// לפני העלאת הקוד עליך להתקין את הספרייה הדרושה // // AFMotor Library https://learn.adafruit.com/adafruit-motor-shield/library-install // // ספריית NewPing https://github.com/livetronic/Arduino-NewPing// // ספריית סרוו https://github.com/arduino-libraries/Servo.git // // להתקנת הספריות עבור לסקיצה >> כלול ספרייה >> הוסף קובץ. ZIP >> בחר את קבצי ה- ZIP שהורדו מהקישורים למעלה //

#לִכלוֹל

#לִכלוֹל

#לִכלוֹל

#הגדר TRIG_PIN A0

#הגדר ECHO_PIN A1 #הגדר MAX_DISTANCE 200

#define MAX_SPEED 150 // קובע את מהירות מנועי DC

#הגדר MAX_SPEED_OFFSET 20

סונאר NewPing (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DC מנוע מנוע 1 (1, MOTOR12_1KHZ);

// AF_DC מנוע מנוע 2 (2, MOTOR12_1KHZ); // AF_DC מנוע מנוע 3 (3, MOTOR34_1KHZ); AF_DC מנוע מנוע 4 (4, MOTOR34_1KHZ); סרוו מיסרבו;

בוליאני goesForward = false;

מרחק int = 100; int speedSet = 0;

הגדרת בטל () {

myservo.attach (10);

myservo.write (115); עיכוב (1000); distance = readPing (); עיכוב (100); distance = readPing (); עיכוב (100); distance = readPing (); עיכוב (100); distance = readPing (); עיכוב (100); }

לולאת חלל () {

int distanceR = 0; int distanceL = 0; עיכוב (40); if (מרחק <= 15) {moveStop (); עיכוב (100); moveBackward (); עיכוב (300); moveStop (); עיכוב (200); distanceR = lookRight (); עיכוב (300); distanceL = lookLeft (); עיכוב (300);

אם (מרחק R> = מרחק L)

{ פנה ימינה(); moveStop (); } אחר {turnLeft (); moveStop (); }} else {moveForward (); } distance = readPing (); }

int lookRight ()

{myservo.write (50); עיכוב (650); int distance = readPing (); עיכוב (100); myservo.write (115); מרחק החזרה; }

int lookLeft ()

{myservo.write (170); עיכוב (650); int distance = readPing (); עיכוב (100); myservo.write (115); מרחק החזרה; עיכוב (100); }

int readPing () {

עיכוב (70); int cm = sonar.ping_cm (); אם (cm == 0) {cm = 250; } ס מ להחזיר; }

void moveStop () {

motor1.run (שחרור); //motor2.run(RELEASE); //motor3.run(RELEASE); motor4.run (שחרור); } void moveForward () {

אם (! הולך קדימה)

{goesForward = true; motor1.run (קדימה); //motor2.run(קדימה); //motor3.run(קדימה); motor4.run (קדימה); עבור (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // העלו לאט את המהירות כדי להימנע מהורדת הסוללות מהר מדי {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); עיכוב (5); }}}

void moveBackward () {

goesForward = false; motor1.run (אחורה); //motor2.run(בחזרה); //motor3.run(בחזרה); motor4.run (אחורה); עבור (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // העלו לאט את המהירות כדי להימנע מהורדת הסוללות מהר מדי {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); עיכוב (5); }}

void turnRight () {

motor1.run (אחורה); //motor2.run(בחזרה); //motor3.run(קדימה); motor4.run (קדימה); עיכוב (350); motor1.run (קדימה); //motor2.run(קדימה); //motor3.run(קדימה); motor4.run (קדימה); } חלל turnLeft () {motor1.run (קדימה); //motor2.run(קדימה); //motor3.run(בחזרה); motor4.run (אחורה); עיכוב (350); motor1.run (קדימה); //motor2.run(קדימה); //motor3.run(קדימה); motor4.run (קדימה); }

מוּמלָץ: