Obsah:

Robot sledující linii na základě PID s polem POLOLU QTR 8RC-senzorové pole: 6 kroků (s obrázky)
Robot sledující linii na základě PID s polem POLOLU QTR 8RC-senzorové pole: 6 kroků (s obrázky)

Video: Robot sledující linii na základě PID s polem POLOLU QTR 8RC-senzorové pole: 6 kroků (s obrázky)

Video: Robot sledující linii na základě PID s polem POLOLU QTR 8RC-senzorové pole: 6 kroků (s obrázky)
Video: Předmět Roboti: robot sledující čáru 2024, Červenec
Anonim
Robot sledující linku na základě PID se sadou senzorů POLOLU QTR 8RC
Robot sledující linku na základě PID se sadou senzorů POLOLU QTR 8RC

Ahoj!

toto je můj první zápis o instruktážích a dnes vás vezmu po silnici a vysvětlím vám, jak pomocí senzoru QTR-8RC postavit linku na základě PID za robotem.

Než se pustíme do stavby robota, musíme pochopit, čemu se říká PID,

Krok 1: Pracovní princip

Co je PID ??

Pojem PID znamená proporcionální, integrální, derivační. Jednoduše tedy to, co děláme se zapojením PID s následováním řádku, je, dáváme robotu příkaz, aby sledoval čáru a detekoval zatáčky výpočtem chyby zvážením toho, jak daleko se to posunulo mimo trať.

klíčové termíny uvedené v dokumentech polalu

Proporcionální hodnota je přibližně úměrná poloze vašeho robota vzhledem k čáře. To znamená, že pokud je váš robot přesně vystředěn na linii, očekáváme poměrnou hodnotu přesně 0

Integrovaná hodnota zaznamenává historii pohybu vašeho robota: je to součet všech hodnot proporcionálního členu, které byly zaznamenány od spuštění robota

Derivát je rychlost změny poměrné hodnoty

V tomto tutoriálu budeme hovořit pouze o termínech Kp a Kd, ale výsledků lze dosáhnout také pomocí výrazu Ki. Hodnoty, které získáváme ze senzoru, nejsou jen analogové hodnoty, ale také poziční hodnoty robota.takže senzor v zásadě poskytuje hodnoty od 0 do 2500 v rozsahu od maximální odrazivosti po minimální odrazivost, ale zároveň také poskytuje informace o tom, jak daleko se robot od linky uvízl.)

Nyní musíme vzít v úvahu chybový termín, Toto je rozdíl mezi dvěma hodnotami žádané hodnoty a aktuální hodnoty. (Požadovaná hodnota je hodnota, která odpovídá „dokonalému“umístění senzorů na horní čáry. A Aktuální hodnota je okamžité hodnoty senzoru. Například: Pokud používáte tento senzor pole a používáte 8 senzorů, obdržíte poziční hodnotu 3500, pokud jste na místě, kolem 0, pokud jste příliš daleko od řádek a kolem 7000, pokud jste příliš pravicoví.). Naším cílem je vynulovat chybu. Pak teprve může robot plynule sledovat čáru.

Poté přichází část výpočtu,.

1) vypočítat chybu.

Chyba = Žádaná hodnota - Aktuální hodnota = 3500 - pozice

Jak jsem pomocí 8 senzorů. když je robot perfektně umístěn, snímač poskytuje poziční hodnotu 3 500. Nyní, když jsme vypočítali naši chybu, rozpětí, o které se náš robot unáší po trati, je na čase, abychom chybu zkontrolovali a podle toho upravili otáčky motoru

2) určete upravené otáčky motorů.

MotorSpeed = Kp * Chyba + Kd * (Chyba - LastError);

LastError = Chyba;

RightMotorSpeed = RightBaseSpeed + MotorSpeed;

LeftMotorSpeed = LeftBaseSpeed - MotorSpeed;

Logicky vzato, chyba 0 znamená, že náš robot je doleva, což znamená, že náš robot musí jít trochu doprava, což zase znamená, že pravý motor musí zpomalit a levý motor zrychlit. TOTO JE PID!

Hodnota MotorSpeed je určena ze samotné rovnice. RightBaseSpeed a LeftBaseSpeed jsou rychlosti (libovolná hodnota PWM 0-255), při kterých robot běží, když je chyba nulová.

Kód, který jsem připojil, také obsahuje, jak zkontrolovat poziční hodnoty senzoru, takže můžete otevřít sériový monitor a nahrát kód a sami se podívat na řádek, jak se motory otáčejí, když se poloha mění.

Pokud se při implementaci robota dostanete do potíží, zkontrolujte, zda a uvidíte změnou znamének rovnic !!!

A teď nejtěžší část NAJÍMÁNÍ Kp A Kd, musel jsem strávit více než 1 hodinu, abych dokonale vyladil svého robota. Místo zadávání náhodných hodnot jsem našel jednodušší způsob, jak to určit.

  1. Začněte s kp a Kd rovným 0 a začněte s Kp, nejprve zkuste nastavit Kp na 1 a pozorujte robota, naším cílem je sledovat čáru, i když je vratká, pokud robot přestřelí a ztratí čáru, snižte hodnotu kp.pokud robot nemůže navigovat v zatáčce a být pomalý, zvyšte hodnotu Kp.
  2. Jakmile se zdá, že robot trochu sleduje čáru, upravte hodnotu Kd (hodnota Kd> hodnota Kp) od 1 a hodnotu zvyšujte, dokud neuvidíte hladký pohon s menším kolísáním.
  3. Jakmile robot začne sledovat čáru, zvyšte rychlost a zjistěte, zda je schopen čáru udržet a sledovat.

Mějte na paměti, že rychlost má přímý dopad na ladění PID a někdy možná budete muset přeladit, aby odpovídala rychlosti vašeho robota.

Nyní se můžeme pustit do stavby našeho robota.

Krok 2: Sestavení

Stavba
Stavba
Stavba
Stavba
Stavba
Stavba

Arduino atmega 2560 s USB kabelem - to je hlavní používaný mikrokontrolér.

Podvozek- pro podvozek robota jsem použil 2 kruhové akrylátové desky, které se používají pro jiný projekt, který je pro to ideální. Pomocí matic a šroubů jsem postavil dvoupatrový podvozek, takže mohu k horní desce připevnit další moduly. Nebo můžete použít k dispozici hotový podvozek.

www.ebay.com/itm/2WD-DIY-2-Wheel-Drive-Rou…

Mikrometální převodové motory- robot potřeboval rychle se otáčející motory, aby se vyrovnal s rutinou PID, k tomu jsem použil motory o výkonu 6V 400 ot / min a vhodná přilnavá kola.

www.ebay.com/itm/12mm-6V-400RPM-Torque-Gea…

www.ebay.com/itm/HOT-N20-Micro-Gear-Motor-…

Pole senzorů QTR 8Rc - toto lze použít pro sledování linek, jak již bylo zmíněno dříve, myslím, že nyní máte jasnou představu o tom, jak ovládat pole senzorů pomocí PID. Kód je velmi jednoduchý a pomocí stávajících knihoven Arduino budete schopni vybudovat rychlého následovníka linky.

www.ebay.com/itm/Pololu-QTR-8RC-Reflectanc…

TB6612FNG Motorový ovladač-chtěl jsem použít motorový ovladač, který zvládne obraty a mění směr v mžiku, který je schopen účinně zabrzdit motory, když signál PWM klesne.

www.ebay.com/itm/Pololu-Dual-DC-Motor-Driv…

Baterie Lipo- lipo baterie 11,1 V slouží k napájení robota. Ačkoli jsem použil lipo baterii 11,1 V, tato kapacita je větší, než je potřeba pro arduino a motory. Pokud najdete lehký 7,4 V lipo baterie nebo 6V Ni-MH baterie bude perfektní. Z tohoto důvodu musím použít převodník buck k převodu napětí na 6V.

11,1 V-https://www.ebay.com/itm/High-Capacity-11-1V-2200…

7,4 V-

Modul převodníku Buck-https://www.ebay.com/itm/1PCS-DC-DC-LM2596-power-…

Kromě toho potřebujete propojovací vodiče, matice a šrouby, šroubováky a elektrické pásky a také zipy, abyste se ujistili, že je vše na svém místě.

Krok 3: Sestavení

Sestavování
Sestavování
Sestavování
Sestavování
Sestavování
Sestavování
Sestavování
Sestavování

pomocí matic a šroubů připevněte motory a malé kolečko na desku a poté na podvozek namontujte snímač QTR, ovladač motoru, desku arduino a nakonec baterii.

Zde je perfektní diagram, který jsem našel na internetu, který vám řekne, jak by měla být provedena připojení.

Krok 4: Navrhněte traťovou linku

Navrhněte svou traťovou stopu
Navrhněte svou traťovou stopu

Nyní se zdá, že váš projekt je téměř u konce. Protože v poslední fázi potřebujete mít malou arénu k testování svého robota. Použil jsem náhodnou čáru o šířce 3 cm bílé čáry na černém pozadí. Ujistěte se, že jste vše dobře vložili. A prozatím se vyhnete 90 úhlovým křížům a průřezům, protože se jedná o složitý případ kódování.

Krok 5: Naprogramujte svůj kód

1. Stáhněte a nainstalujte Arduino

Desktop IDE

· Windows -

· Mac OS X -

· Linux -

2. Stáhněte a vložte soubor pole senzorů QTR 8 RC do složky knihoven Arduino.

·

· Vložte soubory do cesty - C: / Arduino / libraries

3. Stáhněte a otevřete souborLINEFOLLOWING.ino

4. Nahrajte kód na desku arduino pomocí kabelu USB

Krok 6: HOTOVO

Image
Image

Nyní máte robota sledujícího linii vyrobeného sami.

Doufám, že tento návod byl užitečný. Neváhejte mě kontaktovat prostřednictvím [email protected], pokud máte nějaký problém.

brzy se uvidíme s dalším novým projektem.

Užijte si stavbu !!

Doporučuje: