Obsah:

OAREE - 3D tlač - Robot vyhýbajúci sa prekážkam pre inžinierske vzdelávanie (OAREE) s Arduino: 5 krokov (s obrázkami)
OAREE - 3D tlač - Robot vyhýbajúci sa prekážkam pre inžinierske vzdelávanie (OAREE) s Arduino: 5 krokov (s obrázkami)

Video: OAREE - 3D tlač - Robot vyhýbajúci sa prekážkam pre inžinierske vzdelávanie (OAREE) s Arduino: 5 krokov (s obrázkami)

Video: OAREE - 3D tlač - Robot vyhýbajúci sa prekážkam pre inžinierske vzdelávanie (OAREE) s Arduino: 5 krokov (s obrázkami)
Video: Феномен Бруно Грёнинг – документальный фильм — ЧАСТЬ 2 2024, Jún
Anonim
Image
Image
OAREE - 3D tlač - Robot vyhýbajúci sa prekážkam pre inžinierske vzdelávanie (OAREE) s Arduino
OAREE - 3D tlač - Robot vyhýbajúci sa prekážkam pre inžinierske vzdelávanie (OAREE) s Arduino
OAREE - 3D tlač - Robot vyhýbajúci sa prekážkam pre inžinierske vzdelávanie (OAREE) s Arduino
OAREE - 3D tlač - Robot vyhýbajúci sa prekážkam pre inžinierske vzdelávanie (OAREE) s Arduino

OAREE (robot vyhýbajúci sa prekážkam pre inžinierske vzdelávanie)

Dizajn: Cieľom tohto pokynu bolo navrhnúť robota OAR (Robot vyhýbajúci sa prekážkam), ktorý by bol jednoduchý/kompaktný, 3D tlač, ľahko sa zostavuje, používa na pohyb servá s nepretržitým otáčaním a má čo najmenej zakúpených dielov. Verím, že sa mi podarilo vytvoriť tohto úžasného robota a nazval som ho OAREE (Prekážka vyhýbajúca sa robotu pre inžinierske vzdelávanie). Tento robot vycíti prekážky, zastaví sa, pozrie doľava a doprava, potom sa otočí bez prekážok a pokračuje vpred.

Súvislosti: Internet má množstvo robotov, ktoré sa vyhýbajú prekážkam, ale väčšina z nich je objemná, ťažko zostaviteľná a drahá. Mnoho z týchto robotov má dodaný kód Arduino, ale bolo ťažké nájsť premyslený a fungujúci príklad. Tiež som chcel použiť serva na plynulé otáčanie kolies (namiesto jednosmerných motorov), ktoré ešte neboli urobené. Vydal som sa teda na misiu vyvinúť kompaktného a vynaliezavého robota OAR, ktorý by som mohol zdieľať so svetom.

Ďalší vývoj: Tento robot je možné ďalej vyvíjať kvôli lepšej presnosti pingu, pridaniu infračervených senzorov pre sledovanie čiary, LCD obrazovky na zobrazenie vzdialenosti prekážok a mnohým ďalším.

Zásoby

  • 1x Arduino Uno -
  • 1x V5 senzorový štít -
  • 1x držiak batérie 4xAA s vypínačom -
  • 1x servo SG90 -
  • Servo 2x nepretržité otáčanie -
  • 1x 9V napájací kábel pre batériu pre Arduino (VOLITEĽNÉ) -
  • 1x Ultrazvukový senzor HC -SR04 -
  • 4x prepojovacie vodiče žena-žena-https://www.amazon.com/RGBZONE-120pcs-Multicolored…
  • 2x gumené pásy
  • 1x 9V batéria (VOLITEĽNÉ)
  • 4x AA batérie
  • 4x malé skrutky (4 x 1/2 alebo čokoľvek podobné)
  • Skrutkovač Phillips
  • Lepidlo na zaistenie gumičiek na kolesách

Krok 1: 3D tlač: telo, kolesá, mramorový koliesko, 6 mm skrutka/matica a držiak ultrazvukového senzora

3D tlač: telo, kolesá, mramorový koliesko, 6 mm skrutka/matica a držiak ultrazvukového senzora
3D tlač: telo, kolesá, mramorový koliesko, 6 mm skrutka/matica a držiak ultrazvukového senzora
3D tlač: telo, kolesá, mramorový koliesko, 6 mm skrutka/matica a držiak ultrazvukového senzora
3D tlač: telo, kolesá, mramorový koliesko, 6 mm skrutka/matica a držiak ultrazvukového senzora
3D tlač: telo, kolesá, mramorový koliesko, 6 mm skrutka/matica a držiak ultrazvukového senzora
3D tlač: telo, kolesá, mramorový koliesko, 6 mm skrutka/matica a držiak ultrazvukového senzora

3D tlač obsahuje 5 častí.

  1. Telo
  2. Kolesá
  3. Mramorový koliesko
  4. 6 mm skrutka/matica (voliteľné, je možné nahradiť kovovou maticou/skrutkou)
  5. Držiak ultrazvukového senzora

V tomto návode sú zahrnuté všetky požadované súbory. STL a tiež súbory Sketchup. Odporúča sa 40% výplň.

Krok 2: Naprogramujte Arduino

Image
Image
Zostavte robota
Zostavte robota

Poslať kód do Arduino UNO: Pomocou Arduino IDE odošlite kód (v priloženom súbore) do vášho modulu Arduino. Do tohto náčrtu budete musieť stiahnuť a zahrnúť knižnice servo.h a newping.h.

Kód je dôkladne okomentovaný, takže môžete vidieť, čo jednotlivé príkazy robia. V prípade potreby môžete vzdialenosť ultrazvukového senzora jednoducho zmeniť na väčšiu alebo menšiu hodnotu. Toto je počiatočný kód a má sa rozšíriť a použiť na ďalší vývoj projektu.

// PREKÁŽKE VYHÝBAJÚCEJ SA ROBOTOVI // [email protected], [email protected], Univerzita TN v Chattanooga, elektrotechnika, JESEŇ 2019 // Požadované materiály: // 1) Arduiino UNO, 2) štít senzora v5.0, 3) Ultrazvukový senzor HCSR04, 4) Servo FS90 (pre ultrazvukový snímač) // 5 & 6) 2x KONTINUÁLNE ROTAČNÉ SERVISY pre kolesá // 7) 16 mm mramor pre zadné otočné koliesko, 8 a 9) 2 gumové pásy pre kolesá // 10- 15) 1x (4xAA) držiak batérie s vypínačom, 16 a 17) 9V batéria s konektorom na napájanie Arduino UNO // 3D TLAČ: // 18) teleso ROBOT, 19 a 20) 2x kolieska, 21) mramorový koliesko, 22) ultrazvukový senzor Držiak a 6 mm skrutka (pozri priložené súbory) // -------------------------------------- ---------------------------------------------------------- ----------------------------------------- #include // Zahrnúť servo knižnicu #include // Zahrnúť knižnicu Newping // ------------------------------------------- ---------------------------------------------------------- ------------------------------------ #define TRIGGER_PIN 1 2 // US trigger to pin 12 on Arduino #define ECHO_PIN 13 // US Echo to pin 13 on Arduino #define MAX_DISTANCE 250 // Distance to ping (max is 250) int distance = 100; // ------------------------------------------------ ---------------------------------------------------------- ------------------------------- Servo US_Servo; // Servo servo ultrazvukového senzora vľavo_Servo; // Servo na ľavé koleso Servo vpravo_Servo; // Sonar servo kolesa NewPing (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // Nastavenie pinov NewPing a maximálna vzdialenosť. // ------------------------------------------------ ---------------------------------------------------------- -------- {pinMode (12, VÝSTUP); // Trigger pin set as output pinMode (13, INPUT); // Echo pin nastavený ako vstup US_Servo.attach (11); // US servo nastavené na pin 11 US_Servo.write (90); // US SERVO SA TEŠÍ

Left_Servo.attach (9); // Servo ľavého kolesa na kolík 9

Left_Servo.write (90); // LEVÉ KOLO SERVO nastavené na STOP

Right_Servo.attach (10); // Servo pravého kolesa nastavené na kolík 10

Right_Servo.write (90); // PRAVÉ KOLO SERVO nastavené na oneskorenie STOP (2000); // Počkajte 2 sekundy vzdialenosť = readPing (); // Získať vzdialenosť Ping s oneskorením polohy vpred (100); // Počkajte 100 ms moveForward (); // ROBOT SA POHYBÍ Vpred} // ------------------------------------------ ---------------------------------------------------------- ------------------------------------- prázdna slučka () {int distanceRight = 0; // Začnite americkú vzdialenosť doprava na 0 int vzdialenosťLeft = 0; // Začnite americkú vzdialenosť vľavo na 0 //US_Servo.write(90); // Stredné servo USA // oneskorenie (50); // US_Servo.write (70); // Pozrite sa mierne doprava // oneskorenie (250); // US_Servo.write (110); // Pozrite sa mierne doľava // oneskorenie (250); // US_Servo.write (90); // Look Center

