Robotiekkua 10-100 vuodehizile

Sphero -robotan käyttö- da ohjelmoindukursu

Martti Penttonen
Karjalan Kielen Kodi

Algupaginat: Sphero - mi se on?

- sphero=miäččy
- sphero on robottu
- spheron sydämes 
  + tiedokoneh (protsessor da musto)
  + kaksi motorua (voi kiändyö!)
  + giro (pidäy suunnan)
  + ravevundusensoru (ähkähtysindikuattoru)
- spheron toimindua voi ohjelmoija
  + ajua sormel ohjaten, kalduamal (Sphero Multi Drive) libo 
    piirdämäl (Draw&Drive) 
  + andamal komendoloi kudamii voi suorittua čiepis (MacroLab)
  + kirjuttamal ohjelmu (orbBasic)
- robottua ohjelmoijes pidäy tiediä sen suundu - kiändiä perävalo 
  iččehpäi (t.s. tuaksepäi libo suvehpäi)
- ohjelmis suundu ozutetah astehil 0..360: 0 "pohjazeh", 45
  "koillizeh" i m.i.
- robotan maksimuvauhti on 2 m/s. Ohjelmis sidä voi siädiä:
  MacroLab: 0..100, orbBasic: 0..256
- robotan aiguyksikkö on millisekundu (t.s. 1/1000 sekundua)

1. Robotal ajelendu käziohjavuksel

- brujah tuttavundu
- käynnistä miäččy koputtamal kaksi kerdua
- Android telefonas/taulutiedokonehes ilmazet ohjelmat
  Sphero Multi Drive, Draw&Drive, MacroLab, orbBasic, Sphero Sleep
  Google Play Storespäi
- Tiedokonehes käynnistä Bluetooth
- Käynnistä Sphero Multi Drive
  + valliče Sphero-BRY (-BYR, -RBY, -RYB, ...) sit Done
  + valliče oigiel JoyStick (libo Tilt libo RC)
  + ajele
  + lopukse lähte ohjelmaspäi
- Pane Sphero uinuomah Sphero Sleep ohjelmal
- Nostata miäččy kaksoskoputandal da käynnistä Draw&Drive
  + suundua perävalgo miäriä vauhti suojusšlöpöi...jänöi
  + piirrä viivu ekruanale
  + aja! Miäččy kävelöy viivua myö
  + ekruanu tyhjenöy suunduamal perävalgo
  + konzu terstavut ajelendah, lähte ohjelmaspäi 
- Pane miäččy uinuomah


2. Robotan ohjelmoindu MacroLab käskylöil

- kerrata 1. kerral opastuttuu
- nostata Sphero kaksoskoputuksel
- käynnistä MacroLab ohjelmu
- luaji Bluetooth yhtevys tiedokonehen da miäčyn välile
  da suundua perävalgo iččeh päi
- MacroLab ozuttau luvettelon ezimerkiohjelmis da jo aijembi
  luajittulois omis ohjelmis
- endizii ohjelmii voi ajua valliččemal ohjelmu luvettelos.
  Ohjelmu rubieu nägymäh ekruanal, se ajetah painaldamal play nybliä.
- ohjelmaspäi piästäh järilleh luvetteloh Androidan järilleh nybläl.
- Uvven ohjelman luadimine:
  + Luvettelos olles painalda +, keksi nimi da painalda Create Macro
  + Ližiä käsky painaldamal +, se avuau men'un mis vallita
  + Valliče ezim. Roll käsky. Se kyzyy andamah kolme luguu
    * Speed (äijängo % suurimas vauhtis (2 m/s)): 50 = 1 m/s
    * Heading (suundu 1..360) 0=edeh, 90=oigieh, 180=tuakse, 270=hurah
    * Delay (aigu - hätkengo ajetah, millisekundois) 1000 = 1s
    Nenga "Roll 50 90 100" ajau metrin oigiele
  + Tallenda käsky painaldamal Create. Ohjelmu rubieu nägymäh
  + Ližiä käskylöi kui pidäy
  + Pahan käskyn hävittämine: Paina kodvan, sit Delete
  + Käskyn siirdämine: Paina kodvan, Move Up/Down
  + Ohjelman ajamine: Play
- Ezimerki 1. Kolmikko
    Roll 50 30 1000
    Roll 50 150 1000
    Roll 50 270 1000
  Lougiellizesti ohjelmu piirdäs tazasivuzen kolmikon, sivut 1 m, a 
  kulmis miäččy ei kergie kiändymäh. Pidäy azettuo kulmis, sit kergiey:
    Roll 50 30 1000
    Roll 0 30 1000
    Roll 50 150 1000
    Roll 0 150 1000
    Roll 50 270 1000
