DIY robot Arduino. Jak vyrobit robota na Arduinu vlastníma rukama: domácí robot Arduino doma Roboti na arduinu uno

Ale také z nákupu hotového, plnohodnotného robota založeného na této desce. Pro děti základní škola nebo předškolním věku takový hotové projekty Arduino je ještě výhodnější, protože „Neanimovaná“ deska vypadá trochu nudně. Tudy vhodné pro ty, kteří elektrická schémata nijak zvlášť atraktivní.

Zakoupením modelu pracovního robota, tzn. vlastně hotová high-tech hračka, o kterou můžete vzbudit zájem nezávislý design a vytváření robotů. Poté, co jste si s takovou hračkou dostatečně zahráli a pochopili, jak to funguje, můžete začít model vylepšovat, vše rozebrat a začít sestavovat nové projekty na Arduinu pomocí uvolněné desky, mechanik a senzorů. Otevřenost platformy Arduino umožňuje totéž komponenty vyrobte si nové hračky.

Nabízíme malý přehled hotových robotů na desce Arduino.

Stroj Arduino ovládaný přes Bluetooth

Auto ovládané přes Bluetooth, stojí těsně pod 100 $. Dodáváno nesmontované. Kromě pouzdra, motoru, koleček, lithiové baterie a nabíječky dostaneme desku Arduino UNO328, ovladač motoru, Bluetooth adaptér, dálkové ovládání dálkové ovládání a tak dále.

Video s tímto a dalším robotem:

Více podrobný popis hračky a možnost nákupu na stránkách internetového obchodu DealExtreme.

Želví robot Arduino

Montážní sada robotické želvy stojí asi 90 dolarů. Jediné, co chybí, je skořepina, vše ostatní potřebné pro život tohoto hrdiny je součástí: deska Arduino Uno, serva, senzory, sledovací moduly, IR přijímač a dálkové ovládání, baterie.

Želvu lze koupit na webu DealExtreme, podobný levnější robot je na Aliexpressu.

Pásové vozidlo Arduino ovládané z mobilního telefonu

Pásové vozidlo, ovládané přes Bluetooth mobilní telefon , stojí 94 dolarů. Kromě základny dráhy dostaneme desku Arduino Uno a rozšiřující desku, desku Bluetooth, baterii a nabíječku.

Pásové vozidlo lze zakoupit i na stránkách DealExtreme, je tam i podrobný popis. Možná zajímavější železný Arduino tank na Aliexpress.

Arduino auto projíždějící bludištěm

Auto projíždějící bludištěm, stojí 83 dolarů. Kromě motorů, desky Arduino Uno a dalších potřebných věcí obsahuje sledovací moduly a moduly pro vyhýbání se překážkám.

Hotový robot nebo rám pro robota

Kromě možnosti použití hotových stavebnic pro tvorbu robotů Arduino probírané v recenzi si můžete zakoupit samostatný rám (tělo) robota - může to být platforma na kolečkách nebo housenka, humanoid, pavouk a jiné modely. V tomto případě budete muset provést vycpávání robota sami. Přehled takových případů je uveden v našem.

Kde jinde si můžete hotové roboty koupit?

V recenzi jsme vybrali nejlevnější a podle nás nejzajímavější hotové roboty Arduino z čínských internetových obchodů. Pokud nemáte čas čekat na zásilku z Číny - velký výběr hotové roboty v internetových obchodech Amperka a DESSY. Nízké ceny a rychlé doručení nabízí internetový obchod ROBstore. Seznam doporučených obchodů.

Také by vás mohly zajímat naše recenze projektů Arduino:


Školení Arduino

Nevíte, kde se začít učit Arduino? Přemýšlejte o tom, co je vám bližší - sestavení vlastního jednoduché modely a jejich postupné komplikování či seznamování se složitějšími, ale hotovými řešeními?

Lidé se začínají učit Arduino vytvářením jednoduchých robotů. Dnes budu mluvit o nejjednodušším robotovi na Arduino Uno, který jako pes bude následovat vaši ruku nebo jakýkoli jiný předmět, který odráží infračervené světlo. Tento robot pobaví i děti. Můj 3letý synovec si dychtivě hrál s robotem :)

Začnu výčtem dílů, které budou potřeba při stavbě - Arduino UNO;

Infračervené dálkoměry;

-3-voltové motory s převodovkami a koly;

