|
|
pl:mindstorms:lab:conf [2009/01/07 23:32] holownia |
pl:mindstorms:lab:conf [2019/06/27 15:50] |
====== Konfiguracja NXT dla PlNXT ====== | |
===== BT ===== | |
https://help.ubuntu.com/community/BluetoothSetup | |
<code> | |
apt-get install blueetooth bluez-utils bluez-gnome bluez-hcidump | |
| |
stty -F /dev/rfcomm0 -echo -icanon -iexten -isig -crnl -inpck -istrip -ixon -cstopb -cs8 parnb parodd -opost ispeed 115200 ospeed 115200 | |
hcitool scan | |
hidd --connect | |
</code> | |
| |
PH: | |
<code> | |
Skanowanie urządzeń BT: | |
hcitool scan | |
| |
Edycja rfcomm.conf: | |
gedit _etc_bluetooth/rfcomm.conf | |
| |
Dodać wpis: | |
rfcomm0 { | |
bind yes; | |
device MAC_ADRESS; | |
channel 1; | |
comment "NXT"; | |
} | |
| |
Restart: | |
_etc_init.d/bluetooth restart | |
| |
Weryfikacja: | |
rfcomm | |
| |
Ustawienie portu: | |
sudo stty -F /dev/rfcomm0 -echo -icanon -iexten -isig -icrnl -inpck -istrip -ixon -cstopb cs8 parenb parodd -opost ispeed 115200 ospeed 115200 | |
| |
Tutaj następuje pierwsze połączenie, więc i sparowanie z ustaleniem pinu. | |
| |
Proszę załadować plnxt.pl i odpalić nxt_open/0. | |
Dodatkowo jakieś podstawowe dwa dema dodawałem przy ostatniej aktualizacji | |
w cvs. | |
| |
| |
</code> | |
| |
===== Testy 2008.12.29 ===== | |
Ubuntu 8.04.01 desktop, robo2 wzorcowy | |
| |
wpięcie dongla jabra | |
<code> | |
Dec 30 11:38:35 robo2 kernel: [ 1363.737446] usb 4-2: new full speed USB device using uhci_hcd and address 2 | |
Dec 30 11:38:35 robo2 kernel: [ 1363.912426] usb 4-2: configuration #1 chosen from 1 choice | |
Dec 30 11:38:35 robo2 NetworkManager: <debug> [1230633515.384358] nm_hal_device_added(): New device added (hal udi is '/org/freedesktop/Hal/devices/usb_device_a5c_2101_noserial'). | |
Dec 30 11:38:35 robo2 kernel: [ 1364.141171] Bluetooth: HCI USB driver ver 2.9 | |
Dec 30 11:38:35 robo2 hcid[4999]: HCI dev 0 registered | |
Dec 30 11:38:35 robo2 kernel: [ 1364.150362] usbcore: registered new interface driver hci_usb | |
Dec 30 11:38:35 robo2 hcid[4999]: HCI dev 0 up | |
Dec 30 11:38:35 robo2 hcid[4999]: Device hci0 has been added | |
Dec 30 11:38:35 robo2 hcid[4999]: Starting security manager 0 | |
Dec 30 11:38:35 robo2 NetworkManager: <debug> [1230633515.750184] nm_hal_device_added(): New device added (hal udi is '/org/freedesktop/Hal/devices/usb_device_a5c_2101_noserial_if0'). | |
Dec 30 11:38:35 robo2 hcid[4999]: Device hci0 has been activated | |
Dec 30 11:38:35 robo2 NetworkManager: <debug> [1230633515.846196] nm_hal_device_added(): New device added (hal udi is '/org/freedesktop/Hal/devices/usb_device_a5c_2101_noserial_if1'). | |
Dec 30 11:38:35 robo2 NetworkManager: <debug> [1230633515.998365] nm_hal_device_added(): New device added (hal udi is '/org/freedesktop/Hal/devices/usb_device_a5c_2101_noserial_if2'). | |
Dec 30 11:38:36 robo2 NetworkManager: <debug> [1230633516.007863] nm_hal_device_added(): New device added (hal udi is '/org/freedesktop/Hal/devices/usb_device_a5c_2101_noserial_if3'). | |
Dec 30 11:38:36 robo2 NetworkManager: <debug> [1230633516.021068] nm_hal_device_added(): New device added (hal udi is '/org/freedesktop/Hal/devices/usb_device_a5c_2101_noserial_if0_bluetooth_hci_19155fc6ce'). | |
| |
</code> | |
pojawia sie ikonka bt na pasku | |
| |
aplet bt bluez 0.25 | |
| |
właściwości: | |
* tryb pracy: inne urządzenia mogą się łączyć | |
* usługi: serial, network, input, | |
| |
w logach | |
<code> | |
Dec 30 11:41:07 robo2 network[7571]: Bluetooth Network daemon | |
Dec 30 11:41:07 robo2 network[7571]: Config options: InterfacePrefix=bnep%d, PANU_Script=(null), GN_Script=(null), NAP_Script=(null), GN_Interface=pan0, NAP_Interface=pan1, Security=true | |
Dec 30 11:41:07 robo2 kernel: [ 1516.241739] Bluetooth: BNEP (Ethernet Emulation) ver 1.2 | |
Dec 30 11:41:07 robo2 kernel: [ 1516.241746] Bluetooth: BNEP filters: protocol multicast | |
Dec 30 11:41:07 robo2 kernel: [ 1516.296310] Bridge firewalling registered | |
Dec 30 11:41:07 robo2 network[7571]: Registered manager path:/org/bluez/network | |
Dec 30 11:41:07 robo2 network[7571]: Registered server path:/org/bluez/network/panu | |
Dec 30 11:41:07 robo2 network[7571]: Registered server path:/org/bluez/network/gn | |
Dec 30 11:41:07 robo2 network[7571]: Registered server path:/org/bluez/network/nap | |
Dec 30 11:41:07 robo2 network[7571]: /org/bluez/network: org.bluez.network.Manager.ListConnections() | |
Dec 30 11:41:07 robo2 kernel: [ 1516.297045] pan0: Dropping NETIF_F_UFO since no NETIF_F_HW_CSUM feature. | |
Dec 30 11:41:08 robo2 serial[7581]: Bluetooth Serial Port daemon | |
Dec 30 11:41:08 robo2 serial[7581]: Registered manager path:/org/bluez/serial | |
Dec 30 11:41:29 robo2 audio[5015]: Unregistered manager path | |
Dec 30 11:41:29 robo2 audio[5015]: Exit | |
Dec 30 11:41:29 robo2 input[7582]: Bluetooth Input daemon | |
Dec 30 11:41:29 robo2 input[7582]: Registered input manager path:/org/bluez/input | |
Dec 30 11:41:29 robo2 input[7582]: /org/bluez/input: org.bluez.input.Manager.ListDevices() | |
</code> | |
| |
* applet/właściwości/przeglądanie urządzeń -> jest agatka | |
* połącz | |
* pojawia się pytanie o pin | |
* w logach | |
| |
<code> | |
Dec 30 11:47:01 robo2 network[7571]: /org/bluez/network: org.bluez.network.Manager.ListConnections() | |
Dec 30 11:47:01 robo2 input[7582]: /org/bluez/input: org.bluez.input.Manager.ListDevices() | |
Dec 30 11:47:58 robo2 NetworkManager: <debug> [1230634078.878417] nm_hal_device_added(): New device added (hal udi is '/org/freedesktop/Hal/devices/bluetooth_acl_16530585e2'). | |
Dec 30 11:48:00 robo2 hcid[4999]: pin_code_request (sba=00:19:15:5F:C6:CE, dba=00:16:53:05:85:E2) | |
Dec 30 11:48:12 robo2 hcid[4999]: link_key_notify (sba=00:19:15:5F:C6:CE, dba=00:16:53:05:85:E2) | |
Dec 30 11:48:17 robo2 NetworkManager: <debug> [1230634097.191374] nm_hal_device_removed(): Device removed (hal udi is '/org/freedesktop/Hal/devices/bluetooth_acl_16530585e2'). | |
</code> | |
| |
* _etc_bluetooth/rfcomm.conf | |
<code> | |
rfcomm0 { | |
bind yes; | |
device 00:16:53:05:85:E2; # Agatka | |
# channel 1; | |
comment "Agatka Example Bluetooth device"; | |
} | |
</code> | |
* _etc_init.d/bluetooth restart | |
| |
stty -F /dev/rfcomm0 -echo -icanon -iexten -isig -inpck -istrip -ixon -cstopb parodd -opost ispeed 115200 ospeed 115200 | |
| |
| |
<code> | |
export CVSROOT=:ext:gjn@charon.ia.agh.edu.pl/mnt/cvs/cvs-hades | |
export CVS_RSH=ssh | |
cvs co plnxt | |
</code> | |
| |
===== Testy 2009.01.07 ===== | |
<code> | |
hcitool scan # przeglad urzadzen | |
hcitool info 00:16:53:05:85:E2 | |
rfcomm # podglad kom rfc | |
rfcomm0: 00:16:53:05:85:E2 channel 1 clean # przed pol, ma byc clean! | |
rfcomm0: 00:16:53:05:85:E2 channel 1 connected [tty-attached] # po pol write | |
| |
# uwaga, reczne zestawienie | |
rfcomm release rfcomm0 | |
rfcomm bind rfcomm0 00:16:53:05:85:E2 | |
| |
# wysw konf serial dev | |
stty -F /dev/rfcomm0 -a | |
| |
wajig purge swi-prolog swi-prolog-clib swi-prolog-doc swi-prolog-http swi-prolog-semweb swi-prolog-sgml swi-prolog-table swi-prolog-xpce | |
| |
http://www.swi-prolog.org/dl-old.html | |
http://gollem.science.uva.nl/cgi-bin/nph-download/SWI-Prolog/binaries/pl-5.4.7-190.i586.rpm | |
</code> | |
| |
===== Quickstart dla administratora (pod laboratorium) ===== | |
| |
{{:pl:mindstorms:lab:plnxt-20081217.tar.gz|plnxt-20081217.tar.gz}} | |
| |
Działa wersji [[http://gollem.science.uva.nl/cgi-bin/nph-download/SWI-Prolog/binaries/pl-5.4.7-190.i586.rpm|SWIPL 5.4.7-190]] patrz [[http://www.swi-prolog.org/dl-old.html | |
|stare wersje swi]] | |
| |
==== rfcomm.conf ==== | |
| |
W pliku {{:pl:mindstorms:lab:rfcomm.conf-1.txt|rfcomm.conf}} znajduje się konfiguracja dla zestawów NXT używanych w laboratorium.\\ | |
Należy upewnić się, że plik w takiej postaci znajduje się w katalogu _etc_bluetooth. \\ | |
W szczególności część dotycząca robota, który ma być użyty. \\ | |
| |
Po wprowadzeniu zmian w rfcomm.conf należy zrestartować BT: | |
<code> | |
_etc_init.d/bluetooth restart | |
</code> | |
| |
==== Diagnostyka ==== | |
| |
Wyszukiwanie dostępnych urządzeń BT: | |
<code> | |
hcitool scan | |
</code> | |
| |
Informacje o wskazanym urządzeniu: | |
<code> | |
hcitool info 00:16:53:05:85:E2 | |
</code> | |
| |
Podgląd stanu urządzeń: | |
<code> | |
rfcomm | |
#Efekt: | |
rfcomm0: 00:16:53:05:85:E2 channel 1 clean # Przed połączeniem, ma być clean lub closed. | |
rfcomm0: 00:16:53:05:85:E2 channel 1 connected [tty-attached] # Po połączeniu. | |
</code> | |
| |
Podgląd konfiguracji urządzenia szeregowego: | |
<code> | |
stty -F /dev/rfcomm2 -a | |
</code> | |
| |
==== Pakiety ==== | |
| |
<code> | |
bluetooth bluez-gnome bluez-hcidump bluez-utils gnome-bluetooth libbluetooth2 python-bluez | |
| |
uzytkownik w gr do ktorej nalezy rfcomm, np. dialout -> uzycie modemow w m.kont ubuntu | |
</code> | |
| |
===== Quickstart dla studenta ===== | |
| |
==== Ustawienie parametrów portu i sparowanie ==== | |
| |
Należy uruchomić skrypt nxt_stty (argumentem jest nazwa robota). Np.: | |
<code> | |
./nxt_stty czeslaw | |
</code> | |
| |
W trakcie może zajść konieczność sparowania urządzeń. Nie będzie wymagane, jeżeli ostatnio z tym zestawem na tym komputerze była używana ta sama wytczka BT.\\ | |
Przy sparowaniu NXT prosi o podanie numeru PIN, który następnie trzeba powtórzyć w oknie konfiguracyjnym, które powinno się pojawić po zatwierdzeniu PINu w NXT. | |
| |
=== Troubleshooting === | |
| |
Urządzenia wcześniej sparowane można zobaczyć klikając prawym przyciskiem niebieską ikonę BT -> Preferences -> Bonded devices.\\ | |
Jeżeli urządzenie znajduje się na tej liście, parowanie w ogóle nie powinno zachodzić. Wystarczy samo ustawienie parametrów portu, którego dokonuje się uruchamiając skrypt nxt_stty.\\ | |
Gdyby jednak cały proces ustawienia parametrów portu i ewentualnego parowania nie przebiegał poprawnie, proszę: | |
* usunąć z wyżej wskazanej listy urządzenie, | |
* konieczne może też być usunięcie wpisu w NXT brick (należy wybrać z menu Bluetooth -> My contacts -> {device} -> Delete) | |
Następnie proszę ponownie uruchomić skrypt nxt_stty. | |
| |
==== Konfiguracja plnxt ==== | |
| |
W pliku konfiguracyjnym plnxt.pl należy ustawić urządzenie, z którego się korzysta z odpowiednim numerem.\\ | |
Przykład dla 02 - Bolek: | |
<code prolog> | |
% Specify the device files. | |
nxt_serial_device(write,'/dev/rfcomm2'). | |
nxt_serial_device(read,'/dev/rfcomm2'). | |
</code> | |
| |
==== Interfejs NXT ==== | |
| |
W lewym górnym rogu wyświetlacza powinien znajdować się sybol BT oraz na prawo od niego symbol '<'.\\ | |
Jeżeli tak nie jest, BT jest wyłączony. Należy go włączyć (z menu wybrać Bluetooth -> On/Off -> On).\\ | |
Po nawiązaniu połączenia obok symbolu '<' pojawia się symbol '>'. Razem tworzą: '<>'.\\ | |
Po zamknięciu połączenia znika symbol '>'. | |
| |
==== Test ==== | |
| |
Otworzenie połączenia w powłoce: | |
<code prolog> | |
[plnxt]. | |
nxt_open. | |
</code> | |
| |
Sprawdzenie poziomu baterii (najprostsze polecenie, które korzysta i z zapisu i z odczytu z urządzenia): | |
<code prolog> | |
nxt_voltage_millivolt(Voltage). | |
</code> | |
| |
Zamknięcie połączenia w powłoce: | |
<code prolog> | |
nxt_close. | |
</code> | |
| |
=== Test z wykorzystaniem programu demowego === | |
| |
Przykład:\\ | |
demo2.pl (Magazynier) | |
* podnieś kulkę (użyj sensora dotyku) | |
* wykonaj zwrot o 180 stopni | |
* przenieś kulkę pod ścianę (użyj sonaru do określenia co jest ścianą) | |
* wyłacznik awaryjny: klaśniecie | |
| |
Należy wczytać plik demos/demo2.pl i uruchomić go przy użyciu start/0. | |
| |