Каждому первоклашке свой «школьный» контроллер
«Школьный» контроллер
Предлагаю, продолжить разговор на тему «Что делать с детьми летом, если ты айтишник». Сегодня, как договаривались — про hard.
Родной российский чиновник не перестает нас умилять: дескать нужны стране IT-шники. А электронщики — те вообще нужны! Прямо позарез! Но, взяться они должны, естественно, по щучьему веленью, по их (чиновников) хотению! Говорят: за границей есть, и нам нужно! А память у наших чиновников очень «оперативная» — с казанул чего-нибудь в микрофон и забыл… Вот Президент В.В. Путин еще в 2017 году сказал, мол, кто преуспеет с искусственным интеллектом — тот и в дамках! Им бы, чиновникам нашим, «намотать эти слова на ус», запомнить и начать добиваться. Но, нет: память у чиновников только «оперативная» — чуть с работы вышел, все стерлось…
Помню (через 3 года после выступления Президента) Минобразования твердо пообещало ввести с 2021 г обучение программированию с начальной школы. Дескать, щас преподов обучим и вперед — догонять остальные экономически развитые страны. Мы-то с вами знаем, что обещанного в России три года ждут, ну и ждали, конечно. Но, недавно, уже в 2023 г, депутатам Госдумы сообщили, что в России создался дефицит учителей информатики. Правда небольшой — всего 3600 учителей на целую ⅙ часть суши!
А те-то, экономически развитые страны, не ждут, они своих деток еще с 2012–14 годов не только программированию учат, но и учат их в «железе» раз бираться. Понавыпускали всяких MicroBit«ов и дарят их (то есть, отдают совершенно безвозмездно) каждому первоклашке. Это — в Англиях, где учиться начинают с 5-ти лет. В других Европах MicroBit не дарят, но изучают его очень активно. MicroBit превращает обучение серьезным вещам в интересную игру. Как результат, в той же Англии пятилетки-первоклашки к 5-му классу вполне осваивают и Python, и Java Script…А в Поднебесной, читал, с обычного 5-го класса (не специального) начинают делать лабораторные работы по искусственному интеллекту (накупили для этого чипов у Intel)…
Но, в нашем Минобре ни про то, ни про это не читают и другим не советуют. Это ж только во времена СССР поэт В. Маяковский учил: «глазами жадными цапайте все то, что у нашей земли хорошо и что хорошо на Западе»…
Это лирическое отступление было — извините! А продолжая критику предложений автора заметки про то, что IT-шникам делать летом с их детишками, спрошу: «А не замахнуться ли нам на Вильяма Шекспира?» Может ну их, наших чиновников? Может самим подарить деткам не (уныло-примитивные и ни на что более не способные) светодиодные «мигалки» (котор ые, кстати, уже не первый раз рекламируют на Хабре, а ПОЛНОЦЕННЫЙ и доступный по цене, правда немножко «западный» контроллер китайского производства? Тот самый MicroBit. Может не будем ждать, когда их «импортозаместят»? А то детишки вырастут совсем…
Micro: bit невелик — с банковскую карту. Но, в его состав входят: простой дисплей, компас, акселерометр, измерители температуры и освещенности, микрофон, громкоговоритель и развитое программное обеспечение (включая спич-процессор). По сути Micro: bit — это миниатюрный электронный конструктор. Программирование позволяет управлять его «начинкой», превращая Micro: bit то в часы, то в градусник, то в компьютерную игру или в другие интересные устройства. Подключаешь Micro: bit к USB-порту компьютера, заходишь на один из бесплатных сайтов, пишешь программу, и Micro: bit превращается в новую вещь.
Micro: bit хорош и сам по себе — позволяет многое понять и во многом разобраться. А уж если подключить к нему дополнительные комплектующие (а их, что называется, пруд пруди), то создавай хоть роботов, хоть «умный дом». Кстати, проверено: эти «железяки» отлично выдерживают обращение с ними без антистатических браслетов даже морозной зимой. Каких‑то глюков ни разу не замечено. А чтобы подтвердить, что нисколько не передергиваю, нахваливая вам эту миниатюрную «железяку», приведу ниже несколько кусочков текста из второй нашей, совместной с внуком, книжки. Извините, если это будет выглядеть, как «обрывки из отрывков», но моя цель — дать общее представление о «школьном» контроллере.
—------------------ цитаты и иллюстрации из книги ------------------------
«На рис. 3.2 приведен перечень изображений (пиктограмм), имеющихся во встроенной в Micro: bit библиотеке. Обратите внимание, что две последние строчки в списке переводятся, как «Все часы» и «Все стрелки». Это — не пиктограммы, а сохраненные в библиотеке анимации из нескольких пиктограмм. Анимации можно вывести на дисплей следующими командами:
— display.show (Image.ALL_CLOCKS, loop=True, delay=100);
— display.show (Image.ALL_ARROWS, loop=True, delay=100).
В этих командах «loop=True» означает, что анимация выполняется постоянно — «по кольцу», а «delay=100» означает, что изображения, из которых состоит анимация, отображаются через 0,1 сек (100 миллисекунд). Выведите эти анимации на дисплей вашего контроллера.
Рис. 3.2 Перечень пиктограмм, имеющихся во встроенной библиотека Micro: bit
…
3.12 Музыкальная шкатулка
Команда import music позволяет обеспечить доступ контроллера к встроенной в него библиотеке музыкальных фрагментов и звуков. Список музыкальных фрагментов приведен на рис. 3.26.
Рис. 3.28 Перечень музыкальных фрагментов, в составе ПО Micro: bit
Для того, чтобы проиграть какой-то из этих фрагментов нужно дать контроллеру команду: music.play (имя.фрагмента), например, music.play (music.PYTHON). Скопируйте программу рис. 3.27 и послушайте, на что способна ваша музыкальная шкатулка.
…
3.14. Компьютерная игра «Предсказатель будущего»
Вот мы и добрались до первой нашей компьютерной игры (см. рис. 3.35). Суть этой веселой (коллективной) игры в следующем:
ведущий предлагает играющим задавать вопросы о том, что может произойти в ближнем или дальнем будущем, говоря, что у него есть волшебный Предсказатель, который запросто определит произойдет это или нет. Можно также задавать вопросы типа: «Хорошо ли списывать на уроке?» и тому подобные;
кто-то из игроков задает свой вопрос;
после этого ведущий встряхивает Micro: bit говоря: «Отвечай!»
на дисплее Micro: bit появляется ответ Предсказателя;
ведущий зачитывает ответ Предсказателя;
затем кто-то задает следующий вопрос;
получается очень весело!
Рис. 3.35 Программа компьютерной игры «Предсказатель будущего» (Magic-8)
3.15. Творческое задание №3
Попробуйте изменить программу «Предсказатель будущего» так, чтобы ведущий мог (вводя в заблуждение игроков) по своему желанию, делать ответы Предсказателя «положительными» или, наоборот, «отрицательными». Для этого нужно задействовать в программе кнопки «А» и «В» контроллера Micro: bit. Тогда, ведущий сможет, незаметно для игроков, нажимать ту или иную кнопку, изменяя результаты предсказаний так, как ему хочется. Получится еще смешнее.
…
3.17 Измерение температуры
Рис. 3.39 Программа измерения температуры окружающей среды
Micro: bit способен измерять температуру окружающей среды. Измерение температуры происходит непосредственно в градусах Цельсия, так, что никакого перевода из одних единиц в другие не требуется. Температуру можно узнать указав параметр temperature (). Диапазон измеряемых температур — от -25 град до 75 град С.
…
3.17 Использование встроенного компаса
Micro: bit способен определять угол отклонения от направления на север. Это позволяет создавать с использованием контроллера различные робототехнические устройства, способные ориентироваться на местности или в помещениях.
Для измерения угла отклонения линии, проходящей через USB-разъем Micro: bit к контактам его краевого разъема, от направления на север нужно указать в программе параметр compass.heading () (см. рис. 3.40). После загрузки этой программы в Micro: bit на его дисплей будет (автоматически) выведено сообщение:»TILT TO FILL SCREEN» (Поворачивайте до тех пор, пока не «зальете» экран), что означает, что для калибровки компаса необходимо вращать Micro: bit, изменяя положение его плоскости до тех пор, пока не станут светиться все светодиоды дисплея. После этого на дисплее будет показана пиктограмма «Счастливое лицо» и дисплей станет отображать угол отклонения. Плоскость Micro: bit при этом должна быть горизонтальна. Угол отклонения будет минимальным, когда на север будет показывать USB-разъем Micro: bit.
Рис. 3.40 Ориентация полюсов компаса и скрипт программы
3.19 Творческое задание №4
Напишите программу-звуковой указатель правильного пути:
выберите нужное вам направление движения, например, «на восток» — которое соответствует углу отклонения от направления на север 90 градусов;
используйте оператор if, чтобы включать звуковой сигнал, когда compass.heading () становится меньше, чем 70 градусов, или больше, чем 110 градусов.
…
Рис. 3.45 Программа, демонстрирующая работу спич-процессора
3.22 Творческое задание №5
Все, наверное, слышали стихи Чуковского «Жил на свете человек скрюченные ножки, и гулял он целый век по скрюченной дорожке…», которые являются переводом народного английского стихотворения:
There was a crooked man and he went a crooked mile,
He found a crooked sixpence against a crooked stile;
He bought a crooked cat, which caught a crooked mouse,
And they all lived together in a little crooked house.
Научите Micro: bit рассказывать этот стишок. Или возьмите и перепрограммируйте игру «Предсказатель будущего».
…
4. Сигналы: цифровые и аналоговые
Нужно разобраться, что такое цифровые и что такое аналоговые сигналы.
Аналоговые сигналы — которые изменяются непрерывно (плавно). Их величина принимает бесконечное множество значений из некоторого диапазона. Между значениями, которые они принимают, нет разрывов. Примерами таких сигналов могут служить:
скорость автомобиля;
температура окружающей среды;
величина напряжения батарейки или домашней электрической сети.
Цифровые сигналы — сигналы, имеющие всего два значения. Примером таких сигналов могут быть включение настольной лампы или состояние замка. Лампа может быть включенной, или выключенной. Замок может быть открыт, или закрыт.
Но, поскольку мы говорим об электронике и информационных технологиях, нам такие аналогии не подойдут. В этих областях техники используются электрические сигналы, а в них аналогом включенной и выключенной лампы является наличие или отсутствие на контактах и проводах лампы напряжения, необходимого для свечения этой лампы.
Состояние, когда напряжение присутствует на каком-то контакте или информационной линии, в информационных технологиях принято связывать с понятием »1» (единицы), а состояние, когда напряжение отсутствует связывают с понятием »0» (нуля). Причем, совсем не важно какова величина напряжения: 2 вольта, 5 вольт, или 100 вольт. В разных технических системах и устройствах напряжения могут быть разными. Поэтому, независимо от величины напряжения цифрового сигнала, при его наличии говорят о »логической единице» (далее будем использовать обозначение »лог. 1»), а отсутствие напряжения цифрового сигнала связывают с »логическим нулем» (обозначается, как »лог. 0»).
Как ни удивительно, но цифровые сигналы, состоящие только из «лог.1» и «лог.0», способны передавать разную информацию (звуки и их громкость, изображения, цвет и его градации, яркость, контрастность и многое другое). Правда, в отличие от цифровых сигналов, соответствующих включению и выключению лампы, цифровые сигналы в информационных технологиях меняют состояния «лог.1» на состояния «лог.0» и обратно очень быстро. Процессор (главная микросхема) Micro: bit способен выдавать и обрабатывать цифровые сигналы, в которых состояния «лог.1» и «лог.0» меняются до 16 миллионов раз в секунду. И сегодня это — не самое высокое быстродействие. Процессоры ПК, ноутбуков и смартфонов имеют быстродействие в сотни раз выше!
Когда на каком-то контакте или информационной линии (проводе) появляется «лог.1», а затем вновь появляется «лог.0», говорят, что на этом контакте или линии сформировался цифровой сигнал в виде «импульса», имеющего какую-то длительность во времени (см. рис. 4.1).
Рис. 4.1 Импульсы в составе цифрового сигнала
Если какой-то импульс с одной и той же длительность появляется через равные промежутки времени, такие промежутки называют «периодом повторения» импульса (см. рис. 4.2). Первая (нарастающая) часть импульса называется «передним фронтом импульса», задняя (спадающая) часть импульса носит название «заднего фронта.
Рис. 4.2 Пояснение понятий «период повторения импульса» и «фронт импульса»
Длительность периодов повторения импульсов измеряют между одноименными фронтами импульсов, например, от переднего фронта одного, до переднего фронта другого импульса.
…
5.2. Адаптер подключения и макетная плата
На рис. 5.2 изображен адаптер, с помощью которого можно легко получить доступ ко всем контактам разъема Micro: bit. Нумерация штыревых контактов адаптера, которые вставляются в отверстия макетной платы, полностью совпадает с нумерацией портов ввода вывода контроллера. Такой или аналогичный адаптер, макетную плату и небольшой набор электронных компонентов можно приобрести в интернет-магазинах…
Рис. 5.2 Micro: bit с адаптером и дополнительные электронные компоненты на макетной плате
Макетная плата (см. рис. 5.3) имеет две группы контактов. Каждая группа состоит из 62 строк, пронумерованных через 5 контактов.
Контакты строк имеют буквенные обозначения — a, b, c, d, e, f, g, h, i, j. Контакты строк a, b, c, d, e электрически соединены (замкнуты) друг с другом.
Контакты f, g, h, i, j — также соединены друг с другом. Это позволяет легко соединять выводы Micro: bit c другими электронными компонентами и устройствами…
6.2 Потенциометры
Потенциометры — это резисторы, у которых можно изменять величину электрического сопротивления (для регулировки напряжения или тока). Их внешний вид, конструктивное устройство и эквивалентная электрическая схеме показаны на рис. 6.3.
Рис. 6.3 Потенциометры: внешний вид, устройство и схема
Потенциометры, в отличие от резисторов имеют три вывода. Между двумя крайними выводами потенциометра (см. контакты 1 и 3 в средней части рис. 6.3) находится резистор в виде кольцевой дорожки. Электрическое сопротивление между контактами 1 и 3 всегда неизменно (эту величину и пишут на корпусе потенциометра). Вывод 2 потенциометра упруго прижимается и электрически контактирует с ползунком, который можно вращать ручкой потенциометра. Упругий контакт самого ползунка может скользить по кольцевой дорожке и электрически контактирует с ней. Если принять, например, что сопротивление между контактами 1 и 3 равно 100 Ом, то при вращении ручки потенциометра по часовой стрелке электрическое сопротивление R1 (между контактами 1 и 2) будет увеличиваться от 0 до 100 Ом, а величина сопротивления R2 (между контактами 2 и 3) будет уменьшаться от 100 Ом до нуля.
Мы обозначили части потенциометра, как «R1» и «R2» только для объяснения принципа его работы. На электрических схемах никто не представляет потенциометры в виде двух отдельных резисторов R1 и R2. Их изображают в виде обычного резистора, который имеет ползунок (контакт со стрелочкой).
Прочитайте следующий раздел книги — вы поймете, что если к выводам 1 и 2 потенциометра R1 подключить напряжение 3,3В, то при вращении ручки между выводами 3 и 2 напряжение будет меняться от 0 до 3,3 вольт. А это, в свою очередь, означает, что сигнал на выводе 2 потенциометра относится к »аналоговым».
…
6.7. Ультразвуковой дальномер
Принцип работы ультразвукового дальномера основан на отражении звука от разных объектов, тот же принцип для ориентирования в пространстве используют дельфины и летучие мыши. Дальномер генерирует звуковые импульсы и слушает отраженное эхо. По времени распространения звукового импульса туда и обратно можно однозначно определить расстояние до объекта, ведь мы же знаем, что звук распространяется в воздухе со скоростью 335 м/сек.
Например, звуковой импульс пролетит расстояние 10 метров за время равное 10 м : 335 м/сек = 0,02985 сек = 0,03 сек. На обратный путь импульсу эхо потребуется такое же время. То есть, если излученный дальномером импульс вернется эхом через 0,06 сек, значит он отразился от объекта, который находится примерно на расстоянии 10 метров.
Показанный на рис. 6.8 дальномер способен определять расстояния в диапазоне от 2 до 400 сантиметров. Измерения дальности он производит внутри «рабочего угла» 30 градусов, направленного «вперед» от двух излучателей дальномера. Для запитки этого дальномера необходимо напряжение 5 вольт.
Рис. 6.9 Ультразвуковой дальномер HC-SR04
7.1. Чтение аналоговых напряжений
Команда считывания аналогового напряжения pinN.read_analog () позволяет считывать величину напряжения, подключенного к контакту любого «аналогового» порта Micro: bit и ставит в соответствие этому напряжению целое число в диапазоне 0…1023, а именно:
напряжению 0 В соответствует число »0»,
напряжению 3,3 В соответствует число »1023».
Так, если написать:»pin2.read_analog ()», это будет соответствовать чтению напряжения на контакте порта »Р2» Micro: bit.
Рис. 7.1. Потенциометр в качестве источника аналогового сигнала
Вы уже знаете, что подключенный к источнику напряжения потенциометр может служить источником аналогового сигнала. Используем этот факт для проверки работы команды чтения. Соберите на макетной плате схему, указанную на схемах рис. 7.1.
Из монтажной схемы видно, что:
контакт »3V» адаптера Micro: bit подключен красным проводом к шине »+3V» макетной платы;
контакт «GND» адаптера Micro: bit подключен белым проводом к верхней шине «GND» (использован модуль питания на 5В, в котором верхняя и нижняя шины «GND» соединены друг с другом);
выводы потенциометра подключены к контактам i14, i15, i16 макетной платы;
контакт i16 макетной платы подключен черным проводом к нижней шине «GND» макетной платы (верхняя и нижняя шины соединены через модуль питания — см. рис. 5.4);
контакт i14 также подключен к шине »+3V» (красным проводом);
движок потенциометра (контакт i15) оранжевым проводом подключен к порту «Р2» Micro: bit.
Рис. 7.2 Мультиметр в режиме измерения напряжений в диапазоне 0…20 вольт
Чтобы подключить мультиметр к схеме рис 7.1, нужно:
взять два соединительных провода из набора KS-4003;
откусить наконечники с одной стороны этих проводов и очистить эти концы проводов от изоляции на длину 3 — 4 см (см. рис. 7.3 «а»);
Рис. 7.3 Подключение мультиметра к схеме рис. 7.1
плотно обмотать очищенными от изоляции концами проводов концы красного и черного щупов мультиметра (см.рис. 7.3 «б»). После этого, концы щупов нужно обмотать изолентой (на фото это не показано) — это предотвратит возможность замыкания щупов друг с другом (хотя это и не опасно) и соскальзывание намотанных на щупы проводов;
подключить подсоединенные к щупам провода так, как это показано на рис. 7.3 «в». То есть, черный щуп мультиметра нужно подключить к шине «GND», а красный щуп — к порту «Р2» Micro: bit — ориентируйтесь по цвету проводов. Заметим, что подключить щупы можно и наоборот, но тогда на дисплее мультиметра появится знак «минус», как если бы мы измеряли «отрицательное» напряжение;
подключите штатным кабелем Micro: bit к ПК и загрузите в него программу, приведенную на рис. 7.4;
переключателем установите предел измерения мультиметром постоянного напряжения в положение »20V». Мультиметр начнет показывать величину напряжения на движке потенциометра;
немного поверните маленькой отверткой движок потенциометра и убедитесь, что величина напряжения на экране мультиметра изменилась. Одновременно, изменится и число, которое будет прокручиваться на дисплее Micro: bit. Поэкспериментируйте, вращая движок потенциометра, и убедитесь, что в одном из крайних положений движка потенциометра на дисплее будет число ближе к цифре »0», а в другом крайнем — ближе к цифре »1023».
Рис. 7.4 Программа считывания аналогового напряжения
Вы скажете: «Да, мы убедились, что Micro: bit может считывать аналоговые сигналы. Но это же неудобно, если напряжения, которые он показывает на дисплее, выражены не в общепринятых единицах измерения (вольтах), а в каких-то своих?» — Мы с вами абсолютно согласны, и поэтому, продолжим наши эксперименты.
7.2. Превращаем Micro: bit в настоящий вольтметр
Согласитесь, что, если мы знаем, что напряжению 0 В соответствует число »0», а напряжению 3,3 В соответствует число »1023», то мы можем заставить Micro: bit пересчитывать эти цифры в вольты. Для этого нужно понять, сколько вольт приходится на каждую единицу измерения, которыми пользуется Micro: bit. Для этого делим 3,3В на 1023 единицы и получаем коэффициент пересчета 0,003226В. Теперь, если каждую единицу измеренную Micro: bit умножать на такой коэффициент, мы будем получать результат в вольтах (см. рис. 7.5).
Рис. 7.5 Программа измерения аналоговых напряжений в вольтах
…
7.2. Творческое задание №6
В светофоре, который мы собрали и запрограммировали, всего три светодиода. Как говорится: «Маловато будет!» А что если научить работать в светофоре не три, а шесть СИД? — Попробуйте!
Рис. 7.17 Светофор, использующий шесть СИД
На рис. 7.17 приведены наши подсказки:
для удобства, можно разместить три СИД на стороне макетной платы с маркировкой «a»…«e», а другие три — на стороне с маркировкой «f» … «j»;
— СИД подключите к портам «Р0», «Р1», «Р2», «Р3», «Р4» и «Р6»;если вы не еще не используете на макетной плате модуль питания »+5V», то соедините проводной перемычкой шины «GND1» и «GND2»;
время свечения СИД установите в соответствие с таблицей рисунка.
Напомним, что в MicroBit порты «Р3», «Р4», «Р6», «Р7» и «Р10» подключены к цепям управления дисплеем. То есть, до использования портов «Р3», «Р4» и «Р6» нужно отключить дисплей командой display.off () —сразу же после строки from microbit import *.
…
7.10. ШИМ в управлении яркостью СИД
Давайте еще раз используем схему дверного звонка рис. 7.11 и применим на практике то, что мы узнали про ШИМ для регулирования яркости светодиода (см. рис. 7.22).
Рис. 7.22 Программа управления яркостью СИД при помощи ШИМ
…
7.13. Работа Micro: bit с дисплеем LCD-1602
Рис. 7.30 Подключение дисплея LCD-1602
Дисплей обменивается информацией с Micro: bit по шине I2C1 через порты «Р19» и «Р20». При подключении дисплея (см. рис. 7.30) вспомните лайфхак с вилками и розетками, о котором мы рассказали при подключении дальномера. И, обязательно, используйте модуль питания »+5V».
Написать программу для использования дисплея в уже привычном нам редакторе Python Editor пока не получится. Перейдем для этого в среду программирования Make Code (https://makecode.microbit.org/)…
Рис. 7.34 Дисплей LCD-1602 в компьютерной игре «Предсказатель будущего»
----------------------------- конец цитирования книжки —-------------------------
Думаю, теперь каждому понятно, что в сравнении с MicroBit, унылые светодиодные «мигалки» — это полный «кринж». Ну, а если интересно, откуда приведены цитаты и картинки, погуглите «Школьный» контроллер MicroBit: 50+ занимательных программ на пути в IT».
Кстати, уже после того, как книжка была издана, пришла в голову мысль, что про «путь в IT» мы написали зря. Не каждому это нужно! Важно, что освоив Microbit, ваши дети начнут гораздо лучше понимать, как устроен окружающий их мир: от лифта и пульта ДУ теликом, до промышленных/медицинских роботов и боевых дронов. А это же здорово!
А закончить этот разговор хочу девизом (почти, как у ВДВ): ЕСЛИ НЕ МЫ, ТО КТО?