- Ezimerki 2. Pyöräkkö. Piirrämmö siännöllizen 36-kulmikon, sidä odva
  eroittau pyöräkös. Tarvičemmo petlan, kudai suoritetah 36 kerdua.
  Yhtel petlan kierroksel piirrämmö 10cm viivan da kiännymmo 10 astettu:
    Start Loop 36
    Roll 25 0 200
    Rotate Over Time 10 200
    End Loop
  Ohjelmu piirdäy 7.2 sekundas pyöräkön kudaman kehän piduhus on 360 cm.
  "Rotate Over Time 10 200" kiändäy miäččyy 10 astettu oigieh 200
  millisekundas.


3. Robotan ohjuandu orbBasic ohjelmoindukielel

- OrbBasic ohjelmoindukieli
- valmehien ohjelmien ajamine
- ohjelmien "parandelu"
- oman ohjelman kirjuttamine
- midä uuttu:
  + ohjelmu kirjutetah kerras tekstannu. Voibi suorah kirjuttua 
    Spheroh, libo ezmäi kirjuttua muus konehes muul edittoral da
    da sit siirdiä kopiruiče da liimua komendoloil Spheroh.
  + vauhti (max 2 m/s) ilmoitetah luvul 0..255
  + suundu 0..360 kui MacroLabas
  + ähkähtyssensoru accelone: ilmas <100, muas <1000, vauhtil seinäh >5000
  + giroskoppu (gorollan kolmas parametri): ei suundua 0, pidäy suundua 1, 
    kingiesti suunnas 2
  + hyppy ohjelman rivile: goto
  + ehtovirkehet: if .. then, if .. then .. else
  + petlat:
    for .. to .. next
- kirjuttamine ekruanale: 
  * print lugu
  * print "tekstua"
- tarkembua tieduo orbBasicas doumentas (löydyy Googlel):
  * Dan Danknick: Gen 1 orbBasic Interpreter

Ezimerki 1. Spirualu
10 h=0
15 d=0
16 c=0
20 goroll h,64,2
30 delay d
40 h=(h+10)%360
45 if h=0 then d=d+10
47 if h=0 then c=(c+1)%8
48 LEDC c
50 goto 20
Sellitys. Allus spirualan sägeh on 0 da suundu pohjazeh. Miäččyy
ajetah 64/256 vauhtil. Aijan d jälgeh miäččyy kiännetäh 10 astettu
oigiele da ajanduaigua kazvatetah 10 millisekundal. Kierroksen jälgeh
miäčyn väri vaihtuu (0=pimei, 1=ruskei, 2=vihandu, 3=sinine, 4=oranži,
5=fioletovoi, 6=valgei, 7=keldaine, da järilleh alguh.) Miäččy kierdäy
kuni se azetetah.

Ezimerki 2. Rulettukiža
05 LEDC 2
10 for b=1 to (2000+(rnd 3000))
20 goroll b%360,0,1
25 delay 2
30 next b
40 LEDC 1
45 delay 1000
50 goroll (rnd 360),128,2
60 delay 800
61 goroll 0,0,0
65 LEDC 7
66 delay 10000
70 if dshake>0 then goto 05 else LEDC 8
Sellitys. Allukse miäččy on vihandu da kižuajien keskes. Se rubieu
pyörimäh piävyndähizen aijan 2s-5s. Sit se azettuu da muuttuu
ruskiekse, da sen jälgeh ajau piävyndähizeh suundah 1m/s vauhtil 80cm.
Ken on sil suunnal, ottau miäčyn, heiluttau 2 kerdua da panou järilleh
kižuajien keskeh, ga iče lähtöy kižaspäi. Miäččy rubieu uvvessah 
pyörimäh i m.i. Ken jiäy jälgimäzekse, voittau.

Ezimerki 3. Random walk
40 H = rnd 359
50 D = 1
60 S = rnd 192 + 63
80 goroll H, S, D
90 timerA = 1000
106 timerB = rnd 500 + 500
107 print accelone
110 if accelone > 2000 or timerA = 0 then goto 150
120 if timerB > 0 then goto 110
130 H = rnd 360
140 goto 60
150 H = ((H+180)%360)
160 goroll H, 255, 1
170 delay 1000
180 goto 60
Sellitys. Miäččy lähtöy kävelemäh piävyndähizeh suundah (0..359)
piävyndähizel vauhtil 63..255. Piävyndähizen aijan 0.5..1.0 sekundan
kuluttuu se kiändyy piävyndähizeh suundah. Yhtelläh, ku se ähkähtännöy
seinäh libo täyzi sekundu on kulunuh, se rubieu myöstymäh tävvel
hodul.

Loppupaginat da tovestukset

- kogemuksii, kyzymyksii
- omien makroloin libo ohjelmien ezittely ku ollou
- pluanoi edehpäi
- tovestuksien jagamine