Lekce 3: Přesun dvou kostek
V předchozí lekci jste se naučili, jak naprogramovat 6osé rameno pro zvedání a umisťování krychle na paletu. V této lekci navážete na to, co jste se naučili, a procvičíte si přesun více kostek na paletu. Naučíte se, jak:
- Naplánujte si místa pro odložení kostek, které umístíte na paletu.
- Naprogramujte 6osé rameno tak, aby se dvě kostky úspěšně přesunuly na paletu.
Na konci lekce budete rozvíjet svůj projekt a v aktivitě budete na paletu sebírat a umisťovat čtyři kostky.

Přemýšlení o umístění na paletě
V předchozí lekci jste přesunuli jednu kostku na paletu a umístili ji do středu. Jednou z výhod přepravy velkého množství zboží pomocí palety je, že lze přepravit mnoho předmětů najednou. Aby toho bylo možné efektivně dosáhnout, musí být tyto předměty uspořádány efektivním způsobem, aby společnosti mohly na každou přepravovanou paletu zabalit více kusů.
Paleta by byla neefektivním a drahým způsobem, jak přemístit jeden nebo dva malé předměty, podobně jako v případě umístění jedné kostky do středu palety. Umístění více kostek na paletu však zefektivňuje a zlevňuje přepravu. 
Abychom to mohli udělat, budeme muset promyslet, kam bude každá z kostek na paletě umístěna. V této lekci se naučíte, jak naprogramovat 6osé rameno pro pohyb více kostek a jejich efektivní umístění společně na paletu.
Umístěte první kostku
Váš projekt z 2 posunul jednu kostku do palety. Prvním krokem k umístění více kostek je úprava místa pro odložení první kostky – její umístění do rohu palety.
Otevřete si projekt z lekce 2 ve VEXcode EXP.

Přejmenujte projekt na Unit 7 Lesson 3,a uložte jej do svého zařízení.

Umístěte kostku na roh palety.
Ručně posuňte 6osé rameno tak, aby se magnet dotýkal horní části krychle.

Ujistěte se, že je 6osé rameno připojeno k VEXcode.
Výběrem ikony Monitor na panelu nástrojů otevřete Monitor.

Zaznamenejte si souřadnice x a y z monitorovací konzole do svého technického zápisníku. Toto budou souřadnice x a y místa vyložení krychle.
Nezapomeňte, že 6osé rameno se před přesunutím kostky dolů na paletu přesune nad místo odložení. To znamená, že nemusíte zaznamenávat hodnotu z.

Zadejte do projektu souřadnice x a y nového místa odložení. Souřadnice z by měla zůstat stejná, aby 6osé rameno zůstalo nad místem odsazení.
Nezapomeňte použít souřadnice , protože zde uvedené souřadnice slouží jako příklad a mohou se lišit od vašich vlastních zaznamenaných souřadnic.

Ujistěte se, že je 6osé rameno připojeno k VEXcode a kostka je umístěna v nakládací zóně.
Spusťte projekt pro jeho otestování. Pozorujte chování 6osého ramene. Zvedne a umístí kostku na roh palety, jak bylo zamýšleno? Proč ano nebo proč ne?

Zastavte projekt, jakmile se 6osé rameno zastaví. Svá pozorování si zaznamenejte do technického sešitu.

Přesun druhé kostky
Nyní, když je první kostka na novém místě odevzdání, je na paletě místo pro umístění dalších kostek. Stejné chování použité k přesunutí první kostky se bude opakovat i pro přesunutí druhé. 6osé rameno se bude muset přesunout na stejné místo pro uchopení, zachytit magnet, přesunout kostku na paletu a kostku uvolnit.
Existuje několik kódovacích strategií, které můžete vyzkoušet, abyste obě kostky úspěšně přesunuli.
Přidání bloku opakování
Vzhledem k tomu, že se sekvence chování bude opakovat, je první strategií, kterou je třeba vyzkoušet, použití bloku Opakování. Jak jste se dozvěděli v předchozí lekci, blok Repeat je užitečný pro opakování bloků nebo stohování bloků v projektu.
Přidejte do projektu blok Repeat pod blok Set end effector , jak je znázorněno v tomto videu.
Přetáhněte blok Move the Cube to the palette Comment do bloku Repeat , jak je znázorněno v tomto videu. Tím se všechny následující bloky přetáhnou také do bloku Repeat.
Nyní lze zopakovat všechny bloky potřebné k vyzvednutí a umístění kostky z místa vyzvednutí do rohu palety.
Nastavte parametr v bloku Repeat na hodnotu 2.
Protože se snažíte přesunout dvě kostky na paletu, chování se bude opakovat dvakrát.

Přečtěte si kód, který jste vytvořili, a předpovězte, co bude 6osé rameno dělat po spuštění projektu.
Zaznamenejte si svou předpověď do svého technického sešitu. Možná budete chtít načrtnout dráhu 6osého ramene nebo nakreslit, kam budou kostky umístěny na paletě.

Ujistěte se, že je 6osé rameno připojeno k VEXcode.
Spusťte projekt pro jeho otestování. Sledujte chování 6osého ramene během spuštění projektu.

Zastavte projekt, jakmile se 6osé rameno dokončí. Svá pozorování si zaznamenejte do technického sešitu.
Přesunulo 6osé rameno úspěšně obě kostky na paletu? Proč ano nebo proč ne?

Tím se druhá kostka nepohnula podle plánu a došlo k chybě. Protože první kostka byla umístěna na této pozici, druhá kostka nemůže být také umístěna na stejném místě. Šestiosé rameno se nemohlo dostat na dané místo, takže došlo k chybě.
Abychom umístili druhou kostku na paletu, budeme ji muset posunout do otevřené polohy na paletě.
Posuňte druhou krychli vzhledem k první
Znalost polohy první kostky na paletě znamená, že další kostka může být umístěna vzhledem k první. V předchozí lekci jste se naučili o relativním pohybu a nyní můžete tyto koncepty aplikovat k umístění druhé krychle.
Aby se dosáhlo dalšího rohu palety, 6osé rameno se bude pohybovat v kladném směru podél osy y. 
Pomocí toho, co je známo o velikosti krychle, lze určit odsazení potřebné k umístění druhé krychle. Offset je rozdíl mezi aktuální polohou a požadovanou polohou objektu. Na paletě je odsazení druhé krychle vzdáleností mezi středem první krychle a středem druhé krychle v jejím požadovaném umístění.
Vzhledem k tomu, že krychle má šířku 25 mm, můžeme odhadnout, že odsazení je přibližně 50 mm.
Nyní, když znáte vzdálenost a směr potřebného relativního pohybu, můžete tyto informace přidat do projektu.
Přidejte blok s přírůstkema pozicipřetažením z panelu nástrojů doprostřed sekce komentářů „Přesunout krychli do palety“ v bloku, jak je znázorněno v tomto videu.
Nastavte parametr y na 50. To značí relativní pohyb o 50 mm podél osy y.

Přečtěte si kód a předpovězte chování 6osého ramene.
Zaznamenejte si svou předpověď do svého technického sešitu. Myslíte si, že tento projekt úspěšně umístí obě kostky na požadovaná místa? Proč ano nebo proč ne?

Ujistěte se, že je 6osé rameno připojeno k VEXcode. Spusťte projekt a otestujte ho.
Pozorujte chování 6osého ramene.

Zastavte projekt, jakmile se 6osé rameno dokončí v pohybu. Svá pozorování si zaznamenejte do technického sešitu.
Shodovalo se vaše pozorování s vaší předpovědí? Jsou obě kostky přesunuty na určená místa na paletě? Proč ano nebo proč ne?

Jak jste asi předvídali, tento projekt také nepřesunuje obě kostky na jejich zamýšlená místa. Blok s přírůstkem v pozicisprávně posunul 6osé rameno do požadované polohy pro druhou krychli. Protože se však všechna chování opakovala,byly přesunuty na toto místo. Toto vytvořilo stejnou chybu jako v předchozím projektu, jen na jiném místě na paletě.
Cílem je umístit první kostku na první místo a druhou kostku na druhé místo na paletě. Aby to projekt úspěšně provedl, musí sledovat, která krychle se přesouvá. Pokud se přesouvá první kostka, měla by jít na první místo. Pokud se přesouvá druhá kostka, lze ji umístit na druhé místo.
Přesun dvou krychlí pomocí proměnných a bloku If then
Pro sledování toho, která kostka se pohybuje, lze v projektu vytvořit proměnnou a použít ji k v podstatě „počítání“ kostek při manipulaci s nimi. Proměnnou lze použít k uložení informací o tom, která krychle se přesouvá. Tyto informace pak lze použít k rozhodnutí v rámci projektu –pokud6osé rameno pohybuje druhou kostkou,pakby ji mělo přesunout na druhé místo na paletě.
Vytvořte proměnnou a pojmenujte ji CubeCount. Vyberte Odeslat pro vytvoření proměnné.
Můžete se vrátit lekci 6. lekce 2. , kde si připomenete, jak vytvořit proměnnou ve VEXcode.

Přidejte blok Set variable do projektu nad blok Repeat , jak je znázorněno v tomto videu.
Nastavte parametr na 1. Ujistěte se, že v rozbalovací nabídce je vybrána proměnná CubeCount.
Po zahájení projektu bude vyzvednuta první kostka. Protože účelem této proměnné je očíslovat kostku, která se přesouvá, je nutné ji pro začátek nastavit na '1'.

Dříve byl přidán blok s přírůstkema pozicipro přesun 6osého ramene do druhého odkládacího místa. Aby bylo možné přesunout první kostku na místo odložení, je třeba tento blok odstranit.
Klikněte pravým tlačítkem myši na blok s Increment positiona smažte jej, jak je znázorněno v tomto videu.
Přidejte blok Change variable na konec bloku Repeat , jak je znázorněno v tomto videu.
Po spuštění projektu bude první kostka přesunuta na místo odložení. Přidání bloku Change variable zde způsobí, že se po doručení první krychle zvýší hodnota CubeCount. Když se blok Repeat vrátí zpět a vyzvedne druhou kostku, proměnná se zvýší o '2', což znamená, že se druhá kostka pohybuje.
Nyní, když projekt ukládá informace o počtu kostek, můžeme tyto informace použít k rozhodnutí. Blok Pokud pak nám umožňuje položit otázku v rámci projektu a použít informace (například hodnotu proměnné) k rozhodnutí. 
Blok If then je blok C, který přijímá booleovské reportérové bloky jako podmínku. Booleovský blok vrací podmínku buď jako PRAVDA, nebo NEPRAVDA a vejde se do libovolného bloku s hexagonálním vstupem. Pokud je podmínka hlášena jako PRAVDA, pak se bloky v bloku C spustí. Pokud je podmínka hlášena jako NEPRAVDA, blok If then bude v projektu přeskočen.
V tomto případě hledáme podmínku, aby proměnná CubeCount měla hodnotu 2. Pokud je proměnnáCubeCount CubeCount rovna, pakse 5 6osé rameno musí přesunout do druhé polohy na paletě.
Zamysleme se nad tím, kde v projektu je třeba toto rozhodnutí učinit. Projekt vyzvedne kostku v nakládací zóně a poté se přesune nad místo vyložení. Pokud jeCubeCount 2,pakbude muset 6osé rameno provést dodatečný krok, aby se přesunulo na druhou pozici palety. 
Přidejte do projektu blok If then , jak je znázorněno zde.

Přidejte blok Rovná se do šestiúhelníkového prostoru v bloku Pokud pak , jak je znázorněno v tomto videu.
Přidejte proměnnou CubeCount na levou stranu operátoru Equal to . Nastavte pravou stranu operátoru Rovná se na 2, jak je znázorněno v tomto videu.
Pokud je proměnná CubeCount rovna 2, booleovská podmínka bude hlášena jako TRUE. Pokud hodnota CubeCount není 2, pak se booleovská podmínka ohlásí jako NEPRAVDA.
Přidejte blok s přírůstkem a pozicidovnitř bloku C, jak je znázorněno v tomto videu.
Nastavte parametr y bloku Increment position na 50.
Pokud je splněna podmínka bloku If then , provede se blok Increment position uvnitř bloku If then. To znamená, že pokud je CubeCount roven 2, pak se 6osé rameno relativně přesune do druhé polohy na paletě.

Přečtěte si kód a předpovězte, co bude 6osé rameno dělat po spuštění projektu.
Zaznamenejte si svou předpověď do svého technického sešitu.

Ujistěte se, že je 6osé rameno připojeno k VEXcode. Spusťte projekt a otestujte ho.
Během běhu projektu pozorujte chování 6osého ramene.

Zastavte projekt, jakmile se 6osé rameno dokončí. Svá pozorování si zaznamenejte do technického sešitu.
Pohybovalo se 6osé rameno podle vašich předpovědí? Byly obě kostky přesunuty na paletu podle plánu? Proč ano nebo proč ne?

