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, така че децата могат да създават една и съща програма както в основната среда за блоково програмиране, така и в Python във Visual Studio Code на Microsoft. Те виждат, че и двата метода работят еднакво, но решаването на сложни проблеми с помощта на код е по-удобно.

Преминаване към MicroPython

Средата EV3 е изградена върху процесор ARM9 и разработчиците умишлено са оставили архитектурата отворена. Това решение направи възможно пускането на алтернативен фърмуер, един от които беше изображение за работа с MicroPython. Позволява ви да използвате Python за програмиране на вашия EV3, доближавайки комплекта още повече до задачите от реалния живот. 

За да започнете, трябва да изтеглите Изображение на EV3 MicroPython на всяка microSD карта, инсталирайте я в микрокомпютъра EV3 и я включете. След това трябва да инсталирате безплатно разширение за Visual Studio. И можете да започнете работа. 

Програмиране на първия робот в MycroPython

LEGO MINDSTORMS Education EV3 + MicroPython: програмиране на детски конструктор на език за възрастни

На нашия уебсайт Има няколко урока за усвояване на основните понятия на роботиката. Моделите EV3 запознават децата с основите, които се използват в самоуправляващите се автомобили, роботите за фабрично сглобяване и машините с ЦПУ. 

Ще вземем за пример машина за рисуване, която може да бъде научена да рисува модели и геометрични форми. Този случай е опростена версия на роботи за заваряване или фрезоване за възрастни и показва как EV3 може да се използва във връзка с MicroPython за обучение на ученици. И машина за рисуване може да маркира дупки в печатна платка за татко, но това е друго ниво, което изисква математика.

За работа се нуждаем от:

  • LEGO MINDSTORMS Education EV3 Основен комплект; 
  • голям лист карирана хартия;
  • цветни маркери. 

Сглобяването на самия робот е в ход Directionsи ще разгледаме пример за програмиране.

Първо инициализираме библиотеката на 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

Поставяме платформа, която върти дръжката като мотор в порт B. Задаваме предавателното отношение на двустепенна зъбна предавка с брой зъби съответно 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 първо изчаква цветният сензор да открие бяла хартия или син начален квадрат и сензорът за докосване да бъде натиснат. След това рисува модел, връща се в изходна позиция и повтаря всичко отново.

Когато устройството не е готово, светодиодите на контролера светват в червено и на LCD екрана се показва изображение с палец надолу:

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

Изчакваме, докато цветният сензор преброи синьо или бяло, настройваме цвета на светодиода на зелено, показваме изображение с „палец нагоре“ на 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