Projekt zakończony
Paweł Gutowski pawel.gutowski@gmail.com
Communication stack:
Idea:
Ostatecznie utworzone przez nas warstwy komunikacji przyjmą następującą postać:
Prolog | ← Wraz z zestawem napisanych przez nas predykatów |
---|---|
JPL | |
iCommand | |
Sterowniki bluetooth | ← bluetooth stack + imprementacja dostarczona wraz z iCommand |
Klocki LEGO NXT |
Prolog → JPL → iCommand → LEGO
Zestaw utworzonych predykatów wraz z krótkim opisem:
:- module(nxt_iCmd,[ nxt_iCmd_open/0, % Rozpoczęcie komunikacji/pracy z klockami nxt_iCmd_close/0, % Zakończenie komunikacji/pracy z klockami nxt_iCmd_distance/2, % Odczytanie odległości z ultradźwiękowego czujnika dystansu nxt_iCmd_pressed/2, % Sprawdzenie czy czujnik dotyku jest wciśnięty czy nie nxt_iCmd_lightPercentage/2, % Odczytanie wartości natężenia światła z czujnika nat. światła nxt_iCmd_LED/2, % Ustawienie (włączenie lub wyłączenie) diody LED w czujniku natężenia światła nxt_iCmd_loudness/2, % Odczytanie natężenia dźwięku z czujnika głośności nxt_iCmd_batteryMilliVolt/1, % Odczytanie stanu baterii (napięcie) nxt_iCmd_playSoundFile/2, % Odegranie pliku dźwiękowego zapisanego wewnątrz klocków nxt_iCmd_stopPlayingSound/0, % Zatrzymanie odgrywania wszystkich dźwięków nxt_iCmd_playTone/2, % Zagranie dźwięku o określonej częstotliwości i długości trwania % motors nxt_iCmd_stopMotor/1, % Zatrzymanie wybranego silnika (z użyciem hamulca) nxt_iCmd_setMotorSpeed/2, % Ustawienie prędkości wybranego silnika nxt_iCmd_getMotorSpeed/2, % Odczyt prędkości wybranego silnika nxt_iCmd_rotateMotorToAngle/3, % Nakazanie wybranemu silnikowi ustawienie się w zadanej pozycji (dążenie z zadaną prędkością) nxt_iCmd_getMotorAngle/2, % Odczyt aktualnego położenia wybranego silnika nxt_iCmd_resetMotorAngle/1 % Kalibracja położenia silnika - resetowanie. ]).