Pelajaran 3: Memindahkan Dua Kubus
Pada pelajaran sebelumnya, Anda telah mempelajari cara memprogram Lengan 6-Axis untuk mengambil dan meletakkan sebuah Kubus di atas palet. Dalam pelajaran ini, Anda akan melanjutkan apa yang telah Anda pelajari untuk memindahkan beberapa Kubus ke palet. Anda akan mempelajari cara:
- Rencanakan lokasi penurunan barang-barang berbentuk kubus yang akan Anda tempatkan di atas palet.
- Programkan lengan 6-sumbu untuk memindahkan dua kubus dengan sukses ke palet.
Pada akhir Pelajaran, Anda akan melanjutkan proyek Anda untuk mengambil dan menempatkan empat Kubus di atas palet dalam Aktivitas tersebut.

Memikirkan Penempatan di Atas Palet
Pada pelajaran sebelumnya, Anda telah memindahkan satu kubus ke palet, dan menempatkannya di tengah. Salah satu keuntungan mengirimkan barang dalam jumlah besar menggunakan palet adalah banyak barang dapat diangkut sekaligus. Agar dapat melakukan hal ini secara efektif, objek-objek tersebut perlu diatur dengan cara yang efisien sehingga perusahaan dapat memuat lebih banyak barang di setiap palet yang mereka kirim.
Menggunakan palet bukanlah cara yang efisien dan mahal untuk memindahkan satu atau dua benda kecil, seperti menempatkan satu Kubus di tengah palet. Namun, menempatkan lebih banyak Cube di atas palet akan membuat pengiriman lebih efisien dan hemat biaya. 
Untuk melakukan ini, kita perlu memikirkan di mana setiap Kubus akan ditempatkan di atas palet. Sepanjang pelajaran ini, Anda akan mempelajari cara memprogram Lengan 6-Axis untuk memindahkan beberapa Kubus dan menempatkannya secara efektif di atas palet secara bersamaan.
Letakkan Kubus Pertama
Proyek Anda dari Pelajaran 2 memindahkan satu Kubus ke tengah pada palet. Langkah pertama untuk menempatkan beberapa Kubus adalah menyesuaikan lokasi penurunan untuk Kubus pertama – menempatkannya di sudut (pojok dari palet.
Buka proyek Anda dari Pelajaran 2 di VEXcode EXP.

Ubah nama proyek menjadi Unit 7 Lesson 3,dan simpan ke perangkat Anda.

Letakkan Kubus di sudut palet.
Gerakkan Lengan 6-Axis secara manual sehingga Magnet menyentuh bagian atas Kubus.

Pastikan Lengan 6-Axis terhubung ke VEXcode.
Pilih ikon Monitor di Toolbar untuk membuka Monitor.

Catat koordinat x dan y dari Konsol Monitor di buku catatan teknik Anda. Ini akan menjadi koordinat x dan y lokasi pengantaran Kubus.
Ingatlah bahwa Lengan 6-Axis akan bergerak di atas lokasi penurunan sebelum menurunkan Kubus ke palet. Artinya, Anda tidak perlu mencatat nilai z.

Masukkan koordinat x dan y dari lokasi pengantaran baru ke dalam proyek Anda. Koordinat z harus tetap sama, agar Lengan 6-Axis tetap berada di atas lokasi penurunan.
Pastikan Anda menggunakansebagai koordinat Anda, karena koordinat yang ditampilkan di sini hanyalah contoh dan mungkin berbeda dari koordinat yang Anda rekam sendiri.

Pastikan Lengan 6-Axis terhubung ke VEXcode dan Cube ditempatkan di zona pemuatan.
Jalankan proyek untuk mengujinya. Amati perilaku Lengan 6-Axis. Apakah alat tersebut mengambil dan meletakkan Kubus di sudut palet sesuai yang diharapkan? Mengapa ya atau mengapa tidak?

Hentikan proyek ketika Lengan 6-Axis telah berhenti bergerak. Catatlah pengamatan Anda di buku catatan teknik Anda.

Memindahkan Kubus Kedua
Sekarang setelah Cube pertama berada di lokasi pengiriman yang baru, ada ruang di palet untuk menempatkan cube tambahan. Perilaku yang sama yang digunakan untuk memindahkan Kubus pertama akan diulangi untuk memindahkan Kubus kedua. Lengan 6-Axis perlu bergerak ke lokasi pengambilan yang sama, mengaktifkan Magnet, memindahkan Kubus ke palet, dan melepaskan Kubus.
Ada beberapa strategi pengkodean yang dapat Anda coba untuk membantu memindahkan kedua Kubus dengan sukses.
Menambahkan Blok Pengulangan
Mengetahui bahwa serangkaian perilaku akan diulang, strategi pertama yang harus dicoba adalah menggunakan blok Ulangi. Seperti yang telah Anda pelajari di Unit sebelumnya, blok Repeat berguna untuk mengulang blok atau tumpukan blok dalam sebuah proyek.
Tambahkan blok Repeat ke proyek Anda di bawah blok Set end effector , seperti yang ditunjukkan dalam video ini.
Seret blok Pindahkan Kubus ke palet Komentar ke dalam blok Ulangi , seperti yang ditunjukkan dalam video ini. Ini akan menyeret semua blok berikutnya ke dalam blok Ulangi juga.
Sekarang, semua blok yang dibutuhkan untuk mengambil dan menempatkan sebuah Kubus dari lokasi pengambilan ke sudut palet dapat diulangi.
Atur parameter di blok Repeat menjadi 2.
Karena Anda mencoba memindahkan dua Kubus ke palet, perilaku tersebut akan diulang dua kali.

Bacalah kode yang telah Anda buat, dan prediksikan apa yang akan dilakukan oleh Lengan 6-Axis saat proyek dijalankan.
Catat prediksi Anda di buku catatan teknik Anda. Anda mungkin ingin membuat sketsa jalur Lengan 6-Axis, atau menggambar di mana Kubus akan ditempatkan di atas palet.

Pastikan Lengan 6-Axis terhubung ke VEXcode.
Jalankan proyek untuk mengujinya. Amati perilaku Lengan 6-Axis saat proyek dijalankan.

Hentikan proyek saat Lengan 6-Axis selesai bergerak. Catatlah pengamatan Anda di buku catatan teknik Anda.
Apakah lengan 6-sumbu berhasil memindahkan kedua kubus ke palet? Mengapa ya atau mengapa tidak?

Hal ini menyebabkan kubus kedua tidak bergerak sesuai rencana, dan menimbulkan kesalahan. Karena Kubus pertama ditempatkan pada posisi tersebut, Kubus kedua tidak dapat ditempatkan di lokasi yang sama. Lengan 6-Axis tidak dapat mencapai lokasi tersebut, sehingga terjadi kesalahan.
Untuk menempatkan Kubus kedua di atas palet, kita perlu menggeser Kubus ini ke posisi terbuka di atas palet.
Geser kubus kedua relatif terhadap kubus pertama.
Dengan mengetahui posisi Kubus pertama di atas palet, berarti Kubus berikutnya dapat ditempatkan relatif terhadap Kubus pertama. Anda telah mempelajari tentang gerakan relatif di Unit sebelumnya, dan sekarang dapat menerapkan konsep-konsep tersebut untuk membantu menempatkan Kubus kedua.
Untuk mencapai sudut palet berikutnya, Lengan 6-Axis akan bergerak ke arah positif sepanjang sumbu y. 
Dengan menggunakan informasi yang diketahui tentang ukuran Kubus, pergeseran yang dibutuhkan untuk menempatkan Kubus kedua dapat ditentukan. Offset adalah selisih antara lokasi saat ini dan lokasi yang diinginkan dari suatu objek. Pada palet, offset untuk Kubus kedua adalah jarak antara pusat Kubus pertama dan pusat Kubus kedua di lokasi yang diinginkan.
Mengingat sebuah kubus memiliki lebar 25 mm, kita dapat memperkirakan bahwa offset-nya adalah 50 mm.
Sekarang setelah Anda mengetahui jarak dan arah pergerakan relatif yang dibutuhkan, informasi ini dapat ditambahkan ke proyek.
Tambahkan blokIncrement positiondengan menyeretnya dari Toolbar dan ke tengah bagian komentar blok Move the Cube to the pallet, seperti yang ditunjukkan dalam video ini.
Atur parameter y menjadi 50. Ini menunjukkan pergerakan relatif sebesar 50 mm sepanjang sumbu y.

Baca kode tersebut, dan prediksi perilaku Lengan 6-Axis.
Catat prediksi Anda di buku catatan teknik Anda. Apakah menurut Anda proyek ini akan berhasil menempatkan kedua Kubus di lokasi yang diinginkan? Mengapa ya atau mengapa tidak?

Pastikan Lengan 6-Axis terhubung ke VEXcode. Jalankan proyek untuk mengujinya.
Amati perilaku Lengan 6-Axis.

Hentikan proyek ketika Lengan 6-Axis selesai bergerak. Catatlah pengamatan Anda di buku catatan teknik Anda.
Apakah pengamatan Anda sesuai dengan prediksi Anda? Apakah kedua kubus tersebut sudah dipindahkan ke lokasi yang dimaksud di atas palet? Mengapa ya atau mengapa tidak?

Seperti yang mungkin sudah Anda duga, proyek ini juga tidak memindahkan kedua Kubus ke lokasi yang seharusnya. Blok Increment positionberhasil menggerakkan Lengan 6-Axis ke posisi yang diinginkan untuk Kubus kedua. Namun, karena semua perilaku diulang,danKubus dipindahkan ke lokasi ini. Hal ini menimbulkan kesalahan yang sama seperti proyek sebelumnya, hanya saja di lokasi yang berbeda pada palet.
Tujuannya adalah menempatkan Kubus pertama di lokasi pertama dan Kubus kedua di lokasi kedua pada palet. Untuk melakukan ini dengan sukses, proyek ini perlu melacak Cube mana yang sedang dipindahkan. Jika Kubus pertama dipindahkan, maka Kubus tersebut harus dipindahkan ke lokasi pertama. Jika Kubus kedua dipindahkan, maka dapat ditempatkan di lokasi kedua.
Memindahkan Dua Kubus Menggunakan Variabel dan Blok If then
Untuk melacak Kubus mana yang sedang dipindahkan, sebuah variabel dapat dibuat dan digunakan dalam proyek untuk pada dasarnya 'menghitung' Kubus saat sedang dimanipulasi. Variabel dapat digunakan untuk menyimpan informasi tentang Kubus mana yang sedang dipindahkan. Informasi ini kemudian dapat digunakan untuk mengambil keputusan dalam proyek –jikaLengan 6-Axis memindahkan Kubus kedua,makatersebut harus memindahkannya ke lokasi kedua di palet.
Buat variabel dan beri nama CubeCount. Pilih Kirim untuk membuat variabel.
Anda dapat meninjau Unit 6 Pelajaran 2 untuk pengingat tentang cara membuat variabel di VEXcode.

Tambahkan blok Set variable ke proyek di atas blok Repeat , seperti yang ditunjukkan dalam video ini.
Atur parameter ke 1. Pastikan variabel CubeCount terpilih di menu tarik-turun.
Saat proyek dimulai, Cube pertama akan diambil. Karena tujuan variabel ini adalah untuk memberi nomor pada Kubus yang sedang dipindahkan, maka variabel ini perlu diatur ke '1' sebagai permulaan.

Sebelumnya, blokposisiIncrement ditambahkan untuk memindahkan Lengan 6-Axis ke lokasi penurunan kedua. Untuk memindahkan Kubus pertama ke lokasi penurunan, blok ini perlu dihapus.
Klik kanan pada blok Increment positiondan hapus, seperti yang ditunjukkan dalam video ini.
Tambahkan blok Ubah variabel ke bagian bawah blok Ulangi , seperti yang ditunjukkan dalam video ini.
Saat proyek dijalankan, Cube pertama akan dipindahkan ke lokasi pengantaran. Menambahkan blok Change variable di sini akan menyebabkan CubeCount meningkat setelah Cube pertama dikirimkan. Ketika blok Repeat kembali untuk mengambil Kubus kedua, variabel tersebut bertambah '2', yang menunjukkan bahwa Kubus kedua sedang dipindahkan.
Sekarang setelah proyek ini menyimpan informasi tentang jumlah Kubus, kita dapat menggunakan informasi tersebut untuk mengambil keputusan. Blok If then memungkinkan kita untuk mengajukan pertanyaan dalam sebuah proyek, dan menggunakan informasi (seperti nilai suatu variabel) untuk membuat keputusan. 
Blok If then adalah blok C yang menerima blok pelapor Boolean sebagai suatu kondisi. Blok Boolean mengembalikan suatu kondisi sebagai TRUE atau FALSE, dan dapat dimasukkan ke dalam blok apa pun dengan input heksagonal. Jika kondisi tersebut dilaporkan sebagai TRUE, maka blok-blok di dalam blok C akan dijalankan. Jika kondisi dilaporkan sebagai FALSE, blok If then akan dilewati dalam proyek.
Dalam hal ini, kondisi yang kita cari adalah agar variabel CubeCount bernilai 2. Jikavariabel CubeCount adalah 2,makaLengan 6-Axis perlu bergerak ke posisi kedua pada palet.
Mari kita pikirkan di bagian mana dalam proyek tersebut keputusan itu perlu dibuat. Proyek ini akan mengambil Cube di zona pemuatan, lalu bergerak ke atas lokasi penurunan penumpang. JikaCubeCount adalah 2, makamakaLengan 6-Axis perlu melakukan perilaku tambahan untuk berpindah ke posisi palet kedua. 
Tambahkan blok If then ke proyek seperti yang ditunjukkan di sini.

Tambahkan blok Sama dengan ke dalam ruang heksagonal di blok Jika maka , seperti yang ditunjukkan dalam video ini.
Tambahkan variabel CubeCount ke sisi kiri operator Sama dengan . Atur sisi kanan operator sama dengan menjadi 2, seperti yang ditunjukkan dalam video ini.
Jika variabel CubeCount sama dengan 2, kondisi Boolean akan dilaporkan sebagai TRUE. Jika CubeCount bukan 2, maka kondisi Boolean akan dilaporkan sebagai FALSE.
Tambahkan blok Increment positiondi dalam blok C seperti yang ditunjukkan dalam video ini.
Atur parameter y dari blok Increment position menjadi 50.
Ketika kondisi blok If then terpenuhi, blok Increment position di dalam blok If then akan dieksekusi. Ini berarti bahwa jika CubeCount adalah 2, maka Lengan 6-Axis akan melakukan pergerakan relatif ke posisi kedua pada palet.

Bacalah kode tersebut dan prediksikan apa yang akan dilakukan oleh Lengan 6-Axis saat proyek dijalankan.
Catat prediksi Anda di buku catatan teknik Anda.

Pastikan Lengan 6-Axis terhubung ke VEXcode. Jalankan proyek untuk mengujinya.
Amati perilaku Lengan 6-Axis saat proyek berjalan.

Hentikan proyek ketika Lengan 6-Axis telah selesai bergerak. Catatlah pengamatan Anda di buku catatan teknik Anda.
Apakah lengan 6-sumbu bergerak sesuai prediksi Anda? Apakah kedua Cube tersebut dipindahkan ke palet sesuai rencana? Mengapa ya atau mengapa tidak?

Untuk Informasi Anda
Anda mungkin ingin menjalankan proyek beberapa kali, sehingga Anda dapat memperhatikan blok mana yang berjalan saat Lengan 6-Axis bergerak. Perhatikan sorotan di sekitar blok saat dijalankan dalam proyek, untuk membantu Anda lebih memahami kapan blok If then dijalankan. Anda juga dapat menggunakan fitur Langkah untuk menjalankan proyek satu blok demi satu blok, untuk membantu Anda melihat alur proyek dengan blok If then dengan lebih jelas. 
Ingat bahwa Anda dapat menambahkan variabel ke Monitor, untuk membantu melihat nilai CubeCount saat proyek sedang berjalan. Untuk menambahkan variabel ke Monitor, seret variabel ke ikon Monitor di Ruang Kerja, seperti yang ditunjukkan dalam video ini. Saat menjalankan proyek, pastikan untuk memperhatikan variabel di Monitor, untuk membantu Anda melihat hubungan antara nilai variabel dan alur proyek.
Meninjau Proyek
Mari kita tinjau kembali proses pemecahan masalah yang digunakan untuk menyelesaikan tantangan menempatkan dua Kubus di atas palet. Ada beberapa iterasi proyek untuk membuat Lengan 6-Axis dapat menggerakkan kedua Kubus sesuai yang diinginkan:
- Blok Repeat ditambahkan untuk mengulang perilaku yang diperlukan untuk mengambil, memindahkan, dan mengirimkan sebuah Kubus ke palet.
- Blok dengan posisi penambahanIncrement)ditambahkan untuk memindahkan Kubus kedua ke posisi terbuka di atas palet.
- Sebuah variabel ditambahkan untuk menghitung jumlah Kubus, sehingga keputusan dapat dibuat berdasarkan Kubus mana yang sedang dipindahkan.
- Blok If then ditambahkan untuk membuat keputusan berdasarkan nilai variabel.
Semua iterasi ini secara bersama-sama menciptakan sebuah proyek yang berhasil menangani dan mengirimkan kedua Cube tersebut dengan sukses. Saat Kubus kedua diambil, Lengan 6-Axis kembali menggerakkan Kubus tersebut ke atas lokasi penurunan awal di atas palet. Kemudian sebuah keputusan dibuat.
Karena CubeCount adalah '2', blok di dalam blok Jika maka berjalan, menggerakkan Kubus sepanjang sumbu y ke posisi yang diinginkan di palet.
Proses iteratif yang Anda lakukan sepanjang Pelajaran ini adalah sesuatu yang akan terus Anda lakukan setiap kali Anda menyelesaikan tantangan dengan Lengan 6-Axis. Penting untuk diingat bahwa sebagian besar tantangan pemrograman tidak akan terselesaikan dengan sempurna pada percobaan pertama. Proses perencanaan, pembangunan, pengujian, dan evaluasi ini dapat mengarahkan kelompok Anda untuk menemukan solusi kreatif. Sebagian besar tantangan dapat diatasi dengan berbagai cara, jadi dengan terlibat dalam proses ini secara kolaboratif, Anda dapat menemukan strategi yang paling sesuai untuk kelompok Anda.
Aktivitas
Setelah Anda memindahkan dua Cube dari zona pemuatan ke palet, Anda akan mempraktikkan keterampilan ini. Dalam aktivitas ini, Anda akan melanjutkan proyek Anda dari Pelajaran ini untuk memprogram Lengan 6-Axis agar dapat memindahkan empat Kubus ke palet.
Aktivitas:Kodekan Lengan 6-Axis untuk menempatkan empat Kubus pada satu palet.
- Rencanakan bagaimana Anda akan mengembangkan proyek Anda untuk memprogram Lengan 6-Axis agar mengambil Kubus tambahan dari zona pemuatan dan menempatkannya di atas palet bersama kelompok Anda. Pastikan Anda semua sepakat tentang pendekatan yang akan digunakan sebelum memulai pengeditan proyek.
- Catat rencana Anda di buku catatan teknik Anda.
- Ubah nama proyek AndaUnit 7 Pelajaran 3 Aktivitasdan simpan ke perangkat Anda sebelum Anda mulai mengedit proyek.
- Edit proyek di VEXcode agar sesuai dengan rencana yang telah disepakati kelompok Anda.
- Jalankan proyek untuk mengujinya. Setelah setiap kubus ditempatkan, letakkan kubus kedua, ketiga, dan keempat secara manual di zona pemuatan.
- Apakah Lengan 6-Axis berhasil menggerakkan Kubus sesuai yang Anda inginkan? Seharusnya ada empat kubus di atas palet. Jika tidak, lanjutkan mengedit proyek hingga Anda berhasil menempatkan keempat Kubus tersebut.
Periksa Pemahaman Anda
Sebelum melanjutkan ke Pelajaran berikutnya, pastikan Anda memahami konsep-konsep dalam Pelajaran ini dengan menjawab pertanyaan-pertanyaan berikut di buku catatan teknik Anda.
Periksa Pemahaman Anda pertanyaan >(Google Doc / .docx / .pdf)
PilihBerikutnya >untuk melanjutkan ke Aktivitas Menggabungkan Semuanya.