|
|
pl:mindstorms:studenci:przedmioty:jsi:jsi2008:jsi20090121-09a [2009/01/28 21:56] jsi08 |
pl:mindstorms:studenci:przedmioty:jsi:jsi2008:jsi20090121-09a [2019/06/27 15:50] |
==== Sprawozdanie z laboratorium nr 5 ===== | |
---- | |
| |
Robot: **?** | |
| |
Data wykonania: **21.01.2009, godz. 9.30** | |
| |
Autorzy: **Damian Dudziński, Maciej Fabia, Szymon Frenkel** | |
| |
---- | |
| |
Budowa naszego robota: | |
| |
| |
{{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:franek14-01-09.jpg?220|}} | |
{{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:franek2_14-01-09.jpg?220|}} | |
| |
| |
Franek korzystał z dwóch sensorów: | |
* czujnika sonarowego | |
* czujnika dotyku | |
| |
| |
Najpierw zapoznaliśmy się z podstawowymi poleceniami API robota: | |
* otwieranie i zamykanie połączenia Bluetooth - nxt_open, nxt_close, | |
* poruszanie się z daną prędkością i zatrzymywanie - nxt_go(n), nxt_stop, | |
* pobieranie danych z czujników - nxt_sound, nxt_touch, | |
* reagowanie na zdarzenie - trigger_create. | |
| |
| |
Zaimplementowaliśmy algorytm "sprzątacza", w który robot miał za zadanie usunąć wszystkie przeszkody znajdujące się w odległości nie większej niż określona. | |
| |
<code prolog> | |
:- consult('plnxt.pl'). | |
| |
start:- | |
nxt_open, | |
krecenie, | |
trigger_create(_,pushed,[nxt_stop,nxt_close]). | |
| |
krecenie :- | |
nxt_rotate(150,360), | |
sleep(1), % Chwila przerwy | |
trigger_create(_,przeszkoda,wypychanie). | |
| |
wypychanie :- | |
nxt_stop, | |
nxt_go_cm(300,40), | |
sleep(10), | |
nxt_go_cm(-300,40), | |
sleep(10). | |
trigger_create(_,fakt,krecenie). | |
| |
% Sprawdzenie, czy znaleziono przeszkodę | |
przeszkoda :- | |
nxt_ultrasonic(Value,force), | |
Value < 20. | |
| |
% Sprawdzenie, czy sensor dotyku jest wciśnięty. | |
pushed :- | |
nxt_touch(Value,force), | |
Value=1. | |
| |
:- start. | |
</code> | |
{{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:panikarz_14-01-09.pl|}} | |
| |
=== Wnioski === | |
| |
| |