Sadržaj:

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

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

Video: OAREE - 3D štampano - Robot za izbjegavanje prepreka za inženjersko obrazovanje (OAREE) s Arduinom: 5 koraka (sa slikama)
Video: ZEITGEIST: MOVING FORWARD | OFFICIAL RELEASE | 2011 2024, Septembar
Anonim
Image
Image
OAREE - 3D štampano - Robot za izbjegavanje prepreka za inženjersko obrazovanje (OAREE) s Arduinom
OAREE - 3D štampano - Robot za izbjegavanje prepreka za inženjersko obrazovanje (OAREE) s Arduinom
OAREE - 3D štampano - Robot za izbjegavanje prepreka za inženjersko obrazovanje (OAREE) s Arduinom
OAREE - 3D štampano - Robot za izbjegavanje prepreka za inženjersko obrazovanje (OAREE) s Arduinom

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

Dizajn: Cilj ovog uputstva je bio dizajnirati OAR (Robot izbjegavanje prepreka) robota koji je bio jednostavan/kompaktan, 3D ispisan, lagan za sastavljanje, koristi servoe za kontinuiranu rotaciju za kretanje i ima što je moguće manje kupljenih dijelova. Vjerujem da sam uspio stvoriti ovog sjajnog robota i nazvao ga OAREE (Robot za izbjegavanje prepreka za inženjersko obrazovanje). Ovaj robot će 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đe sam želeo da koristim servo pogone sa kontinualnom rotacijom za točkove (umesto motora jednosmerne struje), što još nije urađeno. Stoga sam krenuo u misiju razvoja kompaktnog, inventivnog OAR robota koji će podijeliti sa svijetom.

Dalji razvoj: Ovaj robot se može dalje razvijati radi bolje tačnosti pingiranja, dodavanjem IC senzora za praćenje linije, LCD ekranom za prikaz udaljenosti od prepreke i još mnogo toga.

Supplies

  • 1x Arduino Uno -
  • 1x V5 senzorski štit -
  • 1x držač baterije 4xAA sa prekidačem za uključivanje/isključivanje -
  • 1x SG90 servo -
  • 2x servo pogoni za kontinuiranu rotaciju -
  • 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 (opcionalno)
  • 4x AA baterije
  • 4x mali vijci (4 x 1/2 ili bilo šta 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 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: 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 štampanje ima 5 delova.

  1. Body
  2. Točkovi
  3. Marmer Caster
  4. 6 mm vijak/matica (opcionalno, metalna matica/vijak se može zamijeniti)
  5. Ultrazvučni nosač senzora

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

Korak 2: Programirajte Arduino

Image
Image
Sastavite robota
Sastavite robota

Pošaljite kôd 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 biblioteke servo.h i newping.h s ovom skicom.

Kôd je detaljno komentiran, pa možete vidjeti šta svaka naredba radi. Po želji možete lako 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.

// OGRANIČAVANJE IZBJEGAVANJA ROBOTA // [email protected], [email protected], Univerzitet TN u Chattanoogi, elektrotehnika, jesen 2019. // Potrebni materijali: // 1) Arduiino UNO, 2) Štitnik servo senzora v5.0, 3) Ultrazvučni senzor HCSR04, 4) Servo FS90 (za ultrazvučni senzor) // 5 i 6) 2x SERVISI ZA KONTINUIRANU ROTACIJU za kotače // 7) 16 mm Mramor za stražnji točak, 8 i 9) 2 gumice za točkove // 10- 15) 1x (4xAA) Držač baterije sa prekidačem za uključivanje/isključivanje, 16 i 17) 9V baterija sa konektorom za napajanje Arduino UNO // 3D ŠTAMPA: // 18) ROBOT Kućište, 19 & 20) 2x Točkići, 21) Mermerni točkić, 22) Ultrazvučni senzor Montaža i vijak od 6 mm (pogledajte priložene datoteke) // -------------------------------------- -------------------------------------------------- ----------------------------------------- #include // Uključi Servo biblioteku #include // Uključi biblioteku Newping // ------------------------------------------- -------------------------------------------------- ------------------------------------ #define 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 je 250) int distance = 100; // ------------------------------------------------ -------------------------------------------------- ------------------------------- Servo US_Servo; // Servo servo ultrazvučni senzor Levo_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/KRETANJE {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

Left_Servo.attach (9); // Servo lijevog kotača na pin 9

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

Right_Servo.attach (10); // Servo desnog kotača postavljen na pin 10

Right_Servo.write (90); // SERVO DESNOG TOČKA postavljeno na STOP kašnjenje (2000); // Pričekajte 2 sekunde distance = readPing (); // Dobijte Ping udaljenost pri kašnjenju položaja prema naprijed (100); // Pričekajte 100 ms moveForward (); // ROBOT SE KRETA 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 POKRETI 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 dužinu skretanja moveStop (); // Robot STOPS} else {turnLeft (); // najveća udaljenost s lijeve strane, ROBOT SE Okreće ulijevo za kašnjenje od 0,3 s (500); // Ovo kašnjenje određuje dužinu skretanja moveStop (); // Robot STOPS}} else {moveForward (); // Robot SE MOVES FORWARD} distance = readPing (); // SAD PROČITA NOVI PING za novi smjer putovanja} // ----------------------------------- -------------------------------------------------- -------------------------------------------- int lookRight () // Ultrazvučni senzor IZGLEDA DESNO FUNKCIJA {US_Servo.write (30); // US servo se pomiče DESNO na kašnjenje ugla (500); int udaljenost = readPing (); // Postavljanje ping vrijednosti 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 (); // Postavljanje ping vrijednosti 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); // 100ms između pingova (min. Vrijeme pinga = 0.29ms) int cm = sonar.ping_cm (); // PING udaljenost se prikuplja i postavlja u cm if (cm == 0) {cm = 250; } return cm; } // ----------------------------------------------- -------------------------------------------------- -------------------------------- void moveStop () // ROBOT STOP {Left_Servo.write (90); // LeftServo 180 naprijed, 0 natrag Right_Servo.write (90); // DesnoSrvo 0 naprijed, 180 natrag} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void moveForward () // ROBOT FORWARD {Left_Servo.pisati (180); // LeftServo 180 naprijed, 0 natrag Right_Servo.write (0); // Desno Servo 0 naprijed, 180 natrag} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void moveBackward () // ROBOT BACKWARD {Left_Servo.pisati (0); // LeftServo 180 naprijed, 0 natrag Right_Servo.write (180); // Desno Servo 0 naprijed, 180 natrag} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void turnRight () // ROBOT RIGHT {Left_Servo.pisati (180); // LeftServo 180 naprijed, 0 natrag Right_Servo.write (90); // DesnoSrvo 0 naprijed, 180 natrag} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void turnLeft () // ROBOT LIJEVO {Left_Servo.pisati (90); // LeftServo 180 naprijed, 0 natrag Right_Servo.write (0); // Desno Servo 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 se postavljaju oko kotača kako bi se osiguralo 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 pruža stražnju točku zakretanja.

3) Umetnite servosisteme u utore (nisu potrebni vijci): Postavite servo FS90 (za ultrazvučni senzor) u prednji utor na kućištu. 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 kućišta.

