c6

background image

Ćwiczenia 6

αω

Robot Mindstorm NXT - podstawowe sterowanie
modelu Tribot za pomocą biblioteki NXT++

1) Zapoznaj się z możliwościami sterowania Robota Tribot w bibliotece NXT++

2) Uruchom plik re4.sln w katalogu,

C

: \ \

m i n d s t o r m s n x t

\

NXT

++\

nxtpp0

6\

FINAL

\

e x a m p l e s

\

v s 9 0

\

r e 4

3) Napisz program śledzenia linii z prawej i lewej strony. Nasycenie światła linii i
tła pobierz zdalnie sterując robotem.

4) Napisz program symulujący zachowanie zawodnika sumo, robot nie może wy-
jechać poza czarną obręcz, gdy wykrywa przeszkodę, stara się ją przemieścić poza
czarną linię.

NXT++, kilka bazowych informacji

Podstawowe biblioteki i przestrzenie nazw,

#

i n c l u d e

”NXT++.h”

#

i n c l u d e

<

i o s t r e a m

>

#

i n c l u d e

<

c o n i o

.

h

>

u s i n g namespace

s t d

;

u s i n g namespace

NXT

;

Nawiązywanie komunikacji z robotem,

z a pomocą przewodu USB

,

i f

(

NXT

: :

Open

(&

comm

) ) // i n i t i a l i z e

t h e NXT and c o n t i n u e

i f

i t

s u c c e e d s

{
}

NXT

: :

C l o s e

(&

comm

) ; // c l o s e

t h e NXT

z a pomocą Bl ue Tooth

,

i f

(

NXT

: :

OpenBT

(&

comm

) ) // i n i t i a l i z e

t h e NXT and c o n t i n u e

i f

i t

s u c c e e d s

{
}

NXT

: :

C l o s e

(&

comm

) ; // c l o s e

t h e NXT

Ramy programu NXT++

NXT

: :

S t a r t P r o g r a m

(&

comm

, ” program1 ” ) ;

kod programu

NXT

: :

StopProgram

(&

comm

) ;

background image

Wyświetlanie poziomu baterii i ilości dostępnej pamięci,

c o u t

<<

NXT

: :

B a t t e r y L e v e l

(&

comm

) ;

c o u t

<<

NXT

: :

G e t A v a i l a b l e F l a s h

(&

comm

) ;

Używanie generatora dzwięków,

f o r

(

i n t

i

=1;

i

<1000;

i

=

i

+10)

{

NXT

: :

PlayTone

(&

comm

,

i

,

1 ) ;

Wait

( 1 ) ;

}

Nasłuchiwanie wciśnięcia klawisza - przydatne w odświeżaniu parame-
trów sterujących

i f

(

k b h i t

( )==

t r u e

)

{

d e c y z j a

=

g e t c h

( ) ;

}

Porty serwomechanizmów - Tribot’a

-OUT A sterowanie szczypcami
-OUT B sterowanie lewym kołem
-OUT C sterowanie prawym kołem

Skręcanie w lewo - przy x<y

NXT

: :

Motor

: :

SetForward

(&

comm

,

OUT B

,

y

) ;

NXT

: :

Motor

: :

SetForward

(&

comm

,

OUT C

,

x

) ;

Skręcanie w prawo - przy x>y

NXT

: :

Motor

: :

SetForward

(&

comm

,

OUT B

,

y

) ;

NXT

: :

Motor

: :

SetForward

(&

comm

,

OUT C

,

x

) ;

Jazda na wprost z prędkością x

NXT

: :

Motor

: :

SetForward

(&

comm

,

OUT B

,

x

) ;

NXT

: :

Motor

: :

SetForward

(&

comm

,

OUT C

,

x

) ;

Jazda do tyłu z prędkością x

background image

NXT

: :

Motor

: :

S e t R e v e r s e

(&

comm

,

OUT B

,

x

) ;

NXT

: :

Motor

: :

S e t R e v e r s e

(&

comm

,

OUT C

,

x

) ;

Przykładowe sterowanie szczypcami

i f

(

d e c y z j a

==’

C

| |

d e c y z j a

==’

c

’ )

{

i f

(

p o i n t e r

==0)

{

NXT

: :

Motor

: :

SetForward

(&

comm

,

OUT A

,

1 0 ) ;

Wait

( 1 0 0 0 ) ;

NXT

: :

Motor

: :

Stop

(&

comm

,

OUT A

,

0 ) ;

p o i n t e r

=1;

c o n t i n u e

;

}

i f

(

p o i n t e r

==1)

{

NXT

: :

Motor

: :

SetForward

(&

comm

,

OUT A

,

20) ;

Wait

( 1 0 0 0 ) ;

p o i n t e r

=0;

c o n t i n u e

;

}

}

Przykładowe zwiększenie prędkości robota przy jeździe na wprost

i f

(

d e c y z j a

==’

M

| |

d e c y z j a

==’

m

’ )

{

x

+=10;

}

i f

(

d e c y z j a

==’

W

| |

d e c y z j a

==’

w

| |

(

xtemp

!=

x

&&

l a s t v a l u e

==’

w

’ ) )

{

xtemp

=

x

;

l a s t v a l u e

=’

w

’ ;

NXT

: :

Motor

: :

SetForward

(&

comm

,

OUT B

,

x

) ;

NXT

: :

Motor

: :

SetForward

(&

comm

,

OUT C

,

x

) ;

}

Zwalnianie serwomechnizmów

NXT

: :

Motor

: :

SetForward

(&

comm

,

OUT B

,

0 ) ;

NXT

: :

Motor

: :

SetForward

(&

comm

,

OUT C

,

0 ) ;

NXT

: :

Motor

: :

S e t R e v e r s e

(&

comm

,

OUT B

,

0 ) ;

NXT

: :

Motor

: :

S e t R e v e r s e

(&

comm

,

OUT C

,

0 ) ;

NXT

: :

Motor

: :

Stop

(&

comm

,

OUT B

,

0 ) ;

NXT

: :

Motor

: :

Stop

(&

comm

,

OUT C

,

0 ) ;

Porty sensorów

-IN 1 sensor dotyku
-IN 2 sensor dźwięku
-IN 3 sensor światła
-IN 4 sonar

background image

Uaktywnienie sensora dotyku w porcie 1

NXT

: :

S e n s o r

: :

SetTouch

(&

comm

,

I N 1

) ;

Uaktywnienie sonaru w porcie 4 i pobranie odległości od przeszkody,
wyłączenie sensora

NXT

: :

S e n s o r

: :

S e t S o n a r

(&

comm

,

I N 4

) ;

NXT

: :

S e n s o r

: :

GetSonarValue

(&

comm

,

I N 4

) ;

NXT

: :

S e n s o r

: :

S e t S o n a r O f f

(&

comm

,

I N 4

) ;

Uaktywnienie sensora światła w porcie 3, pobranie poziomu światła, de-
aktywacja sensora

NXT

: :

S e n s o r

: :

S e t L i g h t

(&

comm

,

IN 3

,

1 ) ;

Wait

( 5 0 ) ;

v a l u e

=

NXT

: :

S e n s o r

: :

GetValue

(&

comm

,

I N 3

) ;

Wait

( 5 0 ) ;

NXT

: :

S e n s o r

: :

S e t L i g h t

(&

comm

,

IN 3

,

0 ) ;

Pobranie poziomu dźwieku,

NXT

: :

S e n s o r

: :

SetSound

(&

comm

,

I N 2

) ;

Wait

( 5 0 ) ;

v a l u e

=

NXT

: :

S e n s o r

: :

GetValue

(&

comm

,

I N 2

) ;


Wyszukiwarka

Podobne podstrony:
C6 5
highwaycode pol c6 motocykle (s 27 28, r 84 91)
Laboratorium jezyk c6 2013
c6
8fr d3d a3a+i+koszty+powstania+ 8crodk d3w+na+dzia a3alno 8c c6+kredytow a5 HVAYZQUQDZS37IFU6Y2MSQY
rachunkowo 8c c6 U66KYMRLS7CLVU3H52OVIUEIOPEOCYU4H7PKKUQ
rachunkowo 8c c6+ubezpieczeniowa RHEHCDRODBS2TM7KINVF2XGZNSX4MESWRIXNOKI
Badania właściwości mechanicznych materiałów izolacyjnych, Pim c6, Politechnika Wrocławska
C6 2
C6 stale narzędziowe
Chirurgia C6, studia pielęgniarstwo
8cmier c6 NSIDEQWL2SLVDPQ5N5QVFSTMRGDAKGQPYY7FZ7I
c++ wyklad c6
C6 8
C6 1hemoliza WWP 6 10 1 2 id 10 Nieznany
c6 (2)
C6 2
Laboratorium jezyk c6 2013
C6-stale narzędziowe

więcej podobnych podstron