Obsah:
- Zásoby
- Krok 1: Stavba
- Krok 2: Zapojení
- Krok 3: Teorie ovládání
- Krok 4: Použití MPU 6050
- Krok 5: Kódování
- Krok 6: Postup ladění PID
- Krok 7: Conclution
Video: Dvoukolový samovyvažovací robot: 7 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:19
Tento návod projde procesem návrhu a sestavení samovyvažovacího robota. Jako poznámku chci jen říci, že roboti s vlastním vyvažováním nejsou novým konceptem a byly postaveny a zdokumentovány ostatními. Chci využít této příležitosti a podělit se s vámi o svou interpretaci tohoto robota.
Co je to samovyvažovací robot?
Samovyvažovací robot je systém, který pomocí inerciálních naměřených dat shromážděných z palubního senzoru průběžně upravuje svou polohu tak, aby byl ve vzpřímené poloze.
Jak to funguje?
Jednoduchou analogií, kterou je třeba zvážit, je obrácené kyvadlo. Kde je těžiště nad bodem otáčení. V našem případě však omezujeme kyvadlo na 1 stupeň volnosti tím, že máme jednu osu otáčení, v našem případě osu otáčení dvou kol. Protože jakýkoli druh rušení způsobí pád robota, potřebujeme metodu aktivního udržování robota v rovnováze. Zde vstupuje do hry náš algoritmus s uzavřenou smyčkou (PID regulátor).
Jak funguje algoritmus s uzavřenou smyčkou?
Základním principem udržování robota v rovnováze je, že pokud robot padá dopředu, bude to kompenzovat posunutím spodní části robota dopředu, aby se zachytil, a proto zůstal ve svislé poloze. Stejně tak pokud robot padá dozadu, bude to kompenzovat pohybem spodní části robota dozadu, aby se zachytil.
Zde tedy musíme udělat dvě věci, za prvé musíme vypočítat úhel sklonu (Roll), se kterým se robot setkává, a v důsledku toho musíme ovládat směr otáčení motorů.
Jak budeme měřit úhel sklonu?
K měření úhlu sklonu použijeme inerciální měřicí jednotku. Tyto moduly obsahují akcelerometr a gyroskop.
- Akcelerometr je elektromagnetické zařízení, které měří správné zrychlení, což je zrychlení tělesa v okamžitém klidovém rámci.
- Gyroskop je elektromechanické zařízení, které měří úhlovou rychlost a slouží k určení orientace zařízení.
Problém s používáním takových senzorů je však ten, že:
- Akcelerometr je velmi hlučný, ale v průběhu času je konzistentní, úhel se mění při náhlých vodorovných pohybech
- Hodnota gyroskopu se na druhou stranu bude časem posouvat, ale zpočátku je poměrně přesná
Pro tento instruktáž nebudu implementovat filtr, místo toho nebudu používat integrované zpracování digitálního pohybu (DMP). Jiní použili doplňkový filtr k získání hladkého signálu, můžete si vybrat libovolnou metodu, která se vám líbí. jak robot vyvažuje s každou implementací.
Zásoby
Díly:
- Arduino Pro Mini 3,3 V 8 s 8 MHz ATMEGA328
- FT232RL 3.3V 5.5V FTDI Modul sériového adaptéru USB na TTL
- Modul GY-521 s MPU-6050
- Dvojice mikropřevodovek N20 6V - 300 ot./min
- Ovladač motoru L298N
- Převodník bucků LM2596S DC na DC
- Baterie (dobíjecí lithium-iontová baterie 9,7 V)
- Popruh na baterie
- Dvě prototypové desky plošných spojů
- Propojovací vodiče kolíkových a kolíkových konektorů
Nástroje:
- Páječka a pájka
- Distanční sloupek z nylonového šestihranu
- Sada přesných šroubováků
- 3D tiskárna
Krok 1: Stavba
Vzhledem k tomu, že jsem měl přístup k 3D tiskárně, rozhodl jsem se vytisknout podvozek 3D a použít spojovací prvky k propojení všeho dohromady.
Robot se skládá ze 4 vrstev
- Spodní vrstva spojuje motory a má montážní body pro modul ovladače motoru L298N
- V další vrstvě je prototypová deska s Arduino pro mini a k ní připájenými záhlavími
- Třetí vrstva připojuje IMU
- Horní vrstva, kterou nazývám „nárazníková vrstva“, obsahuje baterii, převodník bucků a peněžní přepínač
Mým hlavním principem návrhu bylo udržet vše modulární. Důvodem bylo to, že pokud se něco pokazilo s jednou ze součástí, kterou jsem mohl snadno vyměnit, nebo pokud jsem potřeboval součást pro jiný projekt, mohu ji snadno převzít, aniž bych se obával, že nebudu moci systém znovu použít.
Krok 2: Zapojení
Pájel jsem několik ženských hlavičkových pinů na desku perf, aby odpovídalo pinům mini hlaviček Arduino pro. V návaznosti na to jsem připájel samčí kolíky záhlaví desky, abych umožnil přístup k I/O. Zbytek komponent byl namontován na 3D tištěný rám a připojen pomocí propojovacích vodičů.
Krok 3: Teorie ovládání
Nyní přejdeme k jádru projektu. Aby byl robot vyvážený, potřebujeme generovat vhodný řídicí signál, který pohání motory ve správném směru a správnou rychlostí, aby byl robot vyvážený a stabilní. K tomu použijeme populární algoritmus řídicí smyčky známý jako PID regulátor. Jak zkratka naznačuje, existují tři termíny pro tento řadič, jedná se o proporcionální, integrální a derivační termíny. Každý z nich je doprovázen koeficienty, které určují jejich vliv na systém. Časově nejnáročnější částí implementace ovladače je často vyladění zisků pro každý jedinečný systém, aby se dosáhlo nejoptimálnější odezvy.
- Proporcionální člen přímo vynásobí chybu a poskytne výstup, takže čím větší chyba, tím větší odezva
- Integrální člen generuje odpověď na základě akumulace chyby za účelem snížení chyby v ustáleném stavu. Čím déle je systém nevyvážený, tím rychleji budou motory reagovat
- Derivační termín je derivátem chyby, která se používá k předpovědi budoucí reakce, a tím snižuje oscilaci v důsledku překročení ustáleného stavu.
Základním principem tohoto algoritmu je nepřetržitý výpočet úhlu sklonu, což je rozdíl mezi požadovanou polohou a aktuální polohou, což je známé jako chyba. Poté použije tyto chybové hodnoty a vypočítá součet proporcionálních, integrálních a derivačních reakcí k získání výstupu, což jsou řídicí signály, které jsou vysílány do motorů. Výsledkem je, že pokud je chyba velká, řídicí signál vyslaný do motorů bude otáčet motory vysokou rychlostí, aby se dostal do vyváženého stavu. Podobně, pokud je chyba malá, řídicí signál bude otáčet motory nízkou rychlostí, aby byl robot v rovnováze.
Krok 4: Použití MPU 6050
Knihovna MPU6050
github.com/jrowberg/i2cdevlib/tree/master/…
Kalibrace offsetů Ne všechny senzory jsou navzájem přesné repliky. Výsledkem je, že pokud testujete dva MPU 6050, můžete získat různé hodnoty pro akcelerometr a gyroskop, pokud jsou umístěny stále na stejném povrchu. Abychom překonali tento konstantní úhel, musíme oslavit každý senzor, který používáme. Spuštění tohoto skriptu:
www.i2cdevlib.com/forums/topic/96-arduino-…
napsal Luis Rodenas, dostaneme ofsety. Chyby ofsetu lze eliminovat definováním hodnot offsetu v rutině setup ().
Pomocí digitálního pohybového procesoru
MPU6050 obsahuje DMP (Digital Motion Processor).
Co je DMP? DMP si můžete představit jako integrovaný mikrokontrolér, který zpracovává komplexní pohyb z 3osého gyroskopu a 3osého akcelerometru na palubě mpu6050 pomocí vlastních algoritmů fúze pohybu. Vyložení zpracování, které by jinak provedlo Arduino
Jak to použít? Chcete-li zjistit, jak používat DMP, projděte si ukázkový náčrt MPU6050_DMP6, který je dodáván s knihovnou MPU6050 (v Arduino IDE: Soubor-> Příklad-> MPU6050-> MPU6050_DMP6). Je to také dobrá příležitost zkontrolovat, zda váš senzor skutečně funguje a zda je správné zapojení
Krok 5: Kódování
K programování Arduino pro mini jsem použil Arduino IDE a rozhraní FTDI.
Pomocí příkladu skici (MPU6050_DMP6), který je dodáván s knihovnou MPU6050 jako základního kódu, jsem přidal funkce PID () a MotorDriver ().
Přidejte knihovnu
- MPU6050: K použití snímače MPU6050 budeme muset stáhnout vývojářskou knihovnu I2C od Jeffa Rowberga a přidat ji do složky „knihovny“Arduino, která se nachází v programových souborech ve vašem počítači.
- Wire: Potřebujeme také knihovnu Wire, která nám umožní komunikovat se zařízeními I2C.
Pseudo kód
Zahrnout knihovny:
- Wire.h
- MPU6050
- I2Cdev.h
Inicializujte proměnné, konstanty a objekty
Založit ()
- Nastavte režim kolíku pro ovládání motorů
- Nastavte režim pinů pro stavovou LED
- Inicializujte MPU6050 a nastavte hodnoty ofsetu
PID ()
Vypočítejte hodnotu PID
MotorDriver (reakce PID)
Pomocí hodnoty PID můžete řídit rychlost a směr motorů
Smyčka ()
- Získejte data z DMP
- Volejte funkce PID () a MotorDriver ()
Krok 6: Postup ladění PID
Toto je nejnáročnější část projektu a vyžaduje trochu trpělivosti, pokud nebudete mít velké štěstí. Zde jsou kroky:
- Nastavte termín I a D na 0
- Držte robota a nastavte P tak, aby robot začal oscilovat kolem polohy vyvážení
- Se sadou P zvyšte I, aby robot zrychlil rychleji, když je mimo rovnováhu. Když jsme P a já správně naladěni, robot by měl být schopen se alespoň na několik sekund s určitou oscilací vyvážit
- Nakonec zvyšte D a snižte oscilaci
Pokud první pokus neposkytne uspokojivé výsledky, opakujte kroky s jinou hodnotou P. Mějte také na paměti, že hodnoty PID můžete později doladit, abyste dále zvýšili výkon. Hodnoty zde závisí na hardwaru, nenechte se překvapit, pokud získáte velmi velké nebo velmi malé hodnoty PID.
Krok 7: Conclution
Použité mikropřevodníky měly zpomalit, aby reagovaly na velké poruchy, a vzhledem k tomu, že systém byl příliš lehký, nebyla k dosažení požadovaného kyvadlového efektu dostatečná setrvačnost, takže pokud se robot nakloní dopředu, nakloní se pouze šikmo a proběhne vpřed. A konečně, 3D tištěná kola byla špatná volba, protože neustále klouzaly.
Návrhy na vylepšení:
- Rychlejší motory s vyšším točivým momentem, tj. U stejnosměrných motorů platí, že čím vyšší je jmenovité napětí, tím vyšší točivý moment
- získejte těžší baterii nebo jen posuňte hmotu o něco výše
- Vyměňte 3D tištěná kola za gumová, abyste získali lepší trakci
Doporučuje:
Samovyvažovací robot od Magicbit: 6 kroků
Robot s vlastním vyvažováním od Magicbit: Tento tutoriál ukazuje, jak vytvořit robota s vlastním vyvážením pomocí vývojové desky Magicbit. Jako vývojovou desku v tomto projektu, který je založen na ESP32, používáme magicbit. V tomto projektu lze tedy použít jakoukoli vývojovou desku ESP32
Jak vytvořit dálkově ovládaný 3D tištěný samovyvažovací robot: 9 kroků (s obrázky)
Jak vytvořit dálkově ovládaný 3D tištěný samovyvažovací robot: Toto je evoluce předchozí verze B-robota. 100% OTEVŘENÝ ZDROJ / robot Arduino. KÓD, 3D díly a elektronika jsou otevřené, takže je můžete upravit nebo vytvořit obrovskou verzi robota. Pokud máte pochybnosti, nápady nebo potřebujete pomoc, udělejte
2kolový samovyvažovací robot: 4 kroky
2 Wheeled Self Balancing Robot: Podle mého skromného názoru nejste skutečný tvůrce, pokud si nepostavíte vlastního 2kolového samonabíjecího robota.: Takže Takže tady to je … a co je nejdůležitější, funguje to !!! Tento projekt vypadá velmi jednoduše. Místo toho to vyžaduje dobrou úroveň znalostí
Samovyvažovací robot využívající algoritmus PID (STM MC): 9 kroků
Self Balancing Robot using PID Algorithm (STM MC): V poslední době bylo provedeno mnoho práce na vlastním vyvažování objektů. Koncept vlastního vyvažování začal vyvažováním obráceného kyvadla. Tento koncept se rozšířil i na konstrukci letadel. V tomto projektu jsme navrhli malý mod
Samovyvažovací robot: 6 kroků (s obrázky)
Samovyvažovací robot: V tomto Instructable vám ukážeme, jak postavit samovyvažovacího robota, kterého jsme vyrobili jako školní projekt. Je založen na některých dalších robotech, jako je nBot a další Instructable. Robota lze ovládat z chytrého telefonu Android