Obsah:

Arduino ovládaný robotický dvojnohý: 13 krokov (s obrázkami)
Arduino ovládaný robotický dvojnohý: 13 krokov (s obrázkami)

Video: Arduino ovládaný robotický dvojnohý: 13 krokov (s obrázkami)

Video: Arduino ovládaný robotický dvojnohý: 13 krokov (s obrázkami)
Video: Roboticke rameno + arduino mega 2024, November
Anonim
Image
Image
Robotický dvojnohý ovládaný Arduinom
Robotický dvojnohý ovládaný Arduinom
Robotický dvojnohý ovládaný Arduinom
Robotický dvojnohý ovládaný Arduinom

Projekty Fusion 360 »

Roboty ma vždy fascinovali, obzvlášť ten, ktorý sa pokúša napodobniť ľudské činy. Tento záujem ma priviedol k tomu, že som sa pokúsil navrhnúť a vyvinúť robotickú dvojnožku, ktorá by dokázala napodobniť ľudskú chôdzu a beh. V tomto návode vám ukážem návrh a montáž robotickej dvojnožky.

Primárnym cieľom pri stavbe tohto projektu bolo urobiť systém čo najrobustnejším, aby som sa pri experimentovaní s rôznymi krokmi pri chôdzi a behu nemusel neustále obávať zlyhania hardvéru. To mi umožnilo posunúť hardvér na jeho limit. Sekundárnym cieľom bolo dosiahnuť, aby bol biped relatívne lacný pomocou ľahko dostupných hobby dielov a 3D tlače, aby ponechal priestor pre ďalšie vylepšenia a rozšírenia. Tieto dva ciele v kombinácii poskytujú robustný základ pre vykonávanie rôznych experimentov, vďaka čomu si človek môže vyvinúť dvojnožky podľa konkrétnejších požiadaviek.

Pokračujte a vytvorte si vlastného robotického dvojnožky ovládaného Arduinom a hlasujte v „súťaži Arduino“, ak sa vám projekt páčil.

Krok 1: Proces návrhu

Proces návrhu
Proces návrhu
Proces návrhu
Proces návrhu
Proces návrhu
Proces návrhu

Humanoidné nohy boli navrhnuté v bezplatnom softvéri 3D modelovania Fusion 360 od spoločnosti Autodesk. Začal som importom servomotorov do konštrukcie a postavil som nohy okolo nich. Navrhol som konzoly pre servomotor, ktoré poskytujú druhý otočný bod diametrálne proti hriadeľu servomotora. Dvojité hriadele na oboch koncoch motora poskytujú konštrukčnú stabilitu konštrukcie a eliminujú akékoľvek zošikmenie, ktoré môže nastať, keď sú nohy vyrobené tak, aby uniesli určité zaťaženie. Články boli navrhnuté tak, aby držali ložisko, zatiaľ čo konzoly používali skrutku pre hriadeľ. Akonáhle boli články namontované na hriadele pomocou matice, ložisko by poskytlo hladký a robustný bod otáčania na opačnej strane hriadeľa servomotora.

Ďalším cieľom pri návrhu dvojnožky bolo udržať model čo najkompaktnejší, aby sa maximálne využil krútiaci moment poskytovaný servomotormi. Rozmery článkov boli navrhnuté tak, aby bol dosiahnutý veľký rozsah pohybu pri minimalizácii celkovej dĺžky. Ak by boli príliš krátke, konzoly by sa zrazili, znížil by sa rozsah pohybu a príliš dlhé by na ovládače vyvíjali zbytočný krútiaci moment. Nakoniec som navrhol telo robota, na ktoré by sa namontovalo Arduino a ďalšie elektronické súčiastky.

Poznámka: Diely sú zahrnuté v jednom z nasledujúcich krokov.

Krok 2: Úloha Arduina

Úloha Arduina
Úloha Arduina

