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!

sobota, 12. januar 2013

CoderDojo Januar

Novo leto, nova zmaga za nas!
Danes smo se igrali in zabavali z Lego Mindstorms kompleti, tri ure so minile kot bi trenil z očesom, na srečo so lahko otroci komplete vzeli tudi domov (do naslednjič!), tako da so imeli še en malce manjši božič.

Posebaj bi se radi zahvalili:
Miha Štajdohar, za vso pomoč, prisotnost na dogodku in posojo robotkov.
Blaz Zupan, za prijaznost in posojo robotkov.
Fakulteta za računalništvo in informatiko in celotnemu laboratoriju za bioinformatiko.
Dušan Omerčević, za vse prigrizke, pomoč in prijaznemu odstopu prostorov Zemante.
Nataša Potočnik, za dobro voljo in tiste slastne rogljičke, ki tako teknejo ;)

Še manjše opozorilo:

Naslednji dogodek ni drugo soboto v mesecu, kot ponavadi, ampak prvo, torej 2. Februar.
Zopet se bomo igrali z robotki, navodila za inštalacijo in začetek bodo objavljena tudi na blogu pod kategorijo "Snov", za vprašanja in vse ostalo pa sva z Jernejem na voljo na mailu:

blaz@coderdojo.si
jernej@coderdojo.si

Prilagam še nekaj slik iz dogodka, vse pa si lahko ogledate v galeriji.