
Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-23 14:38




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 obsahuje 5 dílů.
- Tělo
- Kola
- Mramorový kolečko
- 6mm šroub/matice (volitelně, kovová matice/šroub může být nahrazena)
- 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



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




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



Připojte servo vodiče k štítu V5:
- Servo s nepřetržitým otáčením doleva se připojuje k PIN 9
- Servo s nepřetržitým otáčením doprava se připojí k PIN 10
- 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:
- Spustit na PIN 12
- Echo to PIN 13
- VCC na kterýkoli z kolíků označených 'V'
- Uzemněte kterýkoli z kolíků označených 'G'
Připojte kryt baterie AA ke štítu V5:
- Připojte kladný červený vodič ke konektoru VCC
- 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



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á!


Druhý v soutěži Robotics
Doporučuje:
Disco helma pro 3D tisk !: 11 kroků (s obrázky)

Disco helma pro 3D tisk!: Inspirována klasickou helmou Daft Punk 'Thomas'. Rozsviťte místnost a záviděte všem svým přátelům s touto úžasnou disco helmou napájenou Arduino! K dokončení tohoto projektu budete potřebovat přístup k 3D tiskárně a páječce. Chcete -li
Zkontrolujte tisk bez speciálního softwaru nebo tiskárny s MS Excel (tisk bankovních šeků): 6 kroků

Zkontrolovat tisk bez speciálního softwaru nebo tiskárny s MS Excel (tisk bankovních šeků): Jedná se o jednoduchý excelový sešit, který bude velmi užitečný pro jakoukoli firmu při psaní mnoha bankovních šeků na druhém místě za svými dodavateli. Nepotřebujete speciální tiskárnu ani software, potřebujete pouze počítač s MS Excel a normální tiskárnu. Ano, nyní můžete
Vzdělávání v robotice krok za krokem se sadou: 6 kroků

Vzdělávání v robotice krok za krokem se sadou: Po několika měsících stavby vlastního robota (podívejte se prosím na všechny tyto) a poté, co se dvakrát pokazily součásti, jsem se rozhodl udělat krok zpět a znovu promyslet svůj strategie a směr. Několikiměsíční zkušenost byla někdy velmi přínosná a
Robotické auto vyhýbající se překážkám: 9 kroků

Robotické auto vyhýbající se překážkám: Jak postavit robota, který se vyhýbá překážkám
Crazy Impressive Věda/inženýrské projekty: 10 kroků

Crazy Impressive Věda/inženýrské projekty: Chcete mít vůbec nejlepší vědecký/inženýrský projekt? Číst dál