воскресенье, 10 июля 2016 г.

4.6. Сначала думаем

Урок: 4.6. Сначала думаем

Транскрибация урока: Итак, это будет система автоматического полива. Автоматический полив будет осуществляться при наступлении определенных климатических условий. Кроме этого, данные о климатических условиях можно будет посмотреть на веб-странице, подключившись по сети. И также с этой же веб-страницы можно будет включить принудительный полив растений. Ну начнем с того, что действовать система может, поливая что-то – то есть у нас, естественно, присутствует помпа. Поливает она в автоматическом режиме в зависимости от наступления каких-то климатических условий. Каких климатических условий? Мы будем ориентироваться на влажность почвы, мы будем ориентироваться на температуру воздуха и мы будем ориентироваться на освещенность. Вы, наверное, знаете, что разные растения предпочитают различный режим ухода. И на самом деле можно ориентироваться еще на большее количество показателей, например: на кислотность почвы, на расписание полива, привязанное ко времени, на, не знаю, атмосферное давление и влажность воздуха. Но для базового варианта вот этих трех показателей будем считать, что достаточно. Например, мы можем сделать вариант, что в темноте растение не нужно поливать или не нужно его поливать, когда температура ниже какой-то отметки, и так далее. Итак, значит, с помощью трех вот этих вот датчиков мы можем определить момент, когда следует осуществить полив. Затем мы говорим, что эти данные, полученные с датчиков, мы хотим отображать на веб-странице. Для нас это нечто новое. Мы для реализации этого воспользуемся новой платой расширения Ethernet shield, которая и позволит подключать Arduino к локальной сети, ну а там и до Интернета рукой подать. Значит, вывод веб-страницы будет реализован благодаря Ethernet шилду. Соответственно, получение команды на принудительный полив будет реализовано благодаря этой же части. Вроде бы, все, но когда мы начнем все это реализовывать, мы быстро поймем, что в какой-то момент вода в емкости, откуда помпа ее берет, заканчивается. А как мы знаем, помпа плохо переносит перекачку пустоты – воздуха. Поэтому нам для сохранности устройства нужно определять момент, когда в емкости закончилась вода. То есть у нас появляется какой-то новый функционал, который не связан с заявленным пользовательским, скажем так, функционалом, который был в описании устройства. Здесь нам предстоит выбрать какое-то решение для определения наличия воды в емкости. Я навскидку могу предложить 3 варианта: например, использовать ультразвуковой дальномер и направить его вниз на воду, и измерять уровень воды. Соответственно, когда он станет слишком низким, то есть до воды получится слишком большое расстояние, значит она кончилась. У этого метода есть еще и такой плюс, что мы можем точнее дозировать воду. Если мы знаем площадь поверхности воды, то, зная расстояние до нее, мы можем вычислить объем выливаемой воды. Это первый вариант. Другой вариант: мы можем поместить в емкость какой-нибудь поплавок и разместить, например, на нем магнит, и на корпусе разместить датчик Холла (то есть датчик магнитного поля), и определять прохождение магнита мимо этого датчика. Либо мы на поплавке можем разместить какую-то контрастную разметку и с помощью датчика оттенка серого определять, прошла ли метка мимо него. Ну сейчас я предлагаю попробовать самый простой вариант – это вариант с кодовым названием «концы в воду». Просто опустить туда 2 провода и на один из них подавать сигнал, а с другого считывать. Соответственно, вода у нас не дистиллированная, то есть в ней есть какие-то примеси, она является проводником. И если оба контакта находятся в воде, мы будем на входе получать простой цифровой сигнал, как будто бы нажатую кнопку. Кстати, пока мы готовились к съемкам, мой коллега предложил еще один хитрый вариант: можно светить в емкость лазером, который, как известно, будет по-разному преломляться, проходя через воду и проходя через пустую емкость. И можно по преломлению луча определять, есть ли там вода. Но мы вернемся к простому способу «концы в воду». Что же мы будем делать, если обнаружим то, что вода кончилась? Мы не станем замахиваться на подключение к водопроводу, чтобы наполнить емкость вновь. Поэтому все, что мы можем сделать, это проинформировать пользователя о такой нештатной ситуации и не осуществлять полив, то есть не мучить зря помпу. Для оповещения пользователя мы можем воспользоваться звуковым сигналом, если пользователь находится поблизости. Ну а также невредно будет выводить об этом информацию на веб-страницу, потому что если вы, например, уехали в отпуск и тщательно следите за судьбой своего растения, и вдруг вы обнаруживаете, что в емкости-то кончилась вода, и при всем желании вы не сможете его автоматически полить, вам нужно срочно предпринять какие-то меры по наполнению, по возвращению и наполнению емкости водой. Итак, у нас базовая конфигурация с попмой, датчиками и Ethernet шилдом дополнилась двумя проводами, которые, по сути, представляют собой датчик воды, и пьезодинамиком, который будет индикатором окончания воды. Что касается прохождения сигнала. С подключением датчиков температуры и освещенности нам все уже понятно. Подключение датчика влажности почвы является пока что для нас белым пятном. С ним предстоит разобраться. Помпу мы тоже уже умеем подключать, и здесь мы пользуемся посредником – транзистором в модуле «Силовой ключ». Ethernet shield подключается, понятно, как плата расширения, а что делать с кодом, с вот этой всей работой по формированию веб-страницы мы, пока что не знаем, у нас очередное белое пятно. Простой цифровой сигнал мы умеем и записывать, и получать. И работать с пьезодинамиком мы также умеем. Поэтому у нас в схеме образовалось два вопросительных знака, которые нам нужно устранить.

Часть: Видео

Модуль: Как полить цветок из другого города

Описание модуля: После этой недели вы сможете соединять устройство с сетью, планировать его создание заранее, управлять мощной нагрузкой и давать правильное питание вашему созданию.

Курс: Строим роботов и другие устройства на Arduino. От светофора до 3D-принтера

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

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

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

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

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

Весь курс посвящен практике и самым лучшим решением для вас будет раздобыть электронику, повторять показанные примеры и экспериментировать самостоятельно.

Программа:
  • Неделя 1 Один старый и много новых знакомых
  • Неделя 2 Контроллер изучает мир
  • Неделя 3 Цель обнаружена
  • Неделя 4 Как полить цветок из другого города
  • Неделя 5 Мобильный робот
  • Неделя 6 Как создать новый предмет за час
Преподаватель: Алексей Перепелкин (1), Дмитрий Савицкий (2)

Описание преподавателя: (1) Алексей Перепёлкин занимается развитием робототехники на базе ЛИОТ МФТИ. В 2012 году открыл для себя новое захватывающее чувство – когда устройство, которое сам построил и запрограммировал, работает. Свернул с финансовой дорожки и создал кружок робототехники для подростков. Готовил их к соревнованиям. Стал посещать конференции, а затем проводил мастер-классы для тех, кто тоже хочет организовать занятия. Совместно с коллегами в 2013 году разработал новые соревнования – Робопрофи – для конкурса Робот для жизни и провел их. В 2014 году впервые провел Arduino-номинацию на фестивале Робофест, а для российского финала Russian Robot Olympiad 2014 сделал творческую категорию. С тех пор эти соревнования стали регулярными. Летом 2014 провел двухнедельную мастерскую в детском лагере Никола-Ленивца, а затем преподавал в выездной школе, посвященной программированию и робототехнике, которую провели ABBYY и Яндекс. В 2015 году стал руководителем направления робототехники в GoTo Camp, выездных школах, где участники создали десятки проектов, от прототипов умных домов и операторских тележек до робота-бубниста и принтера для незрячих. В 2014 году с коллегами начал проект Роболабы: мероприятия для школьников и студентов, где участники параллельно решают усложненные задачи, а затем проводят рефлексию сделанной работы и оценивают чужие в ходе серии мероприятий.

(2) Физик, научный сотрудник, выпускник МФТИ. Запустил кружок робототехники в 2011 году. Рассказал Алексею Перепелкину о том, как здорово вести кружок робототехники. Рассказал об этом еще целому ряду людей. Побеждал со своими командами на соревнованиях. Проводил проектную работу с участниками исследовательской выездной школы МКШ с 2013 года, где руководил реализацией физических и робототехнических проектов, например, «Вслед за солнцем», в котором изучалась эффективность динамической ориентации солнечных батарей на солнце. Вместе с коллегами разрабатывал и был судьей Робопрофи. Участвовал в подготовке проекта Роболабы. Вновь пришел в МФТИ для проведения факультативного курса «Основы создания киберфизических устройств»

Организатор: Лаборатория инновационных образовательных технологий МФТИ (1), Лаборатория инновационных образовательных технологий МФТИ (2)

Описание организатора: (2) Московский физико-технический институт (неофициально известный как МФТИ или Физтех) является одним из самых престижных в мире учебных и научно-исследовательских институтов. Он готовит высококвалифицированных специалистов в области теоретической и прикладной физики, прикладной математики, информатики, биотехнологии и смежных дисциплин. Физтех был основан в 1951 году Нобелевской премии лауреатами Петром Капицей, Николаем Семеновым, Левом Ландау и Сергеем Христиановичем. Основой образования в МФТИ является уникальная «система Физтеха»: кропотливое воспитание и отбор самых талантливых абитуриентов, фундаментальное образование высшего класса и раннее вовлечение студентов в реальную научно-исследовательскую работу. Среди выпускников МФТИ есть Нобелевские лауреаты, основатели всемирно известных компаний, известные космонавты, изобретатели, инженеры.

Категория: Компьютерные науки

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

Тематика: Разработка ПО

Материал: