"Умный дом" (БХВ), mBlock и первые проекты с Arduino UNO и светодиодом scar169 / 04.01.2017 В прошлой публикации я рассказывал о коробочке-защите платы Arduino UNO из набора "Умный дом" (БХВ.Петербург) или любого другого набора на базе Ардуино (например, Матрешка от Амперки). Такая коробочка может значительно удлинить жизнь набора в руках школьников))).Сегодня продолжим работу с набором в среде mBlock.Напомню, что в материалах, прилагаемых к набору, программирование идет в текстовом коде с использованием Arduino IDE, что существенно повышает возрастную планку применимости набора. Среда же mBlock, основанная на scratch 2.0, поддерживающая практически все платы Arduino и способная обеспечивать управление как в интерактивном режиме (по каналу связи), так и в автономном (загружая скетчи на устройство), оптимально подходит для снижения этой самой возрастной планки работы с набором.Сегодня разберем задачи, связанные с управлением светодиодом.Для начала напомню последовательность работы с mBlock.1. Запустить программу mBlock.2. Подсоединить кабелем USB плату Arduino к компьютеру. При необходимости согласиться на установку новых устройств. Если у вас уже установлена Arduino IDE, то все нужные драйвера уже есть, если же потребуются, то всегда можно воспользоваться меню в самом mBlock: Соединить - Install Arduino Driver (хотя честно признаюсь, сам такой вариант не пробовал, как-то всегда уже были в системе нужные драйвера).3. В меню mBlock выбрать нужную плату (меню Boards).4. Выбрать способ соединения (Меню Соединить - Serial port -... у меня это com3).5. Обновить прошивку на плате для работы в интерактивном режиме (управления по каналу связи). Меню - Соединить - Обновить прошивку.6. Для использования дополнительных блоков управления Arduino выберем соответствующее расширение. Меню Extensions - Arduino. Все, теперь можем писать простые программы для управления платой.I. Начнем с классического моргания светодиодом, расположенным непосредственно на плате Arduino UNO.Данный светодиод управляется 13-ым выводом (пином), поэтому можно составить простую программу-скетч (команды управления сигналом пина выбираем из блока Робот):Запустив скетч нажатием на флажок (или какую-нибудь клавишу, если выберите такой вариант управления) наблюдаем за миганием светодиода на плате.II. Теперь проверим данный скетч, но в режиме автономной работы. Для этого заменим шапку проекта на "Arduino Program" из блока "Робот". Программа готова для загрузки в Arduino UNO. Перейдем в режим Arduino Mode (Меню - Редактировать).Откроются новые составляющие экрана - окно с кодом программы и клавишами управления. Нажмем кнопку Upload to Arduino и пронаблюдаем процесс загрузки скетча на устройство.Все, устройство автономно. Правда, с проводом это не очень убедительно. Поэтому можем отцепить, но придется добавить элементы питания, иначе как...Все, работает. Можно посмотреть видео.Внимание! Поскольку мы загрузили автономный скетч, то теперь при подсоединении провода USB мы не сможем осуществлять непосредственное, интерактивное управление из среды mBlock. Чтобы вернуть эту возможность, надо вновь выбрать соединение и обновить прошивку на плате, см. пункты 4 и 5 вначале поста.III. Моргаем внешним светодиодом (интерактивное управление).Соберем схему с использованием одного внешнего красного светодиода на 10 выводе и сопротивления 220 Ом (если ранее не обсуждали, самое время обсудить - зачем нужно в данном случае добавочное сопротивление, а в случае знакомства с законом Ома - даже рассчитать его):Программа:Запустив на исполнение - пронаблюдаем, как теперь мигает и гаснет внешний светодиод.IV. Не обязательно, но для тренировке вполне можно сделать из предыдущей программы вариант для автономной работы, загрузить скетч на устройство, подсоединить внешнее питание и убедиться, что все в порядке, внешний светодиод моргает в автономном режиме.V. Управляем яркостью светодиода. Что делать, если нам надо не просто включать-выключать светодиод, но и регулировать его яркость?Вводим понятие ШИМ (Широтно-Импульсная Модуляция, англ. Pulse Width Modulation или PWM). Поясняем, что не любой порт Arduino поддерживает широтно-импульсную модуляцию. На контроллерах Arduino такие выводы (пины) помечены символом тильда «~». Для Arduino Uno это пины 3, 5, 6, 9, 10, 11.В предыдущей схеме светодиод подключен к пину 10, убеждаемся, что рядом с ним есть знак ~, т.е. им можно управлять с использованием ШИМ, подавая специальным образом значение от 0 до 255 на данный вывод.Для этого вместо подачи цифрового значения High или LOW мы используем специальный блок управления ШИМ:Можно предложить сделать простые упражнения - переделать программу моргания светодиодом с использованием половинной яркости светодиода.Но интереснее вариант задания, в котором надо обеспечить изменение яркости светодиода от 0 до 255 и обратно с заданным шагом, например 5.Один из вариантов такой программы:Обратите внимание, что в данной программе созданы две переменные - шаг яркости и яркость и введена пауза между изменением яркости. Это не обязательно, но интересно для учебных задач. Например, можно легко менять шаг яркости и следить за изменением показаний яркости в окне данных (слева на экране программы).И здесь видно, что при изменении шага, например, на значение 12, все работает не так хорошо.... Это повод к созданию новых решений.Например, таких:В данном случае шаг изменения яркости может быть любым, но краевые значения 0 и 255 задаются искусственно. Возможно программу можно сократить и оптимизировать.....Можно попробовать программы и в автономном режиме. Например - первый вариант из данного раздела - видео.Несколько программ из разобранных - в архиве, хотя по скринам все видно. svet.zip ( 184.33 килобайт ) Кол-во скачиваний: 218В следующий раз сделаем проект Азбука Морзе, который хорошо вписывается в темы по кодированию информации.Наши публикации по теме: учебные наборы "Умный дом"(и другие наборы на основе Ардуино):От "Умного дома" (БХВ) до "Конструкторского бюро" в школеArduino. Наборы. "Умный дом" от БХВ-Петербург arduino mBlock БХВ контроллер наборы проект светодиод умный дом