if (vzdialenosť <= 20) // Robot sa POHYBUJE Vpred {moveStop (); // Robot ZASTAVÍ na vzdialenosť = vzdialenosťVľavo) // Rozhodnite sa, ktorým smerom sa otočiť {turnRight (); // Pravá strana má najväčšiu vzdialenosť, ROBOT SA OTOČÍ VPRAVO s oneskorením 0,3 s (500); // Toto oneskorenie určuje dĺžku zákruty moveStop (); // Robot ZASTAVÍ} else {turnLeft (); // Najväčšia vzdialenosť ľavej strany, ROBOT SA OTOČÍ VĽAVO s oneskorením 0,3 s (500); // Toto oneskorenie určuje dĺžku zákruty moveStop (); // Robot ZASTAVÍ}} else {moveForward (); // Robot SE POHYBUJE VPRED} vzdialenosť = readPing (); // US READS NEW PING for the new direction of travel} // ----------------------------------- ---------------------------------------------------------- -------------------------------------------- int lookRight () // Ultrazvukový senzor VYHĽADAJTE SPRÁVNU FUNKCIU {US_Servo.write (30); // US servo SE POSUNE DOPRAVA do uhlového oneskorenia (500); int vzdialenosť = readPing (); // Nastavenie hodnoty ping pre pravé oneskorenie (100); US_Servo.write (90); // servo USA PRESUNE DO CENTRA vzdialenosť návratu; // Vzdialenosť je nastavená} // ------------------------------------------ ---------------------------------------------------------- ------------------------------------- int lookVľavo () // Ultrazvukový senzor VYHĽADAŤ FUNKCIU VĽAVO {US_Servo.písať (150); // Servo USA sa POHYBUJE DOĽAVA na uhol oneskorenia (500); int vzdialenosť = readPing (); // Nastavenie hodnoty ping pre oneskorenie vľavo (100); US_Servo.write (90); // servo USA SA POHYBUJE DO STREDU návratová vzdialenosť; // Vzdialenosť je nastavená} // ------------------------------------------ ---------------------------------------------------------- ------------------------------------- int readPing () // Prečítajte si funkciu ping pre ultrazvukový senzor. {oneskorenie (100); // 100ms medzi pingmi (min. Doba pingu = 0,29ms) int cm = sonar.ping_cm (); // Vzdialenosť PING sa zhromaždí a nastaví v cm, ak (cm == 0) {cm = 250; } vrátiť cm; } // ----------------------------------------------- ---------------------------------------------------------- -------------------------------- void moveStop () // ROBOT STOP {Left_Servo.write (90); // LeftServo 180 vpred, 0 vzad Right_Servo.write (90); // RightServo 0 vpred, 180 vzad} // --------------------------------------- ---------------------------------------------------------- ---------------------------------------- void moveForward () // ROBOT FORWARD {Left_Servo.písať (180); // LeftServo 180 dopredu, 0 vzad Right_Servo.write (0); // RightServo 0 vpred, 180 vzad} // --------------------------------------- ---------------------------------------------------------- ---------------------------------------- neplatný ťahBackward () // ROBOT BACKWARD {Left_Servo.písať (0); // LeftServo 180 vpred, 0 vzad Right_Servo.write (180); // RightServo 0 vpred, 180 vzad} // --------------------------------------- ---------------------------------------------------------- ---------------------------------------- neplatné turnRight () // ROBOT RIGHT {Left_Servo.písať (180); // LeftServo 180 vpred, 0 vzad Right_Servo.write (90); // RightServo 0 vpred, 180 vzad} // --------------------------------------- ---------------------------------------------------------- ---------------------------------------- neplatné turnLeft () // ROBOT LEFT {Left_Servo.písať (90); // LeftServo 180 dopredu, 0 vzad Right_Servo.write (0); // RightServo 0 vpred, 180 vzad} // --------------------------------------- ---------------------------------------------------------- ----------------------------------------

Krok 3: Zostavte robota

Image
Image
Zostavte robota
Zostavte robota
Zostavte robota
Zostavte robota

Teraz je čas zostaviť robota. Kroky sú uvedené nižšie.

1) Pripevnite na disky okrúhle servo kotúče a gumené pásy: Všetky serva sú dodávané s plastovým upevňovacím hardvérom a skrutkami. Nájdite okrúhle disky a zaskrutkujte ich do dvoch otvorov na plochej strane kolies. Gumové pásky sa hodia okolo kolesa a zaisťujú priľnavosť. Možno budete chcieť pridať trochu lepidla, aby gumičky zostali na svojom mieste.

