Прошла неделя с нашего первого практического занятия в УКШ. В рамках этой встречи мы успешно разобрались с включением Raspberry PI, с запуском python-программ, и выполнили все три запланированные лабораторные работы. Но, обо всем по порядку.
На самом деле, две недели назад, было еще одно занятие — вводное. Там я рассказал об истории робототехники и о различных классификациях роботов. Лекция проходила на фоне презентации, на большой интерактивной доске в 303-й лаборатории физтеха.
Хотелось объяснить ребятам, что предшественники современных роботов появились еще задолго до свершения индустриальной революции. Рассказать о том, что сотни лет назад, умнейшие инженеры создавали уникальные творения, которые поражают нас своей сложностью и сейчас. Показать как в 20-м веке робототехника шла рука об руку с развитием ЭВМ. Как люди впервые начали задавать вопросы о возможности создания разумных машин.
Однако, я лишний раз убедился, что лекции — не очень удачный вариант преподавания для школьников. Им нужны действия, стимулы, постоянное напряжение. Это уже потом они станут закаленными в сессиях студентами, способными часами слушать унылые лекции.
Учитывая этот опыт, мы решили немного доработать вводную лекцию, дополнив её демонстрациями реальных машин. Такие демонстрации станут мощными аттракторами внимания для школьников. Но вернемся к практике…
Для проведения первых лабораторных требовалось выполнить небольшой подготовительный квест.
1. Комплектование учебных наборов
Для начала, нужно было закупить и собрать воедино все компоненты набора. О том где я искал детали, и с какими проблемами столкнулся, я напишу в отдельной статье. Здесь лишь отмечу, что на момент проведения занятия у нас было в наличии только четыре Raspberry PI. Соответственно, можно было сформировать всего четыре учетных набора. Благо, всех остальных компонентов было в достатке. В набор для первых лабораторных работ попали:
- Raspberry PI;
- переходник HDMI-VGA;
- блок питания 5В/2А с microUSB кабелем;
- microSD-карта, объемом 4Гб;
- макетная плата, GPIO-разъем для неё (cobbler), и GPIO-шлейф;
- пучок перемычек для макетирования (65шт);
- 3 синих и 3 красных светодиода;
- 6 резисторов 200Ом.
Кроме того, я добавил некоторые компоненты для будущих работ:
- зуммер;
- АЦП;
- датчик температуры I2C;
- ИК датчик белой/черной поверхности.
2. Подготовка Raspberry PI к работе
Следующий шаг — установка подходящей операционной системы на SD-карту. Не мудрствуя лукаво, я выбрал самый популярный вариант — Raspbian “wheezy”. Raspbian — это по сути Debian, только оптимизированный для работы с Raspberry PI. А wheezy — его модификация с предустановленными полезными программами. Образ легко копируется на sd-карточку с помощью Win32DiskImager.
Для выполнения лабораторных работ необходимо было установить python-модуль raspberry-gpio-python. Об установке этого, и других полезных модулей я подробно расскажу в другой раз.
3. HDMI-VGA
Как правило, во всех компьютерных классах нашей страны, стоят мониторы с древним VGA интерфейсом. Raspberry же имеет только композитный выход RCA и цифровой HDMI. Предвидев такую проблему, мы заказали специальные переходники HDMI-VGA.
Именно здесь затаилась проблема, способная сорвать наше первое занятие в УКШ. Дело в том, что я заказал на adafruit китайские переходники, по $24 за штуку. Но уже после покупки, Илья высказал опасения, о том что эти дешевые переходники могут не заработать как надо. Судя по отзывам счастливых обладателей подобных устройств, имелись серьезные проблемы с их использованием совместно с Raspberry. В итоге, хотя на сайте adafruit и было написано о совместимости этих устройств с Raspberry PI, меня начали терзали сомнения в правильности моего выбора.
И вот, за день до проведения занятия, переходники, наконец, были доставлены. Я подключил Raspberry PI к своему VGA монитору. Включил блок питания контроллера в розетку, и…. И ничего! Дисплей ничего не показывал. Мало того, он даже не выходил из режима сна, и продолжал мигать оранжевым индикатором. Беда, беда, огорчение 🙁
Затратив пол дня на поиски решения, включая модификацию самого Raspberry PI и несчастного переходника, я всё-таки нашел причину неудачи. Проблема была в том, что этот конкретный переходник поддерживал только один единственный режим дисплея 640×480. Принудительно установив в настройках системы (/boot/config.txt) параметры отображения: hdmi_group=1 и hdmi_mode=1, мне удалось таки получить изображение на мониторе. Разрешение конечно не самое удачное, но для нашего курса вполне хватит. Оставалось надеяться, что в компьютерном классе физтеха не появится никаких новых проблем с мониторами.
4. Транспортировка
Наконец, всю эту гору электроники нужно было как-то принести в университет. Внимательно изучив ассортимент местного obi, в качестве основного контейнера я выбрал большой ящик для инструментов. Самый большой! А для всякой мелочи подошли небольшие пластиковые боксы, из того же obi.
На фото уже свежий комплект, готовый к следующему занятию. В нем появился LCD-дисплей, кнопка, ультразвуковой дальномер и потенциометр.
Подключение RaspberryPi к макетной плате и периферии
Выход GPIO от RasberryPi на Макетную плату.
Размещение разнообразной периферии для лабораторный работ на макетной плате (без пайки)
Лабораторные работы
Итак, имея на вооружении большой бокс, больше похожий на переносной холодильник для донорских органов, я отправился на занятия.
Присутствовало 9 человек из 20 возможных. В принципе, примерно на такое количество заинтересовавшихся мы и рассчитывали. Не исключено, что к следующему занятию это число изменится, причем заранее не известно в какую сторону.
В первой части урока я раздал всем комплекты оборудования и распечатки 2-го и 3-го занятия. Затем мы рассмотрели расположение основных входов и выходов на Raspberry PI и приступили к выполнению заданий, которые касаются включения контроллера и загрузки ОС. Для современных школьников всевозможные соединения разного рода «гаджетов» и «девайсов» не составляют никакого труда, так что первое занятие было выполнено минут за двадцать. Единственную проблему составило подключение блока питания, и лишь потому, что он вываливался из евро-розеток. Мы также запустили простенькую программу на python, которая выдавала надпись в консоль.
В третьем задании пришел черед первых лабораторных работ. Все три работы касаются работы с выводами общего назначения (GPIO), а именно, управления вспышками светодиодов. На решения этих, диковинных для многих учеников задач, ушло около часа времени.
При выполнении заданий, были выявлены некоторые недостатки собранных нами наборов:
- выводы резисторов на 0.125 Вт слишком тонкие, они легко гнутся и упрямятся их втыканию в макетную плату;
- хотя светодиоды и были расфасованы в разные пачки, их бесцветный прозрачный корпус может привести к путанице;
- очень неудобно работать с контроллером и макетной плате, разбросанными по столу; нужно какое-то моноблочное компактное решение.
Итог
В общем и целом, первые практические занятия прошли на оценку отлично. Во-первых, не возникло никаких технических проблем с аппаратурой (типа проблемы с HDMI-VGA переходниками). Во-вторых, все задания были выполнены за достаточно короткое время, что позволяет пройти базовый курс за меньшее время, чем планировалось (останется больше времени для курса мобильных роботов). Наконец, в-третьих, ни одно из устройств не было сожжено, что тоже очень радует 🙂
Уведомление: Нам два месяца! | Класс робототехники