Halo, Habr! Kita sudah tentang platform LEGO MINDSTORMS Education EV3. Tujuan utama dari platform ini adalah belajar melalui contoh-contoh praktis, mengembangkan keterampilan STEAM dan mengembangkan pola pikir teknik. Dapat digunakan untuk pekerjaan laboratorium untuk mempelajari mekanika dan dinamika. Bangku laboratorium yang terbuat dari batu bata LEGO dan utilitas untuk mencatat dan memproses data membuat eksperimen menjadi lebih menarik dan visual serta membantu anak-anak lebih memahami fisika. Misalnya, siswa dapat mengumpulkan data titik leleh dan menggunakan aplikasi untuk mengaturnya dan menyajikannya dalam grafik. Tapi ini baru permulaan: hari ini kami akan memberi tahu Anda cara melengkapi set ini dengan lingkungan pemrograman MicroPython dan menggunakannya untuk mengajarkan robotika.

Pelajari pemrograman menggunakan EV3
Anak sekolah modern ingin melihat hasil yang penuh warna. Ya, mereka bosan jika program mencetak angka ke konsol, dan mereka ingin melihat grafik warna, diagram, dan membuat robot nyata yang bergerak dan mengikuti perintah. Kode biasa juga terkesan terlalu rumit untuk anak-anak, jadi lebih baik mulai belajar dengan sesuatu yang lebih mudah.
Lingkungan pemrograman dasar EV3 didasarkan pada bahasa grafis LabVIEW dan memungkinkan Anda menentukan algoritma untuk robot secara visual: perintah disajikan dalam bentuk blok yang dapat diseret dan dihubungkan.

Metode ini bekerja dengan baik ketika Anda perlu menunjukkan bagaimana algoritma dibangun, tetapi tidak cocok untuk program dengan jumlah blok yang banyak. Ketika skenario menjadi lebih kompleks, maka perlu beralih ke pemrograman dengan kode, namun langkah ini sulit dilakukan oleh anak-anak.
Ada beberapa trik di sini, salah satunya adalah menunjukkan bahwa kode melakukan hal yang sama seperti blok. Di lingkungan EV3, hal ini dimungkinkan melalui integrasi MicroPython, sehingga anak-anak dapat membuat program yang sama di lingkungan pemrograman blok dasar dan Python di Visual Studio Code Microsoft. Mereka melihat bahwa kedua metode bekerja sama, tetapi menyelesaikan masalah kompleks menggunakan kode lebih mudah.
Beralih ke MicroPython
Lingkungan EV3 dibangun pada prosesor ARM9, dan pengembang sengaja membiarkan arsitekturnya terbuka. Solusi ini memungkinkan peluncuran firmware alternatif, salah satunya adalah image untuk bekerja dengan MicroPython. Ini memungkinkan Anda menggunakan Python untuk memprogram EV3 Anda, menjadikan kit ini lebih dekat dengan tugas di kehidupan nyata.
Untuk memulai, Anda perlu mengunduh pada kartu microSD apa pun, pasang di komputer mikro EV3 dan nyalakan. Maka Anda perlu menginstal untuk Visual Studio. Dan Anda bisa mulai bekerja.
Memprogram robot pertama di MycroPython

Pada kita Ada beberapa pembelajaran untuk menguasai konsep dasar robotika. Model EV3 memperkenalkan anak-anak pada dasar-dasar yang digunakan pada mobil self-driving, robot rakitan pabrik, dan mesin CNC.
Kita ambil contoh mesin gambar yang bisa diajarkan menggambar pola dan bentuk geometris. Kasus ini adalah versi sederhana dari robot pengelasan atau penggilingan dewasa dan menunjukkan bagaimana EV3 dapat digunakan bersama dengan MicroPython untuk mengajar anak-anak sekolah. Dan mesin gambar dapat menandai lubang di papan sirkuit cetak untuk ayah, tapi itu level lain yang memerlukan matematika.
Untuk pekerjaan kita membutuhkan:
- Set Inti EV3 Pendidikan LEGO MINDSTORMS;
- selembar kertas kotak-kotak besar;
- spidol berwarna.
Perakitan robotnya sendiri sudah masuk , dan kita akan melihat contoh pemrograman.
Pertama kita menginisialisasi perpustakaan modul EV3:
#!/usr/bin/env pybricks-micropython
from pybricks import ev3brick as brick
from pybricks.ev3devices import (Motor, TouchSensor, ColorSensor, GyroSensor)
from pybricks.parameters import Port, Stop, Direction, Color, ImageFile
from pybricks.tools import wait
Kami menyiapkan platform yang memutar pegangan seperti motor di port B. Kami mengatur rasio roda gigi rangkaian roda gigi dua tahap dengan jumlah gigi masing-masing 20-12-28.
turntable_motor = Motor(Port.B, Direction.CLOCKWISE, [20, 12, 28])
Kami mengkonfigurasi mekanisme pengangkatan pegangan sebagai motor di port C:
seesaw_motor = Motor(Port.C)
Kami mengonfigurasi giroskop, yang mengukur sudut kemiringan pegangan, di port 2:
gyro_sensor = GyroSensor(Port.S2)
Kami mengkonfigurasi sensor warna di port 3. Sensor ini digunakan untuk mendeteksi kertas putih di bawah mesin gambar:
color_sensor = ColorSensor(Port.S3)
Kami mengkonfigurasi sensor sentuh di port 4. Robot mulai menggambar ketika sensor ditekan:
touch_sensor = TouchSensor(Port.S4)
Kami mendefinisikan fungsi yang menaikkan dan menurunkan pegangan:
def pen_holder_raise():
seesaw_motor.run_target(50, 25, Stop.HOLD)
wait(1000)
def pen_holder_lower():
seesaw_motor.run_target(50, 0, Stop.HOLD)
wait(1000)
Kami mendefinisikan fungsi untuk memutar pegangan ke sudut tertentu atau ke sudut tertentu:
def pen_holder_turn_to(target_angle):
if target_angle > gyro_sensor.angle():
Jika sudut target lebih besar dari sudut sensor gyro saat ini, lanjutkan searah jarum jam dengan kecepatan positif:
turntable_motor.run(70)
while gyro_sensor.angle() < target_angle:
pass
elif target_angle < gyro_sensor.angle():
Jika sudut target lebih kecil dari sensor gyro saat ini, maka gerakkan berlawanan arah jarum jam:
turntable_motor.run(-70)
while gyro_sensor.angle() > target_angle:
pass
Hentikan platform berputar ketika sudut target tercapai:
turntable_motor.stop(Stop.BRAKE)
Atur posisi awal pegangan di posisi atas:
pen_holder_raise()
Sekarang sampai pada bagian utama dari program ini - putaran tanpa akhir. EV3 terlebih dahulu menunggu sensor warna mendeteksi kertas putih atau kotak awal biru dan sensor sentuh ditekan. Kemudian dia menggambar sebuah pola, kembali ke posisi awal dan mengulangi semuanya lagi.
Saat perangkat belum siap, LED pada pengontrol berubah menjadi merah dan gambar βjempol ke bawahβ ditampilkan di layar LCD:
while True:
brick.light(Color.RED)
brick.display.image(ImageFile.THUMBS_DOWN)
Kita tunggu hingga sensor warna menghitung biru atau putih, atur warna LED menjadi hijau, tampilkan gambar βjempolβ di layar LCD dan laporkan bahwa perangkat siap digunakan:
while color_sensor.color() not in (Color.BLUE, Color.WHITE):
wait(10)
brick.light(Color.GREEN)
brick.display.image(ImageFile.THUMBS_UP)
Kami menunggu hingga sensor sentuh ditekan, tetapkan nilai sudut 0 ke sensor giroskopik dan mulai menggambar:
while not touch_sensor.pressed():
wait(10)
gyro_sensor.reset_angle(0)
pen_holder_turn_to(15)
pen_holder_lower()
pen_holder_turn_to(30)
pen_holder_raise()
pen_holder_turn_to(45)
pen_holder_lower()
pen_holder_turn_to(60)
Angkat tempat pena dan kembalikan ke posisi semula:
pen_holder_raise()
pen_holder_turn_to(0)</i>
Ini adalah program sederhana yang kami buat. Dan sekarang kami meluncurkannya dan melihat robot perancang beraksi.
Apa yang diberikan oleh contoh-contoh tersebut?

EV3 adalah alat panduan karir untuk karir STEM dan pintu masuk ke karir teknik. Karena dapat digunakan untuk memecahkan masalah praktis, anak-anak memperoleh pengalaman dalam pengembangan teknis dan pembuatan robot industri, belajar mensimulasikan situasi nyata, memahami program dan menganalisis algoritma, dan menguasai konstruksi dasar pemrograman.
Dukungan MicroPython membuat platform EV3 cocok untuk pengajaran di sekolah menengah. Siswa dapat mencoba sendiri sebagai programmer dalam salah satu bahasa modern paling populer, dan berkenalan dengan profesi yang berkaitan dengan pemrograman dan desain teknik. Kit EV3 menunjukkan bahwa pengkodean tidak menakutkan, mempersiapkan Anda menghadapi tantangan teknik yang serius, dan membantu Anda mengambil langkah pertama menuju penguasaan keterampilan teknis. Dan bagi yang bekerja di sekolah dan berhubungan dengan pendidikan, kami sudah siapkan dan materi pendidikan. Mereka menjelaskan secara rinci keterampilan apa yang dikembangkan ketika melakukan tugas tertentu, dan bagaimana keterampilan yang diperoleh berhubungan dengan standar pelatihan.
Sumber: www.habr.com
