Turinys:

OAREE - 3D spausdintas - kliūčių vengimo robotas inžineriniam mokymui (OAREE) su „Arduino“: 5 žingsniai (su paveikslėliais)
OAREE - 3D spausdintas - kliūčių vengimo robotas inžineriniam mokymui (OAREE) su „Arduino“: 5 žingsniai (su paveikslėliais)

Video: OAREE - 3D spausdintas - kliūčių vengimo robotas inžineriniam mokymui (OAREE) su „Arduino“: 5 žingsniai (su paveikslėliais)

Video: OAREE - 3D spausdintas - kliūčių vengimo robotas inžineriniam mokymui (OAREE) su „Arduino“: 5 žingsniai (su paveikslėliais)
Video: Gražuolė bėga ieškoti lobio! - Relic Runway Gameplay 🎮📱 2024, Birželis
Anonim
Image
Image
OAREE - 3D spausdintas - kliūčių vengimo robotas inžineriniam mokymui (OAREE) su „Arduino“
OAREE - 3D spausdintas - kliūčių vengimo robotas inžineriniam mokymui (OAREE) su „Arduino“
OAREE - 3D spausdintas - kliūčių vengimo robotas inžineriniam mokymui (OAREE) su „Arduino“
OAREE - 3D spausdintas - kliūčių vengimo robotas inžineriniam mokymui (OAREE) su „Arduino“

OAREE (kliūčių vengimo robotas inžineriniam švietimui)

Dizainas: Šios instrukcijos tikslas buvo suprojektuoti OAR (kliūčių vengimo robotas) robotą, kuris būtų paprastas/kompaktiškas, 3D spausdintinas, lengvai surenkamas, judėjimui naudotų nuolatinio sukimosi servus ir turėtų kuo mažiau įsigytų dalių. Manau, kad man pavyko sukurti šį nuostabų robotą ir pavadinau jį OAREE (kliūtimi išvengti roboto inžineriniam ugdymui). Šis robotas pajus kliūtis, sustos, žiūrės į kairę ir į dešinę, tada pasuks netrukdoma kryptimi ir toliau judės į priekį.

Pagrindas: Internetas turi daug kliūčių išvengti robotų, tačiau dauguma jų yra didelės apimties, sunkiai surenkamos ir brangios. Daugelyje šių robotų yra pateiktas „Arduino“kodas, tačiau buvo sunku rasti gerai apgalvotą, veikiantį pavyzdį. Taip pat norėjau ratams naudoti nepertraukiamo sukimosi servus (vietoj nuolatinės srovės variklių), o tai dar nebuvo padaryta. Taigi, aš pradėjau misiją sukurti kompaktišką, išradingą OAR robotą, kuriuo galėčiau pasidalyti su pasauliu.

Tolesnis tobulinimas: Šis robotas gali būti toliau tobulinamas, kad būtų užtikrintas geresnis pingavimo tikslumas, pridedant infraraudonųjų spindulių jutiklius, kad būtų galima sekti linijas, LCD ekranas, rodantis kliūčių atstumą, ir daug daugiau.

Prekės

  • 1x „Arduino Uno“-
  • 1x V5 jutiklio skydas -
  • 1x 4xAA baterijų laikiklis su įjungimo/išjungimo jungikliu -
  • 1x SG90 servo -
  • 2x nuolatinio sukimosi servos -
  • 1x 9 V baterijos maitinimo kabelis „Arduino“(PASIRENKAMAS) -
  • 1x HC -SR04 ultragarsinis jutiklis -
  • 4x moteriški ir moteriški megztiniai-https://www.amazon.com/RGBZONE-120pcs-Multicolored…
  • 2x guminės juostos
  • 1x 9V baterija (pasirenkama)
  • 4x AA baterijos
  • 4x maži varžtai (4 x 1/2 arba kažkas panašaus)
  • Phillips atsuktuvas
  • Klijai guminėms juostoms pritvirtinti prie ratų

1 žingsnis: 3D spausdinimas: korpusas, ratai, marmurinis ratukas, 6 mm varžtas/veržlė ir ultragarso jutiklio laikiklis

3D spausdinimas: kėbulas, ratai, marmurinis ratukas, 6 mm varžtas/veržlė ir ultragarso jutiklio laikiklis
3D spausdinimas: kėbulas, ratai, marmurinis ratukas, 6 mm varžtas/veržlė ir ultragarso jutiklio laikiklis
3D spausdinimas: kėbulas, ratai, marmurinis ratukas, 6 mm varžtas/veržlė ir ultragarso jutiklio laikiklis
3D spausdinimas: kėbulas, ratai, marmurinis ratukas, 6 mm varžtas/veržlė ir ultragarso jutiklio laikiklis
3D spausdinimas: kėbulas, ratai, marmurinis ratukas, 6 mm varžtas/veržlė ir ultragarso jutiklio laikiklis
3D spausdinimas: kėbulas, ratai, marmurinis ratukas, 6 mm varžtas/veržlė ir ultragarso jutiklio laikiklis

3D spausdinimui yra 5 dalys.

  1. kūnas
  2. Ratai
  3. Marmuro ratukas
  4. 6 mm varžtas/veržlė (pasirenkama, galima pakeisti metalinę veržlę/varžtą)
  5. Ultragarso jutiklio laikiklis

Visi reikalingi. STL failai yra įtraukti į šią instrukciją ir „Sketchup“failus. Rekomenduojama užpildyti 40%.

2 veiksmas: užprogramuokite „Arduino“

Image
Image
Surinkite robotą
Surinkite robotą

Siųsti kodą „Arduino UNO“: naudodami „Arduino IDE“, nusiųskite kodą (pridėtame faile) į „Arduino“modulį. Į šį eskizą turėsite atsisiųsti ir įtraukti „servo.h“ir „newping.h“bibliotekas.

Kodas yra kruopščiai komentuojamas, todėl galite pamatyti, ką daro kiekviena komanda. Jei pageidaujate, galite lengvai pakeisti ultragarso jutiklio atstumą į didesnę ar mažesnę vertę. Tai yra pradinis kodas, kurį reikia išplėsti ir naudoti tolesniam projekto kūrimui.

// KLAUSIMŲ VENGTIS ROBOTAS // [email protected], [email protected], TN universitetas Čatanuga, Elektros inžinerija, 2019 M. RUGIS // Reikalingos medžiagos: // 1) „Arduiino UNO“, 2) „Servo Sensor Shield v5“.0, 3) HCSR04 Ulrasoninis jutiklis, 4) FS90 servo (ultragarso jutikliui) // 5 ir 6) 2x IŠTINKAMOS ROTACIJOS SERVOS ratams // 7) 16 mm Marmuras galiniam ratukui, 8 ir 9) 2 guminės ratukų juostos // 10- 15) 1x (4xAA) akumuliatoriaus laikiklis su įjungimo/išjungimo jungikliu, 16 ir 17) 9V baterija su jungtimi prie maitinimo Arduino UNO // 3D PRINT: // 18) ROBOT korpusas, 19 ir 20) 2x ratai, 21) marmurinis pjūklas, 22) ultragarso jutiklis Tvirtinimas ir 6 mm varžtas (žr. Pridedamus failus) // -------------------------------------- -------------------------------------------------- ---------------------------------------- #include // Include Servo Library #include // Įtraukti „Newping“biblioteką // ------------------------------------------- -------------------------------------------------- ------------------------------------ #define TRIGGER_PIN 1 2 // JAV trigeris iki 12 kaiščio „Arduino“#define ECHO_PIN 13 // JAV aidas iki 13 kaiščio „Arduino“#define MAX_DISTANCE 250 // Atstumas iki ping (maks. Yra 250) int distance = 100; // ------------------------------------------------ -------------------------------------------------- ------------------------------- Servo US_Servo; // Ultragarso jutiklio servo servo kairė_servo; // Kairiojo rato servo servo dešinė_servo; // Dešiniojo rato servo NewPing sonaras (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // Naujas kaiščių ir maksimalaus atstumo nustatymas. // ------------------------------------------------ -------------------------------------------------- ------------------------------- negaliojanti sąranka () // ĮVESTIES/IŠVESTYS, KUR PRIJUNGTI, NUSTATYTI PIRMĄJĄ POZICIJĄ/JUDĖJIMĄ {pinMode (12, OUTPUT); // Trigerio kaištis nustatytas kaip išvesties pinMode (13, INPUT); // Echo kaištis nustatytas kaip įvestis US_Servo.attach (11); // „US Servo“nustatytas į kaištį 11 US_Servo.write (90); // JAV SERVO IEŠKIA

KairysisServo.attach (9); // Kairiojo rato servo į 9 kaištį

Kairysis_paslaugos.raštas (90); // LEFT WHEEL SERVO nustatyta į STOP

„Right_Servo.attach“(10); // Dešiniojo rato servovariklis nustatytas į 10 kaištį

Dešinysis_servo.rašyti (90); // RIGHT WHEEL SERVO nustatytas į STOP uždelsimą (2000); // Palaukite 2 sekundes atstumas = readPing (); // Gauti Ping atstumą ties padėties atidėjimu (100); // Palaukite 100 ms moveForward (); // Robotas juda į priekį} // ------------------------------------------ -------------------------------------------------- ------------------------------------ void loop () {int distanceRight = 0; // Inicijuoti JAV atstumą į dešinę 0 int distanceLeft = 0; // Pradėti JAV atstumą iki kairės 0 // US_Servo.write(90); // Center US servo // delay (50); // US_Servo.write (70); // Pažvelk šiek tiek į dešinę // uždelsimas (250); // US_Servo.write (110); // Pažvelk šiek tiek į kairę // uždelsimas (250); // US_Servo.write (90); // „Look Center“

if (atstumas <= 20) // Robotas juda į priekį {moveStop (); // Robotas SUSTABDO per atstumą = distanceLeft) // Nuspręskite, kuria kryptimi pasukti {turnRight (); // Dešinysis kraštas turi didžiausią atstumą, ROBOTAS SUKURIA Į dešinę 0,3 s vėlavimo (500); // Šis uždelsimas nustato posūkio ilgį moveStop (); // Roboto STOPAI} else {turnLeft (); // Didžiausias atstumas kairėje pusėje, ROBOTAS SUKIA Į kairę 0,3 s vėlavimui (500); // Šis uždelsimas nustato posūkio ilgį moveStop (); // Roboto STOPAI}} else {moveForward (); // Robotas juda į priekį} distance = readPing (); // JAV SKAITYJA NAUJĄ PINGĄ naujai kelionės krypčiai} // ----------------------------------- -------------------------------------------------- -------------------------------------------- int lookRight () // Ultragarso jutiklis PAŽIŪRĖTI TEISINGĄ FUNKCIJĄ {US_Servo.write (30); // JAV servo sistema PERJESTA DEŠINIAI į kampo uždelsimą (500); int atstumas = skaitytiPing (); // Nustatyti dešiniosios uždelsos ping reikšmę (100); US_Servo.write (90); // JAV servo persikelia į centrą grįžimo atstumas; // Atstumas nustatytas} // ------------------------------------------ -------------------------------------------------- ------------------------------------ int lookLeft () // Ultragarso jutiklis LOOK LEFT FUNCTION {US_Servo.rašyti (150); // JAV servo PERJUNGA KAIRĖS kampo uždelsimas (500); int atstumas = skaitytiPing (); // Nustatyti kairės delsos ping reikšmę (100); US_Servo.write (90); // JAV servo persikelia į centrą grįžimo atstumas; // Atstumas nustatytas} // ------------------------------------------ -------------------------------------------------- ------------------------------------ int readPing () // skaitymo ultragarso jutiklio Ping funkcija. {uždelsimas (100); // 100 ms tarp pingų (min. Ping laikas = 0,29 ms) int cm = sonar.ping_cm (); // PING atstumas surenkamas ir nustatomas cm, jei (cm == 0) {cm = 250; } grįžti cm; } // ----------------------------------------------- -------------------------------------------------- -------------------------------- void moveStop () // ROBOT STOP {Left_Servo.write (90); // „LeftServo 180“į priekį, 0 atgal „Right_Servo.write“(90); // „RightServo“0 į priekį, 180 atgal} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void moveForward () // ROBOT FORWARD {Left_Servo.rašyti (180); // „LeftServo 180“į priekį, 0 atgal „Right_Servo.write“(0); // „RightServo“0 į priekį, 180 atgal} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void moveBackward () // ROBOT BACKWARD {Left_Servo.rašyti (0); // „LeftServo 180“į priekį, 0 atgal „Right_Servo.write“(180); // „RightServo“0 į priekį, 180 atgal} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void turnRight () // ROBOT RIGHT {Left_Servo.rašyti (180); // „LeftServo 180“į priekį, 0 atgal - „Right_Servo.write“(90); // „RightServo“0 į priekį, 180 atgal} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void turnLeft () // ROBOT LEFT {Left_Servo.rašyti (90); // „LeftServo 180“į priekį, 0 atgal „Right_Servo.write“(0); // „RightServo“0 į priekį, 180 atgal} // --------------------------------------- -------------------------------------------------- ----------------------------------------

3 žingsnis: Surinkite robotą

Image
Image
Surinkite robotą
Surinkite robotą
Surinkite robotą
Surinkite robotą

Dabar atėjo laikas surinkti savo robotą. Veiksmai išvardyti žemiau.

1) Pritvirtinkite apvalius servo diskus ir gumines juostas prie ratų: visos servo dalys yra su plastikine tvirtinimo įranga ir varžtais. Raskite apvalius diskus ir įsukite juos į dvi skyles plokščioje ratų pusėje. Guminės juostos tinka aplink ratą, kad sukibtų. Galbūt norėsite pridėti šiek tiek klijų, kad guminės juostos liktų vietoje.

2) Marmuro ratuko tvirtinimas: naudokite du mažus varžtus, kad pritvirtintumėte marmurinį ratuką prie dviejų trikampių gale. Marmurinis ratukas yra paprastas galinio rato pakaitalas ir suteikia galinį pasukimo tašką.

3) Įdėkite servo į lizdus (nereikia varžtų): įdėkite FS90 servo (ultragarso jutikliui) į priekinę korpuso angą. Du nuolat besisukantys servo įstumiami į kairę ir dešinę angas. Lizdai suprojektuoti taip, kad būtų tvirtai priglundantys, todėl nereikia jokių varžtų servo laikymui. Įsitikinkite, kad servo laidai eina per plyšių griovelius taip, kad jie būtų nukreipti į korpuso galą.

4) 9 V baterijos įdėjimas (PASIRENKAMA): 9 V bateriją ir „Arduino“maitinimo jungtį uždėkite už priekinio servo.

5) Ultragarso jutiklio tvirtinimo mazgas: dviem mažais varžtais pritvirtinkite vieną iš komplekte esančių baltų plastikinių servo priedų prie ultragarso jutiklio tvirtinimo plokštės apačios. Tada naudokite 3D spausdintą 6 mm varžtą/veržlę (arba pakeiskite metalinį varžtą/veržlę), kad pritvirtintumėte ultragarso jutiklio dėklą prie tvirtinimo plokštės. Galiausiai įdėkite jutiklį į dėklą kaiščiais į viršų ir užfiksuokite korpuso gale.

6) 4x AA baterijų dėklas: įdėkite AA baterijų dėklą į didelį stačiakampį plotą, įjungimo/išjungimo jungiklis nukreiptas į galą.

7) „Arduino Uno + V5“jutiklio skydas: pritvirtinkite skydą prie „Arduino“ir padėkite ant laikiklių virš akumuliatoriaus dėklo. Maitinimo jungtis turi būti nukreipta į kairę.

Jūsų robotas yra sukurtas! Kas liko? „Arduino“ir jungiamųjų jungiamųjų laidų programavimas: servos, ultragarso jutiklis ir maitinimo šaltinis.

4 žingsnis: pritvirtinkite jutiklio laidus

Image
Image
Baigta !!! Prijunkite 9 V „Arduino“maitinimo šaltinį, įjunkite akumuliatorių ir pradėkite vengti kliūčių naudodami OAREE
Baigta !!! Prijunkite 9 V „Arduino“maitinimo šaltinį, įjunkite akumuliatorių ir pradėkite vengti kliūčių naudodami OAREE

Prijunkite servo laidus prie „V5 Shield“:

  1. Kairysis nepertraukiamo sukimosi servo mechanizmas prijungiamas prie PIN 9
  2. Dešiniojo nepertraukiamo sukimosi servo sistema pritvirtinama prie PIN 10
  3. Priekinis „FS90 Servo“tvirtinamas prie PIN 11

Prijunkite ultragarso jutiklio kaiščius (per 4x moteriškus ir moteriškus trumpiklius) prie „V5 Shield“:

  1. Suaktyvinkite PIN 12
  2. Echo iki PIN 13
  3. VCC prie bet kurio kaiščio, pažymėto „V“
  4. Įžeminkite prie bet kurio kaiščio, pažymėto „G“

Prijunkite AA baterijos dėklą prie „V5 Shield“:

  1. Pritvirtinkite teigiamą raudoną laidą prie VCC jungties
  2. Pritvirtinkite neigiamą juodą laidą prie įžeminimo jungties

5 žingsnis: baigta !!! Prijunkite 9 V „Arduino“maitinimo šaltinį, įjunkite akumuliatorių ir pradėkite vengti kliūčių naudodami OAREE

Image
Image
Baigta !!! Prijunkite 9 V „Arduino“maitinimo šaltinį, įjunkite akumuliatorių ir pradėkite vengti kliūčių naudodami OAREE
Baigta !!! Prijunkite 9 V „Arduino“maitinimo šaltinį, įjunkite akumuliatorių ir pradėkite vengti kliūčių naudodami OAREE

Baigta !

1) Prijunkite 9 V „Arduino“maitinimo šaltinį (neprivaloma)

2) Įjunkite akumuliatorių

3) Pradėkite vengti kliūčių su OAREE !!!

Esu tikras, kad jums patiks naujas draugas OAREE, pažiūrėjęs, kaip jis pajunta kliūtį, atsitraukia ir keičia kryptį. „OAREE“geriausiai veikia su dideliais objektais, kuriuos ultragarso jutiklis gali nuimti (pvz., Sienomis). Dėl mažo paviršiaus ploto ir kampų sunku įtempti mažus daiktus, tokius kaip kėdės kojos. Pasidalykite, toliau tobulinkite ir praneškite man apie visus reikalingus koregavimus ar klaidas. Tai buvo puiki mokymosi patirtis ir tikiuosi, kad jums bus taip smagu kurti šį projektą kaip man!

Robotikos konkursas
Robotikos konkursas
Robotikos konkursas
Robotikos konkursas

Antroji vieta robotikos konkurse

Rekomenduojamas: