вторник, 28 июня 2016 г.

3.10. Четыре символа через один провод

Урок: 3.10. Четыре символа через один провод

Транскрибация урока: Что делать, если мы хотим выводить данные не на экран компьютера, а прямо на наше устройство? Мы уже имели дело с семисегментным индикатором, но, как вы помните, работа с ним достаточно нетривиальна, например, для отладочного вывода каких-то значений проще его не устанавливать. Поэтому мы можем воспользоваться готовым 4-символьным дисплейчиком, который управляется по всего 3-м проводам. У него есть своя электроника, которая позволяет специальным образом закодированные сигналы получать и преобразовывать в набор символов на этом дисплее. Теперь вы уже знаете, что существуют библиотеки, что с ними как-то можно работать, поэтому мы можем им воспользоваться. Я подключил дисплейчик ко 2-му пину, и теперь мы разберемся, как с ним работать. Любой уважающий себя производитель делает описание своих компонентов и, по возможности, даже выкладывает библиотеки. В данном случае на сайте amperka я нашел описание этого дисплея и пошел за библиотекой, которая выложена на github. Затем я ее могу сохранить и в среде Arduino найти «Импорт библиотек», «Добавить библиотеку» найти то место, куда я сохранил скачанную библиотеку и затем использовать ее в коде, который я уже подготовил. Он начинается с подключения библиотеки к QuadDisplay — вот эта самая библиотека, которую мы только что нашли и можем скачать. В наш скетч с измерением расстояния ультразвуковым дальномером я добавил пин для дисплейчика, сделал его выходом и затем в скетче ничего не менял, кроме того, что вместо вывода в последовательный порт я использую функцию из библиотеки display int. Естественно описание функции обычно где-то соседствует с самой библиотекой. display int принимает 2 параметра: это номер пина, куда подключен дисплей, и, собственно, значение, которое ей нужно выводить. Выводим мы то, что нам возвращает функция measure, которая определена у нас там чуть ниже — мы ее видели в прошлом примере. Давайте теперь это загрузим и посмотрим, что дисплейчик нам покажет. Вот то же самое, что мы считывали в последовательном порту, теперь мы видим на дисплейчике. Согласитесь, это может быть гораздо удобнее, нам не нужно связываться с компьютером, мы можем сразу выводить либо рабочие, либо какие-то отладочные данные на дисплейчик. А теперь давайте соберем вместе все наши новые умения и создадим для нашего будущего радара корпус. У меня получилась вот такая конструкция. Здесь есть дальномер. Он установлен на специальную деталь, которая совпадает с «качелькой» сервомашинки. Собственно сервочка и экранчик, на который может что-то выводиться. Давайте теперь сделаем скетч для первого варианта радара — такой бесполезный радар, который будет просто сканировать пространство и выводить расстояние до объектов, которые он видит. В этом скетче просто соединяется все, что мы успели изучить в последние фрагменты. Мы используем библиотеку для работы с дисплейчиком и для работы с сервомотором, мы подключаем дальномер — эхо и триггер, подключаем экранчик, подключаем servo. Затем создаем объект servo, в setup настраиваем все пины и с помощью метода attach подключаем servo. Что у нас будет происходить в основном цикле? В основном цикле просто-напросто 2 цикла со счетчиком будут пробегать от 0 до 180 по единице, а затем обратно, и внутри каждой итерации сервомоторчик будет вставать в новое положение, то есть переменный счетчик задает угол для сервомоторчика. И будем выводить на экран то, что вернет функция measure, которая у нас определена, как в предыдущем эксперименте. В цикле, где счетчик идет в обратную сторону, происходит все то же самое. Ну и функцию measure мы уже видели и разобрали в прошлый раз. Теперь давайте посмотрим, как такой бесполезный радар будет себя вести. Здесь перед ним стоит множество предметов, некоторые из которых он видит хорошо, некоторые хуже. Здесь есть отражатель, который стоит под очень странным углом. Здесь есть штативы, у которых много узеньких деталей, и всякие другие элементы нашего ландшафта, расстояние до которых он сейчас выводит на дисплей.

Часть: Видео

Модуль: Цель обнаружена

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

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

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

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

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

Материал: