582326 Robottiohjelmoinnin harjoitustyö (4 op), kevät 2010
Kurssin etusivulle23.2. Ongelmallisissa tapauksissa on auttanut, että suoritetaan vaiheet 1-5 ja sitten yritetään paritusta, mikäli käytössä on paritusta hallitseva työpöytäympäristön kilke (esim. GNOMEn BT-appletti).
24.1. Paritus kuulemma toimiikin normaaliin tapaan (ainakin Kubuntu 9.04:llä, joka oli päivitetty 9.10:een).
Bluetooth-paritus
Ennen kuin bluetoothia voidaan käyttää palikan kanssa, pitää se parittaa tietokoneen bluetooth-laitteen kanssa. Tämä ei ole aina ihan yksinkertaista ja joillain koneilla/dongleilla tuntuu olevan hankaluuksia pariutua NXT:n kanssa.
Paritus voi onnistua yksinkertaisesti hakemalla NXT:n Bluetooth-valikosta Search and pair
-toiminnolla tietokoneen bluetooth-laitteen ja yrittämällä paritusta, jolloin koodia kysyvä dialogi ilmestyy koneen ruudulle. Oikean koodin syöttämisen jälkeen NXT:n pitäisi sanoa Paired!
.
Allekirjoittaneen järjestelmillä tämä ei ole kuitenkaan onnistunut niin helposti, mutta seuraavat vaiheet tuottivat tulosta (Ubuntu 8.04):
- tarkista että paketti bluez-utils on asennettu:
sudo aptitude install bluez-utils
- kytke NXT-palikka ja sen bluetooth päälle ja näkyväksi
- selvitä mikä on palikan MAC-osoite (etsi
NXT
):hcitool scan
- tarkista onko koneen bluetoothissa sarjaporttipalvelu päällä:
sdptool browse local
- jos riviä
Service Name: Serial Port
ei näy, niin aja:sudo sdptool add --channel=3 SP
- jos riviä
- Käynnistä uusi terminaali ja aja siinä:
sudo rfcomm listen /dev/rfcomm1 3
- Tässä käytetään kanavaa 3, jonka pitäisi siis olla sama mikä sarjaporttipalvelulle on yllä määritelty.
- Jos et käytä työpöytäympäristöä kuten GNOME, jossa on Bluetoothin PIN-koodia kysyvä appletti ja käytössä on esim. Ubuntu Hardy, jonka bluez-utils -paketti sisältää passkey-agent -ohjelman, aja aiemmassa terminaalissa:
sudo /usr/share/doc/bluez-utils/examples/passkey-agent 1234 00:16:53:08:CA:C4
- Missä 1234 on PIN-koodi, jota agentti yrittää parituksessa käyttää palikan kanssa, ja MAC-osoite oman palikkasi osoite jonka selvitit kohdassa 3.
- Jos käytössäsi on esim. GNOME, niin unohda passkey-agent ja hyppää suoraan seuraavaan vaiheeseen (dialogi ilmestyy kysymään PINiä).
- Laita NXT-palikka pariutumaan koneen kanssa käyttäen koodia 1234 ja toivo menestystä. Jos palikka sanoo
paired!
, voit sulkea terminaalit, muussa tapauksessa kannattaa tarkistaa että sarjaporttipalvelu on toiminnassa ja mahdollisesti yrittää toisella donglella.
- Jos kaikki meni hyvin, voit kaapelin sijaan lähettää ohjelman ja kommunikoida robotille bluetoothilla. nxj etsii automaattisesti NXT:n joka vastaa bluetoothilla, jos kaapeli ei ole kytketty. Jos robotteja on useampi ja halutaan erikseen määritellä mille niistä ohjelma lähetetään, voidaan antaa parametri -b ja -d:
nxj -b -d 00:16:53:08:CA:C4 -r Luokka
- Kätevämpää on muuttaa NXT:n bluetooth-nimi nxjbrowse-työkalulla (
Set Name
). Tämän jälkeen voi oikean laitteen hakea nimellä:nxj -n MunNXT -r Luokka
Jos yhteys NXT:hen yhtäkkiä epäonnistuu virheellä [13] Permission denied
, kannattaa koittaa parittaa kone ja NXT uudelleen.
Hakemiston /var/lib/bluetooth/[MAC-osoite] poistaminen saattaa myös joissain ongelmatapauksissa olla kokeilemisen arvoista.
NXT-NXT -paritus
Kytke molempien palikoiden bluetooth päälle Bluetooth-valikosta, sitten:
- Ensimmäisellä palikalla, aseta/tarkista PIN-koodi kohdasta Bluetooth → Change PIN. Kun paritusyritys tapahtuu, tällä koodilla NXT vastaa.
- Toisella palikalla, valitse Bluetooth → Search and Pair → valitse löydetty NXT → Pair → valitse sama koodi jonka asetit ensimmäiseen palikkaan.
- Ruudulle pitäisi tulla
Paired!
- Ruudulle pitäisi tulla
Jos/kun vaihdat bluetooth-nimen, poista tiedosto ~/nxj.cache, jotta ohjelmat kuten nxjbrowse etsivät NXT:t uusilla nimillään.
Lisätietoa
Kahden NXT:n välinen Bluetooth-kommunikaatio
Lisäksi kannattaa vilkaista lejos_nxj/projects/{samples,pcsamples}/.

