Sadržaj:

OAREE - 3D ispis - Robot za izbjegavanje prepreka za inženjersko obrazovanje (OAREE) s Arduinom: 5 koraka (sa slikama)
OAREE - 3D ispis - Robot za izbjegavanje prepreka za inženjersko obrazovanje (OAREE) s Arduinom: 5 koraka (sa slikama)

Video: OAREE - 3D ispis - Robot za izbjegavanje prepreka za inženjersko obrazovanje (OAREE) s Arduinom: 5 koraka (sa slikama)

Video: OAREE - 3D ispis - Robot za izbjegavanje prepreka za inženjersko obrazovanje (OAREE) s Arduinom: 5 koraka (sa slikama)
Video: The Choice is Ours (2016) Official Full Version 2024, Lipanj
Anonim
Image
Image
OAREE - 3D ispis - Robot za izbjegavanje prepreka za inženjersko obrazovanje (OAREE) s Arduinom
OAREE - 3D ispis - Robot za izbjegavanje prepreka za inženjersko obrazovanje (OAREE) s Arduinom
OAREE - 3D ispis - Robot za izbjegavanje prepreka za inženjersko obrazovanje (OAREE) s Arduinom
OAREE - 3D ispis - Robot za izbjegavanje prepreka za inženjersko obrazovanje (OAREE) s Arduinom

OAREE (Robot za izbjegavanje prepreka za inženjersko obrazovanje)

Dizajn: Cilj ovog uputstva bio je dizajnirati OAR (Robot izbjegavanje prepreka) robota koji je bio jednostavan/kompaktan, 3D ispisan, lagan za sastavljanje, koristi servo za kontinuirano okretanje za kretanje i ima što manje kupljenih dijelova. Vjerujem da sam uspio stvoriti ovog sjajnog robota i nazvao ga OAREE (Robot za izbjegavanje prepreka za inženjersko obrazovanje). Ovaj će robot osjetiti prepreke, zaustaviti se, pogledati lijevo i desno, zatim se okrenuti u neometanom smjeru i nastaviti naprijed.

Pozadina: Internet ima brojne prepreke u izbjegavanju robota, ali većina je glomazna, teško se sastavlja i skupa je. Mnogi od ovih robota imaju isporučeni Arduino kod, ali bilo je teško pronaći dobro osmišljen, radni primjer. Također sam želio koristiti servo pogone s kontinuiranim okretanjem za kotače (umjesto istosmjernih motora), što još nije učinjeno. Stoga sam krenuo u misiju razvoja kompaktnog, inventivnog OAR robota koji će podijeliti sa svijetom.

Daljnji razvoj: Ovaj se robot može dalje razvijati radi bolje točnosti pingiranja, dodavanjem IR senzora za praćenje linije, LCD zaslonom za prikaz udaljenosti od prepreka i još mnogo toga.

Pribor

  • 1x Arduino Uno -
  • 1x V5 senzorski štit -
  • 1x držač baterije 4xAA sa prekidačem za uključivanje/isključivanje -
  • 1x SG90 servo -
  • 2x poslužitelji s kontinuiranom rotacijom -
  • 1x 9V kabel za napajanje baterije za Arduino (DODATNO) -
  • 1x ultrazvučni senzor HC -SR04 -
  • 4x žensko-ženska kratkospojna žica-https://www.amazon.com/RGBZONE-120kom- višebojna…
  • 2x gumice
  • 1x 9V baterija (NEOBVEZNO)
  • 4x AA baterije
  • 4x mali vijci (4 x 1/2 ili bilo što slično)
  • Phillips odvijač
  • Ljepilo za pričvršćivanje gumica na kotače

Korak 1: 3D ispis: kućište, kotači, mramorni kotač, 6 mm vijak/matica i nosač ultrazvučnog senzora

3D ispis: Tijelo, kotači, mramorni kotač, 6 mm vijak/matica i ultrazvučni nosač senzora
3D ispis: Tijelo, kotači, mramorni kotač, 6 mm vijak/matica i ultrazvučni nosač senzora
3D ispis: kućište, kotači, mramorni kotač, 6 mm vijak/matica i ultrazvučni nosač senzora
3D ispis: kućište, kotači, mramorni kotač, 6 mm vijak/matica i ultrazvučni nosač senzora
3D ispis: kućište, kotači, mramorni kotač, 6 mm vijak/matica i ultrazvučni nosač senzora
3D ispis: kućište, kotači, mramorni kotač, 6 mm vijak/matica i ultrazvučni nosač senzora

3D ispis ima 5 dijelova.

  1. Tijelo
  2. Kotači
  3. Mramorni kotač
  4. 6 mm vijak/matica (po izboru, metalna matica/vijak se može zamijeniti)
  5. Ultrazvučni nosač senzora

Sve potrebne. STL datoteke uključene su u ovu uputu, kao i datoteke Sketchup. Preporučuje se ispuna od 40%.

Korak 2: Programirajte Arduino

Image
Image
Sastavite robota
Sastavite robota

Slanje koda na Arduino UNO: Pomoću Arduino IDE -a pošaljite kôd (u priloženoj datoteci) na svoj Arduino modul. Morat ćete preuzeti i uključiti knjižnice servo.h i newping.h s ovom skicom.

Kôd je temeljito komentiran pa možete vidjeti što svaka naredba radi. Po želji možete jednostavno promijeniti udaljenost ultrazvučnog senzora na veću ili manju vrijednost. Ovo je početni kod koji se namjerava proširiti i koristiti za daljnji razvoj projekta.

// SPREČAVANJE IZBJEGAVANJA ROBOTA // [email protected], [email protected], Sveučilište TN u Chattanoogi, Elektrotehnika, jesen 2019. // Potrebni materijali: // 1) Arduiino UNO, 2) Štitnik senzora servo v5.0, 3) HCSR04 Ulrasonic Sensor, 4) FS90 Servo (za ultrazvučni senzor) // 5 & 6) 2x SERVISI ZA KONTINUIRANU ROTACIJU za kotače // 7) 16 mm Mramor za stražnji kotač, 8 & 9) 2 gumice za kotače // 10- 15) 1x (4xAA) Držač baterije s prekidačem za uključivanje/isključivanje, 16 i 17) 9V baterija s priključkom za napajanje Arduino UNO // 3D PRINT: // 18) ROBOT Tijelo, 19 & 20) 2x Kotači, 21) Mramorni kotač, 22) Ultrazvučni senzor Montaža i 6 mm vijak (pogledajte priložene datoteke) // -------------------------------------- -------------------------------------------------- ----------------------------------------- #include // Include Servo Library #include // Uključi knjižnicu Newping // ------------------------------------------- -------------------------------------------------- ------------------------------------ #definiraj TRIGGER_PIN 1 2 // US okidač za pin 12 na Arduinu #define ECHO_PIN 13 // US Echo za pin 13 na Arduinu #define MAX_DISTANCE 250 // Udaljenost do pinga (max 250) int distance = 100; // ------------------------------------------------ -------------------------------------------------- ------------------------------- Servo US_Servo; // Servo servo servo ultrazvučni senzor Lijevo_Servo; // Servo servo lijevog kotača Desno_Servo; // NewPing sonar za servo desni kotač (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing postavljanje pinova i maksimalne udaljenosti. // ------------------------------------------------ -------------------------------------------------- ------------------------------- void setup () // ULAZI/IZLAZI, GDJE SE PRILAZITI, POSTAVITI POČETNI POLOŽAJ/POKRET {pinMode (12, OUTPUT); // Pin okidača postavljen kao izlazni pinMode (13, INPUT); // Echo pin postavljen kao ulaz US_Servo.attach (11); // US Servo postavljen na pin 11 US_Servo.write (90); // US SERVO TRAŽI NAPRIJED

Lijevo_Servo.priključak (9); // Servo lijevog kotača na pin 9

Left_Servo.write (90); // SERVO ZA LIJEVI TOČAK postavljeno na STOP

Desno_Servo.priključak (10); // Servo desnog kotača postavljen na pin 10

Right_Servo.write (90); // SERVO DESNOG KOTAČA postavljeno na STOP kašnjenje (2000); // Pričekajte 2 sekunde udaljenost = readPing (); // Dohvatite udaljenost pinga pri odgodbi položaja ravno naprijed (100); // Pričekajte 100 ms moveForward (); // ROBOT SE KRETE NAPRIJED} // ------------------------------------------ -------------------------------------------------- ------------------------------------- void loop () {int distanceRight = 0; // Pokretanje udaljenosti SAD -a desno na 0 int distanceLeft = 0; // Pokretanje udaljenosti SAD -a lijevo na 0 //US_Servo.write(90); // Centar US servo // kašnjenje (50); // US_Servo.write (70); // Pogledati blago udesno // odgoda (250); // US_Servo.write (110); // Pogledati blago ulijevo // odgoda (250); // US_Servo.write (90); // Look Center

if (udaljenost <= 20) // Robot se POKRETA NAPRIJED {moveStop (); // Robot STOPS na udaljenosti = distanceLeft) // Odlučite u kojem smjeru ćete okrenuti {turnRight (); // Desna strana ima najveću udaljenost, ROBOT SE OKRENI DESNO za kašnjenje od 0,3 s (500); // Ovo kašnjenje određuje duljinu skretanja moveStop (); // Robot STOPS} else {turnLeft (); // Najveća udaljenost s lijeve strane, ROBOT SE Okreće ulijevo za 0,3 s kašnjenja (500); // Ovo kašnjenje određuje duljinu skretanja moveStop (); // Robot STOPS}} else {moveForward (); // Robot SE POMIKA NAPRIJED} distance = readPing (); // US PROČITA NOVI PING za novi smjer putovanja} // ----------------------------------- -------------------------------------------------- -------------------------------------------- int lookRight () // Ultrazvučni senzor IZGLEDA DESNO FUNKCIJA {US_Servo.write (30); // US servo MOVES DESNO na kašnjenje kuta (500); int udaljenost = readPing (); // Postavi vrijednost pinga za desno kašnjenje (100); US_Servo.write (90); // US servo MOVES TO CENTER povratna udaljenost; // Udaljenost je postavljena} // ------------------------------------------ -------------------------------------------------- ------------------------------------- int lookLeft () // Ultrazvučni senzor LOOK LEFT FUNCTION {US_Servo.pisati (150); // US servo MOVES LEFT to angle delay (500); int udaljenost = readPing (); // Postavi vrijednost pinga za lijevo kašnjenje (100); US_Servo.write (90); // US servo MOVES TO CENTER povratna udaljenost; // Udaljenost je postavljena} // ------------------------------------------ -------------------------------------------------- ------------------------------------- int readPing () // Funkcija čitanja pinga za ultrazvučni senzor. {kašnjenje (100); // 100 ms između pingova (min. Vrijeme pinga = 0,29 ms) int cm = sonar.ping_cm (); // PING udaljenost se prikuplja i postavlja u cm ako (cm == 0) {cm = 250; } return cm; } // ----------------------------------------------- -------------------------------------------------- -------------------------------- void moveStop () // ROBOT STOP {Left_Servo.write (90); // LijevoServo 180 naprijed, 0 natrag Desno_Servo.write (90); // DesnoSrvo 0 naprijed, 180 natrag} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void moveForward () // ROBOT NAPRIJED {Left_Servo.pisati (180); // LijevoServo 180 naprijed, 0 natrag Desno_Servo.write (0); // DesnoSrvo 0 naprijed, 180 natrag} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void moveBackward () // ROBOT NAZAD {Left_Servo.pisati (0); // LijevoServo 180 naprijed, 0 natrag Desno_Servo.write (180); // DesnoSrvo 0 naprijed, 180 natrag} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void turnRight () // ROBOT DESNO {Lijevo_Servo.pisati (180); // LijevoServo 180 naprijed, 0 natrag Desno_Servo.write (90); // DesnoSrvo 0 naprijed, 180 natrag} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void turnLeft () // ROBOT LIJEVO {Left_Servo.pisati (90); // LijevoServo 180 naprijed, 0 natrag Desno_Servo.write (0); // DesnoSrvo 0 naprijed, 180 natrag} // --------------------------------------- -------------------------------------------------- ----------------------------------------

Korak 3: Sastavite robota

Image
Image
Sastavite robota
Sastavite robota
Sastavite robota
Sastavite robota

Sada je vrijeme da sastavite svog robota. Koraci su navedeni u nastavku.

1) Pričvrstite okrugle servo diskove i gumice na kotače: Svi servo pogoni dolaze s plastičnim montažnim hardverom i vijcima. Pronađite okrugle diskove i uvijte ih u dvije rupe na ravnoj strani kotača. Gumene trake pričvršćuju se oko kotača kako bi osigurale prianjanje. Možda ćete htjeti dodati malo ljepila kako bi gumice ostale na mjestu.

2) Dodatak za mramorni kotač: Pomoću dva mala vijka pričvrstite mramorni kotač na dva trokuta sa stražnje strane. Mramorni kotač jednostavna je zamjena za stražnji kotač i osigurava stražnju točku zakretanja.

