Anti-crash robot
Pavel Koupý
Stavba Mezi několika konstrukcemi sem si nakonec zvolil takovou která nejlépe vyhovovala potřebám „anticrash“ robota . Základní konstrukce uvedené v návodu dodávanému k sestavě nepostačovala mému účelu jelikož serva byla v konstrukci zavěšena lehce šikmo k podlaze kvuli velikosti serv samých a velikosti dodávaných pneumatik a na servech pak záleželo rozložení celé konstrukce takže většina dílů byla našikmo tím pádem byl model velice pracně rozšiřitelný . Konstrukce která je obsažená v navodu a kterou sem zvolil já jsou postaveny na řízení stylem tanku to jest že robot zatáčí zpomalováním či rotací proti směru jízdy kola protějšího. Pro udržení rovnováhy je v zadní části konstrukce přideláno všesměrové kolečko.U zadního všesměrového kolečka jsem narazil na další stavebnicí dané limity takže kolečko je trochu nemotorné a ne vždy se otočí správně zvláště při při jizdě dozadu. Přední kola jsem potřeboval umístit níže abych vyrovnal rozdíl výšek na přední a zadní nápravě , využil jsem k tomu ozubená kolečka která jsou součástí stavebnice a tak nebyl problém z poskládat převod ktrým sem dostal přední kola do výšky do jaké jsem potřeboval.Kolečka trochu přeskakovala tak bylo potřeba zpevnit rám kterém byl převod zavěšen. Serva mají dostatek propojujcích bodu takže to nebyl problém .Při konstrukce jsem narazil jestě na jeden problém a tím je těžistě celé konstrukce jelikož je programovací kostka a všechny akční členy dost těžké je potřeba vetšinu vahy přenést na přední kola která jsou rozhodně více stabilní než kolečko všesměové umístěné v zadu. Pote jsem řešil otázku senzorů hlavním , který robotovy vyhybajicí sem překážkám nesmí chybět je ultrazvukový senzor diky kterému muže zjisti vzdalenost zdi či předmětu. Senzor který je ve stavebnicije poměrně jednoduché někam umistit v mém připadě to bylo na vrcní stranu programovací kostky . Senzor ma občas trochu problémy pokud před ním je tenká či malá překážka a navíc je celkem vysoko takže nijak nereaguje na to co se deje předním pokud je to příliš nízké. To jsem řešil přidáním senzorových tlačítek , které brání tomu aby robot pokud překážku nevidí ultrazvukový senzor mohl reagovat a při nárazu popojede o kousek dozadu , ale to už patří do softwarové části.Myslím že popis konstrukce je dostačující.
Pohled ze spodu
Pohled zboku
Pohled z hora Ze předu
Detail převodu pro kola
Program K vývoji programů je kdyzpozici celá řada jazyků jakými jsou např. Java , c , c++ a další odvozeniny z nich. Při programování v některém z těchto jazyků jsou zapotřebí knihovny nebo překladače upravené pro ovládání kostky. Já jsem využil vyvojové prostředí dodávaného ke stavebnici ačkoli musím říct že to možná nebylo uplně štastné jelikož vývojové prostředí je voleno pomocí grafikých prvků které se skládájí za sebe . Stavebnice je určena dětem od 8 let takže bylo třeba něco takového aby bylo programování zabavnější a jednoduší pro děti. Ja jsem ho v tomto projektu využil pro přehlednost ale mimo něj jsem se pokoušel využívat výhod jazyku Java nebo spíše jeho upravanené verzi zvané LeJos verze je plně open source takže je možné toto prostředí stáhnout na stránkách autorů http://www.lejos.org. Kdyzpozici jsou tu tutorialy a také plugin do Eclipsu.V dodávaném softwaru je vše velice transparetní a jednoduché na pochopení lze také vytvářet vlastní pod programy pomocí vlastních bloku jako jsou na prvním obrázku .
Na obrázku je nekonečný cyklus se dvěma vytvořenými bloky je to hlavní řízení programu. Dva bloky jsou tu proto že každý odpovidá za jedno tlačítko , které je uzpůsobeno jako narazník pokud je zmačknuto program to zaregistruje a zastaví motory couvne a otočí se o 1 otáčku kol. Dva z důvodu otačení nalevo a napravo podle toho je-li na tlačítcích zachycena překážka.
Obsah bloků Myblock1 a Myblock2
Vývojové prostředí umožnuje soubězně zpracovávat více přikazů a to až tři sekvence kodu naráz. V techto blocích je hlavní ovládání které je založené na vzdálenostech od předmětů. Blok začíná podmínkou pro stiknutí tlačítka pokud se neztiskne provede se sekvence umístěná níž. V této sekvenci je zapsán pohyb dopředu servy A,B poté zjistění vzdálenosti a přetypování na text který je poté vypsán na obrazovku. Následuje podmínka pro kontrolu objektů pokud je ve vzdálenosti menší jak 50 cm zaznamenán objekt serva se zastaví a začnou se otáčet v opačném směru dokud není před robotem volno do vzdálenosti 80 cm pokud najde volný prostor otaceni se zastaví a robot pokračuje v jízdě. Horní sekvence kodu je spuštěna po ztisku tlačítka. V začátky byly uvedy dva bloky a já zde popisuji pouze jeden jelikož se od sebe liší je začáteční podmínkou bud pro tlačítko na portu 1 nebo 2. Poslední částí je blok pro otáčení nejedená se o víc než dva bloky pro ovládání serv spuštěné paralelně aby otáčely robota na místě.
Závěr Mým osobním úkolem bylo zkusit postavit a naprogramovat co nejlepšího robota pro orientaci v prostoru . Řekl bych že si s jistými obtížemi nakonec povedlo a výsledek je na omezení daná touto stavebnicí celkem slušný.Kdyzpozici jsem měl sadu LEGO MINDSTORMS Education NXT , kterou zapujčila škola. Musím říct že, některé díly se při stavbě malého kompaktního „anti-crash“ robota zdá-li poněkud velké a nemotorné, například motorky se svou velikostí nejsou uplně dobrý napad viz příloha č.1. Ale jinak mi stavebnice pro mé první kručky vyhovovala. Myslím že robot byl celkem uspěšný ve vyhýbání překážek ale problém byl pokud najel na drát nebo na nečem zasekl kolo jelikož není možné zároven používat serva a číst z nich data tak sem nebyl toto schopen nijak ošetřit pokud se změní rychlost otáčení která je nastavena konstatně aby zareagoval. Stavebnice ma pro začátečníka jako jsem já mnohá pozitiva jako to že vše je hotové jen se to sestavuje pomocí lega takže odpadá pájení soustružení a podobné práce .Negativum je podle mého hmotnost a veliksot komponent ,ale je to stavebnice pro děti .