Obsah:

OAREE - 3D tisk - Robot vyhýbající se překážkám pro inženýrské vzdělávání (OAREE) s Arduino: 5 kroků (s obrázky)
OAREE - 3D tisk - Robot vyhýbající se překážkám pro inženýrské vzdělávání (OAREE) s Arduino: 5 kroků (s obrázky)

Video: OAREE - 3D tisk - Robot vyhýbající se překážkám pro inženýrské vzdělávání (OAREE) s Arduino: 5 kroků (s obrázky)

Video: OAREE - 3D tisk - Robot vyhýbající se překážkám pro inženýrské vzdělávání (OAREE) s Arduino: 5 kroků (s obrázky)
Video: CREAlity Ender 6: Pořádná 3D tiskárna, kterou vám schválí i přítelkyně nebo žena! (RECENZE # 1291) 2024, Červen
Anonim
Image
Image
OAREE - 3D tisk - Robot vyhýbající se překážkám pro inženýrské vzdělávání (OAREE) s Arduino
OAREE - 3D tisk - Robot vyhýbající se překážkám pro inženýrské vzdělávání (OAREE) s Arduino
OAREE - 3D tisk - Robot vyhýbající se překážkám pro inženýrské vzdělávání (OAREE) s Arduino
OAREE - 3D tisk - Robot vyhýbající se překážkám pro inženýrské vzdělávání (OAREE) s Arduino

OAREE (Robot vyhýbající se překážkám pro inženýrské vzdělávání)

Design: Cílem tohoto instruktážního programu bylo navrhnout robota OAR (Obstacle vyhýbající se robot), který by byl jednoduchý/kompaktní, 3D tisknutelný, snadno sestavitelný, využívající k pohybu servopohony s nepřetržitým otáčením a s co nejmenším počtem zakoupených dílů. Věřím, že se mi podařilo vytvořit tohoto úžasného robota a pojmenoval jsem ho OAREE (Překážka vyhýbající se robotu pro inženýrské vzdělávání). Tento robot vycítí překážky, zastaví se, podívá se doleva a doprava, poté se otočí bez překážek a pokračuje vpřed.

Souvislosti: Internet má řadu robotů, které se vyhýbají překážkám, ale většina z nich je objemná, obtížně sestavitelná a drahá. Mnoho z těchto robotů má dodaný kód Arduino, ale bylo obtížné najít dobře promyšlený a fungující příklad. Chtěl jsem také použít pro kola (místo stejnosměrných motorů) serva s plynulým otáčením, což ještě nebylo provedeno. Vydal jsem se tedy na misi vyvinout kompaktního a vynalézavého robota OAR, o který se podělím se světem.

Další vývoj: Tento robot lze dále vyvíjet pro lepší přesnost pingování, přidání IR senzorů pro sledování linií, LCD displej pro zobrazení vzdálenosti překážek a mnoho dalšího.

Zásoby

  • 1x Arduino Uno -
  • 1x senzorový štít V5 -
  • 1x držák baterie 4xAA s vypínačem -
  • 1x servo SG90 -
  • 2x serva pro nepřetržité otáčení -
  • 1x 9V napájecí kabel pro Arduino (VOLITELNÉ) -
  • 1x ultrazvukový senzor HC -SR04 -
  • 4x propojovací vodiče žena-žena-https://www.amazon.com/RGBZONE-120pcs-Multicolored…
  • 2x gumové pásy
  • 1x 9V baterie (VOLITELNÉ)
  • 4x AA baterie
  • 4x malé šrouby (4 x 1/2 nebo cokoli podobného)
  • Phillips šroubovák
  • Lepidlo pro upevnění gumových pásků na kola

Krok 1: 3D tisk: tělo, kola, kolečko na mramor, 6mm šroub/matice a držák ultrazvukového senzoru

3D tisk: tělo, kola, kolečko na mramor, 6 mm šroub/matice a držák ultrazvukového senzoru
3D tisk: tělo, kola, kolečko na mramor, 6 mm šroub/matice a držák ultrazvukového senzoru
3D tisk: tělo, kola, kolečko na mramor, 6 mm šroub/matice a držák ultrazvukového senzoru
3D tisk: tělo, kola, kolečko na mramor, 6 mm šroub/matice a držák ultrazvukového senzoru
3D tisk: tělo, kola, kolečko na mramor, 6 mm šroub/matice a držák ultrazvukového senzoru
3D tisk: tělo, kola, kolečko na mramor, 6 mm šroub/matice a držák ultrazvukového senzoru

3D tisk obsahuje 5 dílů.

  1. Tělo
  2. Kola
  3. Mramorový kolečko
  4. 6mm šroub/matice (volitelně, kovová matice/šroub může být nahrazena)
  5. Držák ultrazvukového senzoru

Všechny požadované soubory. STL jsou součástí tohoto návodu a také souborů Sketchup. Doporučuje se 40% výplň.

Krok 2: Naprogramujte Arduino

Image
Image
Sestavte robota
Sestavte robota

Odeslat kód Arduino UNO: Pomocí IDE Arduino odešlete kód (v přiloženém souboru) do vašeho modulu Arduino. Do této skici budete muset stáhnout a zahrnout knihovny servo.h a newping.h.

Kód je důkladně okomentován, takže můžete vidět, co jednotlivé příkazy dělají. V případě potřeby můžete vzdálenost ultrazvukového senzoru snadno změnit na větší nebo menší hodnotu. Toto je počáteční kód a má být rozšířen a použit pro další vývoj projektu.

// PŘEKÁŽKA VYHNUTÁ ROBOTU // [email protected], [email protected], Univerzita TN v Chattanooga, Elektrotechnika, PODZIM 2019 // Požadované materiály: // 1) Arduiino UNO, 2) Štít snímače serva v5.0, 3) Ultrazvukový senzor HCSR04, 4) Servo FS90 (pro ultrazvukový senzor) // 5 & 6) 2x KONTINUÁLNÍ ROTAČNÍ SLUŽBY pro kola // 7) 16mm mramor pro zadní otočný čep, 8 a 9) 2 gumové pásy pro kola // 10- 15) 1x (4xAA) Držák baterie s vypínačem, 16 a 17) 9V baterie s konektorem pro napájení Arduino UNO // 3D TISK: // 18) ROBOT Body, 19 & 20) 2x Wheels, 21) Marble Caster, 22) Ultrazvukový senzor Držák a 6mm šroub (viz přiložené soubory) // -------------------------------------- ---------------------------------------------------------- ----------------------------------------- #include // Zahrnout servo knihovnu #include // Zahrnout knihovnu 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 senzoru vlevo_Servo; // Servo levého kola Servo Right_Servo; // Sonar servo pravého kola NewPing (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // Nastavení pinů NewPing a maximální vzdálenost. // ------------------------------------------------ ---------------------------------------------------------- ------------------------------- neplatné nastavení () // VSTUP/VÝSTUPY, KDE PŘIPOJIT, NASTAVIT POČÁTEČNÍ POLOHU/POHYB {pinMode (12, OUTPUT); // Trigger pin set as output pinMode (13, INPUT); // Echo pin nastaven jako vstup US_Servo.attach (11); // US Servo nastaveno na pin 11 US_Servo.write (90); // US SERVO SE TĚŠÍ

Left_Servo.attach (9); // Servo levého kola na kolík 9

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

Right_Servo.attach (10); // Servo pravého kola nastaveno na pin 10

Right_Servo.write (90); // PRAVÉ KOLO SERVO nastaveno na zpoždění STOP (2000); // Počkejte 2 sekundy vzdálenost = readPing (); // Získejte vzdálenost Ping se zpožděním polohy vpřed (100); // Počkejte 100 ms moveForward (); // ROBOT SE POHYBÍ V PŘEDU}} ------------------------------------------ ---------------------------------------------------------- ------------------------------------- prázdná smyčka () {int distanceRight = 0; // Zahájení americké vzdálenosti doprava na 0 int vzdálenostLeft = 0; // Zahájení americké vzdálenosti doleva na 0 //US_Servo.write(90); // Vycentrujte servo USA // zpoždění (50); // US_Servo.write (70); // Podívejte se mírně doprava // zpoždění (250); // US_Servo.write (110); // Podívejte se mírně doleva // zpoždění (250); // US_Servo.write (90); // Centrum pohledu

if (vzdálenost <= 20) // Robot se MOVES FORWARD {moveStop (); // Robot ZASTAVÍ na vzdálenost = vzdálenostVlevo) // Rozhodněte se, kterým směrem se otočit {turnRight (); // Pravá strana má největší vzdálenost, ROBOT SE OTOČÍ VPRAVO se zpožděním 0,3 s (500); // Toto zpoždění určuje délku zatáčky moveStop (); // Robot ZASTAVÍ} else {turnLeft (); // Největší vzdálenost levé strany, ROBOT SE OTOČÍ VLEVO se zpožděním 0,3 s (500); // Toto zpoždění určuje délku zatáčky moveStop (); // Robot ZASTAVÍ}} else {moveForward (); // Robot SE POHYBUJE VPŘED} vzdálenost = readPing (); // NÁS ČTÍ NOVÝ PING pro nový směr jízdy} // ----------------------------------- ---------------------------------------------------------- -------------------------------------------- int lookRight () // Ultrazvukový senzor VYHLEDEJTE SPRÁVNOU FUNKCI {US_Servo.write (30); // US servo SE PŘESUNE VPRAVO do úhlového zpoždění (500); int vzdálenost = readPing (); // Nastavit hodnotu ping pro pravé zpoždění (100); US_Servo.write (90); // Servo USA PŘESUNE DO CENTRA návratová vzdálenost; // Vzdálenost je nastavena} // ------------------------------------------ ---------------------------------------------------------- ------------------------------------- int lookLeft () // Ultrazvukový senzor VYHLEDAT LEVOU FUNKCI {US_Servo.write (150); // Servo USA SE POHYBUJE VLEVO na úhlové zpoždění (500); int vzdálenost = readPing (); // Nastavit hodnotu ping pro zpoždění vlevo (100); US_Servo.write (90); // Servo USA PŘESUNE DO CENTRA návratová vzdálenost; // Vzdálenost je nastavena} // ------------------------------------------ ---------------------------------------------------------- ------------------------------------- int readPing () // Funkce čtení Ping pro ultrazvukový senzor. {zpoždění (100); // 100ms mezi pingy (min. Doba pingu = 0,29ms) int cm = sonar.ping_cm (); // Vzdálenost PING se shromáždí a nastaví v cm, pokud (cm == 0) {cm = 250; } vrátit cm; } // ----------------------------------------------- ---------------------------------------------------------- -------------------------------- void moveStop () // ROBOT STOP {Left_Servo.write (90); // LeftServo 180 vpřed, 0 vzad Right_Servo.write (90); // RightServo 0 vpřed, 180 vzad} // --------------------------------------- ---------------------------------------------------------- ---------------------------------------- void moveForward () // ROBOT FORWARD {Left_Servo.write (180); // LeftServo 180 vpřed, 0 vzad Right_Servo.write (0); // RightServo 0 vpřed, 180 vzad} // --------------------------------------- ---------------------------------------------------------- ---------------------------------------- neplatný tahBackward () // ROBOT BACKWARD {Left_Servo.write (0); // LeftServo 180 vpřed, 0 vzad Right_Servo.write (180); // RightServo 0 vpřed, 180 vzad} // --------------------------------------- ---------------------------------------------------------- ---------------------------------------- neplatné turnRight () // ROBOT RIGHT {Left_Servo.write (180); // LeftServo 180 vpřed, 0 vzad Right_Servo.write (90); // RightServo 0 vpřed, 180 vzad} // --------------------------------------- ---------------------------------------------------------- ---------------------------------------- neplatné turnLeft () // ROBOT LEFT {Left_Servo.write (90); // LeftServo 180 vpřed, 0 vzad Right_Servo.write (0); // RightServo 0 vpřed, 180 vzad} // --------------------------------------- ---------------------------------------------------------- ----------------------------------------

Krok 3: Sestavte robota

Image
Image
Sestavte robota
Sestavte robota
Sestavte robota
Sestavte robota

Nyní je čas dát svého robota dohromady. Kroky jsou uvedeny níže.

1) Připojte kola a servopohony na kola: Všechna serva jsou dodávána s plastovým upevňovacím hardwarem a šrouby. Najděte kulaté disky a zašroubujte je do dvou otvorů na ploché straně kol. Gumové pásky sedí kolem kola a zajišťují přilnavost. Možná budete chtít přidat trochu lepidla, aby gumičky zůstaly na svém místě.

2) Připevnění mramorového kolečka: Pomocí dvou malých šroubů připevněte mramorové kolečko ke dvěma trojúhelníkům vzadu. Mramorové kolečko je jednoduchou náhradou zadního kola a poskytuje zadní otočný bod.

3) Vložte serva do slotů (nejsou potřeba žádné šrouby): Umístěte servo FS90 (pro ultrazvukový senzor) do přední štěrbiny těla. Dvě serva s nepřetržitým otáčením se zasouvají do levého a pravého slotu. Drážky jsou navrženy tak, aby těsně přiléhaly, takže k upevnění serva na místo nejsou potřeba žádné šrouby. Zajistěte, aby vodiče serva procházely drážkami ve štěrbinách tak, aby směřovaly k zadní části těla.

4) Umístění 9V baterie (VOLITELNÉ): Umístěte 9V baterii + napájecí konektor Arduino za přední servo.

5) Sestava držáku ultrazvukového senzoru: Pomocí dvou malých šroubů připevněte jeden z přiložených bílých plastových servo nástavců ke spodní části montážní desky ultrazvukového senzoru. Dále pomocí 3D tištěného 6mm šroubu/matice (nebo nahraďte kovový šroub/matici) připevněte pouzdro ultrazvukového senzoru k montážní desce. Nakonec umístěte snímač do pouzdra kolíky nahoru a zacvakněte jej do zadní části pouzdra.

6) 4x pouzdro na baterie AA: Umístěte pouzdro na baterie AA do velké obdélníkové oblasti, vypínačem směrem dozadu.

7) Štít snímače Arduino Uno + V5: Připojte štít k Arduinu a umístěte jej na držáky nad pouzdrem na baterii. Napájecí konektor by měl směřovat doleva.

Váš robot je postaven! Co zbývá? Programování Arduina a propojovacích propojovacích kabelů: serva, ultrazvukový senzor a napájecí zdroj.

Krok 4: Připojte dráty senzoru

Image
Image
Hotovo !!! Připojte 9V zdroj Arduino, zapněte baterii a začněte se vyhýbat překážkám s OAREE
Hotovo !!! Připojte 9V zdroj Arduino, zapněte baterii a začněte se vyhýbat překážkám s OAREE

Připojte servo vodiče k štítu V5:

  1. Servo s nepřetržitým otáčením doleva se připojuje k PIN 9
  2. Servo s nepřetržitým otáčením doprava se připojí k PIN 10
  3. Přední servo FS90 se připojuje k PIN 11

Připojte kolíky ultrazvukového senzoru (přes 4 propojovací vodiče mezi zdířkami a zásuvkami) k štítu V5:

  1. Spustit na PIN 12
  2. Echo to PIN 13
  3. VCC na kterýkoli z kolíků označených 'V'
  4. Uzemněte kterýkoli z kolíků označených 'G'

Připojte kryt baterie AA ke štítu V5:

  1. Připojte kladný červený vodič ke konektoru VCC
  2. Připojte záporný černý vodič k uzemnění

Krok 5: Hotovo !!! Připojte 9V zdroj Arduino, zapněte baterii a začněte se vyhýbat překážkám s OAREE

Image
Image
Hotovo !!! Připojte 9V zdroj Arduino, zapněte baterii a začněte se vyhýbat překážkám s OAREE
Hotovo !!! Připojte 9V zdroj Arduino, zapněte baterii a začněte se vyhýbat překážkám s OAREE

Hotovo !

1) Připojte napájení 9V Arduino (volitelně)

2) Zapněte baterii

3) Začněte se vyhýbat překážkám s OAREE !!!

Jsem si jistý, že si svého nového přítele, OAREE, oblíbíte, poté, co ho sledujete, cítíte překážku, zacouváte a měníte směr. OAREE funguje nejlépe s velkými předměty, ze kterých může ultrazvukový senzor pingnout (jako stěny). Kvůli malé ploše a rohům má potíže pingovat na malé předměty, jako jsou nohy židlí. Sdílejte, dále rozvíjejte a dejte mi vědět o všech potřebných úpravách nebo chybách. Byla to skvělá zkušenost s učením a doufám, že se budete při vytváření tohoto projektu bavit stejně jako já!

Soutěž v robotice
Soutěž v robotice
Soutěž v robotice
Soutěž v robotice

Druhý v soutěži Robotics

Doporučuje: