LEGO MINDSTORMS Education EV3 + MicroPython: хүүхдийн барилгын багцыг насанд хүрэгчдийн хэлээр програмчлах

Сайн уу, Хабр! Бид аль хэдийн гэж хэлсэн LEGO MINDSTORMS Education EV3 платформын тухай. Энэхүү платформын гол зорилго нь практик жишээн дээр суралцах, STEAM ур чадварыг хөгжүүлэх, инженерийн сэтгэлгээг хөгжүүлэх явдал юм. Механик, динамикийг судлах лабораторийн ажилд ашиглаж болно. LEGO тоосгоор хийсэн лабораторийн вандан сандал, өгөгдлийг бүртгэх, боловсруулах хэрэгслүүд нь туршилтыг илүү сонирхолтой, нүдээр харуулах бөгөөд хүүхдүүдэд физикийг илүү сайн ойлгоход тусалдаг. Жишээлбэл, оюутнууд хайлах цэгийн өгөгдлийг цуглуулж, програмыг ашиглан үүнийг цэгцэлж, графикаар харуулах боломжтой. Гэхдээ энэ бол дөнгөж эхлэл: өнөөдөр бид энэ багцыг MicroPython програмчлалын орчинтой хэрхэн нөхөж, робот техникийг заахад ашиглахыг танд хэлэх болно.

LEGO MINDSTORMS Education EV3 + MicroPython: хүүхдийн барилгын багцыг насанд хүрэгчдийн хэлээр програмчлах

EV3 ашиглан програмчлалд суралц

Орчин үеийн сургуулийн хүүхдүүд өнгөлөг үр дүнг харахыг хүсдэг. Тийм ээ, хэрэв програм нь консол дээр тоо хэвлэх юм бол тэд уйдаж, өнгөт график, диаграммыг харж, хөдөлж, тушаалуудыг дагадаг жинхэнэ роботуудыг бүтээхийг хүсдэг. Ердийн код нь хүүхдүүдэд хэтэрхий төвөгтэй мэт санагддаг тул илүү хялбар зүйлээс сурч эхэлсэн нь дээр.

EV3 програмчлалын үндсэн орчин нь LabVIEW график хэл дээр суурилдаг бөгөөд роботын алгоритмыг нүдээр зааж өгөх боломжийг олгодог: тушаалуудыг чирж, холбож болох блок хэлбэрээр үзүүлэв.

LEGO MINDSTORMS Education EV3 + MicroPython: хүүхдийн барилгын багцыг насанд хүрэгчдийн хэлээр програмчлах

Энэ арга нь алгоритмууд хэрхэн бүтээгдсэнийг харуулах шаардлагатай үед сайн ажилладаг боловч олон тооны блоктой програмуудад тохиромжгүй байдаг. Сценариуд илүү төвөгтэй болохын хэрээр кодтой програмчлал руу шилжих шаардлагатай болдог ч энэ алхамыг хүүхдүүдэд хийхэд хэцүү байдаг. 

Энд хэд хэдэн заль мэх байгаа бөгөөд тэдгээрийн нэг нь код нь блокуудтай ижил зүйлийг хийдэг гэдгийг харуулах явдал юм. EV3 орчинд энэ нь MicroPython-ийн интеграцчлалаар боломжтой тул хүүхдүүд үндсэн блок програмчлалын орчинд болон Microsoft-ын Visual Studio Code-ийн Python-д ижил програм үүсгэх боломжтой. Тэд хоёр арга нь адилхан ажилладаг боловч код ашиглан нарийн төвөгтэй асуудлыг шийдэх нь илүү тохиромжтой гэдгийг тэд харж байна.

MicroPython руу шилжиж байна

EV3 орчин нь ARM9 процессор дээр бүтээгдсэн бөгөөд хөгжүүлэгчид архитектурыг зориудаар нээлттэй орхисон. Энэхүү шийдэл нь өөр програм хангамжийг гаргах боломжийг олгосон бөгөөд тэдгээрийн нэг нь MicroPython-тэй ажиллахад зориулсан зураг юм. Энэ нь танд Python-г ашиглан EV3 программчлах боломжийг олгож, хэрэглүүрийг бодит амьдрал дээр илүү ойртуулна. 

Эхлэхийн тулд та татаж авах хэрэгтэй EV3 MicroPython зураг ямар ч microSD карт дээр үүнийг EV3 микрокомпьютерт суулгаж, асаана уу. Дараа нь та суулгах хэрэгтэй үнэгүй өргөтгөл Visual Studio-д зориулсан. Мөн та ажиллаж эхлэх боломжтой. 

MycroPython дээр анхны роботыг програмчлах

LEGO MINDSTORMS Education EV3 + MicroPython: хүүхдийн барилгын багцыг насанд хүрэгчдийн хэлээр програмчлах

Манайх дээр сайт Робот техникийн үндсэн ойлголтуудыг эзэмших хэд хэдэн хичээл байдаг. EV3 загварууд нь өөрөө жолоодлоготой машин, үйлдвэрийн угсралтын робот, CNC машин зэрэгт ашигладаг үндсэн ойлголтуудыг хүүхдүүдэд танилцуулдаг. 

Бид хээ, геометрийн дүрс зурахыг зааж болох зургийн машиныг жишээ болгон авч үзэх болно. Энэ тохиолдол нь насанд хүрэгчдийн гагнуур эсвэл тээрэмдэх роботын хялбаршуулсан хувилбар бөгөөд EV3-ийг MicroPython-той хамт сургуулийн хүүхдүүдэд заахдаа хэрхэн ашиглаж болохыг харуулж байна. Зурах машин нь аавд зориулсан хэвлэмэл хэлхээний самбар дээрх нүхийг тэмдэглэж чадна, гэхдээ энэ нь математик шаарддаг өөр нэг түвшин юм.

Ажлын хувьд бидэнд хэрэгтэй болно:

  • LEGO MINDSTORMS Education EV3 үндсэн багц; 
  • алаг цаасны том хуудас;
  • өнгөт маркерууд. 

Робот өөрөө угсарч байна зааварчилгаа, мөн бид програмчлалын жишээг үзэх болно.

Эхлээд бид 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

Бид В порт дахь мотор шиг бариулыг эргүүлдэг тавцанг суурилуулсан. Бид 20-12-28 шүдтэй хоёр шатлалт арааны арааны харьцааг тус тус тохируулсан.

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

Бид бариулыг өргөх механизмыг C порт дахь мотор болгон тохируулдаг.

seesaw_motor = Motor(Port.C)

Бид 2-р порт дээр бариулын налуу өнцгийг хэмждэг гироскопыг тохируулна.

gyro_sensor = GyroSensor(Port.S2)

Бид 3-р порт дахь өнгө мэдрэгчийг тохируулдаг. Мэдрэгчийг зургийн машины доорх цагаан цаасыг илрүүлэхэд ашигладаг.

color_sensor = ColorSensor(Port.S3)

Бид мэдрэгчтэй мэдрэгчийг порт 4-д тохируулдаг. Мэдрэгчийг дарахад робот зурж эхэлнэ:

touch_sensor = TouchSensor(Port.S4)

Бид бариулыг өсгөх, буулгах функцуудыг тодорхойлдог.

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)

Бид бариулыг өгөгдсөн өнцгөөр эсвэл тодорхой өнцгөөр эргүүлэх функцийг тодорхойлдог.

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

Хэрэв зорилтот өнцөг нь одоогийн гиро мэдрэгчийн өнцөгөөс их байвал цагийн зүүний дагуу эерэг хурдтайгаар үргэлжлүүлнэ үү.

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

Хэрэв зорилтот өнцөг нь одоогийн гиро мэдрэгчээс бага байвал цагийн зүүний эсрэг хөдөлнө:

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

Зорилтот өнцөгт хүрсэн үед эргэдэг платформыг зогсоо.

  turntable_motor.stop(Stop.BRAKE)

Бариулын анхны байрлалыг дээд байрлалд тохируулна уу:

pen_holder_raise()

Одоо хөтөлбөрийн гол хэсэг - төгсгөлгүй гогцоо ирдэг. EV3 нь эхлээд өнгө мэдрэгч нь цагаан цаас эсвэл цэнхэр эхлэлийн квадратыг илрүүлж, мэдрэгчтэй мэдрэгчийг дарахыг хүлээнэ. Дараа нь тэр загвар зурж, анхны байрлал руугаа буцаж, бүх зүйлийг дахин давтана.

Төхөөрөмж бэлэн болоогүй үед хянагч дээрх LED нь улаан болж, LCD дэлгэц дээр "эрхий хуруу" дүрс гарч ирнэ.

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

Өнгө мэдрэгч цэнхэр эсвэл цагаан болтол хүлээж, LED өнгийг ногоон болгож, LCD дэлгэц дээр "эрхий хуруу" дүрсийг гаргаж, төхөөрөмжийг ашиглахад бэлэн болсон гэж мэдэгдэнэ.

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

Бид мэдрэгчтэй мэдрэгчийг дарахыг хүлээж, гироскоп мэдрэгч рүү өнцгийн 0 утгыг оноож, зурж эхэлнэ.

  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)

Үзэгний тавиурыг өргөж, анхны байрлалд нь буцаана:

  pen_holder_raise()
  pen_holder_turn_to(0)</i>

Энэ бол бидний бүтээсэн энгийн програм юм. Одоо бид үүнийг эхлүүлж, зураг зурах роботыг хэрхэн ажиллаж байгааг харж байна. 

Ийм жишээнүүд юу өгдөг вэ?

LEGO MINDSTORMS Education EV3 + MicroPython: хүүхдийн барилгын багцыг насанд хүрэгчдийн хэлээр програмчлах

EV3 бол STEM-ийн карьеруудад зориулсан ажил мэргэжлийн чиг баримжаа олгох хэрэгсэл бөгөөд инженерийн карьерт орох цэг юм. Үүнийг практик асуудлуудыг шийдвэрлэхэд ашиглах боломжтой тул хүүхдүүд техникийн хөгжил, үйлдвэрлэлийн робот бүтээх туршлага хуримтлуулж, бодит нөхцөл байдлыг дуурайж, програмыг ойлгож, алгоритмд дүн шинжилгээ хийж, програмчлалын үндсэн бүтцийг эзэмшдэг.

MicroPython-ийн дэмжлэг нь EV3 платформыг ахлах сургуулийн хичээлд тохиромжтой болгодог. Оюутнууд орчин үеийн хамгийн алдартай хэлнүүдийн нэгээр өөрийгөө програмистаар туршиж үзэхээс гадна програмчлал, инженерийн дизайнтай холбоотой мэргэжлүүдтэй танилцах боломжтой. EV3 иж бүрдэл нь кодчилол нь аймшигтай биш гэдгийг харуулж, инженерийн ноцтой сорилтод бэлтгэж, техникийн ур чадварыг эзэмших эхний алхамыг хийхэд тань тусална. Сургуульд ажилладаг, боловсролтой холбоотой хүмүүст зориулж бид бэлдсэн хичээлийн хөтөлбөрүүд болон боловсролын материал. Тэд тодорхой даалгавруудыг гүйцэтгэхэд ямар ур чадвар бий болдог, олж авсан ур чадвар нь сургалтын стандарттай хэрхэн холбогдож байгааг нарийвчлан тодорхойлдог.

Эх сурвалж: www.habr.com

DDoS хамгаалалт, VPS VDS сервер бүхий сайтуудад найдвартай хостинг худалдаж аваарай 🔥 DDoS хамгаалалттай, VPS VDS сервертэй найдвартай вэбсайт хостинг худалдаж аваарай | ProHoster