Konfiguracja NXT dla PlNXT

BT

https://help.ubuntu.com/community/BluetoothSetup

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 

PH:

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.
 

Testy 2008.12.29

Ubuntu 8.04.01 desktop, robo2 wzorcowy

wpięcie dongla jabra

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'). 

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

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()
  • applet/właściwości/przeglądanie urządzeń → jest agatka
  • połącz
  • pojawia się pytanie o pin
  • w logach
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'). 
  • _etc_bluetooth/rfcomm.conf
rfcomm0 {
        bind yes;
        device 00:16:53:05:85:E2; # Agatka
#       channel 1;
        comment "Agatka Example Bluetooth device";
}
  • _etc_init.d/bluetooth restart
stty -F /dev/rfcomm0 -echo -icanon -iexten -isig -inpck -istrip -ixon -cstopb parodd -opost ispeed 115200 ospeed 115200
export CVSROOT=:ext:gjn@charon.ia.agh.edu.pl/mnt/cvs/cvs-hades
export CVS_RSH=ssh
cvs co plnxt

Testy 2009.01.07

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

Quickstart dla administratora (pod laboratorium)

rfcomm.conf

W pliku 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:

_etc_init.d/bluetooth restart

Diagnostyka

Wyszukiwanie dostępnych urządzeń BT:

hcitool scan

Informacje o wskazanym urządzeniu:

hcitool info 00:16:53:05:85:E2

Podgląd stanu urządzeń:

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.

Podgląd konfiguracji urządzenia szeregowego:

stty -F /dev/rfcomm2 -a

Pakiety

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

Quickstart dla studenta

Ustawienie parametrów portu i sparowanie

Należy uruchomić skrypt nxt_stty (argumentem jest nazwa robota). Np.:

./nxt_stty czeslaw

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:

% Specify the device files.
nxt_serial_device(write,'/dev/rfcomm2').
nxt_serial_device(read,'/dev/rfcomm2').

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:

[plnxt].
nxt_open.

Sprawdzenie poziomu baterii (najprostsze polecenie, które korzysta i z zapisu i z odczytu z urządzenia):

nxt_voltage_millivolt(Voltage).

Zamknięcie połączenia w powłoce:

nxt_close.

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.txt · ostatnio zmienione: 2017/07/17 08:08 (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