Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Nowa wersja
Poprzednia wersja
pl:mindstorms:lab:conf [2008/12/30 11:37]
gjn utworzono
pl:mindstorms:lab:conf [2019/06/27 15:50] (aktualna)
Linia 9: Linia 9:
 hidd --connect ​ hidd --connect ​
 </​code>​ </​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 {{:​pl:​mindstorms:​lab:​nxt_stty.txt|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.
 +
pl/mindstorms/lab/conf.1230633432.txt.gz · ostatnio zmienione: 2019/06/27 15:57 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0