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 .
Download

Lego mindstorm