LEGO MINDSTORMS Education EV3 + MicroPython: kami memprogram konstruktor anak-anak dalam bahasa dewasa

Halo, Habr! Kita sudah membicarakan tentang platform LEGO MINDSTORMS Education EV3. Tujuan utama dari platform ini adalah pelatihan tentang contoh-contoh praktis, pengembangan keterampilan STEAM dan pembentukan pemikiran teknik. Ini dapat melakukan pekerjaan laboratorium untuk mempelajari mekanika dan dinamika. Dudukan laboratorium terbuat dari balok-balok LEGO dan utilitas untuk merekam dan memproses data membuat eksperimen lebih menarik dan visual serta membantu anak-anak lebih memahami fisika. Misalnya, siswa dapat mengumpulkan data tentang suhu 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.



Belajar pemrograman dengan EV3


Siswa modern ingin melihat hasil yang penuh warna. Ya, mereka bosan jika program menampilkan angka di konsol, dan mereka ingin melihat bagan warna, diagram, dan membuat robot nyata yang bergerak dan menjalankan perintah. Kode reguler juga tampaknya terlalu rumit untuk anak-anak, jadi lebih baik mulai belajar sesuatu yang lebih mudah.

Lingkungan pemrograman dasar EV3 didasarkan pada LabVIEW bahasa grafis dan memungkinkan Anda untuk mengatur algoritma untuk robot secara visual: perintah disajikan dalam bentuk blok yang dapat diseret dan digabungkan.



Metode ini berfungsi dengan baik ketika Anda perlu menunjukkan bagaimana algoritma dibangun, tetapi tidak cocok untuk program dengan sejumlah besar blok. Ketika menyulitkan skenario, perlu beralih ke pemrograman menggunakan kode, tetapi sulit bagi anak-anak untuk mengambil langkah ini.

Ada beberapa trik di sini, salah satunya adalah untuk menunjukkan bahwa kode melakukan tugas yang sama dengan blok. Di lingkungan EV3, ini dapat dilakukan melalui integrasi dengan MicroPython: anak-anak membuat program yang sama di lingkungan pemrograman dasar menggunakan blok dan Python di Microsoft Visual Studio Code. Mereka melihat bahwa kedua metode bekerja sama, tetapi lebih mudah untuk menyelesaikan masalah kompleks dengan kode.

Pergi ke MicroPython


Lingkungan EV3 didasarkan pada prosesor ARM9, dan pengembang sengaja membiarkan arsitektur terbuka. Solusi ini memungkinkan kami untuk menggulung firmware alternatif, salah satunya adalah gambar untuk bekerja dengan MicroPython. Ini memungkinkan Anda untuk menggunakan Python ke program EV3, yang membuat mengetik lebih dekat dengan tugas-tugas kehidupan nyata.

Untuk memulai, Anda perlu mengunduh gambar MicroPython EV3 ke kartu microSD, pasang di komputer mikro EV3 dan nyalakan. Maka Anda perlu menginstal ekstensi gratis untuk Visual Studio. Dan Anda bisa mulai bekerja.

Kami memprogram robot pertama di MycroPython





Situs kami memiliki beberapa pelajaran untuk menguasai konsep dasar robotika. Model-model pada EV3 memperkenalkan anak-anak ke dasar-dasar yang digunakan dalam mobil self-driving, robot perakitan pabrik, dan mesin CNC.

Kami mengambil contoh mesin gambar yang dapat diajarkan untuk menggambar pola dan bentuk geometris. Kasing ini adalah versi sederhana dari robot las dewasa atau mesin giling dan menunjukkan bagaimana Anda dapat menggunakan EV3 bersama dengan MicroPython untuk mengajar siswa. Dan mesin menggambar dapat menandai lubang di papan sirkuit tercetak untuk ayah, tetapi ini adalah level lain yang membutuhkan perhitungan matematis.

Untuk bekerja, kita perlu:

  • LEGO MINDSTORMS Pendidikan dasar EV3
  • selembar kertas kotak-kotak besar;
  • spidol berwarna.

Perakitan robot itu sendiri ada dalam instruksi , dan kami akan mempertimbangkan contoh pemrograman.

Pertama, inisialisasi pustaka 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 dari transmisi roda dua tahap dengan jumlah gigi masing-masing 20-12-28.

 turntable_motor = Motor(Port.B, Direction.CLOCKWISE, [20, 12, 28]) 

Kami mengkonfigurasi mekanisme pengangkatan untuk pegangan sebagai motor di port C:

 seesaw_motor = Motor(Port.C) 

Kami menyiapkan giroskop yang mengukur sudut pegangan, di port 2:

 gyro_sensor = GyroSensor(Port.S2) 

Konfigurasikan sensor warna di port 3. Sensor ini digunakan untuk mendeteksi kertas putih di bawah mesin gambar:

 color_sensor = ColorSensor(Port.S3) 

Konfigurasikan sensor sentuh di port 4. Robot mulai menggambar ketika sensor ditekan:

 touch_sensor = TouchSensor(Port.S4) 

Tentukan fungsi yang menaikkan dan menurunkan gagang:

 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 menentukan fungsi untuk memutar pegangan dengan 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 saat ini dari sensor gyro, terus bergerak 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 kurang dari sensor gyro saat ini, kemudian bergerak berlawanan arah jarum jam:

     turntable_motor.run(-70) while gyro_sensor.angle() > target_angle: pass 

Kami menghentikan platform putar 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 - loop tanpa akhir. Pada awalnya, EV3 menunggu sensor warna untuk mendeteksi kertas putih atau sel awal biru, dan sensor sentuh akan ditekan. Kemudian ia menggambar pola, kembali ke posisi semula dan mengulangi semuanya lagi.

Ketika perangkat tidak siap, LED pada pengontrol berubah merah dan gambar jari-bawah ditampilkan pada layar LCD:

 while True:  brick.light(Color.RED)  brick.display.image(ImageFile.THUMBS_DOWN) 

Kami menunggu hingga sensor warna mempertimbangkan biru atau putih, mengatur warna LED menjadi hijau, menampilkan gambar jempol pada layar LCD dan menginformasikan 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 sensor sentuh ditekan, menetapkan nilai sudut 0 ke sensor gyro 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> 

Di sini kami memiliki program yang sangat sederhana. Dan sekarang kita meluncurkannya dan melihat robot juru gambar sedang beraksi.

Apa yang diberikan contoh-contoh semacam itu?




EV3 adalah alat panduan karir untuk profesi STEM dan titik masuk ke spesialisasi teknik. Karena dimungkinkan untuk menyelesaikan masalah praktis di dalamnya, anak-anak memperoleh pengalaman dalam pengembangan teknis dan pembuatan robot industri, belajar untuk mensimulasikan situasi nyata, memahami program dan menganalisis algoritma, menguasai konstruksi pemrograman dasar.

Dukungan MicroPython membuat platform EV3 cocok untuk sekolah menengah. Murid dapat mencoba diri mereka sebagai pemrogram dalam salah satu bahasa modern paling populer, berkenalan dengan profesi yang berkaitan dengan pemrograman dan desain teknik. Kit EV3 menunjukkan bahwa menulis kode tidak menakutkan, mereka mempersiapkan masalah teknis yang serius dan membantu mengambil langkah pertama menuju penguasaan spesialisasi teknis. Dan bagi mereka yang bekerja di sekolah dan terkait dengan pendidikan, kami telah menyiapkan program pelatihan dan materi pelatihan. Mereka menjelaskan secara rinci keterampilan apa yang terbentuk ketika melakukan tugas tertentu, dan bagaimana keterampilan yang diperoleh terkait dengan standar pelatihan.

Source: https://habr.com/ru/post/id474562/


All Articles