Robot Merkur Sumo GT12

Odpovědět
tomis2

Robot Merkur Sumo GT12

Příspěvek od tomis2 »

Dobrý den,
již jsem zde psal o mojí ročníkové práci ve škole. Sestavil jsem robota od společnosti Merkur a mám za úkol ho programovat. Motory jsou řízeny sériovou linkou, a jejich chod ovládám jednotlivými hodnotami. Problém však nastal v momentě kdy jsem se pokusil udělat podprogram díky kterému by robot zabrzdil. Podle dokumentace jsou hodnoty pro zablokování můstků 64 pro pravý a 192 pro levý motor. Napsal jsem tedy následující program:

Kód: Vybrat vše

Default:
symbol Out_Pin = 7
symbol Right_Motor = b0
symbol Left_Motor = b1
symbol white = 0
symbol black = 1

High Out_Pin
pause 2500

Main:

if pin1 = 0 then
 	gosub Dopredu
endif

if pin1 = 1 then
	gosub Brzda
endif
 
goto Main

Dopredu:

	Right_Motor = 127
	Left_Motor = Right_Motor + 128
	serout Out_Pin, T4800_4, (Right_Motor,Left_Motor)

return

Brzda:
	Right_Motor = 64
	Left_Motor = 192
	serout Out_Pin, T4800_4, (Right_Motor,Left_Motor)
	
return	
Jakmile však nastane situace, kdy je pin1 roven log. 1 motory se sice začnou brzdit a výrazně zpomalí, robot se však nezastaví úplně což je pro mě velký problém vzhledem k programu který bych chtěl dále napsat. Chtěl bych se tedy zeptat, jestli nevíte ještě o nějakém způsobu jak by se dal chod motorů zastavit dokud by na pin1 nepřišla log. 0.

Předem děkuji
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Robot Merkur Sumo GT12

Příspěvek od AlesH »

Ahoj. Program podle mne vypadá OK. Co a jak přesně máš připojeno na tom pin1? Podle Tvého popisu mám podezření, že se na ten pin1 občas dostane 0 i v době, kdy by tam měla být 1, takže motory pořád "popojíždí". Příčin ale samozřejmě může být více, takže tohle je jen takový můj první nápad. Zkus tedy pro jistotu důkladněji ošetřit ten vstup pin1 (menší pull up odpory nebo tak něco).
tomis2

Re: Robot Merkur Sumo GT12

Příspěvek od tomis2 »

V tom asi problém nebude, deska včetně všech modulů a mikrokontroléru byla takto připravena již od výrobce...Na pinu1 jsou infrač. diody, které snímají předmět..
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Robot Merkur Sumo GT12

Příspěvek od AlesH »

OK, v tom případě můžeš zkusit do robota nahrát testovací program, který spustí motory třeba na 3 sekundy vpřed, pak je na 3 sekundy zastaví a tak pořád dokolečka (bez testování stavu pin1). Na tom bys mohl spolehlivě ověřit, jestli se ty motory správně zastavují, nebo ne.
tomis2

Re: Robot Merkur Sumo GT12

Příspěvek od tomis2 »

I tak se to chová nějak podivně...Nejdříve se v průběhu zpomalej obě kola a po chvíli jedno zastaví a druhý se vesele točí dál..
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Robot Merkur Sumo GT12

Příspěvek od AlesH »

OK, na pin1 tedy zatím můžeš zapomenout. Nejprve je třeba dosáhnout toho, aby se i ten jednoduchý testovací program choval podle očekávání. Obecně rozhodně mohu doporučit postupy, které tady na RoboDoupěti popsal Petr Kubáč ve svém seriálu "Funguje báječně, ale neseje". Jednou z velmi dobrých zásad je např. "rozděl a panuj", tedy ověřovat jednotlivé části postupně, nejlépe po jedné. Ve Tvém případě můžeš třeba zkusit ovládat testovacím programem třeba jen jeden motor (pokud to jde) a pak druhý, abys poznal jestli se jejich chování nějak vzájemně liší. Teď mě taky napadá možnost, jestli ten inteligentní motorový modul náhodou nemá něco jako "kalibraci" nulové polohy ("trim"), nebo třeba šířky "neutrálu" (tedy oblasti čísel, kdy by se motory neměly točit ani na jednu stranu). Podle dosavadního popisu chování mám dojem, že ta manuálem definovaná čísla na zastavení motorů (64 a 192) možná nebudou tak jednoznačná, jak to může vypadat. Doporučuji to tedy prověřit (pročíst podrobněji manuál k sériovému ovladači motorů [pokud ho máš k dispozici]) a pak třeba experimentálně ověřit správná čísla, která jednotlivé motory opravdu zastaví. Až to budeš mít ověřeno, bude možno pokračovat dál.
tomis2

Re: Robot Merkur Sumo GT12

Příspěvek od tomis2 »

Díky za pomoc. Nicméně jsem už problem vyřešil. Samozřejmě, že byla jako obvykle chyba v dokumentaci od Merkuru...Špatně zakreslené zapojení elektroniky. Zahrál jsem si šachy s drátama a už to jede. :-)
Uživatelský avatar
jrt
Příspěvky: 1921
Registrován: 17 úno 2013, 17:13

Re: Robot Merkur Sumo GT12

Příspěvek od jrt »

tomis2 píše:... byla jako obvykle chyba v dokumentaci od Merkuru...
Kde přesně ta chyba v dokumentaci byla, prosím? Třeba se mi někoho v Merkuru podaří přemluvit, aby ji opravil.
jrt
Odpovědět