2) Upevnenie mramorového kolieska: Pomocou dvoch malých skrutiek pripevnite mramorové koliesko k dvom trojuholníkom vzadu. Mramorové koliesko je jednoduchou náhradou zadného kolesa a poskytuje zadný otočný bod.

3) Vložte serva do otvorov (nie sú potrebné žiadne skrutky): Servo FS90 (pre ultrazvukový snímač) vložte do predného otvoru v tele. Dve serva s nepretržitým otáčaním sa zasúvajú do ľavého a pravého otvoru. Drážky sú navrhnuté tak, aby tesne priliehali, takže na uchytenie serva na mieste nie sú potrebné žiadne skrutky. Uistite sa, že servo vodiče prechádzajú drážkami v štrbinách tak, aby smerovali k zadnej časti tela.

4) Umiestnenie batérie 9V (VOLITEĽNÉ): Za predné servo umiestnite 9V batériu + napájací konektor Arduino.

5) Montáž držiaka ultrazvukového senzora: Pomocou dvoch malých skrutiek pripevnite jedno z priložených bielych plastových servo nadstavcov k spodnej časti montážnej dosky ultrazvukového senzora. Potom pomocou 3D tlačenej 6 mm skrutky/matice (alebo nahraďte kovovú skrutku/maticu) pripevnite puzdro ultrazvukového senzora k montážnej doske. Nakoniec umiestnite snímač do puzdra tak, aby kolíky smerovali nahor a zacvakli ho do zadnej časti puzdra.

6) 4x puzdro na batérie AA: puzdro na batérie AA vložte do veľkej obdĺžnikovej oblasti vypínačom smerom dozadu.

7) Štítok senzora Arduino Uno + V5: Pripojte štít k Arduinu a umiestnite ho na držiaky nad puzdrom na batériu. Napájací konektor by mal smerovať doľava.

Váš robot je postavený! Čo zostalo? Programovanie Arduina a prepojovacích prepojovacích káblov: serva, ultrazvukový senzor a napájanie.

Krok 4: Pripojte vodiče snímača

Image
Image
Hotovo !!! Pripojte 9V zdroj Arduino, zapnite batériu a začnite sa vyhýbať prekážkam s OAREE
Hotovo !!! Pripojte 9V zdroj Arduino, zapnite batériu a začnite sa vyhýbať prekážkam s OAREE

Pripojte servo vodiče k štítu V5:

  1. Servo s nepretržitým otáčaním doľava sa pripája k PIN 9
  2. Servo s nepretržitým otáčaním vpravo sa pripája k PIN 10
  3. Predné servo FS90 sa pripája k PIN 11

Pripojte kolíky ultrazvukového senzora (pomocou 4 x prepojovacích káblov medzi zásuvkou a zásuvkou) k štítu V5:

  1. Spustiť na PIN 12
  2. Echo to PIN 13
  3. VCC na ktorýkoľvek z kolíkov označených „V“
  4. Uzemnite ktorýkoľvek z kolíkov označených „G“

Pripojte puzdro na batérie AA k štítu V5:

  1. Pripojte kladný červený vodič ku konektoru VCC
  2. Pripojte záporný čierny vodič k uzemneniu

Krok 5: Hotovo !!! Pripojte 9V zdroj Arduino, zapnite batériu a začnite sa vyhýbať prekážkam s OAREE

Image
Image
Hotovo !!! Pripojte 9V zdroj Arduino, zapnite batériu a začnite sa vyhýbať prekážkam s OAREE
Hotovo !!! Pripojte 9V zdroj Arduino, zapnite batériu a začnite sa vyhýbať prekážkam s OAREE

Hotovo !!

1) Pripojte 9V zdroj Arduino (voliteľné)

2) Zapnite batériu

3) Začnite sa vyhýbať prekážkam s OAREE !!!

Som si istý, že si svojho nového priateľa, OAREE, obľúbite, keď ho uvidíte, ako vycítite prekážku, zacúvate a zmeníte smer. OAREE funguje najlepšie s veľkými predmetmi, z ktorých môže ultrazvukový senzor pingnúť (ako steny). Vzhľadom na malú plochu povrchu a rohy má problémy s pingovaním malých predmetov, ako sú nohy stoličiek. Prosím zdieľajte, rozvíjajte a dajte mi vedieť o všetkých potrebných úpravách alebo chybách. Bola to skvelá vzdelávacia skúsenosť a dúfam, že sa budete pri tvorbe tohto projektu baviť rovnako ako ja!

Súťaž v robotike
Súťaž v robotike
Súťaž v robotike
Súťaž v robotike

Druhý v súťaži o robotiku

Odporúča: