Բովանդակություն:

OAREE - 3D տպագիր - Engineeringարտարագիտական կրթության համար նախատեսված ռոբոտին խոչընդոտներից խուսափելը (OAREE) Arduino- ով. 5 քայլ (նկարներով)
OAREE - 3D տպագիր - Engineeringարտարագիտական կրթության համար նախատեսված ռոբոտին խոչընդոտներից խուսափելը (OAREE) Arduino- ով. 5 քայլ (նկարներով)

Video: OAREE - 3D տպագիր - Engineeringարտարագիտական կրթության համար նախատեսված ռոբոտին խոչընդոտներից խուսափելը (OAREE) Arduino- ով. 5 քայլ (նկարներով)

Video: OAREE - 3D տպագիր - Engineeringարտարագիտական կրթության համար նախատեսված ռոբոտին խոչընդոտներից խուսափելը (OAREE) Arduino- ով. 5 քայլ (նկարներով)
Video: Փորձեք բոլոր շրջանակները տեղավորել շրջանակում | 3D տպագիր հանելուկ 2024, Դեկտեմբեր
Anonim
Image
Image
OAREE - 3D տպագիր - Engineeringարտարագիտական կրթության համար ռոբոտից խուսափող խոչընդոտներից (OAREE) Arduino- ի հետ
OAREE - 3D տպագիր - Engineeringարտարագիտական կրթության համար ռոբոտից խուսափող խոչընդոտներից (OAREE) Arduino- ի հետ
OAREE - 3D տպագիր - Engineeringարտարագիտական կրթության համար ռոբոտից խուսափող խոչընդոտներից (OAREE) Arduino- ի հետ
OAREE - 3D տպագիր - Engineeringարտարագիտական կրթության համար ռոբոտից խուսափող խոչընդոտներից (OAREE) Arduino- ի հետ

OAREE (Ինժեներական կրթության համար ռոբոտից խուսափելու խոչընդոտ)

Դիզայն. Այս հրահանգի նպատակն էր նախագծել OAR (Խոչընդոտներից խուսափող ռոբոտին) ռոբոտը, որը պարզ/կոմպակտ էր, 3D տպելի, հեշտ հավաքվող, շարժման համար օգտագործում էր անընդհատ պտտվող սերվերներ և հնարավորինս քիչ գնված մասեր: Կարծում եմ, որ ինձ հաջողվել է ստեղծել այս հիանալի ռոբոտը և այն անվանել OAREE (Engineeringարտարագիտական կրթության համար խոչընդոտներից խուսափող ռոբոտ): Այս ռոբոտը կզգա խոչընդոտները, կկանգնի, կանդրադառնա ձախ և աջ, այնուհետև կշրջվի անարգել ուղղությամբ և կշարունակի առաջ:

Նախապատմություն. Ինտերնետը ռոբոտներից խուսափելու բազմաթիվ խոչընդոտներ ունի, սակայն դրանցից շատերը զանգվածային են, դժվար է հավաքվել և թանկ են: Այս ռոբոտներից շատերին տրամադրված է Arduino ծածկագիրը, սակայն դժվար էր գտնել լավ մտածված և աշխատող օրինակ: Ես նաև ուզում էի անիվների համար օգտագործել անընդհատ պտտման սերվերներ (DC շարժիչների փոխարեն), ինչը դեռ չէր արվել: Այսպիսով, ես մեկնեցի մի առաքելության ՝ զարգացնելու կոմպակտ, հնարամիտ OAR ռոբոտ, որը պետք է կիսվի աշխարհի հետ:

Հետագա զարգացում. Այս ռոբոտը կարող է հետագայում մշակվել `ավելի լավ պինգինգի ճշգրտության համար` ավելացնելով IR սենսորներ գծի հետևող հնարավորության համար, LCD էկրան `խոչընդոտների հեռավորությունը ցուցադրելու համար և շատ ավելին:

Պարագաներ

  • 1x Arduino Uno -
  • 1x V5 ցուցիչ վահան -
  • 1x 4xAA մարտկոցի կրիչ ՝ միացված/անջատիչով -
  • 1x SG90 Servo -
  • 2x շարունակական պտտման ծառայություններ -
  • 1x 9V մարտկոցի հոսանքի մալուխ Arduino- ի համար (ՈTՇԱԴՐՈԹՅԱՆ) -
  • 1x HC -SR04 ուլտրաձայնային տվիչ -
  • 4x իգական-իգական ցատկող լարեր-https://www.amazon.com/RGBZONE-120pcs-Multicolored…
  • 2 ռետինե ժապավեն
  • 1x 9V մարտկոց (ըստ ցանկության)
  • 4x AA մարտկոցներ
  • 4x փոքր պտուտակներ (4 x 1/2 կամ նման բան)
  • Phillips պտուտակահան
  • Սոսինձ ռետինե ժապավենները անիվներին ամրացնելու համար

Քայլ 1: 3D տպագրություն

3D տպում. Մարմին, անիվներ, մարմարե սկուտեղ, 6 մմ պտուտակ/ընկույզ և ուլտրաձայնային ցուցիչ
3D տպում. Մարմին, անիվներ, մարմարե սկուտեղ, 6 մմ պտուտակ/ընկույզ և ուլտրաձայնային ցուցիչ
3D տպում ՝ մարմին, անիվներ, մարմարե սկավառակ, 6 մմ պտուտակ/ընկույզ և ուլտրաձայնային ցուցիչ
3D տպում ՝ մարմին, անիվներ, մարմարե սկավառակ, 6 մմ պտուտակ/ընկույզ և ուլտրաձայնային ցուցիչ
3D տպում. Մարմին, անիվներ, մարմարե սկուտեղ, 6 մմ պտուտակ/ընկույզ և ուլտրաձայնային ցուցիչ
3D տպում. Մարմին, անիվներ, մարմարե սկուտեղ, 6 մմ պտուտակ/ընկույզ և ուլտրաձայնային ցուցիչ

3D տպագրության համար կա 5 մաս:

  1. Մարմին
  2. Անիվներ
  3. Մարմար մարմնամարզիչ
  4. 6 մմ պտուտակ/ընկույզ (ըստ ցանկության, կարելի է փոխարինել մետաղական ընկույզ/պտուտակ)
  5. Ուլտրաձայնային սենսորային լեռ

Բոլոր անհրաժեշտ. STL ֆայլերը ներառված են այս ուսանելի, ինչպես նաև Sketchup ֆայլերում: Խորհուրդ է տրվում լցնել 40%:

Քայլ 2. Programրագրեք Arduino- ն

Image
Image
Հավաքեք ռոբոտը
Հավաքեք ռոբոտը

Կոդ ուղարկեք Arduino UNO. Arduino IDE- ի միջոցով ուղարկեք կոդը (կցված ֆայլում) ձեր Arduino մոդուլին: Այս ուրվագծով դուք պետք է ներբեռնեք և ներառեք servo.h և newping.h գրադարանները:

Կոդը մանրակրկիտ մեկնաբանված է, այնպես որ կարող եք տեսնել, թե ինչ է անում յուրաքանչյուր հրաման: Easilyանկության դեպքում կարող եք հեշտությամբ փոխել Ուլտրաձայնային տվիչի հեռավորությունը ավելի մեծ կամ փոքր արժեքի: Սա սկզբնական ծածկագիր է և նախատեսված է այն ընդլայնել և օգտագործել նախագծի հետագա զարգացման համար:

// ՌՈԲՈՏԻ ԽՆԴԻՐԸ ԽՈՍՔԻ // // [email protected], [email protected], TN University at Chattanooga, Electrical Engineering, FALL 2019 // Պահանջվող նյութեր ՝ // 1) Arduiino UNO, 2) Servo Sensor Shield v5.0, 3) HCSR04 ուլտրամանուշակագույն տվիչ, 4) FS90 սերվո (ուլտրաձայնային տվիչի համար) // 5 և 6) անիվների համար 2x ՇԱՐՈՆԱԿՈERԹՅԱՆ ERԱՌԱՅՈԹՅՈՆՆԵՐ // 7) 16 մմ մարմար հետևի գերչակի առանցքի համար, 8 և 9) 2 ռետինե ժապավեն անիվների համար // 10- 15) 1x (4xAA) Մարտկոցի կրիչ միացման/անջատման անջատիչով, 16 & 17) 9 Վ մարտկոց ՝ հոսանքի միակցիչով Arduino UNO // 3D PRINT: // 18) ROBOT Body, 19 & 20) 2x Wheels, 21) Marble Caster, 22) Ultrasonic Sensor Լեռ և 6 մմ պտուտակ (տես կցված ֆայլերը) // ------------------------------------------ ------------------------------------------------------ ----------------------------------------- #ներառել // Ներառել Servo Library #Include // Ներառեք նոր գրադարան // ----------------------------------------------- ------------------------------------------------------ ---------------------------------------- #սահմանեք TRIGGER_PIN 1 2 // ԱՄՆ -ի ձգան Arduino- ում 12 -ի սահմանում #սահմանեք ECHO_PIN 13 // ԱՄՆ -ի Էխո ՝ Arduino- ում սահմանեք #define MAX_DISTANCE 250 // Հեռավորությունը պինգից (առավելագույնը 250 է) int հեռավորությունը = 100; // ---------------------------------------------------- ------------------------------------------------------ ----------------------------------- Servo US_Servo; // Ուլտրաձայնային տվիչ Servo Servo Left_Servo; // Ձախ անիվի Servo Servo Right_Servo; // Աջ ղեկ Servo NewPing սոնար (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing կապերի և առավելագույն հեռավորության կարգավորում: // ---------------------------------------------------- ------------------------------------------------------ ------------------------ {pinMode (12, ԵԼՔ); // Գործարկման քորոցը սահմանվել է որպես ելքային pinMode (13, INPUT); // Էխո քորոց ՝ որպես մուտքագրված US_Servo.attach (11); // US Servo- ն սահմանել է 11 US_Servo.write (90) կապում; // ԱՄՆ ERԱՌԱՅՈԹՅՈՆԸ ԱՌԱՆՈՄ Է

Left_Servo.attach (9); // Ձախ անիվի servo ՝ 9 -րդ կապին

Left_Servo.write (90); // LEFT WHEEL SERVO- ն սահմանել է STOP

Right_Servo.attach (10); // Աջ ղեկի servo- ն սահմանվել է 10 -ի կապում

Right_Servo.write (90); // RIGHT WHEEL SERVO- ն սահմանել է STOP հետաձգում (2000); // Սպասեք 2 վայրկյան հեռավորության վրա = readPing (); // Ստացեք Ping հեռավորությունը ուղիղ առաջ դիրքի հետաձգման դեպքում (100); // Սպասեք 100 ms moveForward (); // ՌՈԲՈՏԸ ՇԱՐVՈՄ Է ԱՌԱ} // ------------------------------------------ ------------------------------------------------------ ---------------------------------------- անվավեր հանգույց () {int distanceRight = 0; // Նախաձեռնել ԱՄՆ հեռավորությունը դեպի աջ 0 int distanceLeft = 0; // Նախաձեռնել ԱՄՆ հեռավորությունը դեպի ձախ 0 //US_Servo.write(90); // Կենտրոն ԱՄՆ ծառայություն // ուշացում (50); // US_Servo.write (70); // Մի փոքր աջ նայիր // հետաձգում (250); // US_Servo.write (110); // Մի փոքր ձախ նայիր // ուշացում (250); // US_Servo.write (90); // Նայեք կենտրոն

եթե (հեռավորությունը <= 20) // Ռոբոտը ՇԱՐVՈՄ Է ԱՌԱ {moveStop (); // Robot STOPS at distance = distanceLeft) // Որոշեք, թե որ ուղղությամբ թեքվի {turnRight (); // Աջ կողմն ունի ամենամեծ հեռավորությունը, ՌՈԲՈՏԸ ԱՇԽԱՏՈՄ Է ԱՎԵԼԻ 0,3 վայրկյան ուշացումով (500); // Այս Հետաձգումը որոշում է շրջադարձի երկարությունը moveStop (); // Robot STOPS} else {turnLeft (); // Ձախ կողմի ամենամեծ հեռավորությունը, ՌՈԲՈՏԸ ԹԵՎՈՄ Է ՄԵEF 0.3 վայրկյան ուշացումով (500); // Այս Հետաձգումը որոշում է շրջադարձի երկարությունը moveStop (); // Robot STOPS}} else {moveForward (); // Robot MOVES FORWARD} distance = readPing (); // ԱՄՆ ԿԱՐԴՈՄ Է ՆՈՐ ՊԻՆԳ ճանապարհորդության նոր ուղղության համար} // -------------------------------------- ------------------------------------------------------ ---------------------------------------------- int lookRight () // Ուլտրաձայնային տվիչ LOOK RIGHT FUNCTION {US_Servo.write (30); // US servo Շարժվում է աջ անկյունի հետաձգման (500); int հեռավորություն = readPing (); // Setիշտ հետաձգման համար սահմանեք պինգի արժեք (100); US_Servo.write (90); // ԱՄՆ servo MOVES TO CENTER վերադարձի հեռավորությունը; // Հեռավորությունը սահմանվում է} // ---------------------------------------------- ------------------------------------------------------ ------------------------------------- int lookLeft () // Ուլտրաձայնային տվիչ LOOK LEFT FUNCTION {US_Servo.գրեք (150); // ԱՄՆ -ի ծառայությունը ՇԱՐVՈՄ Է ՁԱՅՆ դեպի անկյունի ձգձգում (500); int հեռավորություն = readPing (); // Ձախ հետաձգման համար սահմանեք պինգի արժեքը (100); US_Servo.write (90); // ԱՄՆ servo MOVES TO CENTER վերադարձի հեռավորությունը; // Հեռավորությունը սահմանվում է} // ---------------------------------------------- ------------------------------------------------------ ------------------------------------- int readPing () // Կարդացեք Ping գործառույթը ուլտրաձայնային տվիչի համար: {ուշացում (100); // 100 մգ pings- ի միջև (min ping time = 0.29ms) int cm = sonar.ping_cm (); // PING հեռավորությունը հավաքվում և սահմանվում է սմ -ով, եթե (սմ == 0) {սմ = 250; } վերադարձ սմ; } // --------------------------------------------------- ------------------------------------------------------ ------------------------------------ անվավեր moveStop () // ROBOT STOP {Left_Servo.write (90); // LeftServo 180 առաջ, 0 հակադարձ Right_Servo.write (90); // RightServo 0 առաջ, 180 հակառակ} // ------------------------------------------ ------------------------------------------------------ -------------------------------------------- անվավեր moveForward () // ROBOT FORWARD {Left_Servo.գրեք (180); // LeftServo 180 առաջ, 0 հետընթաց Right_Servo.write (0); // RightServo 0 առաջ, 180 հակառակ} // ------------------------------------------ ------------------------------------------------------ -------------------------------------------- անվավեր moveBackward () // ROBOT BACKWARD {Left_Servo.գրեք (0); // LeftServo 180 առաջ, 0 հակառակ Right_Servo.write (180); // RightServo 0 առաջ, 180 հակառակ} // ------------------------------------------ ------------------------------------------------------ -------------------------------------------- անվավեր turnRight () // ROBOT RIGHT {Left_Servo.գրեք (180); // LeftServo 180 առաջ, 0 հակադարձ Right_Servo.write (90); // RightServo 0 առաջ, 180 հակառակ} // ------------------------------------------ ------------------------------------------------------ -------------------------------------------- անվավեր turnLeft () // ROBOT LEFT {Left_Servo.գրեք (90); // LeftServo 180 առաջ, 0 հակադարձ Right_Servo.write (0); // RightServo 0 առաջ, 180 հակառակ} // ------------------------------------------ ------------------------------------------------------ --------------------------------------------

Քայլ 3: Հավաքեք ռոբոտին

Image
Image
Հավաքեք ռոբոտը
Հավաքեք ռոբոտը
Հավաքեք ռոբոտը
Հավաքեք ռոբոտը

Այժմ ժամանակն է միավորել ձեր ռոբոտը: Քայլերը թվարկված են ստորև:

1) Անիվներին ամրացրեք կլոր սերվո սկավառակ և ռետինե ժապավեններ. Գտեք կլոր սկավառակները և դրանք պտուտակեք անիվների հարթ կողմի երկու անցքերի մեջ: Ռետինե ժապավենները տեղավորվում են անիվի շուրջը ՝ բռնելով: Ռետինե ժապավենները տեղում պահելու համար գուցե ցանկանաք մի փոքր սոսինձ ավելացնել:

2) Marble Caster Attachment: Օգտագործեք երկու փոքր պտուտակներ `մարմարի թևը ամրացնելու համար հետևի երկու եռանկյուններին: Մարմարյա պտուտակը պարզ փոխարինում է հետևի անիվի համար և ապահովում է հետևի առանցքային կետը:

3) Տեղադրեք Servos- ը անցքերի մեջ (պտուտակներ չեն պահանջվում). Տեղադրեք FS90 Servo- ն (Ուլտրաձայնային տվիչի համար) մարմնի առջևի անցքի մեջ: Երկու շարունակական պտտման ծառայությունները սահում են դեպի ձախ և աջ անցքեր: Սլոթերը նախատեսված են ամուր տեղավորվելու համար, որպեսզի սերվերը տեղում պահելու համար պտուտակներ չպահանջվեն: Համոզվեք, որ servo լարերը անցնում են անցքերի ակոսների միջով, այնպես որ դրանք ուղղված են դեպի մարմնի հետևի մասը:

4) 9 Վ մարտկոցի տեղադրում (ՈTՇԱԴՐՈԹՅՈՆ). Տեղադրեք 9 Վ մարտկոց + Arduino հոսանքի միակցիչ ՝ առջևի սերվոյի հետևում:

5) Ուլտրաձայնային սենսորների տեղադրման հավաքում. Օգտագործեք երկու փոքր պտուտակներ `ներառված սպիտակ պլաստիկ սերվո կցորդներից մեկը Ուլտրաձայնային տվիչի տեղադրման ափսեի ներքևին: Հաջորդը, օգտագործեք 3D տպագրությամբ 6 մմ պտուտակ/ընկույզ (կամ փոխարինեք մետաղական պտուտակով/ընկույզով) `ուլտրաձայնային տվիչի պատյանը ամրացնելու սալիկին: Ի վերջո, տվիչը տեղադրեք պատյանում, որտեղ կապումներն ուղղված են դեպի վեր և սեղմեք պատյանի հետևի մասում:

6) 4x AA մարտկոցի պատյան. Տեղադրեք AA մարտկոցի պատյանը մեծ ուղղանկյուն հատվածի մեջ, միացրած/անջատիչ անջատիչով դեպի հետևը:

7) Arduino Uno + V5 սենսորային վահան. Ամրացրեք վահանը Arduino- ին և տեղադրեք մարտկոցի պատյանի վերևի ամրակների վրա: Սնուցման միակցիչը պետք է ուղղված լինի դեպի ձախ:

Ձեր ռոբոտը կառուցված է: Ի՞նչ է մնացել: Arduino- ի և միացնող Jumper լարերի ծրագրավորում. Servos, ուլտրաձայնային տվիչ և էլեկտրամատակարարում:

Քայլ 4: Կցեք տվիչի լարերը

Image
Image
Ավարտվեց !!! Միացրեք 9V Arduino սնուցման աղբյուրը, միացրեք մարտկոցի տուփը և սկսեք խուսափել խոչընդոտներից OAREE- ի հետ
Ավարտվեց !!! Միացրեք 9V Arduino սնուցման աղբյուրը, միացրեք մարտկոցի տուփը և սկսեք խուսափել խոչընդոտներից OAREE- ի հետ

Servo լարերը միացրեք V5 Shield- ին

  1. Ձախ շարունակական պտտման Servo- ն կցվում է PIN 9 -ին
  2. Right Continuous Rotation Servo- ն կցվում է PIN 10 -ին
  3. Front FS90 Servo- ն կցվում է PIN 11 -ին

Միացրեք ուլտրաձայնային տվիչի կապում (4x Female- ի և Jumper Wire- ի լարերի միջոցով) V5 Shield- ին

  1. Միացնել PIN 12 կոդին
  2. Արձագանք PIN 13 -ին
  3. VCC- ով `« V »նշումով
  4. Հիմնել «G» նշած ցանկացած կապում

Միացրեք AA մարտկոցի պատյանը V5 Shield- ին

  1. Կցեք դրական, կարմիր մետաղալարը VCC միակցիչին
  2. Կցեք բացասական, սև մետաղալարը Ground միացմանը

Քայլ 5: Ավարտվեց !!! Միացրեք 9V Arduino սնուցման աղբյուրը, միացրեք մարտկոցի տուփը և սկսեք խուսափել խոչընդոտներից OAREE- ի հետ

Image
Image
Ավարտվեց !!! Միացրեք 9V Arduino սնուցման աղբյուրը, միացրեք մարտկոցի տուփը և սկսեք խոչընդոտներից խուսափել OAREE- ի հետ
Ավարտվեց !!! Միացրեք 9V Arduino սնուցման աղբյուրը, միացրեք մարտկոցի տուփը և սկսեք խոչընդոտներից խուսափել OAREE- ի հետ

Ավարտվեց !

1) Միացրեք 9V Arduino սնուցման աղբյուրը (ըստ ցանկության)

2) Միացրեք մարտկոցի փաթեթը

3) Սկսեք խոչընդոտներից խուսափել OAREE- ի հետ !!!

Համոզված եմ, որ դուք կսիրեք ձեր նոր ընկերոջը ՝ OAREE- ին, այն դիտելուց հետո խոչընդոտ զգալով, հետ կանգնեք և փոխեք ուղղությունը: OAREE- ն լավագույնս աշխատում է մեծ օբյեկտների հետ, որոնցից ուլտրաձայնային տվիչը կարող է պոկել (ինչպես պատերը): Դժվարանում է աթոռի ոտքերի պես փոքր առարկաներ կպցնել ՝ իրենց փոքր մակերեսի և անկյունների պատճառով: Խնդրում ենք կիսվել, զարգանալ և տեղեկացնել ինձ անհրաժեշտ ճշգրտումների կամ սխալների մասին: Սա ուսուցման հիանալի փորձ էր, և ես հույս ունեմ, որ դուք նույնքան կզվարճանաք այս նախագիծը պատրաստելիս, որքան ես:

Ռոբոտաշինության մրցույթ
Ռոբոտաշինության մրցույթ
Ռոբոտաշինության մրցույթ
Ռոբոտաշինության մրցույթ

Երկրորդ տեղ ռոբոտաշինության մրցույթում

Խորհուրդ ենք տալիս: