LEGO MINDSTORMS Education EV3 + MicroPython: kattalar tilida bolalar qurilishini dasturlash

Salom, Xabr! Biz allaqachon dedi LEGO MINDSTORMS Education EV3 platformasi haqida. Ushbu platformaning asosiy maqsadlari amaliy misollar orqali o'rganish, STEAM ko'nikmalarini rivojlantirish va muhandislik tafakkurini rivojlantirishdir. Mexanika va dinamikani o'rganish uchun laboratoriya ishlarida foydalanish mumkin. LEGO g'ishtlaridan tayyorlangan laboratoriya skameykalari va ma'lumotlarni yozib olish va qayta ishlash uchun yordamchi vositalar tajribalarni yanada qiziqarli va vizual qiladi va bolalarga fizikani yaxshiroq tushunishga yordam beradi. Misol uchun, talabalar erish nuqtasi ma'lumotlarini to'plashlari va uni tartibga solish va grafikda taqdim etish uchun ilovadan foydalanishlari mumkin. Ammo bu hali boshlanishi: bugun biz ushbu toβ€˜plamni MicroPython dasturlash muhiti bilan qanday toβ€˜ldirish va undan robototexnikani oβ€˜rgatishda foydalanishni aytib beramiz.

LEGO MINDSTORMS Education EV3 + MicroPython: kattalar tilida bolalar qurilishini dasturlash

EV3 yordamida dasturlashni o'rganing

Zamonaviy maktab o'quvchilari rang-barang natijalarni ko'rishni xohlashadi. Ha, agar dastur konsolga raqamlarni chop etsa, ular zerikadi va ular rangli grafiklar, diagrammalarni ko'rishni va harakatlanadigan va buyruqlarni bajaradigan haqiqiy robotlarni yaratishni xohlashadi. Oddiy kod ham bolalar uchun juda murakkab ko'rinadi, shuning uchun o'rganishni osonroq narsadan boshlash yaxshidir.

Asosiy EV3 dasturlash muhiti LabVIEW grafik tiliga asoslangan boΚ»lib, robot uchun algoritmlarni vizual tarzda belgilash imkonini beradi: buyruqlar sudrab olinadigan va ulanishi mumkin boΚ»lgan bloklar koΚ»rinishida taqdim etiladi.

LEGO MINDSTORMS Education EV3 + MicroPython: kattalar tilida bolalar qurilishini dasturlash

Bu usul algoritmlar qanday tuzilganligini ko'rsatish kerak bo'lganda yaxshi ishlaydi, lekin u ko'p blokli dasturlar uchun mos kelmaydi. Stsenariylar murakkablashib borayotganligi sababli, kod bilan dasturlashga o'tish kerak, lekin bu qadam bolalar uchun qiyin. 

Bu erda bir nechta fokuslar mavjud, ulardan biri kod bloklar bilan bir xil ishni bajarishini ko'rsatishdir. EV3 muhitida bu MicroPython integratsiyasi orqali mumkin, shuning uchun bolalar bir xil dasturni asosiy blok dasturlash muhitida ham, Microsoft Visual Studio Code-da Pythonda ham yaratishi mumkin. Ular ikkala usul ham bir xil ishlashini ko'rishadi, ammo kod yordamida murakkab muammolarni hal qilish qulayroqdir.

MicroPython-ga o'tish

EV3 muhiti ARM9 protsessorida qurilgan va ishlab chiquvchilar ataylab arxitekturani ochiq qoldirishgan. Ushbu yechim muqobil mikrodasturlarni chiqarishga imkon berdi, ulardan biri MicroPython bilan ishlash uchun tasvir edi. Bu sizga EV3-ni dasturlash uchun Python-dan foydalanishga imkon beradi va bu to'plamni haqiqiy hayotdagi vazifalarga yanada yaqinlashtiradi. 

Boshlash uchun siz yuklab olishingiz kerak EV3 MicroPython tasviri har qanday microSD kartada uni EV3 mikrokompyuteriga o'rnating va uni yoqing. Keyin o'rnatishingiz kerak bepul kengaytma Visual Studio uchun. Va siz ishlashni boshlashingiz mumkin. 

MycroPython da birinchi robotni dasturlash

LEGO MINDSTORMS Education EV3 + MicroPython: kattalar tilida bolalar qurilishini dasturlash

Bizning сайт Robototexnikaning asosiy tushunchalarini o'zlashtirish uchun bir nechta darslar mavjud. EV3 modellari bolalarni o'z-o'zidan boshqariladigan avtomobillarda, zavod yig'ish robotlarida va CNC dastgohlarida qo'llaniladigan asoslar bilan tanishtiradi. 

Biz naqsh va geometrik shakllarni chizishga o'rgatish mumkin bo'lgan chizma mashinasini misol qilib olamiz. Bu holat kattalar uchun payvandlash yoki frezalash robotlarining soddalashtirilgan versiyasi boβ€˜lib, maktab oβ€˜quvchilarini oβ€˜qitish uchun EV3 dan MicroPython bilan birgalikda qanday foydalanish mumkinligini koβ€˜rsatadi. Va chizma mashinasi dada uchun bosilgan elektron platada teshiklarni belgilashi mumkin, ammo bu matematikani talab qiladigan yana bir daraja.

Ish uchun bizga:

  • LEGO MINDSTORMS Education EV3 asosiy to'plami; 
  • katakli qog'ozning katta varag'i;
  • rangli markerlar. 

Robotning o'zi yig'ilgan ko'rsatmalar, va biz dasturlash misolini ko'rib chiqamiz.

Avval biz EV3 modul kutubxonasini ishga tushiramiz:

#!/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

Biz B portidagi motor kabi tutqichni aylantiradigan platformani o'rnatdik. Ikki bosqichli tishli poezdning tishli nisbatini mos ravishda 20-12-28 tishlar soniga o'rnatdik.

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

Biz tutqichni ko'tarish mexanizmini C portidagi dvigatel sifatida sozlaymiz:

seesaw_motor = Motor(Port.C)

Biz 2-portda tutqichning moyillik burchagini o'lchaydigan giroskopni sozlaymiz:

gyro_sensor = GyroSensor(Port.S2)

Rang sensorini 3-portda sozlaymiz. Sensor chizma mashinasi ostidagi oq qog'ozni aniqlash uchun ishlatiladi:

color_sensor = ColorSensor(Port.S3)

Biz sensorli sensorni 4-portda sozlaymiz. Sensor bosilganda robot chiza boshlaydi:

touch_sensor = TouchSensor(Port.S4)

Biz tutqichni ko'taradigan va tushiradigan funktsiyalarni aniqlaymiz:

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)

Tutqichni ma'lum bir burchakka yoki ma'lum bir burchakka aylantirish funktsiyasini aniqlaymiz:

def pen_holder_turn_to(target_angle):
  if target_angle > gyro_sensor.angle():

Agar maqsad burchagi joriy giroskop sensori burchagidan kattaroq bo'lsa, soat yo'nalishi bo'yicha ijobiy tezlikda davom eting:

    turntable_motor.run(70)
	
while gyro_sensor.angle() < target_angle:
  	
pass
  elif target_angle < gyro_sensor.angle():

Agar maqsad burchagi joriy giroskop sensoridan kichik bo'lsa, soat miliga teskari yo'nalishda harakatlaning:

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

Maqsadli burchakka erishilganda aylanuvchi platformani to'xtating:

  turntable_motor.stop(Stop.BRAKE)

Tutqichning dastlabki holatini yuqori holatda o'rnating:

pen_holder_raise()

Endi dasturning asosiy qismi - cheksiz tsikl keladi. EV3 avval rang sensori oq qog'oz yoki ko'k boshlang'ich kvadratni aniqlashini va sensorli sensorni bosishini kutadi. Keyin u naqsh chizadi, boshlang'ich pozitsiyasiga qaytadi va yana hamma narsani takrorlaydi.

Qurilma tayyor bo'lmaganda, kontrollerdagi LEDlar qizil rangga aylanadi va LCD displeyda "bosh barmog'i pastga" tasviri ko'rsatiladi:

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

Rang sensori ko'k yoki oq bo'lguncha kutamiz, LED rangini yashil rangga o'rnatamiz, LCD displeyda "bosh barmog'i" tasvirini ko'rsatamiz va qurilma foydalanishga tayyorligini xabar qilamiz:

  while color_sensor.color() not in (Color.BLUE, Color.WHITE):
	
wait(10)
  brick.light(Color.GREEN)
  brick.display.image(ImageFile.THUMBS_UP)

Biz sensorli sensorning bosilishini kutamiz, giroskopik sensorga 0 burchak qiymatini belgilaymiz va chizishni boshlaymiz:

  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)

Qalam ushlagichini ko'taring va uni asl holatiga qaytaring:

  pen_holder_raise()
  pen_holder_turn_to(0)</i>

Bu biz yaratgan oddiy dastur. Va endi biz uni ishga tushiramiz va ishlayotgan robotni ko'rib chiqamiz. 

Bunday misollar nimani beradi?

LEGO MINDSTORMS Education EV3 + MicroPython: kattalar tilida bolalar qurilishini dasturlash

EV3 - bu STEM kareralari uchun martaba yo'naltirish vositasi va muhandislik kareralariga kirish nuqtasi. U amaliy muammolarni hal qilish uchun ishlatilishi mumkinligi sababli, bolalar texnik rivojlanish va sanoat robotlarini yaratishda tajriba orttirishadi, real vaziyatlarni simulyatsiya qilishni, dasturlarni tushunishni va algoritmlarni tahlil qilishni, asosiy dasturlash konstruksiyalarini o'zlashtirishni o'rganadilar.

MicroPython qo'llab-quvvatlashi EV3 platformasini o'rta maktabda o'qitish uchun mos qiladi. Talabalar o'zlarini eng mashhur zamonaviy tillardan birida dasturchi sifatida sinab ko'rishlari, dasturlash va muhandislik dizayni bilan bog'liq kasblar bilan tanishishlari mumkin. EV3 to'plamlari kodlash qo'rqinchli emasligini ko'rsatadi, sizni jiddiy muhandislik qiyinchiliklariga tayyorlaydi va texnik ko'nikmalarni egallash yo'lida birinchi qadamni qo'yishga yordam beradi. Va maktablarda ishlaydigan va ta'lim bilan bog'liq bo'lganlar uchun biz tayyorladik dars dasturlari va o'quv materiallari. Ularda ma'lum vazifalarni bajarishda qanday ko'nikmalar shakllantirilishi va olingan ko'nikmalarning ta'lim standartlari bilan bog'liqligi batafsil tavsiflanadi.

Manba: www.habr.com

DDoS himoyasi, VPS VDS serverlari bo'lgan saytlar uchun ishonchli hosting sotib oling πŸ”₯ DDoS himoyasi, VPS VDS serverlari bilan ishonchli veb-sayt xostingini sotib oling | ProHoster