четверг, 5 мая 2022 г.

Книга "Погружение в математику с Minecraft и Python"

Здравствуйте, дорогие читатели моего блога. Сегодня я хочу вас познакомить с новой моей книгой, которая предназначена для обучения математике и программированию детей от 10 -11 лет.

Книга носит название "Погружение в математику с Minecraft и Python" и является продолжением к книге "Python. Великое программирование в Minecraft".

     На данный момент она готовиться в печать и прошла вёрстку и корректуру. 
Ниже представлено содержание книги. В ней мы попытались собрать наиболее часто используемые термины, понятия и разделы школьной математики и частично затронули разделы высшей математики, но только те, что будут понятны ребёнку, и о которых он так или иначе слышал.
 
    В данной книге мы хотим помочь ребёнку понять многие разделы (темы) математики с применением наглядных демонстраций и оттачивания навыков в программировании. Тем самым показывая важность математики как в программировании, так и в нашем физическом мире, например архитектуре.
 
Почти каждый раздел сотоит из теории, практики, заданий для закрепления темы и контрольных вопросов.

 

Ниже представлено содержание книги.

Математические приключения в игре Minecraft с Python

 

Введение........................................................................................................ 5
ГЛАВА 1
Подготовительная работа.......................................................................... 7
1.1. Установка Python 3............................................................................... 8
1.2. Установка Minecraft Java Edition.
Выбор версий 1.12.2 или 1.17.1..............................................................12
1.3. Сервер Spigot..........................................................................................17
1.4. Процедура запуска..........................................................................18
1.5. Моя первая программа................................................................. 22
ГЛАВА 2
Элементарные математические функции..................................................31
2.1. Библиотека math...................................................................................32
2.2. Линейные функции и их графики.....................................................33
2.2.1. Продвинутый уровень...................................................................52
2.3. Квадратичные функции и их графики.............................................62
2.3.1. Продвинутый уровень................................................................... 78
2.4. Функции n-ой степени........................................................................92
2.5. Показательные функции................................................................... 105
2.6. Тригонометрические и гиперболические функции................. 107
2.6.1. Продвинутый уровень..................................................................115
ГЛАВА 3
Аналитическая геометрия............................................................................118
3.1. Окружность............................................................................................118
3.2. Гипотрохоида..................................................................................124
4 Математические приключения в игре Minecraft с Python
3.3. Фигуры Лиссажу................................................................................. 128
3.4. Спираль Архимеда и винтовая линия............................................. 131
3.5. Поверхности второго порядка........................................................ 135
3.5.1. Гиперболоид.................................................................................. 135
3.5.2. Конус.................................................................................................... 141
3.5.3. Параболоид.................................................................................... 146
3.5.4. Эллипсоид...................................................................................... 153
3.6. Продвинутый уровень ...................................................................... 156
ГЛАВА 4
Стереометрия..........................................................................................160
4.1. Пирамида...............................................................................................160
4.2. Заполненный конус...................................................................... 165
4.3. Цилиндр......................................................................................... 170
4.4. Шар и сфера.................................................................................. 174
4.5. Призма............................................................................................ 182
ГЛАВА 5
Фракталы............................................................................................. 195
5.1. Губка Менгера.............................................................................. 198
5.1.1. Детерминированный способ..................................................200
5.1.2. Рандомизированный способ...................................................... 221
5.2. Пирамида Серпинского.................................................................... 226
5.3. Папоротник Барнси........................................................................... 228
5.4. Кривая Гильберта.............................................................................. 235
Послесловие................................................................................................237
Приложение............................................................................................... 238
Литература................................................................................................ 258
Предметный указатель........................................................................... 259
Об авторах................................................................................................. 263

 

Авторы: Корягин Андрей Владимирович

Корягина Алиса Витальевна

 

Для краткого ознакомления с книгой предоставлю небольшую главу. 
Будем очень рады узнать ваше мнение в каких бы классах вы применили такой подход, для какого возраста?

 

Элементарные математические функции


Основы математики были описаны в первой книге «Python. Великое программирование в Minecraft». К данным основам относятся знания в области математических операторов, операторов сравнения, основ теории чисел (целые и дробные). На этом познания в математике не заканчиваются, и дальше, согласно школь-
ной программе, идут решения уравнений и неравенств и различных систем из них, которые перерастают в изучение функций и построение графиков. Затем идёт усложнение уравнений и функций. Все эти моменты мы постараемся рассмотреть в данной книге.

 

Для упрощения написания программ,связанных с математикой, для разных языков программирования разрабатывались математические библиотеки. Для языка Python — это библиотека math.


Математические приключения в игре Minecraft с Python


2.1. Библиотека math

 

Модуль math в Python предоставляет набор функций для выполнения математических, тригонометрических и логарифмических операций. Некоторые из основных функций модуля:


ƒ pow(num, power): возведение числа num в степень power
ƒ sqrt(num): квадратный корень числа num
ƒ ceil(num): округление числа до ближайшего наибольшего
целого
ƒ floor(num): округление числа до ближайшего наименьшего
целого
ƒ factorial(num): факториал числа
ƒ degrees(rad): перевод из радиан в градусы
ƒ radians(grad): перевод из градусов в радианы
ƒ cos(rad): косинус угла в радианах
ƒ sin(rad): синус угла в радианах
ƒ tan(rad): тангенс угла в радианах
ƒ acos(rad): арккосинус угла в радианах
ƒ asin(rad): арксинус угла в радианах
ƒ atan(rad): арктангенс угла в радианах
ƒ log(n, base): логарифм числа n по основанию base
ƒ log10(n): десятичный логарифм числа n
ƒ math.hypot(X, Y): вычисляет гипотенузу треугольника с кате-
тами X и Y (math.sqrt(x * x + y * y))
ƒ math.pi: константа pi = 3,1415926…
ƒ math.e: константа e = 2,718281…


Данная библиотека содержит стандартный набор функций,которые непосредственно применяют школьники с 1 по 11 класс, с затрагиванием и вузовского материала. Со всеми функциями math мы не будем знакомиться, для этого есть документации к библиотекам и книги о детальном их разборе. В первую очередь рассмотрим функции, которые встречаются в школьной программе, и постараемся связать математическую запись с решением  практических задач. Начнём с изучения линейных функций общего вида

 

y = k * x + b.


2.2. Линейные функции и их графики


Линейными функциями называют функции вида y = k * x, где k —это угловой коэффициент или коэффициент пропорциональности. В учебниках по математике существует такая запись: y = k * x + b, где k — это угловой коэффициент или коэффициент пропорциональности, b — число из множества рациональных или иррациональных чисел.

Данную функцию принято называть в профессиональном кругу математиков «аффинной», но в школьных учебниках её называют «линейной». Значение k влияет на то, как будет строиться график, — под каким
углом относительно оси X и Y он будет проходить.

Элемент b указывает на то, где график пересечётся с осью, если x = 0.

 

Есть два вида задач для этих функций:
ƒ нахождение k и b, если известны точки, принадлежащие графику;
ƒ проверить на принадлежность к графику точек с определёнными координатами.


Звучит вроде страшно и непонятно. Выйдем из абстракции к реальному миру. Возьмите длинную прямую палку, можно заменить на линейку. Палка также описывается данной функцией, в зависимости от того, как мы её расположим относительно начала координат. Что такое начало координат в физическом мире?


Началом координат в реальности может выступить всё что угодно, в основном что-то неподвижное: дерево, стул, стакан, дом, камень… Всё будет зависеть от того, какого размера вы возьмёте палку и какую точность измерения хотите получить. В седьмом классе очень много задач в геометрии и физике на нахождение
размеров объекта и определение расстояния между предметами, и подход с использованием функций также применим к ним.


«Зачем это нужно?» — спросите вы. На это есть множество обоснований, начнём с простого. Вы играете в футбол или стреляетев тире. В обоих случаях ваша задача — попасть в цель. Вы стараетесь бить по прямой, так чтобы мяч или пуля перемещалась вдоль представленного графика линейной функции. Этот график прохо-
дит через ворота или цель в мишени, т. е. координаты этих объектов принадлежат графику линейной функции или, иными словами, траектории движения.

 

Конечно, в данном случае никто из нас в юном возрасте не начнёт выписывать в этот же момент функцию
и вычислять правильную позицию, всё делается «на глаз», как нам кажется, но мозг всё это просчитывал за доли секунды, и воображаемая траектория полёта мяча — это тоже работа вашего мозга, который соединил две точки и провёл неосознанные вычисления.


Вроде как не убедительный пример применения данных знаний, но опытные игроки так и поступают — создают план действий и набрасывают траекторию движений. Рассмотрим более современный вариант, когда вы непосредственно не видите конечной цели. Например, это запуск спутников и ракет, симулятор стрельбы в компьютерных играх, разработка программного обеспечения для беспилотного транспорта… Во всех этих примерах во время их реальной работы ваше участие сводится к минимуму.

 

Вычислением и построением графиков функций траектории движения транспорта занимаются исключительно компьютеры.


И от того, как правильно вы определили функцию и подобрали коэффициенты, будет зависеть результат процесса. Во всех этих случаях машина должна просчитать координаты двух точек в определённый момент времени, построить график, проходящий через них, запустить процесс (запуск ракеты, полёт пули, движение в определённом направлении согласно условию) и отслеживать координаты полёта или движения с течением времени, чтобы создать отчёт о проценте успеха реализации задачи.


Теперь немного становится ясно, что математика нужна для получения точного и красивого результата, а не «на глаз». Для решения многих современных задач требуется большая точность, и здесь без математики не обойтись. Но вернёмся к линейным функциям. Сейчас мы попробуем построить графики функций
в Minecraft с разными значениями k и b, чтобы увидеть наглядно, как они влияют на построение.



мат

 Для визуализации графиков нам понадобится среда Minecraft, знания в области Minecraft API и Python. Строить графики будем по точкам, т. е. по блокам. Поэтому нам необходима функция setBlock() (смотри приложение).

 

Рассмотрим первый столбец таблицы и построим для каждой функции графики в Minecraft. Чтобы
различать графики, будем использовать блок «шерсть» с разным цветом (смотри приложение).


Создадим файл lin1.py и запишем стандартные строки кода для импортирования библиотеки Minecraft и настройки связи между кодом и игрой. Импортируем библиотеку по работе с блоками Minecraft и вызовем функцию получения координат игрока (более подробно рассматривается в книге «Python. Великое программи-
рование в Minecraft»).


Для того чтобы запись координат была приведена к общеизвестному виду, создадим переменные x, y, z и присвоим им значения координат игрока.


Рассмотрим первую функцию: y = 0.

Графиком этой функции является прямая, параллельная оси X, т. е. все точки графика будут
находиться на одном расстоянии от оси X. Точнее, прямая будет совпадать с осью X, потому что при любом значении x переменная y принимает значение, равное нулю.



line

 Как это можно реализовать программно? Для этого воспользуемся конечным циклом.

Хоть и прямая бесконечная, но она в любой точке будет неизменной, поэтому достаточно взять отрезок. Возьмём участок графика в промежутке x ∈ [0, 20), т. е. размер прямой будет 20 блоков от позиции игрока.

 

Для этого графика возьмём белую шерсть.


Выражение: y1 = 0 * x + 0 равносильно функции y = 0, где k = 0 и b = 0.

С каждым шагом мы строим блок, сдвигаясь по оси X на один блок, при этом значение y не меняется, согласно математической записи функции.

Программу необходимо сохранитьв Minecraft Python  Minecraft Tools  MinecraftPythonAPI 
py3minepi-master.

l

Результат программы представлен на рис. 28.

l1

Теперь, по аналогии, построим остальные графики.


Начнём с y = 0.2 * x.


Для неё запишем аналогичный код и покрасим шерсть в оранжевый цвет:

l2

Запустим программу и получим результат, как на рис. 29.

l3

Как видно, вместо ожидаемой прямой линии представлена ломаная. Это связано с масштабом построения и погрешностью. Так как мы взяли малый промежуток отрезка, а точка графика равна 1/20 размера от целого блока, и блоки в среде строятся по целым значениям, т. е. половина блока строиться не будет, то получаем

соответствующий график. Если увеличить промежуток до 100, то с расстоянием эта кривая «выпрямляется».


Напишем для всех остальных функций коды, где k ≥ 0:

l4

Результат работы программы изображён на рис. 30.

l5

Как видно, угол наклона графиков к оси X различен и напрямую связан с коэффициентом k, который также называют коэффициентом пропорциональности. Чем выше k, тем больше угол. Здесь нужно заметить, что существует предел угла, и он равен 90°. График никакой подобной функции не сможет быть строго перпенди-
кулярен оси X, так как угол в 90° недостижим.


 

Таким же свойством обладает тригонометрическая функция (тангенс)  -  tg(a), при tg(90°) = ∞.

Поэтому принято считать что,  k = tg(a).


Но график, который перпендикулярен оси X, существует. Его математическая запись принимает вид:

 

x = 0 или x = b. Постройте такой график самостоятельно.


Для примера связи k с tg(a) построим график функции y = x, где k = 1.

 

Из геометрии известно, что tg(a) равен отношению противолежащего катета к прилежащему в прямоугольном треугольнике.


В данном случае tg(a) = 1.
Открыв таблицу Брадиса, можно легко найти, что tg(a) = 1 при a = 45°.
Построим данный график функции с использованием tg(a).

Для того чтобы применить правильно тригонометрические функции,необходимо учесть то, что в языке программирования Python используется значение угла не в градусах, а в радианах.

  

 


Существует общая формула перевода градусов в радианы:


Для вызова тригонометрических функций и числа pi используют библиотеку math. Создадим файл lin2.py и импортируем библиотеки:


Теперь осталось написать код для подключения к креативному миру, преобразовать для простоты работы координаты и создать цикл на 20 повторений с использованием тригонометрической функции tg(45°).


Как видно, есть несколько нюансов записи кода:


ƒ в учебниках по математике принято писать tg, а во многих языках программирования tan;
ƒ угол записан в формате формулы для перевода градусной меры в радианную, и чтобы значение было наиболее точное,вызывают число pi из библиотеки math.

Результат работы программы представлен на рис. 31.


Для сравнения вы можете запустить обе программы и убедиться, что графики функции y = x строятся одинаково, так как 1 — точ-
ное значение.

Если вы будете брать нецелые значения k, то припостроении более длинного графика возможны незначительные
отклонения.

В первую очередь это связано с округлением в средеMinecraft.

Осталось для анализа построить графики функций с k < 0. Для этого рекомендуем подняться в воздух в среде Minecraft (по умолчанию — двойное нажатие клавиши ПРОБЕЛ).


Добавим в программу lin1.py код с отрицательными значениями k<0:


Если запустить программу, то мы получим результат, изобржённый на рис. 32.




Как видно, если k < 0, то график функции направлен вниз и симметричен графикам с равным по модулю k.


Некоторые читатели спросят: «А что такое модуль?»


Модуль — это некий математический оператор, который выводит только положительное значение числа при любом его значении. Общая запись модуля: |a| = |–a| = a.


В нашем случае график функции y = x симметричен графику функции y = –x, а y = 1.5 * x симметричен

y = –1.5 * x и т. д.


Мы рассмотрели построение графиков функций только с положительными значениями x, но также можно рассматривать и отрицательные значения.


Создадим файл lin3.py и скопируем весь код из файла lin1.py.

Изменим в каждом цикле диапазон с [0, 20) до [–20, 20).

Полный код представлен ниже:





Теперь рассмотрим графики функций, при которых k = 0, а b ≠ 0.

Создадим файл lin4.py. Импортируем нужные библиотеки для Minecraft и оптимизируем вывод координат:

 

Создадим код по уже ранее известной схеме для построения нужных графиков:



Код для построения графиков такой же, как и в предыдущих программах, за исключением небольшого нюанса для корня из 12.


 Для того чтобы извлекать корни, необходима функция. Во многих языках программирования корень извлекается с помощью функции sqrt().


Результат представлен на рис. 34.

line function py

 

 

 

 

 

 

 

 

 

 

Как видно, все графики строятся параллельно оси X и проходят точки y, равные line y1

 


В первой книге «Python. Великое программирование в Minecraft» были похожие построения, когда рассматривалось создание рядов блоков с помощью циклов и отступов по осям X, Y и Z.


Любые фигуры можно строить, непосредственно зная координаты каждой точки, или применять функции, описывающие фигуры. Данные графики функций c k ≠ 0 или b ≠ 0 рассматривались в вышеупомянутой книге.

 

Для полного понимания применения линейных функций осталось научиться строить графики, где k ≠ 0 и b ≠ 0. Чтобы анализ был намного глубже, предлагаем построить графики с симметричными коэффициентами.


y = –0.5 * x – 10, y = –0.5 * x + 10, y = 0.5 * x – 10, y = 0.5 * x + 10.


Создадим файл с именем lin5.py и импортируем нужные модули для работы с Minecraft:

Далее по аналогии с предыдущими программами создадим четыре цикла:

 



Как видно, эти четыре графика образовали греческую букву «сигма». Таким знаком в математике обозначают сумму. Для лучшего восприятия рекомендуем построить оси системы координат. Для этого необходимо написать ещё два цикла:





 

Теперь более наглядно видно, что графики имеют некоторые общие зависимости.

Графики, согласно программе, строятся в таком порядке: первая функция — это белый график, вторая — оранжевый, третья — фиолетовый и четвёртая — бирюзовый.

  

 

###############################################################

 

На этом демонстрационную часть я закончу.

Буду рад узнать ваше мнение. Интересен опыт применения Minecraft или подобных сред в образовании.




четверг, 28 апреля 2022 г.

Roblox studio — среда для обучения программированию на языке Lua

Roblox Studio — отличная среда для обучения детей основам программирования, game design, композиции и игровой логики.

Программирование изучается на основе языка Lua, с некоторыми изменениями для среды.
Roblox Studio

Применение и Распространённость

В первую очередь Roblox Studio  использовался для создания игрового контента Roblox сообщества.

Сейчас по популярности Roblox и Minecraft разделяют пальму первенства: более 100 миллионов игроков в Roblox и более 90 миллионов игроков в Minecraft

В Roblox не только играют, но и разрабатывают свои приложения и игры и зарабатывают на них. Согласно официальной статистики почти 30 миллионов разработчиков приложений и игр для Roblox
Статистика разработчиков

 Roblox достаточно гибкое сообщество и предусмотрело реализацию своего контента на различных платформах: ПК, планшет, телефон...

Поэтому, ваше приложение можно будет запустить как на Windows, macOS, так и на android и iOS. Для Linux также есть решение запуска и среды разработки и приложений.

Всё это расширяет возможности распространения. 

Игровая валюта

Среда Roblox Studio бесплатна и большинство игр и приложений бесплатны, но есть платный контент для эксклюзивов (модели, костюмы, модули, и т.д.), которые вы и сами можете создавать и продавать.

Игровая валюта в Roblox - это Robux. Официальная ставка


robux
Исходя из данных сведений, то 1 Robux = ~ 1рублю.

Возможности в Roblox Studio

Данная среда позволяет вам создать достаточно разнообразные игры, как по жанрам, так и по игровым механикам, но кроме этого вы можете создавать и приложения (калькуляторы, проигрыватели, конверторы, 3D карты и т.д. )

Roblox Studio предлагает огромный контент из бесплатных моделей, мешей, изображений и звуков, которые вы можете также пополнять. 
Models

Также среда поддерживает импорт 3d моделей, созданных вами в других редакторах, например в Blender. 
Модель из Blender 


Импорт модели

Ключевым моментом здесь является импорт низкополигональных моделей с числом полигонов меньше 10 000.

Ниже представлены вариации, что можно создавать и чему обучать в Roblox Studio.

1. Обучение архитектурному и графическому дизайну, разработке композиций интеръеров и т.д.
Архитектура

2. Обучение ландшафтному дизайну, географии и геологии. Приобретение опыта и навыков игрового level дизайнера
дизайнер уровне

3. Обучение программированию на языке Lua. Огромный спектр изучения: от базовых алгоритмов до машинного обучения.
программирование

Программирование

Программирование

4. Обучение математике и физике. Данная среда обладает всеми инструментами, чтобы осветить почти все разделы математики, а следовательно и реализовать физические модели явлений.
При должном подходе детей можно обучить многому.

Математика

Фракталы Аммонит

Папоротник Барнсли

Треугольник Серпинского

Физика

5. Разработка игрового приложения от нуля до выпуска. На основе данной среды вы можете показать ребёнку процесс разработки игры или приложения на различных стадиях: сценарий, 3d моделирование, прорисовка уровней, разработка игровой механики, разработка логики взаимодействия и поведения, звукорежиссура, сборка проекта, продвижение и реклама и, возможно, коммерческая реализация.
Игры


При грамотном подходе Roblox может стать в ваших руках серьёзным образовательным инструментом, который сможет дать не голую теорию, а практические навыки и опыт.

Я использую Roblox Studio в образовательных целях уже пять лет. На основе моего опыта я написал книгу по основам разработки игр и программирования на lua в Roblox:
"Roblox: играй программируй и создавай свои миры"

Roblox book

Вы можете подробно изучить данную тему на основе этой книги или сборника видеороликов, которые я сделал для помощи
Ссылка на весь плейлист 
https://www.youtube.com/playlist?list=PLQ9fFRN1nNjDPkusMFsxxVOTw2mBfC3_s

Пример одного видео

Удачного всем изучения.




пятница, 15 апреля 2022 г.

Российские компании, разрабатывающие наборы для образовательной робототехники

Данная статья посвящена обзору имеющегося российского рынка в области образовательной робототехники в рамках современных реалий.

Сейчас уже идут предпосылки о замене и переходе в образовательном процессе на российские решения. 
Я решил пройтись по данным производителям и сделать некий краткий анализ.

  1. Компания БСКомп - Набор "НикиРобот"
  2. Компания R:ED - Набор "R:ED X EDU" и "R:ED PRO+"
  3. Компания DIGIS - огромный асортимент наборов. Наборы Matatalab, Makeblock
  4. Компания ООО «КиберТех» - Набор "Трик".
  5. Компания MGBOT - Наборы Йотик
  6. Компания ROBBO - Наборы ROBBO
  7. Компания Образовательная среда - Наборы ROBOBLOQ
  8. Компания ZARNITZA - образовательные наборы
  9. Компания ЗНАТОК - образовательные наборы электрические схемы
  10. Компания Роботикум - робот бабочка
  11. Компания Умки - наборы CAR
  12. Компания Центр робототехники - подводная робототехника
  13. Компания Эвольвектор - наборы Эвольвектор
Ниже, будет мой субъективный анализ наборов исходя из моей практики работы с ними и отзывов других людей, если они есть.

Чтобы как-то математически описать возможности наборов, их характеристики и область покрытия тем в учебной программе с интеграцией с другими дисциплинами я сформулировал выражение, которое поможет дать косвенную оценку.

Наборы будем рассматривать для детей школьного возраста. от 7 до 17 лет.
Формула 
P = (N+T+V+K+U)/C*0.001

N - количество возрастных групп, которые способны работать с данным набором (0 -10)

T - количество тем, которые заложены в методике, идущей с этим набором и потенциально возможных тем, которые вы сможете реализовать с помощью данного набора (0 -10)

V - вариативность. Способность набора к разнообразию конструкторских и программных решений (заложено в методике и ваш взгляд на реализацию) (0 - 10)

K - комбинированные возможности. Способность набора взаимодействовать с другими образовательными решениями (наборами) (0 - 10).

U - удобство экслутации. Оцениваем удобство с точки зрения ребёнка. (0 -10)

С - условная стоимость набора (комплекта).

Анализ и оценку я сделал в первую очередь для себя и вы можете не согласиться с этим.

  1. Компания БСКомп - Набор "НикиРобот"
С данным набором я знаком, так как писал для него методику и проводил на нём занятия.
НикиРобот

Данный набор, как можно заметить схож с Lego EV3 дизайном деталей, что позволяет сочетать данные детали с деталями lego. Совместимость 99%, за исключением электронной части.
Детали литые. 
Соединительные провода имеют телефонные коннекторы, тем самым легко заменяются. Базовый набор содержит датчики и моторы  так же, как и стандартный комплект lego ev3.

Мозгом данного набора является разновидность arduino платы с расширениями, что позволяет программировать на двух языках: высокого уровня Arduino ide (C++) и Блочного через mBlock5

Порог вхождения 8- 9 лет. Для данного возраста, обычно, преобладают конструкторские проекты с минимум программирования. Программирование на блочном языке mBlock5 (scratch).

В методике даются темы к основам программирования, базовые алгоритмы, работа с датчиками и модулями, входящими в набор (6 шт - ультразвуковой датчик расстояния, датчик касания, датчик цвета, датчик линии (двойной), IR модуль, Bluetooth модуль), двумя dc моторами с редукторами и знакомство с кинематикой - этот раздел предназначен для детей 13 -17 лет, уже изучающие физику. 

К методике прилагаются конспекты уроков в общей сумме на 60 тем - от простых до сложных.

В каждой теме есть три варианта сложности A, B и C. Первые два для общего изучения, а третий для погружения и переход к проектной деятельности. 

Данный набор можно использовать и в качестве проекта для участие в соревнованиях, нпк, фестивалях. 

Так как деталей в наборе порядка 500 шт, то они дают нам возможность создавать разнообразные устройства, которых нет в методике.

Касательно стоимости, то она достаточно демократичная, т.е. как минимум будет ниже стоимости lego ev3 или spike, как минимум в 2 раза.

Источник питания - литьевой аккумулятор, что позволяет многократно заряжать его. Есть зарядное устройство. Аккумулятор съёмный.



    2. Компания R:ED - Набор "R:ED X EDU" и "R:ED PRO+"

С данным набором не знаком очно, но попытаюсь проанализировать на основе обзоров других людей и на основе информации с сайта и их youtube канала.

На сайте "Занимательная робототехника" есть обзор по одному из наборов R:ED. Прочитать статью можно ЗДЕСЬ.
Из данной статьи и видеороликов видно, что  компания пошла по тому же направлению, что и компания выше.  Это позволяет расширить комбинированные возможности, например с lego ev3.

Мозг набора является arduino плата. Детали и корпуса напечатаны на 3d принтере. Источник питания - две батарейки AA (идут в комплекте).

Из датчиков:  ультразвуковой датчик расстояния, три ir датчика (датчик линии), гироскоп, два датчика касания. Два dc мотора, два сервопривода. Соединительные провода штекерного типа стандарт для электроники под arduino.

Судя по структуре корпусов моторов, могу предположить, что там отсутвуют редуктор.
Программировать контроллер можно также на arduino ide (C++) или на scratch в своей среде Red Code.
Инструкций к набору идёт 5 штук и разработано 12 уроков (заявлено на сайте производителя)

По методической составляющий данный набор может быть применим в младших классах (2-3 класс), а вот с учётом соединительных проводов и портов подключения для детей постарше (с 6-7 класса). В среднем - это скорее всего возраст 12 лет.

Количество деталей -700 .
Стоимость набора так же демократичная.

 3. Компания DIGIS - огромный асортимент наборов. Наборы MatatalabMakeblock

С наборами по робототехники данной компании я знаком.

Наборы matatalab предназначены для дошкольного и младшего школьного возраста (1-3 класс). Вся электроника в литом пластиковом корпусе. С наборами идут красочные дидактические материалы. Есть методический материал для каждого набора по 12 -15 уроков.

Наборы makeblock предназначены для детей с 5 и по 11 класс. Детали набора сделаны из алюминия и их количество зависит от набора. Почти в каждом наборе присутствуют базовые датчики: ультразвуковой датчик расстояния, датчик линии и цвета (может быть двойным или четырёхпарным), bloetooth модуль. В новых версиях присутствует и wi-fi модули. Отдельно есть набор с датчиками и модулями, которые также легко интегрируются с другими наборами makeblock.
Электромоторы оснащены энкодерами, что позволяет их использовать как датчики и точно регулировать процесс работы.

Среда программирования mBlock5   , любой контроллер можно программировать на scratch языке (блочный язык программирования) и ещё в зависимотси от контроллера можно программировать и на arduino ide (С++)и Python.

Для языка python данная среда ушла далеко вперёд от сходных сред. Кроме стандартных модулей языка идущих в комплекте вы можете установить любые сторонние. 

Также makeblock развивает сообщество разработчиков и разработчиком какого-либо расширения может стать каждый ребёнок или взрослый. В результате есть доступ к большой базе решений под ваши задачи.
Некоторые наборы идут в направлении IoT.

Для многих наборов есть методические сборники на 10 - 30 тем и для всех есть инструкции.


Наборы с большим количеством деталей более вариативны. Тип соединений - винты.

На базе наборов можно рассматреть огромное количество тем почти из всех естественнонаучных дисциплин. Конечно выделяется: физика, математика, информатика и технология

Соединительные провода  имеют телефонные коннекторы, что легко заменяемы в случае поломки. Так как детали из металла, то очень износостойки.

Детали makeblock могут крепиться с деталями Lego, что расширяет возможности.
Количество деталей от 50 до 1000 в зависимости от набора.

Источник питания - в некоторых батарейный отсек, а в некоторых аккумуляторная батарея, котрую можно перезаряжать.

Темы для изучения огромны. Можно охватить не только основы робототехники, но темы физики, биологии, информатики и математики.

Стоимость наборов средняя с учётом материала изделия.


4. Компания ООО «КиберТех»Набор "Трик".
 
С наборами ТРИК я также знаком по конструктивной составляющей они схожи с VEX. 

ТРИК, по моим ощущениям и опыту, расчитан на 6-11 классы. Детали сделаны из алюминия. Есть свой разработанный контроллер на базе ARM. Язык программирования: графический, Python и JavaScript в среде TRIK STUDIO.

Количество и состав датчиков варьируется от набора, но также их можно приобрести дополнительно. К основным относятся ультразвуковой датчик расстояния, датчик касания и web камера.
Электромоторы две штуки со встроенными энкодерами - количество увеличивается от выбора набора вместе с сервоприводами. 
Достаточно обширная методическая база. Есть два сборника для работы с набором и средой TRIK STUDIO. В общей сумме разбирается более 30 тем


Соединительные провода штекерного типа. Тип крепления - винты.

Цены достаточно высокие на наборы. 

Здесь также присутствует вариативность в конструкторских решениях и чем больше набор, тем выше данная вариативность. Данный набор можно комбинировать с наборами vex и makeblock

Количество деталей от 100 до 1000 в зависимости от набора

С набором идёт литий ионный аккумулятор.

По факту, можно рассматреть огромное количество тем почти из всех естественнонаучных дисциплин. Конечно выделяется: физика, математика, информатика и технология.

5. Компания MGBOTНаборы Йотик

С наборами данной компании также знаком и в основном они идут в направлении IoT (интернет вещей). По уровню сложности как в работе с деталями, так и с программированием я рекомендую  для 6 -11 классов.

Контроллером является плата arduino с модулями для передачи данных по сети интернет.

Детали в зависимости от набора - это пластик с металлическими винтами, либо фанера с металлическими винтами. Детали сделаны так, чтобы можно было собрать конкретное устройство: умный дом, умная теплицы, мобильный робот.

Электронные части устройства открыты и подразумеваются знание детей работы с электрическими цепями и эксплутацией электронных устройств. 

С каждым набором идёт инструкция в бумажном и электронном виде с готовой программой.
Есть несколько методических сборник, к сожалению мне не удалось их изучить, но для настройки всех компонентов набора достаточно и инструкции, а далее, если вы знакомы с arduino, то скорее всего сможете разработать учебную программу.


По вариативности, то скорее всего можно комбинировать с датчиками и модулями только arduino.
Языки программирования это в основном Arduino ide (C++) и интеграция со средой TRIK STUDIO - графический язык.

Стоимость очень высокая даже в сравнении с TRIK.

Обзор тем очень узок. В первую очередь это сборка и монтаж электрических цепей и основы в области приёма и передачи информации по средством проводных и беспроводных технологий.


6. Компания ROBBOНаборы ROBBO

Также знаком с некоторыми наборами мобильных роботов данной компании. Контроллер создан на базе arduino. Мобильные роботы - это своего рода монолитные платформы на колёсах со встроенными моторами с энкодерами.

К робоплатформе идут датчики - датчики линии (2 шт),  датчик расстояния, датчик освещённости, датчик касания. Есть модуль- светодиод и bluetooth модуль.

Особенность крепления датчиков - магнитное соединение. Все электронные компоненты находятся в прозрачном корпусе. На платформе выведены пины из платы arduino для самостоятельного подключения других датчиков, совместимых с arduino.

Есть расширенный набор с ультразвуковым датчиком расстояния и сервоприводом с захватом
Деталей, из которых можно сделать другую конструкцияю почти нет.

Методические разработки присутствуют и продаются отдельно самой компанией на 34 урока. Есть возможность заказать методическое сопровождение.

Язык программирования scratch и arduino ide (C++). Есть своя среда программирования ROBBO SCRATCH.

Данные наборы рассчитаны на 3 - 9 класс.

Источник питания либо USB (проводной), либо с помощью батарейки (аккумулятора) на 9В (крона).

Вариативности в конструкторском решении почти нет. Интегральность с другими наборами почти нет, за исключением с датчиками и модулями arduino

Тематика изучения базовая: кинематика робота и основы работы с датчиками. Некоторые вопросы физики и информатики на данном наборе можно также рассмотреть (кинематика, базовые алгоритмы).

Цена достаточно высокая для данного набора.
 
7. Компания Образовательная средаНаборы ROBOBLOQ

Я также знаком с наборами данной компании. Есть наборы для дошкольного и младшего школьного возраста: Express  и Cobo.
Есть наборы для средней школы q-scout, qoopers.

Линейка для дошкольного и младшего школьного возраста (4 - 8 лет) развита хорошо. Тут есть и дидактический и методический материал.

Для Express можно создавать свою железную дорогу из других образовательных наборов.
Для Express есть методическое сопровождение на 18 уроков в бумажном виде (идёт с комплектом).

Для Cobo  также есть методическое сопровождение, которое варьируется от 24 до 69 уроков в зависимости от комплектации (база, логика, география, арифметика, биология, динозавры).
Для Cobo есть своя среда для программирования на языке схожим с Lego WeDo/
Софт можно посмотреть здесь.
Источник питания литийионная батарея заряжается по USB.

У всех наборов есть схожесть с продуктами matatalab и makeblock

Наборы q-scout и qoopers в основном предназначены для 3 - 6 класса. 
Есть вариативность решений от 5 до 10 конструкций будет вам предложено собрать и изучить. 
Для обоих наборов есть методическая литература на 15 уроков как в электронном виде, так и в бумажном (идёт с образовательным набором).

Наборы q-scout и qoopers интегрируемы с наборами Trik , Makeblock и имеют возможность соединяться с деталями lego, а следовательно с никиробот и r:ed pro и r:ed edu
В наборах есть два мотора с редукторами и энкодерами.
Датчики:
-  в q-scout есть ультразвуковой датчик расстояния и датчик линии спаренный
- в qoopers есть дисплей

Оба оснащены RGB подсветкой и зуммером. Тип крепления - винты. 
Есть возможность заказывать датчики. Скорее всего датчики никиробот будут совместимы (не проверял), но тип соединения идентичен.

Соединительные провода с телефонными коннекторами.
Источник питания- батарейный отсек для батареек АА. Возможна установка аккумулятора. Зарядное устройство к аккумулятору поставляется.

Тема - базовые вопросы робототехники в первую очередь мобильной, кинематика робота, механика и оптика (работа со светом). Информатика

Цена средняя, сравнима с цена на такие же наборы от makeblock.


8. Компания ZARNITZAобразовательные наборы

С наборами данной компании не знаком, но по изучению сайта и видеороликов с обзорами можно сказать, что компания специализируется на поставку оборудования в среднеспециальные и высшие образовательные учреждения.

В большинстве случаях наборы идут уже в готовой комплектации.  Задачи, которые здесь преследуются связаны не с конструированием и развитием инженерных навыков, а нывыков в области программирования, диагности и управления.

Для школы может подойти 
Учебно-тренировочный комплекс по изучению ПДД "Роботизированная мобильная платформа"

Вариативность в области конструирования почти нулевая, как и интеграция с другими наборами.
Основной контроллер учебных роботов - arduino.
Следовательно, и программирование возможно на arduino ide.
С наборами идёт методическое сопровождение с описанием лабораторных работ.

У мобильных платформ присутствует от 2 до 4 моторов с энкодерами и видеокамера wifi.

Цены достаточно высокие.
Тема - промышленная и мобильная робототехника, математика и информатика (программирование), физика (механика).


С наборами данной компании знакомы многие. В основном это наборы по созданию электрических схем с помощью специальных компонентов на магнитных контактах или клёпках. Данные компоненты содержит в себе либо датчик, либо модуль, либо актуатор, а его концы выполняют роль соединительных проводов. 
Вся электронная часть содержится в корпусе.
В основном, предназначен для 5 - 8 классов ( с условием углубления в схемотехнику и программирование).
Компания к каждому набору предоставляет информацию по программированию  на нескольких языках: scratch, arduino ide (c++) (сделали свою библиотеку), python (для этого разработали свой модуль)
С набором идут пошаговые инструкции. Методической составляющий так таковой нет, поэтому придётся делать самому.

Основной контроллер - arduino.

Цены средние.

Вариативность сильная, нам позволяют создать разнообразные схемы 100 -500.

Интегрированность слабая, только среди таких же наборов.

Темы: электродинамика и частично мобильная робототехника (если вы используетет набор мобильного робота).

10. Компания Роботикумробот бабочка

Данная компания имеет пока один образовательный набор "робот бабочка" и позиционируется для обучения в ВУЗах. Преподователю предоставляется обучающий курс и методическое сопровождение.

Качество и объём курса и методики невозможно оценить, так как всё находится в закрытом доступе.
Также нельзя указать какой контроллер используется и какой язык программирования. Известно что есть определённое ПО под данный набор.

Стоимость тоже не известна только при непосредственном заказе и возможно она высокая.
Вариативность в плане новых конструкторских решений нулевая. Интегрированность с другими наборами нулевая.

Темы: мехатроника, кинематика, математика, информатика - скорее от старшей классов до тем высокого уровня.

11. Компания Умкинаборы CAR

С данными наборами незнаком очно и буду ориентироваться относительно официального сайта и видеороликов обзоров.
Данные наборы по конструкции больше предназначены для 5 - 8 класса.
У некоторых наборов открытая электроника, что даёт ограничения на использование детям.
CAR4 для 5 - 6 класса
CAR5 для 7 - 8 класса
Основной контроллер на базе arduino.

У CAR5 есть ульразвуковой датчик и два датчика линии. У CAR4 - только датчик считывающих положение (карточки с командами). Оба набора имет встроенный Bluetooth модуль.

Вариативность в области конструирования достаточно низкая. Интегрируемость с другими наборами тоже низкая. Есть возможность подключать другие датчики и модули arduino (CAR5)

Источник питания - батарейный отсек на 4 батарейки АА (можно использовать аккумуляторы)
Зарядного устройства нет.
Темы - мобильная робототехника, алгоритмика, кинематика и информатика с математикой.

Для наборов есть методическая литература, поставляется отдельно.





Цены средние для данных наборов.


12. Компания Центр робототехникиподводная робототехника
Компания, а точнее центр детского творчества, который, параллельно основным направлениям робототехники и программирования обучает подводной робототехнике.

Данная компания предлагает наборы по подводной робототехники.

Это достаточно своеобразное направление, требующие наличие водной среды. Часто - это бассеин.
Наборы качественные. К ним идёт и методическое сопровождение.
Что это за направление и ка проходят соревнования и обучение можно узнать, например, посетив ближайшее 


Для таких наборов цены средние.
Задачи специфичны. Наборы, в основном, предназначены для 7 -11 класса.

Вариативность для данного набора низкая, как и интегрируемость с другими наборами, но возможна.
Темы - робототехника, математика, физика (кинематика, гидродинамика), информатика (программирование).

13. Компания Эвольвектор наборы Эвольвектор

Компания эвольвектор специализируется на производстве образовательных наборов по электронике, как и знаток. Но есть и отдельная ветка наборов - робототехника.

Детали металлические в наборе иих от 500 до 1500 в зависимости от комплектации
Обширный набор датчиков  и модулей ардуино

Большая вариативность. Уже в базовом наборе нам предлагается создать более 20 моделей. 
В качестве контроллера в основном выступает разновидность arduino, но есть и с микрокомпьютерами raspberry pi

Есть базовые наборы, а есть и ресурсные.
Также можно заказать дополнительные комплектующие.


Данные наборы интегрируемы с makeblock, trik, lego ev3, а значит с никоробот и r:ed.
Методическое сопровождение тоже есть.

Цены средние в зависимости от набора.

Ниже оставлю ещё раз формулу, где вы сами можете для себя определить лучший для вашего взгляда набор (оценки критериев зачастую субъективны и только вам решать что выбирать)

Формула 
P = (N+T+V+K+U)/C*0.001

N - количество возрастных групп, которые способны работать с данным набором (0 -10)

T - количество тем, которые заложены в методике, идущей с этим набором и потенциально возможных тем, которые вы сможете реализовать с помощью данного набора (0 -10)

V - вариативность. Способность набора к разнообразию конструкторских и программных решений (заложено в методике и ваш взгляд на реализацию) (0 - 10)

K - комбинированные возможности. Способность набора взаимодействовать с другими образовательными решениями (наборами) (0 - 10).

U - удобство экслутации. Оцениваем удобство с точки зрения ребёнка. (0 -10)

С - условная стоимость набора (комплекта).

Пример реализации.

P = (10+9+10+10+10)* 20000*0,001


понедельник, 28 марта 2022 г.

Создание приложения под android на Delphi. Знакомство с Rad Studio 10.4

Данная статья посвещана знакомству с Rad Studio 10.4 от Embarcadero.

В ходе знакомство со средой мы создадим простое приложение, которое соберём под android.

Знакомство и Установка.

Для начала, при вбивании языка Delphi в поисковые машины, нас перебрасывают на страницы Embarcadero. Когда- то, 10 лет назад Delphi разрабатывала компания Borland, но последние пять лет вся разработка перешла в Embacadero.

Предыдущие версии языка были заточены под разработку приложений под windows.
Современный вариант языка развивается в сторону мультиплатформенности.

Теперь можно собираать наши приложения под самые известные операционные системы: Windows, MacOS, Android, iOS, Linux...

Rad Studio

Последняя на данний момент версия Rad Studio 11.1. Официальный сайт.

Embacadero развивает множество продуктов для разботки как платные, так и бесплатные.

Рассмотрим варианты бесплатных приложений (посетите страницу и выберите нужный софт):

Delphi



Многие бесплатные продукты бесплатны на определённый срок и до тех пор пока ваши приложения не начнут приносить доход, примерно, 5000$  за год и более.

Сейчас рассмотрим вариант Delphi - Community Edition - это бесплатная студия для разработки кода. На момент написания статьи это RAD Studio 10.4 Community.

При скачивании программы вас попросят пройти регистрацию, чтобы привязать вашу почту к данному продукту и лицензионному ключу, который позволит вам работать с программой целый год. 

Обычно в течении года выходит новый релиз Community программы с более новыми решениями.

Во время установки студии вам предложат установитьпакеты под различные операционные системы. Для теста выберем Windows и Android.

android


Скачав и установив программу вы можете запустить её.
Результат представлен ниже.

Delphi_app

В стартовом окне можно выбрать вариант приложения под определённые задачи:

- создание приложения только под windows
- создание мультиплатформенного приложения
- создание модуля, библиотеки, кустарного проекта.

Справа есть ссылки на видеоанонсы и вебинары по продуктам Embacadero.

Разработка мультиплатформенного приложения.

Выберим разработку приложение под мультиплатформенную реализацию.
В качестве теста создадим приложение таймер.

При нажатии кнопки "Старт" запускается таймер, а при нажатии "Стоп" - останавливается.
Для этого нам понадобиться поле для отображения текста - Tlabel
Понадобятся две кнопки - TButton
И главный компонент системный инструмент таймер - TTimer

Все они располагаются в окне приложения в таком виде в каком вы хотели бы это видеть.

multapp

Для TTimer изменим свойство Enabled на false. 
Для поля TLabel изменим поле "Text" на значение "0".

Кликнув два раза по значку TTimer перейдём к написанию кода. Здесь мы должны отправлять данные с таймера на текстовое поле Label и перезаписывать его с новым значением.

Label1.Text:=IntToStr(StrToInt(Label1.Text)+1); 

Прописываем это в том месте где замигает курсор - в созданной процедурной функции для таймера.

Полный код 

procedure TForm4.Timer1Timer(Sender: TObject);
begin
    Label1.Text:=IntToStr(StrToInt(Label1.Text)+1);
end;

Нажав F12, перейдём к окну приложения и кликнем два раза по кнопке "Старт".
Пропишем код для обнуления значений в TLabel и запуска TTimer.

Label1.Text := '0';
Timer1.Enabled:=true;

Далее, нажав F12 и перейдя в окно, кликнем два раза по кнопке "Стоп". Пропишем для неё остановку таймера.

Timer1.Enabled:=false;

Всё, наше приложение готово.

Скомпилируем его, нажав на зелёный треугольничек. Дождёмся компиляции и наслаждаемся нашей первой программой.

Ниже, под цифрой 2 представлено скомпилированное приложение.

app

По умолчанию мы скомпилировали под Windows.

Для того чтобы скомпилировать приложение под android необходимо сделать несколько шагов:

1. Выбрать платформу Android (разрядность не сильно важна) - это можно сделать в верхнем поле или в поле Project во вкладке Target Platform.

2. Над приложение есть выбор Стиля - через что смотреть - через компьютер или мобильное приложение.
mob


3. Во вкладке Tools выберите Options и найдите адрес расположения android SDK

tools


sdk


4. Скопировав адрес перейдите по нему вставив в "проводник"

Найдите в открывшейся папке SDK Manager и запустите его



man

Здесь вы можете выставить галочки  для тех версий android, для которых хотите разрабатывать приложение.

5. Для того чтобы приложение скомпилировалось без проблем, то вам нужно либо создать эмулятор устройства, либо подключить своё мобильное устройство по USB.

Первый случай не всегда корректно работает и его создают в SDK Manager, открыв вкладку Tools данного окна.

Выбираем версию андроида и характеристики потенциального устройства  и после нажимаем "OK"


Для второго случая вам понадобиться телефон или планшет в котором активирован "режим разработчика". 
Он активизируется в настройках - о телефоне - номер версии. Кликаете по номеру версии 4 и более раз и у вас появится надпись - "Вы разработчик".
Далее, вам нужно перейти в окно Настройки- Дополнительные настройки-Режим разработчика и активировать режим "Отладка по USB".

После этого можете подключаться к ПК и дать разрешение на телефоне всплывающему окну.
Через какое то время RAD Studio обнаружит ваш телефон. Его или эмулятор нужно выбрать.



Скомпилированные файлы храняться в папках bin там где и исходные проекты. 
Незабудьте перед компиляцией предварительно сохранить свой проект.

Небольшое разъяснение по данной статье представлено на видео






Разработка 3D игр на Unity

Дорогие друзья, вышла книга по разработке 3D игры на Unity моего авторства. Здесь я пошагово разбираю создание игры от основ языка C# до ком...