- konektory pro 3A baterie;

-baterie (pokud není dostatek baterií);

-Relé pro ovládání motorů;

No a další materiály, které budou potřeba během procesu tvorby.
Nejprve uděláme základ. Rozhodl jsem se, že to udělám ze dřeva. Dřevěné prkno a rozřezal ji tak, aby motory dokonale zapadly do drážek


Poté upnu motory dřevěnou lištou, kterou přišroubuji

Dále jsem na tělo umístil arduino, relé, Bradboard, dálkoměry a otočné šasi pod základnu

Nyní vše zapojíme podle schématu

Na konci nahrajte do Arduina následující skicu:

Const int R = 13; //piny ke kterým jsou připojeny IR dálkoměry const int L = 12; int motorL = 9; //piny ke kterým je relé připojeno int motorR = 11; int buttonState = 0; void setup() ( pinMode(R,INPUT); pinMode(L,INPUT); pinMode(motorR,OUTPUT); pinMode(motorL,OUTPUT); ) void loop() ( ( buttonState = digitalRead(L); if (buttonState == HIGH)( digitalWrite(motorR,HIGH); ) else ( digitalWrite(motorR,LOW); ) ) (( buttonState = digitalRead(R); if (buttonState == HIGH)( digitalWrite(motorL,HIGH); ) else ( digitalWrite(motorL,LOW); ) ) ))

Princip fungování je velmi jednoduchý. Levý dálkoměr je zodpovědný za pravé kolo a pravý za levé

Aby to bylo jasnější, můžete se podívat na video, které ukazuje proces tvorby a fungování robota

Tento robot je velmi jednoduchý a zvládne ho každý. Pomůže vám pochopit principy fungování modulů, jako jsou relé a IR dálkoměry, a jak je nejlépe používat.

Doufám, že se vám toto řemeslo líbilo, nezapomeňte, že řemesla jsou cool!

Ahoj všichni. Tento článek je krátký příběh o tom, jak dělat robot jejich ruce. Proč příběh, ptáte se? To je způsobeno skutečností, že pro výrobu takových řemesla je nutné využít značné množství znalostí, které je velmi obtížné prezentovat v jednom článku. Projdeme si proces sestavení, nahlédneme do kódu a nakonec oživíme výtvor ze Silicon Valley. Doporučuji vám zhlédnout video, abyste si udělali představu, s čím byste měli skončit.

Než budete pokračovat, mějte na paměti následující: během výroby řemesla byla použita laserová řezačka. Z laserová řezačka Můžete odmítnout, pokud máte dostatek zkušeností s prací rukama. Přesnost je klíčem k úspěšnému dokončení projektu!

Krok 1: Jak to funguje?

Robot má 4 nohy, na každé jsou 3 serva, která mu umožňují pohybovat končetinami ve 3 stupních volnosti. Pohybuje se „plazivou chůzí“. Sice je to pomalé, ale je to jedno z nejplynulejších.

Nejprve je potřeba naučit robota pohybovat se vpřed, vzad, doleva a doprava, poté přidat ultrazvukový senzor, který pomůže detekovat překážky/překážky, a poté modul Bluetooth, díky kterému se ovládání robota dostane na novou úroveň. .

Krok 2: Nezbytné díly

Kostra vyrobeno z plexiskla tloušťky 2 mm.

Elektronická část domácího produktu se bude skládat z:

  • 12 serv;
  • arduino nano (lze nahradit jakoukoli jinou deskou arduino);

  • Štít pro ovládání serv;
  • napájení (v projektu byl použit zdroj 5V 4A);

  • ultrazvukový senzor;
  • hc 05 bluetooth modul;

K výrobě štítu budete potřebovat:

  • deska plošných spojů (nejlépe se společnými vedeními (sběrnicemi) napájení a země);
  • mezideskové kolíkové konektory - 30 ks;
  • zásuvky na desku – 36 ks;

  • dráty.

Nástroje:

  • Laserová řezačka (nebo zručné ruce);
  • Superglue;
  • Tavné lepidlo.

Krok 3: Kostra

Pomocí grafického programu nakreslíme součásti kostry.

Po tomto, kdykoli cenově dostupný způsob vystřihněte 30 dílů budoucího robota.

Krok 4: Montáž

Po oříznutí odstraňte z plexiskla ochranný papírový obal.

Dále začneme sestavovat nohy. Spojovací prvky zabudované do částí skeletu. Zbývá pouze spojit části dohromady. Spojení je poměrně těsné, ale pro větší spolehlivost můžete na upevňovací prvky nanést kapku superglue.

Pak je potřeba upravit serva (přilepit šroub naproti hřídelím serva).

Touto úpravou uděláme robota stabilnějším. Je potřeba upravit pouze 8 serv, zbývající 4 budou připevněny přímo k tělu.

Nohy připevníme ke spojovacímu prvku (zakřivená část) a ten zase k servopohonu na těle.

Krok 5: Výroba štítu

Výroba desky je poměrně jednoduchá, pokud budete postupovat podle fotografií uvedených v kroku.

Krok 6: Elektronika

Připojíme kolíky servopohonu k desce arduino. Závěry by měly být spojeny správné pořadí, jinak nebude nic fungovat!

Krok 7: Programování

Je čas přivést Frankensteina k životu. Nejprve si načteme program feet_init a ujistíme se, že robot je v pozici jako na obrázku. Dále načteme quattro_test, abychom zkontrolovali, zda robot reaguje na základní pohyby, jako je pohyb vpřed, vzad, doleva a doprava.

DŮLEŽITÉ: K arduino IDE musíte přidat další knihovnu. Odkaz na knihovnu je uveden níže:

Robot musí udělat 5 kroků vpřed, 5 kroků vzad, otočit se o 90 stupňů doleva a o 90 stupňů doprava. Pokud Frankenstein udělá všechno správně, jdeme správným směrem.

P. S: Umístěte robota na šálek jako na stojan, abyste ho nemuseli pokaždé dávat na výchozí bod. Jakmile testy ukázaly normální práce robot, můžeme pokračovat v testování umístěním na zem/podlahu.

Krok 8: Inverzní kinematika

Inverzní kinematika je to, co vlastně robota pohání (pokud vás matematická stránka tohoto projektu nezajímá a spěcháte s dokončením projektu, můžete tento krok přeskočit, ale vědět, co robota pohání, se bude vždy hodit).

Jednoduše řečeno, inverzní kinematika nebo zkráceně IR je „část“ trigonometrických rovnic, které určují polohu ostrého konce nohy, úhel každého serva atd., které nakonec určují několik předběžných nastavení. Například délka každého kroku robota nebo výška, ve které se bude tělo nacházet během pohybu/odpočinku. Pomocí těchto předdefinovaných parametrů systém vybere množství, o které by se mělo každé servo posunout, aby bylo možné robota ovládat pomocí daných příkazů.

Něco málo o robotovi. Za prvé, projekt musel být co nejlevnější. Karoserie byla vytvořena bez jakýchkoliv výpočtů a vyvažování, hlavním požadavkem na karoserii byly minimální rozměry. Začněme tedy sestavovat tohoto robota.

Seznam dílů:
1. Sada dílů těla a tlapek z 1,5mm plexiskla.
2. Arduino Mega nebo Uno (používá se Mega) - 1 ks.
3. Mikro servopohon (používá se TowerPro SG90) - 8 ks.
4. Ultrazvukový dálkoměr HC-SR04 - 1 ks.
5. Velikost baterie 18560, 3,7V (používá se TrustFire 2400 mAh) - 2 ks.
6. Držák baterie vel. 18560 (s použitím předělané nádoby - balení) - 1 ks.
7. Stát pro deska s plošnými spoji 25 mm. (používají se takové stojany) - 4 ks.
8. Část prkénka na krájení.
9. Startovací dráty.
10. Šroub DIN 7985 M2, 8 mm. - 18 ks.
11. Matice DIN 934 M2 - 18 ks.

Montáž robota Z-RoboDog:

1. Tělo robota je vyrobeno z průhledného plexiskla o tloušťce 1,5 mm. Všechny díly jsou řezány laserem podle výkresu vytvořeného v CorelDraw:

2. Tělo přilepte sekundové lepidlo. Pevnost lepeného těla bude zcela dostatečná. Při montáži zohledněte polohu otvorů na spodním krytu (podívejte se na foto), nebo ještě lépe desku připevněte a ujistěte se, že vše lícuje. Připevněte boční stěny tak, aby byly otvory pro dráty blíže zadní stěna. Širší otvor na zadní stěně je pro USB kabel, myslete na to při sestavování.


3. Označte a vyvrtejte otvory (vrták 2 mm). Zajistěte serva ke skříni pomocí šroubů a matic (položky 10, 11 ze seznamu). Přední hřídele serva by měly být blíže k přední stěně. Zadní hřídele serva jsou blíže zadní stěně.




4.1. Sbírejte tlapky. Vezměte horní části tlapek (se dvěma otvory). Označte střed dílu. Po umístění kolébky servopohonu označte upevňovací body šrouby a vyvrtejte otvory (vrták 1,5 mm). Upevněte vahadla tak, aby hlavy šroubů byly na straně sedadel. Zajistěte vahadla na různých stranách a sedadla protože šachty předtím byly v opačném směru.


4.2. Označte a vyvrtejte otvory pro montáž serv (vrták 2 mm). Hřídele připojených serv by měly být blíže k úzkému okraji tlapky.


4.3. Aby tlapky neklouzaly, nalepte na ně například gumu. Ale neměli byste lepit přední část tlapky, když pes šlápne, může se zachytit a zaseknout. Nalepil jsem proužky lepící podložky z auta.

5. Označte a vyvrtejte otvory pro montáž ultrazvukového dálkoměru (vrták 2 mm). Nainstalujte dálkoměr tak, aby kontaktní nohy směřovaly nahoru.

6. Nainstalujte držák baterie tak, aby byl umístěn uprostřed pouzdra. Zajistěte desku Arduino a připojte všechny komponenty. Část prkénka byla použita pro rozvod energie.

Nastavení a spuštění robota Z-RoboDog:

V tomto okamžiku budete muset nainstalovat nohy sami, aby bylo možné kroky kalibrovat. Zásadní problém je v vahadlech, která jsou na hřídelích uchycena jen v určitých polohách. A také samotná serva se mohou lišit v provozních stupních.

Takhle vypadají tlapky mého psa extrémní bodyúhly serva (proměnné zs1, zs2, zs3 atd.). Pokuste se umístit tlapky jako na fotografii. Vizuálně by tlapky měly být ve stejných pozicích.

V hlavním postoji můžete dát i tlapky ven. Poté nezapomeňte přišroubovat vahadla k hřídelím serva.


Softwarová část Z-RoboDog:

Kód je velmi jednoduchý, komentáře se přidávají všude. Všechny pohyby jsou v poli, abych se nepletl v číslech, použil jsem proměnné pro každé servo. Například s1 je servo 1, s2 je servo 2 a tak dále. Pro snazší pochopení vám nabízím toto schéma.

Tlapky jsou v diagramu očíslovány, každá část tlapky je spojena se servopohonem, který ji pohybuje. U každé tlapky jsou také uvedeny směry pohybu, znaménka plus a mínus označují, kam se tlapka bude pohybovat, když se úhel zvětšuje nebo zmenšuje. Výchozími úhly byly rohy hlavního sloupku (s1, s2, s3 atd.). Například, pokud potřebujete prodloužit 2. tlapku, musíte zvětšit úhel s3 a s4, v poli to bude vypadat takto (s1, s2, s3+100, s4+50, s5, s6, s7, s8) . Tady je celý náčrt. Kód byl napsán na základě mých znalostí, dejte mi prosím vědět, pokud jsem zvolil špatnou cestu implementace.

Video:


Skica v archivu: Nemáte přístup ke stahování souborů z našeho serveru

Pojďme si promluvit o tom, jak můžete pomocí Arduina vytvořit robota, který balancuje jako Segway.

Segway z angličtiny. Segway je dvoukolové stojící vozidlo vybavené elektrickým pohonem. Říká se jim také hoverboardy nebo elektrické skútry.

Přemýšleli jste někdy, jak funguje Segway? V tomto tutoriálu se vám pokusíme ukázat, jak vyrobit robota Arduino, který se sám vyrovnává jako Segway.

Aby se robot vyrovnal, musí motory odolat pádu robota. Tato akce vyžaduje zpětnou vazbu a nápravné prvky. Element zpětné vazby - který zajišťuje jak zrychlení, tak rotaci ve všech třech osách (). Arduino to používá ke zjištění aktuální orientace robota. Korekčním prvkem je kombinace motoru a kola.

Konečný výsledek by měl být něco takového:

Schéma robota

Modul ovladače motoru L298N:

DC převodový motor s kolem:

Samovyvažovací robot je v podstatě obrácené kyvadlo. Může být lépe vyvážen, pokud je těžiště vyšší vzhledem k osám kol. Vyšší těžiště znamená vyšší moment setrvačnosti hmoty, čemuž odpovídá menší úhlové zrychlení (pomalejší pád). Proto jsme baterii umístili nahoru. Výška robota však byla zvolena na základě dostupnosti materiálů :)

Dokončená verze samovyvažovacího robota je vidět na obrázku výše. V horní části je šest Ni-Cd baterií pro napájení PCB. Mezi motory je pro pohon motoru použita 9V baterie.

Teorie

V teorii řízení vyžaduje udržení nějaké proměnné (v tomto případě polohy robota) speciální regulátor nazývaný PID (proporcionální integrální derivace). Každý z těchto parametrů má „zisk“, obvykle nazývaný Kp, Ki a Kd. PID poskytuje korekci mezi požadovanou hodnotou (nebo vstupem) a skutečnou hodnotou (nebo výstupem). Rozdíl mezi vstupem a výstupem se nazývá „chyba“.

PID regulátor snižuje chybu na nejmenší možnou hodnotu plynulým nastavováním výstupu. V našem samovyvažovacím robotu Arduino je vstup (což je požadovaný sklon ve stupních) nastaven softwarem. MPU6050 čte aktuální náklon robota a přivádí jej do PID algoritmu, který provádí výpočty pro řízení motoru a udržení robota ve vzpřímené poloze.

PID vyžaduje, aby byly hodnoty Kp, Ki a Kd upraveny na optimální hodnoty. Inženýři používají software, jako je MATLAB, k automatickému výpočtu těchto hodnot. Bohužel v našem případě nemůžeme použít MATLAB, protože to projekt ještě více zkomplikuje. Místo toho upravíme hodnoty PID. Jak na to:

  1. Aby Kp, Ki a Kd byly rovné nule.
  2. Upravte Kp. Příliš malé Kp způsobí pád robota, protože korekce nestačí. Příliš mnoho Kp způsobí, že se robot bude divoce pohybovat tam a zpět. Dobré Kp způsobí, že se robot bude trochu pohybovat tam a zpět (nebo trochu oscilovat).
  3. Jakmile je Kp nastaveno, upravte Kd. Dobrá hodnota Kd sníží oscilace, dokud nebude robot téměř stabilní. Navíc správné Kd udrží robota, i když je zatlačen.
  4. Nakonec nainstalujte Ki. Po zapnutí bude robot oscilovat, i když jsou nastaveny Kp a Kd, ale časem se stabilizuje. Správná hodnota Ki zkrátí čas potřebný ke stabilizaci robota.

Chování robota můžete vidět na videu níže:

Arduino kód pro samovyvažovací robot

K vytvoření našeho robota jsme potřebovali čtyři externí knihovny. Knihovna PID zjednodušuje výpočet hodnot P, I a D Knihovna LMotorController slouží k řízení dvou motorů s modulem L298N. Knihovna I2Cdev a knihovna MPU6050_6_Axis_MotionApps20 jsou navrženy pro čtení dat z MPU6050. Kód včetně knihoven si můžete stáhnout v tomto úložišti.

#zahrnout #zahrnout #include "I2Cdev.h" #include "MPU6050_6Axis_MotionApps20.h" #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE #include "Wire.h" #endif #define MIN_ABS_SPEED 20 MPU605; // ovládání/stav MPU vars bool dmpReady = false; // nastavte hodnotu true, pokud byla inicializace DMP úspěšná uint8_t mpuIntStatus; // uchovává aktuální stavový bajt přerušení z MPU uint8_t devStatus; // návrat stavu po každé operaci zařízení (0 = úspěch, !0 = chyba) uint16_t packetSize; // očekávaná velikost paketu DMP (výchozí je 42 bajtů) uint16_t fifoCount; // počet všech bytů aktuálně ve FIFO uint8_t fifoBuffer; // vyrovnávací paměť FIFO // orientace/pohyb vars Quaternion q; // kvaternionový kontejner VectorFloat gravity; // vektor gravitace float ypr; //vybočení/naklonění/naklonění kontejneru a gravitační vektor //PID double originalSetpoint = 173; double setpoint = původnísetpoint; double movingAngleOffset = 0,1; dvojitý vstup, výstup; //upravte tyto hodnoty tak, aby odpovídaly vašemu vlastnímu návrhu double Kp = 50; dvojnásobné Kd = 1,4; dvojitá Ki = 60; PID pid(&vstup, &výstup, &nastavená hodnota, Kp, Ki, Kd, ​​​​DIRECT); double motorSpeedFactorLeft = 0,6; double motorSpeedFactorRight = 0,5; //MOTOROVÝ OVLADAČ int ENA = 5; int IN1 = 6; int IN2 = 7; int IN3 = 8; int IN4 = 9; int ENB = 10; LMotorController motorController(ENA, IN1, IN2, ENB, IN3, IN4, motorSpeedFactorLeft, motorSpeedFactorRight); volatile bool mpuInterrupt = false; // indikuje, zda se pin přerušení MPU dostal vysoko void dmpDataReady() ( mpuInterrupt = true; ) void setup() ( // připojení ke sběrnici I2C (knihovna I2Cdev to nedělá automaticky) #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin( ); TWBR = 24; // 400kHz I2C clock (200kHz pokud je CPU 8MHz) #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire::setup(400, true #endif mpu.initialize your own.); , škálováno pro min citlivost mpu.setXGyroOffset(220) mpu.setYGyroOffset(-85); mpu.setZAccelOffset(1788); zapněte DMP, teď, když je připraveno mpu.setDMPEnabled(true); // povolte detekci přerušení ArduinoInterrupt(0 , dmpDataReady, RISING); mpuIntStatus = mpu.getIntStatus(); // nastavte náš příznak DMP Ready tak, aby hlavní funkce loop() ví, že je v pořádku ji použít dmpReady = true; // získání očekávané velikosti paketu DMP pro pozdější porovnání packetSize = mpu.dmpGetFIFOPacketSize(); //nastavení PID pid.SetMode(AUTOMATIC); pid.SetSampleTime(10); pid. SetOutputLimits(-255, 255); ) else ( // CHYBA! // 1 = počáteční načtení paměti se nezdařilo // 2 = aktualizace konfigurace DMP se nezdařily // (pokud se to rozbije, obvykle bude kód 1) Serial.print(F("Inicializace DMP selhalo (kód ")); Serial.print(devStatus); Serial.println(F()") ) ) void loop() ( // pokud se programování nezdařilo, nezkoušejte nic dělat, pokud (!dmpReady ) return; // čekání na přerušení MPU nebo další pakety dostupné během (!mpuInterrupt && fifoCount< packetSize) { //no mpu data - performing PID calculations and output to motors pid.Compute(); motorController.move(output, MIN_ABS_SPEED); } // reset interrupt flag and get INT_STATUS byte mpuInterrupt = false; mpuIntStatus = mpu.getIntStatus(); // get current FIFO count fifoCount = mpu.getFIFOCount(); // check for overflow (this should never happen unless our code is too inefficient) if ((mpuIntStatus & 0x10) || fifoCount == 1024) { // reset so we can continue cleanly mpu.resetFIFO(); Serial.println(F("FIFO overflow!")); // otherwise, check for DMP data ready interrupt (this should happen frequently) } else if (mpuIntStatus & 0x02) { // wait for correct available data length, should be a VERY short wait while (fifoCount < packetSize) fifoCount = mpu.getFIFOCount(); // read a packet from FIFO mpu.getFIFOBytes(fifoBuffer, packetSize); // track FIFO count here in case there is >1 dostupný paket // (to nám umožní okamžitě přečíst více bez čekání na přerušení) fifoCount -= packetSize; mpu.dmpGetQuaternion(&q, fifoBuffer); mpu.dmpGetGravity(&gravitace, &q); mpu.dmpGetYawPitchRoll(ypr, &q, &gravitace); vstup = ypr* 180/M_PI + 180; ))

Hodnoty Kp, Ki, Kd mohou nebo nemusí fungovat. Pokud ne, postupujte podle výše uvedených kroků. Všimněte si, že náklon v kódu je nastaven na 173 stupňů. Pokud chcete, můžete tuto hodnotu změnit, ale mějte na paměti, že se jedná o úhel náklonu, který musí robot udržovat. Navíc, pokud jsou vaše motory příliš rychlé, můžete upravit hodnoty motorSpeedFactorLeft a motorSpeedFactorRight.

To je zatím vše. Uvidíme se.