nedelja, 13. januar 2013

Navodila za Lego Mindstorms

Kratka navodila za namestitev potrebne programske opreme za upravljanje z Lego Mindstorms.

Potrebujemo:

Python 2.6 (32-bit)
nxt-python
pybluez

Na Python strani zberite ustrezno verzijo, za večino bo najverjetneje prava "Windows x86 MSI Installer (2.6.6)".
Pri namestitvi Pythona bodite pozorni, da ga namestite samo za vašega uporabnika, ne za vse, v nasprotnem primeru bi znali imeti težave z nameščanjem Pybluez (pogleda samo v current user v registru, ne pa tudi local machine)
Za ostale stvari mislim, da ni posebnosti, pojdite le po takem vrstnem redu, kot pise tu, nxt in pybluez pa namestite kamor vam ponudi.

Ko boste vse namestili, prižgite robotka in ga preko vašega bluetooth programa poiščite in dodajte, robotku se bo na ekranu izpisal  4 mestni PIN, ki ga lahko po potrebi tudi spremenite, nato potrdite, PIN pa vnesete se na računalniku.

S tem smo nameščanje zaključili, zdaj pa je čas za programiranje robotka!

Odprite IDLE (oz vas najljubsi IDE), in začnite z naslednjimi ukazi:
import nxt.locator
from nxt.motor import *
from nxt import *

brick = nxt.locator.find_one_brick()
mLeft = Motor(brick, PORT_A ); # popravite ime porta po potrebi
mRight = Motor(brick, PORT_B)  # popravite ime porta po potrebi

bothMotors = SynchronizedMotors(mLeft, mRight, 0)
touch = Touch(brick, PORT_1)
sound = Sound(brick, PORT_2)
light = Light(brick, PORT_3)
sonic = Ultrasonic(brick, PORT_4)
Porti so seveda odvisni od vašega priklopa, tu sem uporabil naključno kombinacijo za lažji začetek.

Premikate se lahko z metodo turn, primer:
bothMotors.turn(80, 360)
S tem se bosta obe kolesi obrnili za 360 stopinj, z močjo 80.
Lahko bi premaknili samo levo ali desno kolo, če bi, recimo, hoteli zavijati.
mRight.turn(80, 360)
Vrednost senzorja za glasnost bi lahko na primer dobili z:
sound.get_loudness()  # vrne glasnost
Vrednost senzorja za dotik pa z:
touch.is_pressed() # vrne True ali False
Vsi senzorji imajo metodo s katero lahko preverimo njihovo stanje, najlažje bo, da se poigrate sami.

Priporočam da po tem ko uvozite modul in definirate vse spremenljivke, sami preverjate katere metode ima vsak senzor in motor (in vse ostalo), s tem da uporabljate tipko Tab.

bothMotors.+ vam bo izpisal vse ukaze, ki jih lahko uporabite nad obema motorjema, isto lahko storite za vse senzorje in celotno nxt knjižnjico.


Za začetek mislim, da bo dovolj, vsa vprašanja lahko pišete v komentarjih ali pa preko maila:

blaz@coderdojo.si
jernej@coderdojo.si

Veselo kodiranje!