4) Postavljanje baterije od 9 V (OPCIONO): Postavite bateriju od 9 V + priključak za napajanje Arduino iza prednjeg servo servo -a.

5) Sklop ultrazvučnog senzora: Pomoću dva mala vijka pričvrstite jedan od uključenih servo priključaka od bijele plastike na dno ploče za postavljanje ultrazvučnog senzora. Zatim upotrijebite 3D štampani vijak/maticu od 6 mm (ili zamijenite metalni vijak/maticu) za pričvršćivanje kućišta ultrazvučnog senzora na montažnu ploču. Konačno, postavite senzor u kućište tako da igle budu okrenute prema gore i pričvrstite ga sa stražnje strane kućišta.

6) 4x AA kućište baterije: Postavite AA bateriju u veliko pravougaono područje, sa prekidačem za uključivanje/isključivanje okrenutim prema nazad.

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

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

Korak 4: Priključite senzorske žice

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

Spojite servo žice na V5 Shield:

  1. Servo sa kontinuiranim okretanjem lijevo priključuje se na PIN 9
  2. Servo sa kontinuiranom rotacijom udesno priključuje se na PIN 10
  3. Prednji FS90 servo priključuje se na PIN 11

Priključite iglice ultrazvučnih senzora (preko 4x ženskih žica na žice kratkospojnika) na V5 štit:

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

Priključite AA bateriju na V5 štit:

  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
Gotovo !!! Spojite 9V Arduino napajanje, uključite bateriju i počnite izbjegavati prepreke pomoću OAREE -a
Gotovo !!! Spojite 9V Arduino napajanje, uključite bateriju i počnite izbjegavati prepreke pomoću OAREE -a

Gotovo !

1) Priključite 9V Arduino napajanje (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 otkačiti (poput zidova). Zbog male površine i uglova teško je pingati male predmete poput nogu stolice. Podijelite, dalje razvijajte i obavijestite me o svim potrebnim prilagodbama ili greškama. Ovo je bilo sjajno iskustvo učenja i nadam se da ćete se jednako zabaviti u ovom projektu kao i ja!

Robotics Contest
Robotics Contest
Robotics Contest
Robotics Contest

Drugoplasirani na takmičenju iz robotike

Preporučuje se: