Чтение онлайн

на главную - закладки

Жанры

Робототехника: практическое введение для детей и взрослых
Шрифт:

Рис. 2.27. Программа для управления яркостью светодиодов

Результат работы программы, сохраненной в файле microbit-Переменная-яркость-линии.hex, вы можете увидеть на рис. 2.28.

Рис. 2.28.

Линия из светодиодов с различной яркостью

Как работает наша программа?

Прежде всего, для переменной яркость мы задаем начальное значение 64. Далее запускается цикл для, параметр индекс которого изменяет свое значение от 0 до 4, как и в предыдущей программе.

Однако теперь для включения светодиода мы используем блок построить яркостью. Этот блок зажигает светодиод с координатами (x, y) и дополнительно устанавливает для этого светодиода яркость, указанную в последнем параметре.

После зажигания светодиода в дело вступает блок изменить, который увеличивает значение нашей переменной яркость на 64 (чтобы уменьшать значения, задайте отрицательное число).

Теперь при следующем проходе цикла яркость зажигаемого светодиода увеличится на значение 64.

Доверимся случаю

В палитре Математика есть интересный блок выбрать случайно. Он позволяет получить случайное число в заданном вами диапазоне. Давайте используем случайные числа при выключении светодиодов.

На рис. 2.29 мы привели пример такой программы, в которой все случайно!

Рис. 2.29. Программы случайно зажигает светодиоды со случайной яркостью

В бесконечном цикле программа с помощью блока построить зажигает светодиоды, при этом координаты (x,y) светодиода, а также его яркость, задается случайно.

Как видите, координаты выбираются случайно в диапазоне от 0 до 4, а яркость – в диапазоне от 0 до 255.

После включения случайного светодиода программа с помощью блока убрать выключает светодиод, координаты которого также выбираются случайно (рис. 2.30).

Рис. 2.30. Светодиоды зажигаются и гаснут случайно

Программа звездного неба сохранена в файле microbit-Случайно.hex.

Возможно, кто-то найдет, что это все похоже на звездное небо, где звезды зажигаются, живут и гаснут через какое-то время. Если вам кажется, что звезды гаснут слишком быстро, добавьте небольшую задержку (например, 100 мс) в конец цикла (рис. 2.31).

Рис. 2.31. Задержка замедляет процесс управления светодиодами

А теперь давайте составим сложную программу, которая будет перемещать горящую точку по экрану

микроконтроллера случайным образом.

Готовая программа показана на рис. 2.32, вы можете загрузить ее из файла microbit-Блуждающая-точка.hex. Рассмотрим подробно, что она делает.

Рис. 2.32. Рисуем на экране случайно блуждающую точку

Как видите, программа запускается один раз в блоке при начале.

В палитре Переменные мы определили две переменные с именами x– координата и y– координата. В первой из них мы будем хранить текущую координату нашей блуждающей точки по оси X, а во второй – по оси Y. Сразу после запуска мы инициализируем эти переменные нулевыми значениями, поэтому свое путешествие точка начнет из верхнего левого угла экрана micro:bit.

После инициализации переменных запускается бесконечный цикл пока. Мы добавили его из палитры Циклы.

У цикла пока есть параметр, который анализируется перед каждым очередным проходом цикла. По умолчанию этот параметр имеет значение истина, поэтому наш цикл никогда не завершится. Вы можете задать в этом параметре какое-либо условие, которое ограничит блуждание нашей точки, однако сейчас мы этого делать не будем.

Что же внутри цикла?

Прежде всего мы зажигаем светодиод в блоке построить в точке с координатами (x-координата, y-координата), ждем 100 мс при помощи блока пауза, а затем гасим светодиод в блоке убрать.

Дальше мы изменяем переменные x– координата и y– координата случайным образом, при этом изменение выбирается в диапазона от 0 до 1. Это означает, что координаты по осям X и Y могут либо не измениться вовсе, либо увеличатся на единицу.

После изменения координат нам нужно проверить, что координаты не вышли за границу нашего монитора – ведь у нас всего пять рядов по пять светодиодов в каждом. Для проверки мы используем блоки если, которые нужно добавить из палитры Логика.

Тело блока если выполняется в том случае, когда верно условие, добавленное в качестве параметра блока. Добавьте из палитры Логика условие сравнения числовых операторов, как это показано на рис. 2.32.

Если значение новой координаты по оси X или Y получилась больше 4, то мы задаем для соответствующей переменной нулевое значение. Тут потребуется блок задать значение из палитры Переменные.

Как работает наша программа?

Когда в результате случайных изменений новые координаты блуждающей точки не выходят за пределы экрана, то точка передвигается (или нет) на один шаг, либо по одной оси, либо по обеим осям координат сразу.

Но если новая позиция выходит за пределы возможного, то ее новая координата устанавливается равной нулю. Визуально точка перепрыгивает в начало соответствующей оси координат. Если же в результате случая координаты по обеим осям становятся больше 4, то точка прыгает в левый верхний угол, с координатами (0,0).

Поделиться:
Популярные книги

На границе империй. Том 3

INDIGO
3. Фортуна дама переменчивая
Фантастика:
космическая фантастика
5.63
рейтинг книги
На границе империй. Том 3

Держать удар

Иванов Дмитрий
11. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Держать удар

Эффект Фостера

Аллен Селина
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Эффект Фостера

Не грози Дубровскому! Том VIII

Панарин Антон
8. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том VIII

СД. Том 17

Клеванский Кирилл Сергеевич
17. Сердце дракона
Фантастика:
боевая фантастика
6.70
рейтинг книги
СД. Том 17

Темный Патриарх Светлого Рода 3

Лисицин Евгений
3. Темный Патриарх Светлого Рода
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Темный Патриарх Светлого Рода 3

Сумеречный Стрелок 3

Карелин Сергей Витальевич
3. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 3

Пипец Котенку!

Майерс Александр
1. РОС: Пипец Котенку!
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Пипец Котенку!

Неудержимый. Книга IV

Боярский Андрей
4. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга IV

Дурная жена неверного дракона

Ганова Алиса
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Дурная жена неверного дракона

Я не князь. Книга XIII

Дрейк Сириус
13. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я не князь. Книга XIII

Я – Орк. Том 6

Лисицин Евгений
6. Я — Орк
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я – Орк. Том 6

Отмороженный

Гарцевич Евгений Александрович
1. Отмороженный
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Отмороженный

Безродный

Коган Мстислав Константинович
1. Игра не для слабых
Фантастика:
боевая фантастика
альтернативная история
6.67
рейтинг книги
Безродный