Как начинать учить робототехнике?



Из переписки с Дмитрием Польским о том, как учить робототехнике в 10-14 лет

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

Поэтому главное, чему надо учить - это видеть потребности (свои и других людей), понимать, что является "проблемой" и учить решать ее, используя близкий ему инструментарий.

Любой проект - это ОБЯЗАТЕЛЬНО решение какой-то/чьей-то проблемы, для удовлетворения какой-то потребности, и не понимая этой потребности, сделать эффективно никакой проект просто невозможно!

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

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

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

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

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

И этого следует важный вывод: прикидывая проект проводки для своей дачи, вы должны представлять себе ТЕКУЩИЙ "АССОРТИМЕНТ МАГАЗИНА" - со всеми этими кримперами, наконечниками, гильзами, кабельными каналами и термоусадкой.

Да, вы можете сказать, что запросто сделаете проводку и "без этих наворотов", просто с пассатижами по "Практикуму по электромонтажу для 9-10 класса" 1973 года выпуска - но это в том случае, если вас интересует процесс, а не результат, потому что все эти "навороты" и появились с тех пор именно для того, чтобы получить результат быстрее, качественнее и дешевле.

Тут еще важный момент - "магазин с товарами" сейчас, по факту, предлагает не товары, а ТЕХНОЛОГИИ, даже если это и не очевидно: вы СНАЧАЛА выбираете технологию ("я буду делать монтаж на клеммниках", "нет, все равно буду скруткой!" и т.д.), а уже под неё - конкретные материалы, инструмент, комплектующие и т.п.

Теперь к предмету... Робототехника - это не про моргание диодами или ПИД-регуляторы, робототехника - это про то, как организовать взаимодействие в системе устройств для решения заданной проблемы.

Задача робототехники - не "давайте сделаем робота, который...". Задача робототехники - это "надо организовать перемещение изделий между такими-то позициями по такому-то алгоритму. Как я могу сделать это, используя технологии робототехники, раз уж я в них понимаю?".

Робототехника - это, прежде всего, про УПРАВЛЕНИЕ: вот, мне надо, чтобы робот переместился в позицию А и забрал там изделие Х; вопрос: КАКИЕ КОМАНДЫ я должен дать на какие моторы и другие исполнительные устройства, и КАКАЯ ИНФОРМАЦИЯ мне нужна (и с каких датчиков и как мне ее получить), чтобы эта задача была выполнена?

Более высокий уровень - а какие мне нужно ПРЕДПРИНЯТЬ ДЕЙСТВИЯ, чтобы решить поставленную задачу (соответственно, какие мне нужны для этого исполнительные устройства и с какими параметрами) и какая мне нужна для этого ИНФОРМАЦИЯ (и с помощью каких датчиков я ее могу получить).

Вот, про что робототехника!

И если ты понимаешь, каков должен быть алгоритм работы исполнительных устройств, то чтобы ЗАПРОГРАММИРОВАТЬ его - вы просто пригласите в команду соответствующего специалиста, и чтобы подключить датчик или сделать электромонтаж - тоже! Аналогично, видите, что какой-то ПИД регулятор требует настройки - просто пригласите специалиста по ТАУ... Короче, все эти компетенции никакого отношения к робототехнике не имеют, хотя такие специалисты в создании робота могут быть задействованы.

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

Ну, а теперь про технологии робототехники, ее инструментарий и, соответственно, чему учить...

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

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

Примерно то же сейчас происходит и в робототехнике: еще пять-семь лет назад "сделать робота" означало потратить несколько дней на проект (который не мог быть, к тому же, особо сложным из-за ограниченности возможностей по его технической реализации), а потом месяцы уходили на разработку механики, проектирование электрики/электроники, программирование контроллеров/компьютеров, организацию связи между ними и пр., и пр. Именно это было основной сложностью, и со стороны создавалось впечатление, что именно вся эта "механика - электроника - программирование" и являются сутью робототехники.

На этом же было сосредоточено и обучение: как сделать хотя бы простую конструкцию, как подключить датчик, как запрограммировать простейшие алгоритмы - на самом деле ЧТОБЫ РЕАЛИЗОВАТЬ ПРОЕКТ, но довольно быстро это "тайное знание" оказалось утраченным, а смысл проекта - потерянным... Действительно, над проектом ты думаешь полчаса, а ПИД-регулятор программируешь и настраиваешь три дня. "Естественно", уметь программироваться ПИД-регулятор - "важнее". Как следствие - имеем десятки тысяч человек по стране, умеющих настроить ПИД-регулятор, но никогда не делавших это в реальной жизни и даже не понимающих зачем...

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

