Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:hexor:hexor_prolog [2007/12/13 11:48] ptm |
pl:hexor:hexor_prolog [2019/06/27 15:50] (aktualna) |
| ??? | dotykowy prawy | dotykowy lewy | IR przód | IR lewy tył | ??? | IR środkowy tył | IR prawy tył | | | ??? | dotykowy prawy | dotykowy lewy | IR przód | IR lewy tył | ??? | IR środkowy tył | IR prawy tył | |
| |
Predykaty zwracają wartość TRUE w przypadku prawidłowego wykonania w przeciwnym wypadku FALSE ( np. błąd komunikacji). \\ | **Predykaty zwracają wartość TRUE w przypadku prawidłowego wykonania w przeciwnym wypadku FALSE ( np. błąd komunikacji).** \\ |
Robot zatrzymuje się automatycznie po wykryciu przeszkody ( czujniki IR, dotykowe, przekroczenie wartości progowej dla sonaru). | **Robot zatrzymuje się automatycznie po wykryciu przeszkody ( czujniki IR, dotykowe, przekroczenie wartości progowej dla sonaru).** \\ |
| W wypadku awarii programu ( zrzucenie pliku core ) proszę go przesłać na adres ptm@agh.edu.pl wraz z opisem sytuacji. |
| |
| |
| |
| |
====== Programwanie krok po kroku ====== | |
- Pobierz kod programu z tąd {{hexor_prolog.tar.gz}} | |
| |
| |
| ====== Programowanie krok po kroku ====== |
| - Pobierz kod programu stąd {{hexor_prolog.tar.gz}} |
- Rozpakuj poleceniem //tar xzf hexor_prolog.tar.gz// | - Rozpakuj poleceniem //tar xzf hexor_prolog.tar.gz// |
- Pojawi się katalog //hexor_prolog// | - Pojawi się katalog //hexor_prolog// |
* TYLKO JEDEN WĄTEK MOŻE UŻYWAĆ PREDYKATÓW DO KOMUNIKOWANIA SIĘ Z ROBOTEM | * TYLKO JEDEN WĄTEK MOŻE UŻYWAĆ PREDYKATÓW DO KOMUNIKOWANIA SIĘ Z ROBOTEM |
* dodatkowe wątki można uzyskać w/g instrukcji z [[hexor_prolog_mt]] | * dodatkowe wątki można uzyskać w/g instrukcji z [[hexor_prolog_mt]] |
- Zmodyfikuj go zgodnie z tematem laboratorium. | - Zmodyfikuj go zgodnie z tematem [[pl:hexor:hexor_lab|laboratorium]]. |
- Skompiluj uruchamiając komende //make// . Jeśli pojawiły się błędy wróć do punktu 6. | - Skompiluj uruchamiając komendę //make// . Jeśli pojawiły się błędy wróć do punktu 6. |
- Uruchom komendą //./hexprPL// | - Uruchom komendą //./hexorPL// |
- Powtarzaj punkty 6-8 aż do osiągnięcia celu. | - Powtarzaj punkty 6-8 aż do osiągnięcia celu. |
| |
| |
| |
- wyłącz robota | - wyłącz robota |
- podłącz wtyczkę ładowarki do gniazda na korpusie robota | - podłącz wtyczkę ładowarki do gniazda na korpusie robota |
| * świeci żółta dioda - ładowarka jest poprawnie podpięta do sieci |
| * świeci zielona dioda - ładowany jest akumulator ( intensywność świecenia jest odwrotnie proporcjonalna do naładowania akumulatora) |
* Podłącz nadajnik do portu USB komputera. | * Podłącz nadajnik do portu USB komputera. |
* Sprawdź czy pojawiło się urządzenie ttyUSB0 ( polecenie __dmesg__ w linii poleceń) | * Sprawdź czy pojawiło się urządzenie ttyUSB0 ( polecenie __dmesg__ w linii poleceń) |
* Jeśli robot nie jest używany przez dłuższy czas to podłącz go do ładowarki. | * Jeśli robot nie jest używany przez dłuższy czas to podłącz go do ładowarki. |
* **Robota nie da się włączyć jeśli wtyczka ładowarki jest podłączona** | * **Robota nie da się włączyć jeśli wtyczka ładowarki jest podłączona** |
| |
| |
| |
- oprogramowanie w Basicu sterujące mikrokontrolerami na płycie robota | - oprogramowanie w Basicu sterujące mikrokontrolerami na płycie robota |
- stacji nadrzędnej sterującej zachowaniem robota ( w tym przypadku PC + program w prologu ) | - stacji nadrzędnej sterującej zachowaniem robota ( w tym przypadku PC + program w prologu ) |
Warstwy 2 i 3 połączone są ze sobą za pomocą łącza beprzewodowego | Warstwy 2 i 3 połączone są ze sobą za pomocą łącza bezprzewodowego (RS-232) |
| |
{{hexoroldnewarchitecture.png|Architektura systemu sterującego}} \\ | {{hexoroldnewarchitecture.png|Architektura systemu sterującego}} \\ |
| |
Warstwa 3 budowana jest z następujących elementów: | Warstwa 3 zbudowana jest z następujących elementów: |
- __hexor.c/hexor.h__ biblioteka funkcji do komunikacji z robotem wykorzystująca port szeregowy | - __hexor.c/hexor.h__ biblioteka funkcji do komunikacji z robotem wykorzystująca port szeregowy |
- __hexorPL.c__ główny plik uruchamiający program sterujący. Zawiera funkcję __main__ w języku C, która wywołuje interpreter prologu. Plik ten zawiera też definicje predykatów które dołączane są do interpretera prologu ( patrz funkcja main ) | - __hexorPL.c__ główny plik uruchamiający program sterujący. Zawiera funkcję __main__ w języku C, która wywołuje interpreter prologu. Plik ten zawiera też definicje predykatów które dołączane są do interpretera prologu ( patrz funkcja main ) |
- __hexorPL.pl__ plik zawierający program w prologu sterujący robotem. Można w nim używać dodatkowych predykatów zdefiniowanych w pliku __hexorPL.c__ | - __hexorPL.pl__ plik zawierający program w prologu sterujący robotem. Można w nim używać dodatkowych predykatów zdefiniowanych w pliku __hexorPL.c__ |
- biblioteki EPP ułatwiającej dodawanie predykatów do prologu i zarządzanie wieloma wątkami wykonania w prologu | - biblioteki EPP ułatwiającej dodawanie predykatów do prologu i zarządzanie wieloma wątkami wykonania w prologu |