Így kódold az mBotodat! Hozzászólok

Ha vásároltál egy mBotot (aminek nagyon örülünk), akkor adunk neked pár tippet a programozásával kapcsolatban). Ha pedig még csak vágysz egyre, akkor most belekóstolhatsz a kódolás rejtelmeibe, a programozható játékrobotok világába.

 

Az első lépések során megtanulhatod az mBot vezérlését a billentyűzet segítségével. Először is az a legfontosabb, hogy elsajátítsd a gombok használatát, hiszen máskülönben könnyen a falhoz vezetheted az újdonsült barátodat.

 

Az alapprogramok elsajátítását nem érdemes átugrani, hiszen a lassan jársz, tovább érsz elve itt is érvényesül, és csak ily módon élvezheted majd a későbbieken igazán a játékot.

 

A feltételes vezérlő utasításokon belül érdemes megismerned az elágazást  (sorozatos cselekvés) és a hurkot  (annak eldöntése, hogy a robot hányszor végezzen el egy műveletet).

 

Nézzünk egy példát, hogy jobban megértsd, mire gondoltunk!

A cél: Az mBot haladjon előre, majd álljon meg egy meghatározott távolságra egy akadálytól. Ha az akadályt eltávolítják, az mBot fusson tovább lassan az útján.

 

  1. Az mBlock-ban csatlakozz az mBot-hoz.
  2. Kattints az “Adatok és blokkok” (“Data & Blocks”) kategóriára
  3. Kattints a “Változó létrehozása” (“Make a Variable”) gombra
  4. Add meg ezt a változót “Távolság” (“Distance”) néven. Kattints az OK gombra.
  5. Most hozd létre a kódodat, kezdve ezzel: “Ha a zászlóra klikkelek” “When Flag Clicked”…
  6. Valami ilyesminek kell lennie a képernyőn:

 

„when flag clicked

forever

set Distance to ultrasonic sensor Port 3 istance

if Distance <10 then

run forward at speed 0

else

run forwars at speed 100”

 

Fontos megjegyezni, hogy az ultrahangos érzékelő által használt egység centiméterben van megadva. Próbáld ki a kódodat, hogy lásd, mi történik. A “ha / egyéb” (“if/else”) feltételes utasítás használatával a robot elindul, és addig halad, amíg maximum 10 cm-re van az akadálytól. Sajnos ennek a kódnak köszönhetően nem fog tovább futni, amikor eltávolítják az akadályt, ezért jön képbe a hurkolás.

 

  1. Húzd át a “repeat to” blokkot a vezérlőelemek alatt
  2. Húzd oda a “gombnyomásos” (key space pressed) mondatot az érzékelésben található változóban a “repeat to” blokkban
  3. Hozd létre az alábbi programot:

„when flag clicked

repeat until key space pressed?

set Distance to ultrasonc sensor Port 3 distance

if Distance <10 then

run forward at speed 0

else

run forward t speed 100

run forward at speed 0”

 

Ha mindent jól csináltál, akkor a robot helyesen fog navigálni a környezetében. Micsoda sikerélmény!

 

De mi a helyzet a másik érzékelővel: a vonalkövető érzékelővel (Line-Following Sensor)?

Amint azt valószínűleg észrevetted, az mBot csomagjában két bemeneti érzékelőt találhattál: egyet a távolság érzékelésére, és egy másikat a vonalkövetésre (a fény és a sötét felületek közötti kontraszt érzékelésére. Az mBot egy olyan papírpályát tartalmaz, amelyet használhatsz, de az asztal teteje és az alatta levő padló közötti kontraszt is megteszi (azért használj egy biztonsági hálót a szegény mBot számára).

 

Az mBot képes követni a kontrasztváltozást. A vonalkövető érzékelő tartalmaz egy infravörös sugárzó LED-et, valamint egy infravörös érzékelő LED-et. Ha a kibocsátó LED fénye tükröződik a felületen, akkor a szükséges információk eljutnak az mBot-hoz. Azt pedig valószínűleg te is tudod, hogy minél világosabb a felület, annál több fényt tükröz vissza a sötét színű felületen visszavert fény mennyiségéhez képest.

 

Nézzük, hogyan követhet az mBot egy vonalat!  

A célok a következők:

 

  • a mBot előre halad, ha fekete színt, vagy korlátozott fényt érzéke
  • az mBot balra fordul, amennyiben a bal/jobb LED fekete színt, vagy korlátozott visszavert fény érzékel

Annak érdekében, hogy ez megtörténjen, az alábbi kódra van szükséged:

 

  1. Kapcsold be az mBotot, és csatlakozz hozzá.
  2. Kattints az “Adatok és blokkok” (“Data & Blocks”) kategóriára
  3. Hozz létre egy “Move” nevű blokkot
  4. Add meg a következő változókat: “Speed” és a “Vonalérzékelő érték” (“Line Sensor Value”)
  5. Hozd létre a következő programot:

 

„When flag clicked

set Speed to 80

forever

Move

deifne Move

Set LineSensorVale to line follower Port2

if  LineSensorVale=0 then

run forward at speed Speed

if  LineSensorVale=1 then

turn left at speed Speed

if  LineSensorVale=2 then

turn right at speed Speed

if  LineSensorVale=3 then

run backward at speed Speed”

 

Sok sikert kívánunk a kódoláshoz!

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük