Как мы со школьниками мастерили сигнализацию на Raspberry для их собственной школы

    В октябре прошлого года совпало два события: первое — UPS привез мне из Англии три Raspberry Pi и еще столько же PiFace, из которых я намеревался мастерить себе сигнализацию на даче; второе — я вдруг вспомнил про свою родную школу, и мне почему-то остро захотелось раздать неформальные долги и пойти поучить чему-то детишек. Из этого родилось логичное решение: я собрал в коробку все имеющиеся железяки и пошел показывать их директору школы…

    Прежде подробного описания дальнейших событий расскажу немного предысторию из начала девяностых.
    В то прекрасное время во всех школах было очень весело, и большинству родителей не хотелось отдавать туда детей. Из этого кое-где родилась практика, когда родители десятка будущих первоклашек собирались вместе, находили помещение и организовывали там занятия, зачастую сами же и преподавали. Мне повезло: тогда как раз исполнилось 6 лет и мои родители такую школу организовали. Поначалу нас было всего человек семь, и занимались мы в помещении детского клуба. Потом подросли наши младшие братья и сестры, организовали еще один класс и переехали в помещение детского садика, потом еще пару классов набрали. Всего в Екатеринбурге тогда было создано до десятка подобных заведений. Ближе к двухтысячным все они либо диссипировали, либо превратились в большие коммерческие школы. С моей школой этого не произошло, благодаря нескольким энтузиастам это по прежнему 5 классов по ~10 человек в каждом, и денег на ней никто не зарабатывает.
    …Поначалу мне выделили четыре часа вместо уроков информатики для десятого и одиннадцатого классов. Так получилось, что в этих двух классах в текущем учебном году в сумме всего 10 человек — 3 мальчика и 7 девочек, их мне и предстояло учить.
    Подготовился я к занятиям основательно, написал две методички:


    Для начала предполагалось реализовать простейшее автоматическое включение света: к Разбери с Пифэйс подключались диодный фонарик и ИК-датчик движения, далее запускался скрипт на питоне, который в цикле опрашивал датчик и при срабатывании включал фонарик (шесть строчек). Управлять Разбери — через SSH.
    За день до занятия попросил раздать методички ученикам. На следующий день собрал все барахло (Raspberry, Piface, датчики движения, диодные фонарики, блоки питания на 5 и 12 вольт, монтажные проводки) и пошел на занятия.

    Как это происходило

    Комплекта у меня было всего три, а учеников 10, поэтому мы составили парты буквой “П”, посередине поставили еще одну парту и разложили на ней железки с кучей проводов (к вышеперечисленному добавились еще три витых пары для подключения Разбери к сети; фотографий, к сожалению, не осталось). Дети расселись по двое за компьютер, две пары работали с одним Разбери.
    Сначала я показал, какую классную штуку мы собираемся делать — со своего компьютера в интерпретаторе питона включил-выключил фонарик. Вроде понравилось. Далее я в общем объяснил, что же это я и как сделал, мальчики начали подключать девайсы к двум оставшимся Разбери, а девочки расселись по компьютерам и начали по методичкам воспроизводить мои действия.
    Поскольку методички я писал из головы, сразу проявился косяк — отсутствие звездочек при вводе пароля в Putty воспринимали не иначе, как зависание. Но с этим разобрались и до конца первой пары занятий все успели включить фонарик и считать данные с датчика движения.
    На следующей паре изучали питон, писали простейшие скрипты. Тут я в подготовке к занятиям совершил большую ошибку — не протестировал работу с mc, на котором предполагалось все это делать. Оказалось, что при работе через Putty весь экран mc заполнялся мусором. Кроме того, питон почему-то не воспринимает двойной таб в редакторе mc как двойной отступ, я это долго не мог отловить и понять, в чем дело. В итоге к концу занятий все написали простейшие скрипты, опрашивающие датчики, вроде всем понравилось.

    Продолжение

    Больше меня на уроки информатики не пускали и я предложил детям заниматься факультативно, вызвались четыре человека. Нужно было сформулировать для них задачу. Тут-то и сыграло свою роль, что школа некоммерческая, и у детей нет к ней потребительского отношения: когда я предложил сделать для родной школы умную сигнализацию, они согласились.
    Методичек писать не стал, решил, что по ходу будем формулировать задачи и решать их. Для начала — пусть еще по-изучают питон. Установил на два компьютера Linux Mint (как мне кажется, наиболее подходящая для обучения система), в нем — IDLE. Пришел на урок, первое, что взбрело в голову — пусть решат квадратное уравнение. И пусть еще уравнение задается в виде строки. Сделали.
    Обычную сигнализацию сделать слишком просто: в каждую комнату по датчику, подключить к Разбери, на Разбери скрипт в семь строчек. Нужна задача поинтереснее. Например, по срабатыванию датчиков определить количество человек в помещении — и алгоритм сложнее, и датчики нужно умнее расставлять. Нужно подумать, как это будет работать. Вот тут-то мы и зарубились… Суть в том, что срабатывание обычных ИК-датчиков движения, которые используются в сигнализациях, которые использовали и мы, не зависит от количества людей в поле зрения. Потому единственный способ решения задачи — обрабатывать последовательность срабатывания датчиков, то есть перемещения людей, поскольку перемещаются люди чаще по одиночке. Задача осложнялась еще и инертностью датчиков: при разовом срабатывании датчик размыкает контакт на ~10 секунд. Я подозреваю, что в математике есть специальный раздел для решения подобных задач, однако мы так заморачиваться не стали, пошли простой крестьянской логикой, в итоге, потратив в общей сложности часов 10 на мозговой штурм, кое-какой алгоритм сформулировали. Если коротко — решили тупо перебирать все возможные последовательности перемещения людей и определять, при каком минимальном количестве людей эти последовательности реализуются. Кроме прочего мы пришли к выводу, при типичном одновременном нахождении в помещении более 50 человек обычными ИК-датчиками мы их количество никак не определим. И тут начинается следующая веха нашего проекта.
    Я сразу решил, что 4 человека для занятий — это мало, нужно привлекать еще и восьмой класс. Им нужно что-то попроще, пусть это будут машинки для мальчиков и адресные RGB-гирлянды для девочек. Сделал соответствующий заказ на ебэе. Помимо прочего мне приехали еще 3 датчика расстояния. Мы со старшеклассниками решили установить их в проем входной двери для точного определения числа вошедших людей.
    Собственно это то, до чего мы дошли к настоящему моменту, to be continued…
    MakeItLab 46,19
    Компания
    Поделиться публикацией
    Никаких подозрительных скриптов, только релевантные баннеры. Не релевантные? Пиши на: adv@tmtm.ru с темой «Полундра»

    Зачем оно вам?
    Реклама
    Комментарии 22
    • +6
      Замечательно, что есть еще такие учителя. В мое время на информатике нас научили основам паскаля, только и всего, хотя возможностей было больше.

      Определять количество людей в комнате — интересная задача, но мне кажется что ИК-датчики тут совсем не годятся. Я бы думал как это реализовать используя камеру. Можно определять движущиеся участки в кадре и подсчитывать их, предварительно отсеяв по размеру. Возможно будет и не очень точно, но мне кажется что точнее, чем с датчиков движения.
      • +1
        Анализировать изображение с камеры — это, полагаю, в основном работа со специализированным софтом. Сначала хотелось им дать что-то простое и базовое.
        • 0
          Основам паскаля? Везёт-же. А нас учили картинки раскрашивать, перетаскивая цветные примитивы на чёрно-белую картинку-шаблон. Паровозики там всякие, домики. Да, ещё вроде-бы учили включать и выключать.
          • –1
            Не обольщайтесь, самая сложная программа (которая была как главная контрольная по курсу) — программа для решения квадратных уравнений. И то, учитель сказал мне что я её откуда-то своровал, так как те методы которыми я её реализовал в классе не озвучивались.

            А в начале курса, помнится, в пэинте тоже картинки всякие рисовали-раскрашивали.
        • +3
          Хорошая история. С удовольствием бы прочитал продолжение. Добровольные начала, это прекрасно. =) Как и картинки с занятий в статье ;)
          • +2
            Когда вел занятия о статье еще не думал, поэтому с картинками не получилось.
          • +1
            С точки зрения интереса, обучения и изучения интересных вещей — опыт очень полезный, а для детей еще и увлекательный.

            … Но позволю себе чуточку позанудствовать и немного поофтопить… где же такая школа без сигнализации?
            В соответствии с п. 5.39 СНиП 31-06-2009 здания образовательных учреждений должны оборудоваться сетями радиофикации, телефонизации, контроля доступа, охранной сигнализации с выводом сигнала на пульт управления ОВД или отделения вневедомственной охраной
            • 0
              Да, если узнают, что делали неприменимое устройство, огорчатся дети-то!
              • –1
                Уверен что не менее интересно будет провести реверс-инженеринг существующей системы охранной сигнализации, шины RS-485, попробовать замаскировать в двухпроводной линии связи или основной шине RS-485 пассивным устройством и под шумок пытаться простучать центральный контроллер на root-доступ и может быть даже его удаленно перепрограммировать. Но это уже не для школьников наверное задачи, да и директор по голове не погладит за такие эксперименты)) А потом еще не погладит ОВД или отделение вневедомственной охраны.
              • 0
                Какая-то сигнализация там есть, только почему-то без ИК-датчиков.
                • 0
                  По регламентам нет жестких требований по размещению датчиков, все достаточно обтекаемо. Главное что бы защищены были все входы и чердачный люк, а так же помещения с ценными вещами — компьютерные классы, помещение директора, учительская, ну и что там захочет администрация, окна первого этажа.
              • 0
                Можно считать количество людей установив счетчик в дверях. Вошло-вышло, но как охранка наверное не подойдет. Возможно попадание через окно.
                • +1
                  Что-то вспомнилось, не помню откуда: «Если из комнаты, в которой находятся 2 человека, выйдут пятеро, то когда туда зайдут трое, никого там не останется» :)
                  • +5
                    В метро входило пять Олегов
                    А выходило ровно шесть
                    Последний видимо скопился
                    За предыдущие года
                  • 0
                    а мне видится управление вентиляцией в зависимости от количества людей в помещении…
                    • +1
                      Датчик CO2 спасет отца русской демократии. Так правильнее, мне кажется.
                  • 0
                    Вот молодцом! Как вариант, можно еще попробовать ардуино \ launch pad (учитывая, что проект не коммерческий) они дешевле, писать софт для них не чуть не сложнее, а производительность для создания таких вот устройств вполне достаточная, даже для коротеньких адресных гирлянд. Поморгать диодиками, считать данные с PIR датчика, с ультразвукового дальномера, вывести на экранчик… Можно поиграться с акселерометром, гпс, термометрами и датчиками влажности, поковыряться в стареньком сисменсе на предмет отправки SMS сообщений, датчиком холла наконец… Сделайте с ними маленького робота, который объезжает\обходит препятствия, тогда ребята не будут расстраиваться тем, что их мега-крутые разработки никто не использует. Ведь ваша цель заинтересовать. Дайте им базовые знания для старта. Даже если это не пригодится в их жизни, они с удовольствием будут вспоминать ваши уроки… У меня в школе такого не было… Делайте фотки процесса, делитесь с нами информацией, возможно, что кто-то, прочитав ваши посты, воодушевится созданием подобного кружка и у себя рядом.
                    • 0
                      Кроме того, питон почему-то не воспринимает двойной таб в редакторе mc как двойной отступ, я это долго не мог отловить и понять, в чем дело.


                      Похоже на «симуляцию неполной табуляции» (или как это там в русской версии?) — Зайти в редакторе в меню «F9 — Options — General» и выключить флажок «Fake half tabs», ну и заодно включить там же заполнение табов пробелами — дабы чуть больше PEP8 соответствовать :)
                      • +1
                        в настройке putty надо выбрать кодировку UTF-8 (в appearance) и сохранить. Потом уже вызывать. Я еще шрифт 16 bold Cyrilic делаю.
                        • 0
                          Сам я уроки информатики вспоминаю с содроганием: компьютерный класс планировался через 2 четверти, а уроки уже были. Писали в тетрадку код для QBasic. Я дома честно брал домашнее задание забивал, (уже не помню даже версию) переписывал результат, а потом мне преподша ломала мозг и говорила, что мой ответ неверный, но не могла объяснить почему или продемонстрировать, как правильно. В общем в школе информатику я не особо уважал.
                          • 0
                            Больше меня на уроки информатики не пускали

                            Почему?
                            • 0
                              Не то, что не пускали, я сам не шибко рвался. Основной целью этих уроков было выявить интересующихся детей и дальше продолжать с ними занятия.

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

                            Самое читаемое