|
|
pl:dydaktyka:piw:2010:sprawozdania:piw20100602-09d [2010/06/08 20:20] piw10 |
pl:dydaktyka:piw:2010:sprawozdania:piw20100602-09d [2019/06/27 15:50] |
====== Sprawozdanie 5====== | |
| |
**Robot:** Czesław\\ | |
**Data wykonania:** 2.06.2010 godz. 9:30\\ | |
**Autorzy:** Martyka Łukasz, Stereńczak Agata, Szczurek Joanna\\ | |
| |
===== Budowa robota ===== | |
Pierwszym robotem którego otrzymaliśmy na laboratorium był robot Dyzio. Niestety po dosłownie kilku minutach mieliśmy z nim problemy. Nie wykonywał naszych poleceń. Dlatego poprosiliśmy o wymianę robota. W zamian za niego otrzymaliśmy Czesława, który był już w pełni zbudowany i współpraca z nim przebiegała bezproblemowo. | |
| |
| |
===== Algorytm Sprzątacz ===== | |
Na tym laboratorium zajęliśmy się algorytmem sprzątacz. Z powodu niewielkiej dostępnej przestrzeni, zmieniliśmy odległość wykrywania przeszkód przez robota z 40 cm na 20 cm. | |
| |
Sprzątacz działa w ten sposób, że w pętli zwiększamy wartość kąta obrotu o 10 stopni aż do 360 stopni. Po obrocie o kąt 10 stopni robot sprawdza czy na jego drodze w promieniu 20 cm nie znajduje się jakiś przedmiot ( funkcja badaj_ultra ). Jeśli nie, to obraca się dalej, a jeśli znajdzie przedmiot to podjeżdża o 40 cm do przodu a następnie o 40 cm w tył ( funkcja podjedz ). | |
| |
Kod algorytmu: | |
<code>:- consult('plnxt.pl'). | |
| |
start :- Angle is 0, | |
my_loop(Angle). | |
| |
my_loop(Angle) :- Angle < 360, | |
write(Angle), | |
badaj_ultra, | |
NewAngle is Angle + 10, | |
my_loop(NewAngle). | |
| |
obrot :- write('obrot'), | |
nxt_rotate(360, 10, force). | |
| |
badaj_ultra :- | |
nxt_ultrasonic(Ultra,force), | |
Ultra < 20, | |
podjedz, | |
obrot. | |
| |
badaj_ultra :- | |
nxt_ultrasonic(Ultra,force), | |
Ultra >= 20, | |
obrot. | |
| |
podjedz :- nxt_go_cm(400, 40), | |
sleep(1), | |
nxt_go_cm(-400, 40). | |
| |
stop :- | |
nxt_stop, | |
nxt_close. | |
</code> | |
| |
Filmik obrazujący działanie sprzątacza [[.........|Sprzątacz!]] | |
| |
Jak widać na filmiku, program nie działał w 100% poprawnie. Widzimy, iż robot znajduje przeszkodę, jedzie do przodu aby ją usunąć, wraca na swoje miejsce ale potem zaczyna się kręcić i nie wykonuje kolejnych poleceń. | |
| |
===== Wnioski ===== | |
| |
Aby sprawdzić, czy program nie wykonywał się poprawnie z powodu błędów implementacyjnych wykonaliśmy test, polegający na wywołaniu samej funkcji podjedz z konsoli. W tym przypadku działała ona poprawnie. Niestety przy wywoływaniu całego programu w tym miejscu występowały problemy. Na podstawie tego możemy wnioskować że błędy są skutkiem złej współpracy PLNXT ze sprzętem. | |
| |
===== Plik z algorytmem ===== | |
| |
{{:pl:dydaktyka:piw:2010:sprawozdania:sprzatacz_lytomy.pl|sprzatacz-lytomy}} | |
| |