Teach Urruneko laborategidun ikasgaiak

Teach ikasgaia

Arduino Visual robota (3/4): hurbiltasun-sentsoreak, talkarik gabe

Erabili hurbiltasun-sentsorearen irakurketak bloke-programazioan, talkak saihesteko abisuak sortzeko, atalaseak probatzeko eta robotaren portaera azaltzeko.

  • Arduino robota (bisuala)
  • 55 min
  • DBH 3 / DBH 4
  • eu
  • Robotics · Embedded systems

Hasi saioa irakasle-kontu batekin klase-saioa prestatzeko. Ikasleak klase-kode batekin sartzen dira.

Arduino robota (bisuala)
Arduino robota (bisuala) · Laborategiaren xehetasunak

Ikaskuntza-emaitzak

  • Hurbiltasun-sentsoreak irakurtzea erabakia hartu aurretik.

  • Behaketetan oinarrituta atalase erraz bat kalibratzea.

  • Hurbileko oztopo baten aurrean erantzun segurua programatzea.

Ikaslearen jardueraren aurrebista

Jardueraren edukia

Aurrebista soilik. Klase-saio batean, ikasleek erantzunak bete eta lana irakasleari bidal diezaiokete.

1

Lehenik sentsorea, gero erabakia

8 min

Sentsore batek zerbait neurtu eta irakurketa bat ematen du. Hurbiltasun-sentsorearen zenbakizko balioak islatutako argi infragorriaren detekzioak zenbatzen ditu; ez da zentimetrotan emandako distantzia. Gainazalak, angeluak eta kokapenak eragina dute. Konparatu benetako irakurketak kokapen seguruetan, zure proban balio handiagoak distantzia txikiagoa adierazten duen erabaki aurretik.

Atalasea abisua emateko hautatutako muga-balioa da: zure programak zer joko duen «segurutzat» eta zer «hurbilegi» bereizten du. Programaren prozesua hau da:

  1. Irakurri sentsoreak.
  2. Alderatu irakurketa atalasearekin.
  3. Aukeratu erantzuna.
  4. Behatu erantzuna segurua izan den.

Objektua hurbilago dagoenean hurbiltasunaren irakurketa handitzen bada, zer esan nahi du irakurketa >= 3 baldintza erabiltzeak? Zergatik ez da komeni atalasea aukeratzea aurretik behatu gabe?

2

Neurtu erantzun aurretik

20 min

Urrunetik kokatzea: robota mugi dezakezu; gelako objektu fisikoak, ordea, ezin dituzu mugitu. Programa kargatzean, hautatu Zirkuitu 8 formako robotak bakarrik aukera (Only robots on 8-shaped circuits, ingelesez). Zoru zuria, lerro beltza eta horma erreferentzia finkoak dira. Bilatu robotaren aurrealdea kameran, eta begiratu leku librerik duen. Gehitu beheko kokatze-eskema. B botoia berriz sakatzen duzun bakoitzean, robotak behin egingo du aurrera, 100 ms-z; askatu botoia berriz sakatu aurretik. A eta C botoietan sakaldi bakarreko eredu bera erabil daiteke biratzeko (−125,125 edo 125,−125). Irakurri sentsoreak bi motorrak geldirik daudenean soilik. Ez eraman robota hormaren kontra irakurketa handia lortzearren; utzi kameran ikusteko moduko tartea, eta adierazi zein kokapenetan ezin duzun segurtasunez neurtu.

[Button B as stepButton]  (Buttons)
[Setup Serial speed 9600]
Arduino run first:
  [Change two motors speed] Left: 0 Right: 0
Arduino loop forever:
  if [stepButton single press]:
    [Change two motors speed] Left: 125 Right: 125
    [wait] 100 milliseconds
    [Change two motors speed] Left: 0 Right: 0
  ... irakurri sentsoreak eta erakutsi balioa hemen ...
  [wait] 50 milliseconds

Erabili single press (ha sido pulsado), ez is pressed (está pulsado): lehenak behin erantzuten du sakaldi berri bakoitzean, botoia sakatuta mantentzen baduzu ere. Jarri Button B as stepButton konfigurazio-blokea lan-eremuan, beste blokeei lotu gabe; euskarazko interfazean Botón B como stepButton ere ikus dezakezu, Botoiak kategorian. Hautatu stepButton izena baldintzan. Gelditzeko agindua baldintzaren barruan doa, mugimendu laburraren ondoren. Probatu sakaldi bat leku librean, eta behatu hiru segundoz: robotak geldirik jarraitu behar du berriz sakatu arte. Mugitzen ez bada, egiaztatu programa kargatu dela, botoia ondo konfiguratu duzula eta leku librea dagoela; ez luzatu mugimendua hori egiaztatu gabe.

Ingelesezko editoreak center sensor detect on his left izena ematen dio erabiliko dugun blokeari: aukeratu center eta left haren bi menuetan. Erdiko sentsorearen ezkerreko detekzioa irakurtzen du. Euskarazko interfazean kategoria Ingurunea da, irakurtzeko blokea Irakurri gertutasun sentsoreak, eta menuetan centro eta izquierda ager daitezke. LEDen eskeman red gorria da, eta blue urdina. HIGH egoerak LEDa pizten du, eta LOW egoerak itzali; menuetan ALTO/BAJO gisa ager daitezke. Azken aginduak bi motorrak zeroan uzten ditu.

  1. Kokatzeko baldintzaren ondoren, gehitu Read proximity sensors blokea (Irakurri gertutasun sentsoreak), idatzi center sensor detect on his left balioa serieko irteeran eta itxaron 300 ms. Erabili beti alde bera. Motorrak geldirik dituzula, neurtu horma beretik distantzia desberdinetara dauden hiru kokapen seguru; deskribatu kameran ikusitakoa, zentimetrorik asmatu gabe. Serieko irteera ikusten ez baduzu, eraiki orain beheko LED bidezko baldintza, behin-behineko atalasea 3 izanik. Idatzi LEDa piztuta edo itzalita dagoen eta erabilitako atalasea; ez asmatu irakurketa zenbakizkorik. Ondoren, hautatu atalasea taulako behaketetan oinarrituta. Irakurketek ez badituzte kokapenak bereizten, jaso hori eta azaldu zergatik ez den kalibrazioa erabakigarria.

  2. ```text

  3. [Read proximity sensors]

  4. if [center sensor detect on his left >= aukeratu duzun zenbakia]: [Set red led to HIGH] [Set blue led to LOW]

  5. else: [Set red led to LOW] [Set blue led to HIGH]

  6. [Change two motors speed] Left: 0 Right: 0

  7. ```

Klase-saio batean erabilgarri

Behatutako kokapena Erabilitako sentsorea Irakurketa: zenbakia edo LEDak zein kokapenetan erantzuten duen Erantzun beharko luke? Oharrak

Hautatu abisua emateko behin-behineko atalasea, bi behaketatan oinarrituta. Ez badute kokapenak bereizteko balio, azaldu zergatik ez dagoen oraindik atalasea justifikatuta, eta proposatu beste proba seguru bat.

3

Programatu erantzun segurua

18 min

Sortu hurbiltasun-abisua, robota geldirik dagoela, kalibratutako atalasearekin. Kokatzeko baldintzak bakarrik mugi dezake robota. Abisuaren bi adarretan motorrak geldirik geratzen dira. Probatu kokapen urrunago bat eta hurbilago bat, biak seguruak, eta egiaztatu LEDak bereizten dituen. Atalaseak behaketak bereizten ez baditu, kalibrazioa ez da erabakigarria; ez du frogatzen robota bere kabuz segurtasunez gidatzeko gai denik.

[Read proximity sensors]
if [center sensor detect on his left >= aukeratu duzun zenbakia]:
  [Set red led to HIGH]
  [Set blue led to LOW]
else:
  [Set red led to LOW]
  [Set blue led to HIGH]
[Change two motors speed] Left: 0 Right: 0

Erantzuna goizegi, beranduegi edo une egokian gertatu da? Adierazi zer aldatuko zenukeen: atalasea, abiadura edo itxaronaldia. Kontuan izan abisuaren probetan robotak geldirik jarraitu behar duela; abiadurak kokatzeko mugimendu laburrari bakarrik eragiten dio.

Deskribatu sentsorearen edo zure probaren muga bat. Adibidez: objektua gaizki kokatuta egotea, irakurketa ezegonkorra izatea, robota beste kokapen batean egotea edo kamera behatzeko denbora falta.

4

Entregatu ebidentzia

9 min

Hurbiltasunaren arabera erantzuteko programa

Entregatu zure atalasea, programaren pantaila-argazki bat edo deskribapena, eta proba batean behatutakoa: noiz erantzun duen robotak edo noiz erantzun beharko zukeen.

Bihurtu aurrebista hau klase-saio batean

Jarraitu LabsLand Teach-era ikasgai hau ikasleekin erabiltzeko eta kontuaren sarbidea berrikusteko.