Соответственно, изменилась "структура компетенций" в разработке робототехнической системы: раньше ты неделю делал проект и еще десять ее строил, сейчас - неделю делаешь проект и за неделю строишь, дальше - проект (как поднимание логики взаимодействия) вообще станет ключевым, а физическая реализация станет "делом техники".

Более того, для реализации даже достаточно сложных проектов будет требоваться все меньше специальных знаний и навыков, и специалист- робототехник запросто и датчики сам подключит, и систему управления запрограммирует, и, вообще - выдаст робота "под ключ". То есть, с виду, как раз "немного программирования, немного механики, плюс датчики-моторчики" - и тут раздаётся радостный вскрик "образовательных робототехников": "Ну, так мы же этому сейчас и учим!". Но в том-то и дело, что не этому: да, набор умений есть, а навыка их использовать - нет.

Так что, к вопросу чему учить... В 12-14 лет вполне можно научить ардуинку моргать диодами и жужжать моторчиками, причем даже с ПИД-регулятором, ползать по линии, переставлять банки и даже получить за это почётную грамоту. А можно предложить, имея ту же ардуинку, решить вопрос с маминым фикусом, чтобы разобраться с управлением внешними устройствами, получениями информации от датчиков и пр., и за неделю сделать систему, которая будет "сама" поливать ставший счастливым фикус. И наконец, можно разобраться с современным инструментарием робототехники и за пару-тройку дней НА ТОЙ ЖЕ АРДУИНКЕ сделать систему, которая полив будет производить в соответствии с сезоном, стадией вегетации, прогнозом погоды, с учетом тарифов на электроэнергию в течение суток, да еще выводя всю эту информацию вам на компьютер или смартфон, и посылая СМСку, когда отключают электричество или воду, потому что делается это вообще за день, только надо сначала понять, как увязать данные с датчика влажности почвы с прогнозом погоды на gismeteo. Потому как робототехника - это именно про то, как организовать совместную работу множества устройств при наличии множества источников информации. А понадобится подключить мотор, в драйвер которого еще почему-то ПИД-регулятор не встроен - так обратитесь к тому, кто прочитал "ТАУ для чайников". Ну, или сами прочитаете: тоже мне "тайное знание"...

Ну, а с 10 - можно научить уже делать все то же самое, разве что ардуинку дать запрограммированную, либо даже на ЛЕГО сделать

У нас на занятиях для преподавателей 10+ есть задача про короля, которому стало холодно в своём замке:

Король - его Величество,

Просил её Величество,

Чтобы её Величество

У печника спросили:

"Нельзя ль теплее сделать

В покоях короля?"

Ведь, чтобы Печник подкинул дров в свою печь, их должен привезти Возница, а для этого прежде нарубить Лесоруб. А как узнать, сколько дров подкидывать, чтобы перестало быть холодно, но не стало бы слишком жарко? Да, Дворецкий может посмотреть на градусник в покоях, но как от этого зависит, сколько дров подбросить? Или сколько дров рубить Лесорубу? Просто рубить, пока весь лес не срубит, а Возница пусть забирает, сколько нужно? Или начинать рубить, когда Возница приехал? Или надо, чтобы Дворецкий поднял флаг на башне, что, мол, дрова кончаются и Возница выезжает?


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

Если кто-то почему-то решит, что "Замок - он не робот", то как насчет задачки суметь провести свою галеру к пристани, командуя гребцами с правого и левого борта, слушая, что кричит впередсмотрящий и матрос, промеряющий глубины по ходу судна?

Я вас уверяю, что 10-летний школьник, понимающий как это сделать, "руля галерой", без проблем запрограммирует и мобильный робот, которому надо на складе "переместиться в позицию А, чтобы забрать там изделие Х": но будет просто знать, что "надо сказать" двигателю "с правого борта" или "с левого борта", и что "спросить у датчика", чтобы попасть куда нужно. А вот тот, которого научили ездить по линии - этого сделать просто не сможет. Или это не очевидно?

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

Строго говоря, если вы понимаете, что для правильной работы системы отопления в Замке, Король должен в какой-то момент дать знать Вознице, что, мол, "Запрягай кобылу!", то крикнет ли он ему это с балкона (т.е. оставаясь в рамках автономной системы), либо отправит пост в мессенджере (т.е. взаимодействие через Интернет) - вопрос технический.

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

В конце концов, отладите прототип, определитесь с функциональностью - ничего не мешает уже готовое решение посадить на борт и получить автономную систему, если этого требует задача.


Просмотров: 430