V tomto projekte bolo použité Arduino Uno. Arduino bolo zodpovedné za výpočet dráh pohybu rôznych testovaných chodov a nariadilo pohonom, aby sa pohybovali do presných uhlov pri presných rýchlostiach, aby vytvorili plynulý pohyb pri chôdzi. Arduino je vďaka svojej univerzálnosti skvelou voľbou na vývoj projektov. Poskytuje veľa IO pinov a tiež poskytuje rozhrania ako sériové, I2C a SPI na komunikáciu s inými mikrokontrolérmi a senzormi. Arduino tiež poskytuje skvelú platformu pre rýchle prototypovanie a testovanie a vývojárom tiež dáva priestor na vylepšenia a rozšíriteľnosť. V tomto projekte budú ďalšie verzie zahŕňať inerciálnu meraciu jednotku na spracovanie pohybu, ako je detekcia pádu a dynamická pohyb v nerovnom teréne, a snímač merania vzdialenosti, aby sa zabránilo prekážkam.

Na tento projekt bolo použité Arduino IDE. (Arduino tiež poskytuje webové IDE)

Poznámka: Programy pre robota je možné stiahnuť z jedného z nasledujúcich krokov.

Krok 3: Potrebný materiál

Potrebné materiály
Potrebné materiály
Potrebné materiály
Potrebné materiály
Potrebné materiály
Potrebné materiály
Potrebné materiály
Potrebné materiály

Tu je zoznam všetkých komponentov a dielov potrebných na výrobu vlastného robota Bipedal poháňaného Arduino. Všetky diely by mali byť bežne dostupné a ľahko dostupné.

ELEKTRONIKA:

Arduino Uno x 1

Servomotor Towerpro MG995 x 6

Perfboard (podobná veľkosti ako Arduino)

Mužské a ženské kolíkové hlavičky (asi 20 z každého)

Prepojovacie vodiče (10 kusov)

MPU6050 IMU (voliteľné)

Ultrazvukový senzor (voliteľné)

HARDWARE:

Ložisko pre skateboard (8x19x7mm)

Matice a skrutky M4

Vlákno pre 3D tlačiareň (v prípade, že nevlastníte 3D tlačiareň, mala by byť v miestnom pracovnom priestore 3D tlačiareň alebo je možné tlačiť pomerne lacno online)

Bez nákladov na Arduino a 3D tlačiareň sú celkové náklady na tento projekt 20 $.

Krok 4: 3D tlačené diely

3D tlačené diely
3D tlačené diely
3D tlačené diely
3D tlačené diely
3D tlačené diely
3D tlačené diely
3D tlačené diely
3D tlačené diely

Časti potrebné pre tento projekt museli byť navrhnuté na mieru, preto bola na ich vytlačenie použitá 3D tlačiareň. Výtlačky boli urobené so 40% výplňou, 2 obvodmi, tryskou 0,4 mm a výškou vrstvy 0,1 mm pomocou PLA, farby podľa vášho výberu. Nasleduje kompletný zoznam dielov a STL na vytlačenie vašej vlastnej verzie.

Poznámka: Odtiaľ budú na diely odkazované pomocou názvov v zozname.

  • držiak serva na nohy x 1
  • zrkadlo držiaka servopohonu x 1
  • držiak servo kolena x 1
  • zrkadlo na držiak servo kolena x 1
  • držiak serva na nohy x 1
  • zrkadlo držiaka servopohonu x 1
  • ložiskový článok x 2
  • odkaz na servo klaksón x 2
  • nožný článok x 2
  • most x 1
  • držiak elektroniky x 1
  • rozpera elektroniky x 8 (voliteľné)
  • priestor servo klaksónu x 12 (voliteľné)

Celkovo, bez medzier, je 14 dielov. Celková doba tlače je asi 20 hodín.

Krok 5: Príprava servopohonov

Príprava servopohonov
Príprava servopohonov
Príprava servopohonov
Príprava servopohonov
Príprava servopohonov
Príprava servopohonov

Akonáhle sú vytlačené všetky diely, môžete začať s nastavením serv a držiakov serva. Najprv zatlačte ložisko do držiaka kolenového serva. Lícovanie by malo byť priliehavé, ale odporučil by som vnútorný povrch otvoru trochu prebrúsiť, namiesto toho, aby ste ložisko tlačili, čo môže mať za následok rozbitie dielu. Potom prevlečte skrutku M4 otvorom a dotiahnite ju maticou. Potom uchopte nožný spoj a pomocou dodaných skrutiek naň pripevnite kruhový servo klaksón. Pripojte nožný článok k držiaku kolenného serva pomocou skrutiek, ktoré použijete aj na pripevnenie servomotora. Motor zarovnajte tak, aby bol hriadeľ na rovnakej strane skrutky, akú ste predtým pripevnili. Nakoniec zaistite servo zvyšnými maticami a skrutkami.

To isté urobte s držiakom bedrového serva a držiakom serva na nohy. K tomu by ste mali mať tri servomotory a im zodpovedajúce konzoly.

Poznámka: Poskytujem návod na stavbu jednej nohy, druhá je jednoducho zrkadlená.

Krok 6: Vytvorenie prepojovacích dielov

Vytváranie prepojovacích článkov
Vytváranie prepojovacích článkov
Vytváranie prepojovacích článkov
Vytváranie prepojovacích článkov
Vytváranie prepojovacích článkov
Vytváranie prepojovacích článkov

Akonáhle sú zátvorky zostavené, začnite vytvárať odkazy. Na vytvorenie ložiskového článku ešte raz jemne obrúste vnútorný povrch otvorov pre ložisko a potom zatlačte ložisko do otvoru na oboch stranách. Ložisko zatlačte dovnútra, kým nebude jedna strana v jednej rovine. Ak chcete vytvoriť prepojenie servo klaksónu, chyťte dva kruhové servo rohy a dodané skrutky. Umiestnite rohy na 3D tlač a zarovnajte otvory, potom naskrutkujte roh na 3D tlač pripevnením skrutky zo strany 3D tlače. Na tieto skrutky odporúčam použiť 3D tlačenú vložku servo rohu. Akonáhle sú odkazy postavené, môžete začať s montážou nohy.

Krok 7: Zostavenie nôh

Zostavenie nôh
Zostavenie nôh
Zostavenie nôh
Zostavenie nôh
Zostavenie nôh
Zostavenie nôh
Zostavenie nôh
Zostavenie nôh

Akonáhle sú články a konzoly zostavené, môžete ich skombinovať a postaviť tak nohu robota. Najprv pomocou spojky servo klaksónu spojte držiak bedrového servo a kolenný servopohon dohromady. Poznámka: Zatiaľ neposkrutkujte klaksón k servu, pretože v nasledujúcej fáze je fáza nastavenia a ak by bol klaksón naskrutkovaný na servomotor, bolo by nepríjemné.

Na opačnej strane namontujte ložiskový článok na vyčnievajúce skrutky pomocou matíc. Nakoniec pripevnite konzolu servopohonu nohy zasunutím vyčnievajúcej skrutky cez ložisko na držiaku kolenného serva. A pripevnite hriadeľ serva k klaksónu serva pripojenému k držiaku kolenného serva na druhej strane. Môže to byť náročná úloha a odporučil by som na to druhý pár rúk.

Zopakujte kroky pre druhú nohu. Ako referenciu použite obrázky priložené k jednotlivým krokom.

Krok 8: Vlastná doska plošných spojov a zapojenie

Vlastná doska plošných spojov a kabeláž
Vlastná doska plošných spojov a kabeláž
Vlastná doska plošných spojov a kabeláž
Vlastná doska plošných spojov a kabeláž
Vlastná doska plošných spojov a kabeláž
Vlastná doska plošných spojov a kabeláž

Toto je voliteľný krok. Aby bolo zapojenie úhľadnejšie, rozhodol som sa vyrobiť vlastnú dosku plošných spojov pomocou dosky perf pin a záhlavia. Doska plošných spojov obsahuje porty na priame pripojenie vodičov servomotora. Okrem toho som tiež nechal ďalšie porty pre prípad, že by som chcel rozšíriť a pridať ďalšie senzory, ako sú inerciálne meracie jednotky alebo ultrazvukové snímače vzdialenosti. Obsahuje tiež port pre externý zdroj energie potrebný na napájanie servomotorov. Na prepínanie medzi USB a externým napájaním pre Arduino sa používa prepojka. Namontujte Arduino a PCB na obidve strany držiaka elektroniky pomocou skrutiek a 3D vytlačených rozperiek.

Poznámka: Pred pripojením Arduina k počítaču cez USB nezabudnite odpojiť prepojku. V opačnom prípade môže dôjsť k poškodeniu Arduina.

Ak sa rozhodnete nepoužívať dosku plošných spojov a namiesto toho použijete nepájivú dosku, tu sú servo pripojenia:

  • Ľavý bok >> kolík 9
  • Pravý bok >> kolík 8
  • Ľavé koleno >> kolík 7
  • Pravé koleno >> kolík 6
  • Ľavá noha >> kolík 5
  • Pravá noha >> kolík 4

Ak sa rozhodnete urobiť DPS podľa rovnakého poradia ako vyššie, použite porty na DPS sprava doľava s portom IMU smerom nahor. Na pripojenie dosky plošných spojov k Arduinu pomocou vyššie uvedených čísel pinov použite bežné prepojovacie vodiče medzi mužmi a ženami. Nezabudnite tiež pripojiť uzemňovací kolík a vytvoriť rovnaký uzemňovací potenciál a Vin pin, keď sa ho rozhodnete prevádzkovať bez napájania USB.

Krok 9: Zostavenie tela

Zostavenie tela
Zostavenie tela
Zostavenie tela
Zostavenie tela
Zostavenie tela
Zostavenie tela

Akonáhle sú obe nohy a elektronika zostavené, skombinujte ich a vytvorte telo robota. Pomocou mostíka spojte obe nohy dohromady. Na držiak bedrového servo a matice a skrutky použite rovnaké montážne otvory, ktoré držia servomotor. Nakoniec pripojte držiak elektroniky k mostíku. Zarovnajte otvory na mostíku a držiaku elektroniky a na vytvorenie spoja použite matice a skrutky M4.

Pomoc nájdete na priložených obrázkoch. Týmto ste dokončili hardvérovú zostavu robota. Ďalej sa vrhneme na softvér a uvedieme robota do života.

Krok 10: Úvodné nastavenie

Úvodné nastavenie
Úvodné nastavenie
Úvodné nastavenie
Úvodné nastavenie
Úvodné nastavenie
Úvodné nastavenie

Pri stavbe tohto projektu som si všimol, že servomotory a klaksóny nemusia byť dokonale vyrovnané, aby zostali relatívne rovnobežné. Z tohto dôvodu musí byť „centrálna poloha“každého servomotora ručne nastavená tak, aby bola v súlade s nohami. Aby ste to dosiahli, odstráňte z každého serva rohy a spustite skicu initial_setup.ino. Akonáhle sa motory usadia v strednej polohe, znova pripevnite rohy tak, aby boli nohy úplne rovné a chodidlo bolo dokonale rovnobežné so zemou. Ak je to tak, máte šťastie. Ak neotvoríte súbor constants.h, ktorý sa nachádza na priľahlej karte, a upravte hodnoty posunu serva (riadky 1-6), kým nie sú nohy dokonale zarovnané a chodidlo je ploché. Pohrajte sa s hodnotami a získate predstavu o tom, čo je vo vašom prípade nevyhnutné.

Akonáhle sú konštanty nastavené, poznačte si tieto hodnoty, pretože budú potrebné neskôr.

Pomoc nájdete na obrázkoch.

Krok 11: Trochu o kinematike

Trochu o kinematike
Trochu o kinematike
Trochu o kinematike
Trochu o kinematike
Trochu o kinematike
Trochu o kinematike

Aby dvojnožka vykonávala užitočné činnosti, ako je beh a chôdza, je potrebné, aby boli rôzne chody naprogramované vo forme pohybových dráh. Cesty pohybu sú cesty, po ktorých sa pohybuje koncový efektor (v tomto prípade nohy). Existujú dva spôsoby, ako to dosiahnuť:

  1. Jedným prístupom by bolo napájanie uhlov spoja rôznych motorov spôsobom hrubej sily. Tento prístup môže byť časovo náročný, únavný a tiež plný chýb, pretože úsudok je čisto vizuálny. Namiesto toho existuje inteligentnejší spôsob, ako dosiahnuť požadované výsledky.
  2. Druhý prístup sa točí okolo kŕmenia súradníc koncového efektora namiesto všetkých kĺbových uhlov. Toto je známe ako inverzná kinematika. Užívateľ zadá súradnice a uhly spoja sa nastavia tak, aby koncový efektor bol umiestnený na určených súradniciach. Túto metódu možno považovať za čiernu skrinku, ktorá ako vstupy používa súradnice a výstupy kĺbových uhlov. Tí, ktorí sa zaujímajú o to, ako boli vyvinuté trigonometrické rovnice tejto čiernej skrinky, sa môžu pozrieť na vyššie uvedený diagram. Pre tých, ktorých to nezaujíma, sú rovnice už naprogramované a možno ich použiť pomocou funkcie pos, ktorá ako vstup x, za používa výstup troch uhlov zodpovedajúcich motorom.

Program obsahujúci tieto funkcie nájdete v nasledujúcom kroku.

Krok 12: Programovanie Arduina

Programovanie Arduina
Programovanie Arduina
Programovanie Arduina
Programovanie Arduina

Pred programovaním Arduina je potrebné v súbore vykonať mierne úpravy. Pamätáte si tie konštanty, ktoré som od vás žiadal, aby ste si urobili poznámku? Upravte rovnaké konštanty na hodnoty, ktoré ste nastavili v súbore constants.h.

Poznámka: Ak ste použili vzory uvedené v tomto návode, nemáte čo meniť. V prípade, že sú niektorí z vás, ktorí urobili svoje vlastné návrhy, budete musieť spolu s ofsetmi zmeniť aj niekoľko ďalších hodnôt. Konštanta l1 meria vzdialenosť medzi bedrovým čapom a kolenným čapom. Konštanta l2 meria vzdialenosť medzi čapom kolena a čapom členka. Ak ste teda navrhli svoj vlastný model, zmerajte tieto dĺžky a upravte konštanty. Na chod sú použité posledné dve konštanty. Konštanta stepClearance meria, ako vysoko sa noha zdvihne, keď príde po kroku a stepHeight Konštanta výšky meria výšku od zeme po bedro pri krokoch.

Akonáhle sú všetky konštanty upravené podľa vašich potrieb, môžete nahrať hlavný program. Hlavný program jednoducho inicializuje robota do stojaceho postoja a začne robiť kroky vpred. Funkcie je možné upraviť podľa vašej potreby a preskúmať rôzne chody, rýchlosti a dĺžky krokov, aby ste zistili, čo funguje najlepšie.

Krok 13: Konečné výsledky: Čas na experiment

Konečné výsledky: Čas na experiment
Konečné výsledky: Čas na experiment
Konečné výsledky: Čas na experiment
Konečné výsledky: Čas na experiment
Konečné výsledky: Čas na experiment
Konečné výsledky: Čas na experiment

Dvojnohý môže vykonávať kroky dlhé 10 až 2 cm bez toho, aby sa prevrátil. Rýchlosť sa dá tiež meniť, pričom je chôdza vyrovnaná. Táto dvojnožka v kombinácii so silou Arduina poskytuje robustnú platformu na experimentovanie s rôznymi ďalšími krokmi a inými cieľmi, ako je skákanie alebo vyvážanie pri kopaní do lopty. Odporučil by som vám, aby ste sa pokúsili zmeniť dráhy pohybu nôh, aby ste si vytvorili vlastné chody, a zistili, ako rôzne chody ovplyvňujú výkon robota. K systému je možné pridať snímače ako IMU a snímač vzdialenosti, aby sa zvýšila jeho funkčnosť, zatiaľ čo k nohám je možné pridať snímače sily, aby sa experimentovalo s dynamickým pohybom na nerovnom povrchu.

Dúfame, že sa vám tento návod páčil a je dostatočnou inšpiráciou na vytvorenie vlastného. Ak sa vám projekt páčil, podporte ho hlasovaním v „súťaži Arduino“.

Šťastnú tvorbu!

Súťaž Arduino 2020
Súťaž Arduino 2020
Súťaž Arduino 2020
Súťaž Arduino 2020

Prvá cena v súťaži Arduino 2020

Odporúča: