Yliopiston etusivulle Suomeksi Inte på svenska No english version available
Helsingin yliopisto Tietojenkäsittelytieteen laitos
 

Tietojenkäsittelytieteen laitos

582326 Robottiohjelmoinnin harjoitustyö (4 op), kevät 2010

Kurssin etusivulle

Ohjehakemisto

23.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):

  1. tarkista että paketti bluez-utils on asennettu:
    sudo aptitude install bluez-utils
    
  2. kytke NXT-palikka ja sen bluetooth päälle ja näkyväksi
  3. selvitä mikä on palikan MAC-osoite (etsi NXT):
    hcitool scan
    
  4. 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
      
  5. 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.
  6. 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ä).
  7. 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:

  1. Ensimmäisellä palikalla, aseta/tarkista PIN-koodi kohdasta Bluetooth → Change PIN. Kun paritusyritys tapahtuu, tällä koodilla NXT vastaa.
  2. 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!

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

Bluetooth-tutoriaali

Lisäksi kannattaa vilkaista lejos_nxj/projects/{samples,pcsamples}/.