Johnny'r Robot Hyfforddi

English

Johnny'r Robot Hyfforddi

Dyma'r uned EV3 y byddwn yn ei defnyddio ar gyfer dysgu hanfodion rhaglennu.

An image of the 'Johnny' unit
The specifications of the Johnny build. It's right wheel is powered by a motor in port C whilst the right is also motorised but through port B. A colour sensor mounted on the front pointing at the floor is connected to Port 3. An InfraRed sensor is facing forward mounted at the back and top, connected to Port 4

Gallwch un ai dewis rhoi cynnig ar bob taith cyn edrych ar y datrysiad neu, os ydych yn ddigon hyderus eich bod yn deall, defnyddiwch nhw fel canllawiau rhaglennu yn unig.

Y datrysiadau symlaf sy'n cael eu nodi, felly, nid da lle gellir gwell - amdani!

Taith Un:

Gan ddefnyddio'r moduron gyrru yn unig, lluniwch raglen i wneud i Johnny symud ymlaen ar hyd llinell syth.

Manylion Rhaglennu: Dylech sicrhau bod gosodiadau pŵer y moduron wedi'u gosod ar 100% ac mai am 5 eiliad yn unig y bydd y rhaglen yn rhedeg.

Y Camau:

Y cam cyntaf wrth raglennu yw ystyried pa gamau i'w cymryd.

Yn yr achos hwn, un cam sydd - Troi'r ddau fodur ymlaen i bŵer o 100% am 5 eiliad

Defnyddio Meddalwedd Swyddogol Lego Mindstorms

Defnyddio Meddalwedd Microsoft MakeCode

The chosen block for this program is the 'move steering' with set to 'On for Seconds'. The values then read 0 for direction, 100 for speed and 5 for seconds.
The resulting program reads: on start, steer motors B+C turn ratio 0 speed 100% for 5 seconds

Fideo o god datrysiad yn y gwaith:

Ystyriwch...

Ar ba gam y daw gwall dynol yn ystyriaeth yn y fan hon?

Allwch chi feddwl pam, o bosibl, na fydd y rhaglen hon yn cynhyrchu llinell berffaith syth gyda'r robot hwn (ac eithrio'r gwall dynol a grybwyllir uchod)?

Taith Dau:

Gan ddefnyddio'r moduron gyrru yn unig, lluniwch raglen i wneud i Johnny symud mewn sgwâr a dychwelyd i'w fan cychwyn.

Manylion rhaglennu:

  • Dylai pob ochr fesur 4 tro olwyn cyflawn (4 full wheel rotations) o hyd
  • Dylid gosod y pŵer ar gyfer y troeon ar 75%
  • Ym Meddalwedd Lego Mindstorms, llwyddir i greu cornel ongl sgwâr trwy ddefnyddio gwerth troi o 80 ar gyfer un troad
  • Ym Microsoft MakeCode, gosodir y gwerth troi ar gymhareb wahanol, sy'n golygu y bydd angen dau dro cyflawn arno

Y Camau:

Symudwch ymlaen 4 troad

Trowch 90°

Symudwch ymlaen 4 troad

Trowch 90°

Symudwch ymlaen 4 troad

Trowch 90°

Symudwch ymlaen 4 troad

Trowch 90°

Fe welwch ein bod yn ailadrodd yr un dau gyfarwyddyd 4 gwaith sy'n golygu y gallem ni ddefnyddio dolen gan beri i'r ddau orchymyn hyn redeg bedair gwaith.

Defnyddio Meddalwedd Swyddogol Lego Mindstorms

Defnyddio Meddalwedd Microsoft MakeCode

A loop block set to 4 repeats containing two 'move steering' commands. First 'move steering' set to 'On for Rotations' with direction 0, speed 100% and rotations 4. Second 'move steering' set to 'On for Rotations' with direction 80, speed 75% and rotations 1.
The resulting program reads: on start, repeat 4 times, steer motors B+C turn ratio 0 speed 100% for 4 rotations, steer motors B+C turn ratio 80 speed 75% for 2 rotations

Fideo o god datrysiad yn y gwaith:

Ystyriwch...

Yn eich barn chi, pam gallai gwerthoedd troi Johnny fod yn wahanol i werthoedd troi cynlluniau robotiaid eraill sy'n defnyddio'r un offer a'r un moduron?

Pe bawn ni'n rhedeg y rhaglen hon ar robot a gafodd ei adeiladu'n union yr un peth, ni fyddem yn gallu gwarantu y byddai'n gweithio. Pam?

Taith Tri:

Beth am i ni ychwanegu effeithiau sain i nodi dechrau a diwedd y rhaglen a luniwyd yn Nhaith Dau.

Y Camau:

Dewiswch yr effaith sain ar gyfer y dechrau

Mewnosodwch yr effaith sain ar ddechrau'r rhaglen

Dewiswch yr effaith sain ar gyfer y diwedd

Mewnosodwch yr effaith sain ar ddiwedd y rhaglen

Defnyddio Meddalwedd Swyddogol Lego Mindstorms

Defnyddio Meddalwedd Microsoft MakeCode

Same program as mission two with a sound block inserted before and after the loop. Both blocks are set to 100% and default play once.
Same program as mission two with 'play sound effect information start' inserted before the repeat loop, and 'play sound effect information stop' after the loop.

Ystyriwch...

Sut gallech chi ddefnyddio effeithiau sain neu ychwanegiadau eraill i'ch helpu i benderfynu a yw rhaglen yn gweithio'n gywir? Chwiliwch am gliwiau trwy edrych ar y mathau o seiniau sydd ar gael.

Taith Pedwar:

Noder - Nid yw hyn yn bosib eto gyda Meddalwedd Microsoft MakeCode.

Rhaglennwch Johnny i ddod o hyd i ffagl Isgoch a symud tuag ati.

Manylion rhaglennu: Mae'r ffagl wedi'i gosod ar sianel 3 ac rydym yn dymuno i Johnny stopio yn union cyn iddo daro'r ffagl

Y Camau:

Dewch o hyd i'r ffagl

Symudwch tuag ato

Stopiwch yn union cyn taro'r ffagl


Er mwyn helpu i benderfynu sut i osod yr elfennau canfod a symud, rhaid i ni ddysgu mwy am sut mae'r synhwyrydd Isgoch yn mesur cyfeiriad y ffagl.

Mae gwerthoedd cyfeiriad y ffagl rhwng -25 (chwith) a 25 (dde).

Ond y broblem yw y gallai'r holl werthoedd rhyngddyn nhw gyfeirio at du blaen neu du ôl y synhwyrydd.

The range of values and their positions in relation to the beacon

Daw'r llun o 'The Lego Mindstorms EV3 Discovery Book' gan Laurens Valk

Felly, os yw gwerth cyfeiriad y ffagl yn negatif, mae'n rhaid i'r robot droi i'r chwith, ond os yw'r gwerth yn bositif, mae'n rhaid iddo droi i'r dde.

Defnyddio Meddalwedd Swyddogol Lego Mindstorms

A loop block with the end instruction set to 'Beacon Proximity of channel 3 at less than 10 threshold value'. Inside this loop is a switch set to 'beacon heading on channel 3 is less than 0', the yes strand has a 'move steering' block set to 'On' with a direction of -50 at 50% speed, the no strand contains a 'move steering' set to 'On' with a direction of 50 at 50% speed.

Fideo o god datrysiad yn y gwaith:

Ystyriwch...

Pam na allwn ni'n syml osod y switsh i 'os 0 symudwch ymlaen, os na, trowch'?

Beth fyddai wedi digwydd pe na byddem yn gorchymyn Johnny i stopio wrth ymyl y ffagl?

Wrth edrych ar y ffordd mae Johnny wedi cael ei adeiladu, pam na allwn ni ddefnyddio gwerth trothwy rhwng 0 a 5 ar gyfer stopio?

Taith Pump:

Lluniwch raglen a fydd yn peri i Johnny ddilyn llinell trwy ddefnyddio'r synhwyrydd lliw mowntiedig ar y blaen.

Manylion rhaglennu: Bydd yn dilyn llinell wen. Bydd y synhwyrydd lliw yn union uwchben dechrau'r llinell yn y safle cychwyn.

Y Camau:

Sganiwch yn gyson i weld y lliw sy'n cael ei ganfod a chadarnhau mai gwyn ydyw.

Os nad yw'n wyn, rhaid ichi addasu'r cyfeiriad i ganfod y llinell unwaith eto.

Ychwanegwch ddolen wastadol i'w gadw i redeg, gan nad oes diwedd wedi'i osod.

Gall fod o help i adolygu sut gwnaethom symud y robot yn nhaith pedwar gan fod egwyddor debyg yn cael ei defnyddio fan hyn, ond gyda mewnbwn synhwyrwydd gwahanol.

Defnyddio Meddalwedd Swyddogol Lego Mindstorms

Defnyddio Meddalwedd Microsoft MakeCode

A forever loop containing a switch set to 'compare colour' for value 3 (white). When true section contains a 'move steering' block set to 'On' in direction -50 at 30% speed. When false section contains a 'move steering' block set to 'On' in direction 50 at 30% speed.
Program reads: forever { if is color sensor 3 detected white then {steer motors B+C turn ratio -100 speed 30% } else { steer motors B+C turn ratio 100 speed 30% } }

Fideo o god datrysiad yn y gwaith:

Ystyriwch...

Sut gallem ni ddefnyddio'r seiniau i brofi canfod y llinell yn y rhaglen?

Pam fyddai'r rhaglen hon yn methu pe bawn ni'n cynyddu'r cyflymdra yn ormodol?

Pam fyddai'r rhaglen hon yn methu pe bai'r llinell wen yn cymryd tro tyn iawn i'r chwith?

Pe bai llinell goch dapiedig yn cael ei rhoi ar draws diwedd y llinell wen, sut byddech chi'n newid y rhaglen i stopio fan hyn?

Taith Chwech:

Rhaglennwch Johnny i lywio trwy ddrysfa gan ddefnyddio ei synhwyrydd Isgoch:

Manylion rhaglennu:

  • Mae 40 yn drothwy da ar gyfer stopio cyn dechrau troi
  • Gellir defnyddio trothwy o 60 i wirio a yw'r troad yn glir ai peidio
  • Mae'r ffigurau canlynol yn berthnasol ar gyfer troi 90° yn yr ardal gaeedig hon:
    • Meddalwedd Lego Mindstorms: gwerth troi o 85 ar gyflymdra o 50% ar gyfer 1 troad
    • Microsoft MakeCode: cymhareb troi o 200 ar gyflymdra o 25% ar gyfer troeon 0.8

Y Camau:

Symudwch ymlaen tan i'r synhwyrydd Isgoch ganfod wal

Trowch yn eich unfan 90°

Gwiriwch a oes wal

Os nad oes wal, dylai symud ymlaen ac ailadrodd

Os oes wal yn cael ei chanfod, rhaid iddo droi 180° i'r cyfeiriad arall cyn symud ymlaen ac ailadrodd

Defnyddio Meddalwedd Swyddogol Lego Mindstorms

Defnyddio Meddalwedd Microsoft MakeCode

The program is all contained within a forever loop and follows this order: 'move steering - On, direction 0 and 25% speed','wait until infrared proximity < 40', 'move steering - On for Rotations, direction 85 at 50% speed for 1 rotation', 'Switch to measure infrared proximity < 60', if yes then 'move steering - On for Rotations, direction -85 at 50% speed for 2 rotations'.
Program is all in a forever loop and reads: forever, { steer motors B+C turn ratio 0 speed 25%, if infrared 4 proxiity < 45 then { steer motors B+C turn ratio -200 speed 25% for 0.8 rotations, if infrared 4 proximity < 60 then {steer motors B+C turn ratio 200 speed 25% for 1.6 rotations}}}

Fideo o god datrysiad yn y gwaith:

Ystyriwch...

Pam na fyddai'r rhaglen hon yn gweithio pe bai pengaeadau (dead-ends) yn y ddrysfa?

Pam byddai'n arfer gwell i ysgrifennu rhaglen nad yw wedi'i chynllunio'n unig ar gyfer llywio trwy'r ddrysfa hon o droeon sgwâr onglog?