A robot programja a mini-szumó 3. rész - március 18, 2018 - servodroid - Központ Robotika kezdőknek
1. Az a program alapján algoritmus.
Mint korábban, nem nélkülözheti valamilyen tervet. Egy korábbi cikkben, a tervünk volt kapcsolási rajz. A programozás a terv, az úgynevezett egy algoritmus. Néhányan azt tudom, mi ez, mintha valaki csak hallottam, de vannak olyanok, akik nem ismerik az első alkalommal tárgyalást.
Nem fogom használni a tudományos szempontból, azt mondanám, egyszerűen, algoritmus - egy leírást a szekvencia bizonyos intézkedéseket. Minden életünk - ez a különböző tevékenységek; sétálunk, beszélni, mozogni karját és a lábát, fejét elfordítva. Mindez saját jelentését - az algoritmus egy szekvencia, amely meghatározza a viselkedésünket, és ez lehet tenni, és leírni. Az érthetőség kedvéért itt egy példa az élet. Fogmosás minden reggel. Próbálja leírni, hogyan csinálod, hogy hogyan lehet egy programot magad. Itt mi történt: „Mi a fogkefét. Szorította fogkrém. Fogmosás mozog balra és jobbra. Szájat. Saját ecsettel. "
Elvileg minden rendben, de ez a kis program találkozhatunk az ebéd, este vagy minden étkezés után. De nem veszi figyelembe fontos tényező, hogy is tagadják minden erőnket. Kezdetben beszéltünk reggel. Ez egy fontos tényező, és ha nem veszi figyelembe annak szükségességét, hogy a fogmosás az ágyban fekve csukott szemmel. Ezért mindig minden programot kell valamiféle elején és végén egy ismétlődő ciklus. A ciklus megismétlése az emberre a következő napon, ami ismét lesz a reggel, és ismét szükség lesz a fogmosás. Ezért hozzá, hogy mi a program a következő algoritmus (A műveletek sorrendje).
„Kelj fel. Kifelé az ágyból. „Ha ebben a szakaszban, hogy hagyja abba a létrehozását algoritmus és közvetlenül a fogmosás programot megrekedt (lefagy). Miért? Mert mi megint nem veszik figyelembe az összes tényezőt. Állsz a közepén a hálószobájába, és akkor nem lehet futtatni a következő parancsot; „Végy egy fogkefe”, ahogy a kefe a fürdőszobában, és szükség van további távolság. Nos, ha alszik a fürdőszobában, nincs probléma - a program végrehajtásra kerül! De a legtöbb esetben, normális ember alszik a másik szobában. Ez a megközelítés az úgynevezett logikai, hogy van értelme. Minden cselekedetünk ésszerűnek kell lennie, és van némi érdeme, különben a cél nem érhető el. Ezért „felébredni. Kifelé az ágyból. Megy a fürdőszobába, „lesz a legjobb megoldás.
Térjünk vissza a robot. Hogyan tudjuk most, hogy a robot cselekvési terv mini-szumó a gyűrűt? Van a szabályok, amelyek egyértelműen meghatározott cél - „Push out az ellenfél ki a gyűrűt.” De ahhoz, hogy elérjék azt meg kell vizsgálni az egyes tényezők. A fő tényező, hogy ne menjen túl a kört is, vagy pontosabban, hogy nem lépi túl a tartományban a fehér keretet. Ez az, amit megvan:
Ábra. 1. algoritmus a robot viselkedése a gyűrűben.
Az 1. ábrán látható a blokk diagram. Joggal, jól elfogadott összeget algoritmusok. Nyilvánvaló érthető.
Az első egység - „A kezdet”. Ettől a pillanattól kezdve a program végrehajtása megkezdődik a robot akció a bekapcsolás után. Az első dolog, amit meg kell tennie -, hogy megtaláljuk az ellenséges egység „Cél keresése”. A következő blokk a rendszer formájában gyémántok „target talált?”. Ez azt jelenti, hogy az előttünk lesz a választás a cselekvés elérése egy adott esemény. Ha a célt talált (Igen), akkor továbbra is a programot, és lépni a következő rész a „támadás” a program, de ha a cél nem található (NO), a leglogikusabb, hogy továbbra is a keresésben. A program hurok ezen a ponton, amíg a robot érzékeli ellenség. Ha megtámadják a robot halad előre az ellenség próbál lökni ki a gyűrű, ebben a pillanatban működő egység „elérte a szélét a gyűrű?” Ha a gyűrű széle nem éri el, a támadás folytatódik, de ha az érzékelők észlelt fehér sáv széle, a támadás leáll, és a program átkerül a következő mondat: „visszafelé mozog” és az „U-turn”. Bekapcsolás után, a fő program a ciklus ismétlődik, azaz, hogy elejétől indul újra, és a robot keresi az ellenséget. Ez történik a célra. Ha az időben a támadás, az ellenség képes volt megszökni a mi robot, meg kell menjen vissza a keresés nem hagyott szélén a gyűrűt. A minden elmélete. Térjünk gyakorolni.
2. A szabályok az írás programok Arduino.
Annak ellenére, hogy azt mondta, hogy az elméleti rész vége, de meg kell vizsgálni azt az elvet a program Arduino mikrokontroller, bár ezek az elvek érvényesek más MK AVR család.
Ábra. 2. A módszer az írás programok Arduino.
Ez a folyamatábra mutatja, egyértelműen, hogy mi a fontos pontokat, és milyen sorrendben kell eljárni, ha írásban programok.
A legelején a program csatlakozni kiegészítő modul szükséges. Ezután állapítsa globális változókat. Következő az inicializáló a vezérlő egység. Meghatározza a rendeltetési kikötő, a bejárat vagy lépjen ki belőle, és egyéb beállításokat. Szintén további segédanyagokat szubrutinok hívható ezt a blokkot. A rövid, ezen a helyen a program termel beállított vezérlő. Ez a blokk kerül végrehajtásra egyszer vagy újraindíthatja a vezérlő. Megjegyezzük, hogy a blokkban hozzáadjuk a vonal „5 sec késleltetés.” Az általános szabályok programot írni nem ez a helyzet, de egy robot mini szumó szükséges. A szabályok azt mondják, hogy amikor a csapatok bíró robotok kell mozgatni 5 másodperc után. Ez a késleltetés nem lehet elvégezni a főprogramban hurok, hiszen folyamatosan ismétli, és a robot viselkedése megváltozott a rosszabb.
A program blokk a fő hurok végrehajtja a fő algoritmus a robot viselkedése a gyűrűt, amit felül látható. 1. A működés során a fő hurok lehet elérni rutinok. A programozók gyakran, annak érdekében, hogy optimalizálja és csökkenti a kód rutinok. Például a mozgás a programban előre vagy hátra, logikusabb egy külön modul, és nem tartalmazza a legfőbb szerve a program. Ez az a lesz egy hatalmas, teljesen olvasható, és talál egy hibát, vagy hogy egy kis változás lesz nagyon problematikus.
Letöltés a Arduino.ru helyszínen legújabb Arduino IDE. A program nem igényel semmilyen speciális telepítést, csak ki a tartalmát az archívum a kívánt helyre. Végén ezt a cikket az ultrahangos távolságmérő Ultrahangos könyvtárfájlt. Meg kell kicsomagolni a könyvtárak mappát.
Az alkalmazás futtatásához. Mi a helyes telepítés ellenőrzésére a könyvtár, lépjen a menü „File” - „Példák”. Szinte az alján kell megjelennie Ultrahangos tétel ábrán látható. 3.
Ábra. 3 érvényesítése Ultrahangos könyvtár telepítést.
Ha minden jól megy, megy a „Tools” - „díj”. Meg kell választani a költség - Arduino Pro Mini 5V.
Ábra. 4 beállítása a vezérlőkártyát
A soros port kell választani azt, amelyik azután fog megjelenni, az Arduino csatlakozni a számítógéphez. Meg kell mondanom, egy kicsit a Arduino Pro Mini. Eltérően más Arduino vezérlő család Pro Mini nem a beépített modul kapcsolatot a számítógéppel. Jön külön, mint egy kártya adapter, USB UART (TTL), valamint a négy vezetéket csatlakoztatva a vezérlő fórumon.
Ábra. 5 USB-UART (TTL) adapter.
Ábra. 6. ábra mutatja, hogyan kell megfelelően csatlakozni a vezérlő és az adaptert.
Ábra. 6. Egy vegyület, a vezérlő USB-UART adapterrel.
Ellentétben a vett jel line kapcsolat helyett RX-TX és RX TX-, ezeket a sorokat kell közvetlenül csatlakoznak: RX-RX, TX-TX. Amikor először csatlakoztassa az adaptert a számítógép automatikusan indul a készülék telepítésekor járművezetők. Meg kell várni a telepítést. Egy másik funkció hiányában a vezérlő szoftver reset alapállapotba a programozás során. Ez minden bizonnyal egy kicsit kényelmetlen, de nem elég, hogy feladja a Pro Mini. Csak nyomja meg a Reset gombot a vezérlő szavak után a „fordítása” változás „Loading” ábra. 7.
Ábra. 7. kijelzése információt a MK programozás.
Ebben a fejezetben nem tér ki a leírás parancsok, irányelvek és az üzemeltetők. Feltételezzük, hogy már van néhány alapvető ismereteket. Ellenkező esetben meg kell utalni a dokumentáció a hivatalos honlapon, vagy más forrásból a hálózati kódot .Napisanie programot fogunk jól teljesíteni a tervet vagy algoritmust, amely már össze. Egyes blokk algoritmus Adtam a kódot, amit most még részletesen látható. 8.
Ábra. 8. Az írás az eredeti program blokk.
Az első blokk: irányelv # csatlakozik a projekt menedzsment modul könyvtárban.
A második egység: állapítsa változókat és írjuk, a kezdeti érték nulla. Felhívom a figyelmet, hogy nem a nevek a kikötői terminálok MK. Én szándékosan hagyta őket digitális formában, úgy, hogy jól érzik magukat a koncepció ellenőrzése. Ebben a részben kijelentjük, mind a három változó - a bal és jobb szenzor gyűrű (_and _) ADC érték lesz írva nekik. Csakúgy, mint a távolság az ultrahangos tartományban kereső variábilis (_), meg van írva a távolság cm-re az akadály.
A harmadik blokk (), ott felállított összes be- és kimenet a mikrokontroller. A bejövő jelek megtesszük a port 15, 17, ezért sorolják őket (meg). Motorok futott négy portos 3.5 a bal motor és 6,9 a megfelelő motort, hozzá őket a kimenetet.
Ezért fogjuk használni egy motor két port? Ez egyszerű; ha a motor kapcsolatok energiával akkor kezd forogni az egyik oldalon, például az óramutató járásával megegyező irányban. De ha megváltoztatja a polaritás, azaz változtatni a „plusz” és „mínusz” - motor a tengely fog forogni a másik irányba. Ez a tulajdonság és mi fogja használni a teljes manőverek.
5. A fő hurok hurok.
Ez a ciklus végrehajtja az alapvető PLC programot. Belőle nem tud kijutni vagy egyáltalán befejezni. Belőle akkor csak a külső eljárásokat, az úgynevezett szubrutinok.
Tekintsük a képzési szerkezet alapján az algoritmus látható. 9
Ábra. 9. A fő hurok algoritmus hurok.
A kezdetektől fogva, ki kell törni leolvasott összes érzékelő erre, hívjuk a rutin:
void check_sensor () // rutinvizsgálat érzékelők.
R_Sensor = analogRead (15); // olvasni a megfelelő szenzorok méréseit
késleltetés (10); // késleltetés lezárás ADC
L_Sensor = analogRead (17); // beolvassa a bal érzékelő
késleltetés (10); // késleltetés lezárás ADC
dist_cm = ultrasonic.Ranging (CM); // beolvassa az ultrahangos távolságmérő
késleltetés (10); // késleltetés a teljes átalakítás
Miután megkapta az adatokat meg kell feldolgozni. Először meg kell határoznunk a helyét, a gyűrűben, ha nem tesszük. . Ha a gyűrű ellenőrizze a jelenlétét az ellenség belül 40cm az ellenség, ha nem, akkor keres egy balra forgó eljárás:
void go_left () // keresési cél vagy mozgás balra
analogWrite (3, 0); // BAL MOTOR
analogWrite (5, 100); // BAL MOTOR
analogWrite (6, 100); // JOBB MOTOR
analogWrite (9, 0); // JOBB MOTOR
Az érték a motorteljesítmény csaknem felére csökkent, ha túl gyorsan forog, akkor kicsúszik a tehetetlenség észlelt célt.
Ha a cél észlel, meg kell támadni, halad előre, teljes sebességgel.
void go_forward () // támadunk - halad előre
analogWrite (3, 0); // BAL MOTOR
analogWrite (5, 255); // BAL MOTOR
analogWrite (6, 0); // JOBB MOTOR
analogWrite (9, 255); // JOBB MOTOR
Ha abban az időben a támadás, már hajtott a szélén a gyűrűt, és talált egy fehér sáv, akkor meg kell állni, hogy vissza, hogy megforduljon, és a meghajtó egy kicsit előre, majd indítsa újra a keresést újra. Ehhez hívjuk sorrendben eljárás:
késleltetés (100); // Várakozás 10 ms
go_back (); // Mozgó ezelőtt
késleltetés (1000); // 1 másodperc.
go_right (); // Jobbra
késleltetés (300); // 300 ms
go_forward (); // Előrelépés
késleltetés (300); // 300 ms
void go_stop () // megállítani
analogWrite (3, 255); // BAL MOTOR
analogWrite (5, 255); // BAL MOTOR
analogWrite (6, 255); // JOBB MOTOR
analogWrite (9, 255); // JOBB MOTOR
void go_back () // dvidenie ezelőtt
analogWrite (3, 255); // BAL MOTOR
analogWrite (5, 0); // BAL MOTOR
analogWrite (6, 255); // JOBB MOTOR
analogWrite (9, 0); // JOBB MOTOR
void go_right () // keresési cél vagy a mozgást a jobb
analogWrite (3, 100); // BAL MOTOR
analogWrite (5, 0); // BAL MOTOR
analogWrite (6, 0); // JOBB MOTOR
analogWrite (9, 100); // JOBB MOTOR
void go_forward () // támadunk halad előre
analogWrite (3, 0); // BAL MOTOR
analogWrite (5, 255); // BAL MOTOR
analogWrite (6, 0); // JOBB MOTOR
analogWrite (9, 255); // JOBB MOTOR
Időkésedelmek kezelések között határozza meg a hossza a motor különböző mozgási irányban. Ha nő vagy csökken, akkor lehet elérni különböző elfordulási szögek vagy távolság, hogy a robot adja át a következő utasítást.
Teljes vázlat letölthető az a cikk végén.
A kód természetesen nem a végleges, vagy a legtöbb helyes, minden van joga módosítani vagy javítani, hogy illeszkedjen az Ön igényeinek, mert a teljes lényeget a cikk tanítani kezdő robotika logikus és szisztematikus gondolkodás, megfelelően oldja meg a problémát az összes rendelkezésre álló forrásokat.
Archív 1. cikk „robot programot minisumo”. fájl letöltése
Archív 2 a cikk „robot programot minisumo”. fájl letöltése
Ha bármilyen kérdése van forduljon, megbeszéljük azokat a fórumon, vagy chat Robotics Online!