Pro vaši informaci
Možná budete chtít projekt spustit vícekrát, abyste mohli věnovat pozornost blokům, které se běží při pohybu 6osého ramene. Hledejte zvýraznění kolem bloků, které jsou v projektu spouštěny, abyste lépe pochopili, kdy se blok If then spouští. Můžete také použít funkci Krok ke spuštění projektu po jednotlivých blokech, abyste lépe viděli tok projektu s blokem If then. 
Nezapomeňte, že do Monitoru můžete přidat proměnnou, která vám pomůže vidět hodnotu CubeCount během běhu projektu. Chcete-li do Monitoru přidat proměnnou, přetáhněte ji do ikony Monitor v pracovním prostoru, jak je znázorněno v tomto videu. Během spuštění projektu nezapomeňte sledovat proměnnou v Monitoru, abyste viděli souvislost mezi hodnotou proměnné a průběhem projektu.
Kontrola projektu
Pojďme si zopakovat proces řešení úlohy, který byl použit k vyřešení úkolu umístění dvou kostek na paletu. Projekt prošel několika iteracemi, aby se 6osé rameno přimělo pohybovat oběma kostkami podle plánu:
- Byl přidán blok Repeat pro opakování chování potřebného k vyzvednutí, přesunutí a doručení kostky na paletu.
- Byl přidán blok s přírůstkema pozicipro přesun druhé krychle do otevřené polohy na paletě.
- Byla přidána proměnná pro počítání kostek, aby bylo možné rozhodnout na základě toho, která kostka se přesouvá.
- Byl přidán blok If then pro rozhodování na základě hodnoty proměnné.
Všechny tyto iterace dohromady vytvořily projekt, který úspěšně navázal na obě Cube a dodal je. Když byla zvednuta druhá kostka, 6osé rameno ji opět přesunulo nad původní místo odložení na paletě. Pak bylo učiněno rozhodnutí.
Protože CubeCount je '2', blok uvnitř bloku Pokud pak se pohne a posouvá krychli podél osy y do požadované polohy na paletě.
Iterativní proces, který jste v této lekci prováděli, budete dělat pokaždé, když budete řešit problém s 6osým ramenem. Je důležité si uvědomit, že většina kódovacích problémů nebude dokonale vyřešena na první pokus. Tento proces plánování, budování, testování a hodnocení může vaši skupinu vést k nalezení kreativních řešení. Většinu problémů lze vyřešit několika způsoby, takže společným zapojením se do tohoto procesu můžete najít strategii, která pro vaši skupinu nejlépe funguje.
Aktivita
Nyní, když jste přesunuli dvě kostky z nakládací zóny na paletu, si procvičíte tyto dovednosti. V této aktivitě navážete na svůj projekt z této lekce a naprogramujete 6osé rameno, které přesune čtyři kostky na paletu.
Aktivita:Naprogramujte 6osé rameno tak, aby umístilo čtyři kostky na jednu paletu.
- Naplánujte si, jak budete ve svém projektu dále rozvíjet kódování 6osého ramene, abyste mohli zvednout další kostku z nakládací zóny a umístit ji na paletu se svou skupinou. Než začnete s úpravami projektu, ujistěte se, že se všichni shodnete na svém přístupu.
- Zdokumentujte svůj plán do svého technického sešitu.
- Přejmenujte svůj projektJednotka 7 Lekce 3 Aktivitaa uložte si jej do zařízení, než začnete projekt upravovat.
- Upravte projekt ve VEXcode tak, aby odpovídal plánu, na kterém se vaše skupina dohodla.
- Spusťte projekt a otestujte ho. Jakmile je každá kostka umístěna, ručně umístěte druhou, třetí a čtvrtou kostku do nakládací zóny.
- Pohybuje 6osé rameno kostkami úspěšně podle vašeho záměru? Na paletě by měly být čtyři kostky. Pokud ne, pokračujte v úpravách projektu, dokud úspěšně neumístíte všechny čtyři kostky.
Ověřte si své znalosti
Než přejdete k další lekci, ujistěte se, že rozumíte konceptům v této lekci, a to zodpovězením následujících otázek ve svém technickém sešitě.
Otázky k prověření vašich znalostí >(dokument Google / .docx / .pdf)
VyberteDalší >a přejděte k aktivitě Sestavení všeho dohromady.