3) Umetnite servosisteme u utore (nisu potrebni vijci): Postavite servo FS90 (za ultrazvučni senzor) u prednji utor na tijelu. Dva servo servera s kontinuiranom rotacijom klize u lijevi i desni utor. Utori su dizajnirani za čvrsto prianjanje, tako da nisu potrebni vijci za držanje servo pogona na mjestu. Vodite računa da servo žice prolaze kroz utore u utorima tako da budu okrenute prema stražnjoj strani tijela.

4) Postavljanje 9V baterije (DOBAVNO): Postavite 9V bateriju + Arduino konektor za napajanje iza prednjeg servo servo -a.

5) Sklop ultrazvučnog senzora: Pomoću dva mala vijka pričvrstite jedan od uključenih servo nastavka od bijele plastike na dno ploče za postavljanje ultrazvučnog senzora. Zatim pomoću 3D ispisanog vijka/matice od 6 mm (ili zamijenite metalni vijak/maticu) pričvrstite kućište ultrazvučnog senzora na montažnu ploču. Na kraju, postavite senzor u kućište tako da igle budu okrenute prema gore i zaskoče u stražnji dio kućišta.

6) 4x AA kućište baterije: Postavite AA baterijsko kućište u veliko pravokutno područje, s prekidačem za uključivanje/isključivanje okrenutim prema natrag.

7) Štitnik senzora Arduino Uno + V5: Pričvrstite štitnik na Arduino i postavite ga na držače iznad kućišta baterije. Priključak za napajanje trebao bi biti okrenut lijevo.

Vaš robot je izgrađen! Što je ostalo? Programiranje Arduino i spojnih žica kratkospojnika: servomotori, ultrazvučni senzor i napajanje.

Korak 4: Pričvrstite žice senzora

Image
Image
Završeno !!! Spojite 9V Arduino napajanje, uključite bateriju i počnite izbjegavati prepreke pomoću OAREE -a
Završeno !!! Spojite 9V Arduino napajanje, uključite bateriju i počnite izbjegavati prepreke pomoću OAREE -a

Spojite servo žice na V5 Shield:

  1. Servo s lijevim kontinuiranim okretanjem priključuje se na PIN 9
  2. Servo s kontinuiranim rotiranjem udesno priključuje se na PIN 10
  3. Prednji FS90 servo priključuje se na PIN 11

Spojite igle ultrazvučnih senzora (preko 4x žica ženskog spoja na žensku kratkospojnik) na V5 štit:

  1. Okidač za PIN 12
  2. Eho na PIN 13
  3. VCC na bilo koju iglu označenu s 'V'
  4. Uzemljite na bilo koju iglu označenu s 'G'

Spojite AA bateriju na V5 Shield:

  1. Priključite pozitivnu, crvenu žicu na VCC konektor
  2. Priključite negativnu, crnu žicu na priključak za uzemljenje

Korak 5: Završeno !!! Spojite 9V Arduino napajanje, uključite bateriju i počnite izbjegavati prepreke pomoću OAREE -a

Image
Image
Završeno !!! Spojite 9V Arduino napajanje, uključite bateriju i počnite izbjegavati prepreke pomoću OAREE -a
Završeno !!! Spojite 9V Arduino napajanje, uključite bateriju i počnite izbjegavati prepreke pomoću OAREE -a

Završeno !

1) Priključite 9V napajanje Arduino (opcionalno)

2) Uključite bateriju

3) Počnite izbjegavati prepreke s OAREE -om !!!

Siguran sam da će vam se svidjeti vaš novi prijatelj, OAREE, nakon što vidite da osjeća prepreku, napravite sigurnosnu kopiju i promijenite smjer. OAREE najbolje funkcionira s velikim predmetima s kojih se ultrazvučni senzor može otkinuti (poput zidova). Zbog male površine i kutova teško je pingati male predmete poput nogu stolice. Podijelite, dalje razvijajte i obavijestite me o svim potrebnim prilagodbama ili pogreškama. Ovo je bilo sjajno iskustvo učenja i nadam se da ćete se jednako zabaviti u ovom projektu kao i ja!

Natjecanje iz robotike
Natjecanje iz robotike
Natjecanje iz robotike
Natjecanje iz robotike

Drugoplasirani na natjecanju iz robotike

Preporučeni: