Obsah:

Robot sledujúci čiaru založený na PID so zostavou snímača POLOLU QTR 8RC: 6 krokov (s obrázkami)
Robot sledujúci čiaru založený na PID so zostavou snímača POLOLU QTR 8RC: 6 krokov (s obrázkami)

Video: Robot sledujúci čiaru založený na PID so zostavou snímača POLOLU QTR 8RC: 6 krokov (s obrázkami)

Video: Robot sledujúci čiaru založený na PID so zostavou snímača POLOLU QTR 8RC: 6 krokov (s obrázkami)
Video: Overview of Syncopal Disorders 2024, Júl
Anonim
Robot sledujúci linku na základe PID so senzorovým poľom POLOLU QTR 8RC
Robot sledujúci linku na základe PID so senzorovým poľom POLOLU QTR 8RC

Ahoj!

Toto je môj prvý článok o pokynoch a dnes vás zavediem po ceste a vysvetlím vám, ako pomocou senzora QTR-8RC zostaviť linku nasledujúcu za robotom za robotom.

Predtým, ako sa pustíme do stavby robota, musíme pochopiť, čo sa nazýva PID,

Krok 1: Princíp fungovania

Čo je PID ??

Termín PID znamená proporcionálne, integrálne, derivačné. Jednoducho, to, čo robíme so zapojením PID s nasledovaním riadkov, je, dávame robotovi príkaz, aby sledoval čiaru a detekoval zákruty výpočtom chyby zvážením toho, ako ďaleko sa to posunulo mimo trať.

kľúčové pojmy uvedené v dokumentoch polalu

Proporcionálna hodnota je približne úmerná polohe vášho robota vzhľadom na čiaru. To znamená, že ak je váš robot presne vycentrovaný na čiare, očakávame proporcionálnu hodnotu presne 0

Integrovaná hodnota zaznamenáva históriu pohybu vášho robota: je to súčet všetkých hodnôt proporcionálneho výrazu, ktoré boli zaznamenané od spustenia robota

Derivát je rýchlosť zmeny pomernej hodnoty

V tomto návode budeme hovoriť iba o pojmoch Kp a Kd, výsledky je však možné dosiahnuť aj pomocou výrazu Ki. Hodnoty, ktoré získavame zo snímača, nie sú len analógové, ale aj pozičné údaje robota..takže senzor v zásade poskytuje hodnoty od 0 do 2500 v rozsahu od maximálnej odrazivosti po minimálnu odrazivosť, ale zároveň poskytuje aj informácie o tom, ako ďaleko sa robot uviazol od čiary.)

Teraz musíme vziať do úvahy chybový termín. Toto je rozdiel medzi dvoma hodnotami požadovanej hodnoty a aktuálnej hodnoty. (Požadovaná hodnota je hodnota, ktorá zodpovedá „dokonalému“umiestneniu senzorov na vrchole riadkov.) hodnota je okamžité odčítanie senzora. Napríklad: Ak používate tento senzor poľa a používate 8 senzorov, dostanete pozičné čítanie 3500, ak ste na mieste, okolo 0, ak ste príliš ďaleko od linka a okolo 7 000, ak ste príliš praví.). Našim cieľom je vynulovať chybu. Potom môže robot iba plynule sledovať líniu.

Potom príde časť výpočtu,.

1) vypočítajte chybu.

Chyba = požadovaná hodnota - aktuálna hodnota = 3500 - pozícia

Ako používam 8 senzorov. keď je robot perfektne umiestnený, senzor poskytne polohové čítanie 3 500. Teraz, keď sme vypočítali svoju chybu, maržu, ktorou sa náš robot pohybuje po trati, je načase, aby sme chybu preskúmali a podľa toho upravili otáčky motora.

2) určte upravené otáčky motorov.

MotorSpeed = Kp * Chyba + Kd * (chyba - posledná chyba);

LastError = Chyba;

RightMotorSpeed = RightBaseSpeed + MotorSpeed;

LeftMotorSpeed = LeftBaseSpeed - MotorSpeed;

Logicky povedané, chyba 0 znamená, že náš robot je vľavo, čo znamená, že náš robot musí ísť trochu doprava, čo znamená, že pravý motor musí spomaliť a ľavý motor zrýchliť. TOTO JE PID!

Hodnota MotorSpeed je určená zo samotnej rovnice. RightBaseSpeed a LeftBaseSpeed sú rýchlosti (ľubovoľná hodnota PWM 0-255), pri ktorých robot beží, keď je chyba nulová.

Kód, ktorý som pripojil, tiež obsahuje spôsob kontroly pozičných hodnôt snímača, aby ste mohli otvoriť sériový monitor a nahrať kód a sami sa presvedčiť o čiare, ako sa motory otáčajú, keď sa poloha mení.

Ak sa pri implementácii svojho robota stretnete s problémami, skontrolujte, či je a uvidíte zmenou znamienok rovníc !!!

A teraz najnáročnejšia časť ZISTENIE Kp A Kd, musel som stráviť viac ako 1 hodinu, aby som svojho robota dokonale vyladil. Namiesto zadávania náhodných hodnôt som našiel jednoduchšiu metódu, ako to určiť.

  1. Začnite s kp a Kd rovnajúcim sa 0 a začnite s Kp, najskôr skúste nastaviť Kp na 1 a pozorujte robota. Našim cieľom je nasledovať čiaru, aj keď sa vlní, ak robot prestrelí a stratí čiaru, znížte hodnotu kp..keď robot nemôže navigovať v zákrute a byť spomalený, zvýšte hodnotu Kp.
  2. Akonáhle sa zdá, že robot trochu sleduje čiaru, upravte hodnotu Kd (hodnota Kd> hodnota Kp) od 1 a hodnotu zvyšujte, kým neuvidíte plynulý chod s menším kolísaním.
  3. Akonáhle robot začne nasledovať čiaru, zvýšte rýchlosť a zistite, či je schopný udržať čiaru a sledovať ju.

Majte na pamäti, že rýchlosť má priamy vplyv na ladenie PID a niekedy možno budete musieť znova naladiť rýchlosť svojho robota.

Teraz sa môžeme dostať k stavbe nášho robota.

Krok 2: Zostavenie

Budova
Budova
Budova
Budova
Budova
Budova

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

Podvozok- na podvozok robota som použil 2 kruhové akrylové platne, ktoré sa používajú na iný projekt, ktorý je na to ideálny. Pomocou matíc a skrutiek som postavil dvojpodlažný podvozok, aby som mohol k hornej doske pripevniť ďalšie moduly. Alebo môžete použiť dostupný podvozok.

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

Mikrometálne prevodové motory- robot potreboval rýchlo sa otáčajúce motory, aby sa vyrovnal s rutinou PID, preto som použil motory s výkonom 6 V 400 ot / min a vhodné uchopiteľné kolesá.

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

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

Pole senzorov QTR 8Rc - to je možné použiť na sledovanie riadkov, ako už bolo spomenuté, myslím si, že teraz máte jasnú predstavu o tom, ako ovládať pole senzorov pomocou PID. Kód je veľmi jednoduchý a pomocou existujúcich arduino knižníc budete môcť vybudovať rýchleho nasledovníka linky.

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

TB6612FNG Motorový ovládač-Chcel som použiť motorový ovládač, ktorý dokáže rýchlo zvládnuť zákruty a meniť smer, ktorý je schopný efektívne zabrzdiť motory, keď signál PWM klesne.

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

Batéria Lipo- na napájanie robota sa používa lipo batéria 11,1 V. Aj keď som použil lipo batériu 11,1 V, táto kapacita je väčšia, ako je potrebné pre arduino a motory. Ak nájdete svetlo vážený 7,4 V lipo batéria alebo 6V Ni-MH batéria bude perfektná. Z tohto dôvodu musím na konverziu napätia na 6V použiť prevodník buck.

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

7,4 V-

Modul prevodníka Buck-https://www.ebay.com/itm/1PCS-DC-DC-LM2596-power-…

Okrem toho potrebujete prepojovacie vodiče, matice a skrutky, skrutkovače a elektrické pásky a tiež spony na zips, aby ste sa uistili, že je všetko na svojom mieste.

Krok 3: Zostavenie

Montáž
Montáž
Montáž
Montáž
Montáž
Montáž
Montáž
Montáž

pomocou matíc a skrutiek pripevnite motory a malé koliesko k doske a potom na podvozok namontujte snímač QTR, ovládač motora, dosku arduino a nakoniec batériu.

Tu je perfektný diagram, ktorý som našiel na internete a ktorý vám hovorí, ako by sa malo nadviazať spojenie.

Krok 4: Navrhnite svoju traťovú trať

Navrhnite svoju traťovú trať
Navrhnite svoju traťovú trať

Teraz sa zdá, že váš projekt je takmer na konci. Pretože v poslednej fáze potrebujete na testovanie svojho robota malú arénu. Použil som náhodnú čiaru s bielou čiarou o šírke 3 cm na čiernom pozadí. Uistite sa, že ste všetko dobre prilepili. A zatiaľ sa vyhnete 90 uhlovým krížom a prierezom, pretože je to komplikovaný prípad kódovania.

Krok 5: Naprogramujte si kód

1. Stiahnite a nainštalujte Arduino

Desktop IDE

· Okná -

· Mac OS X -

· Linux -

2. Stiahnite a prilepte súbor poľa senzora QTR 8 RC do priečinka knižníc Arduino.

·

· Prilepte súbory na cestu - C: / Arduino / libraries

3. Stiahnite si súbor openLINEFOLLOWING.ino a otvorte ho

4. Odošlite kód na dosku arduino pomocou kábla USB

Krok 6: HOTOVO !

Image
Image

Teraz máte robota sledujúceho čiaru vyrobeného sami.

Dúfam, že tento návod bol užitočný. V prípade akýchkoľvek problémov ma neváhajte kontaktovať na adrese [email protected].

čoskoro sa uvidíme s ďalším novým projektom.

Užite si stavbu !!

Odporúča: