Урок 3. Переменные и математические операции в MicroPython.
Сегодня в уроке рассмотрим переменные и математические операции в MicroPython. Научимся попеременно включать 2 светодиода, написав всего 14 строчек кода, и оптимизируем пример из прошлого урока «мигание светодиода» до нескольких строчек кода.
Переменные в MicroPython.
MicroPython основан на Python 3, поэтому типы данных и работа с переменными будет точно такой же, как и в Python. Переменная в Python – это имя, которое используется для обозначения ячейки памяти. Переменные также известны как идентификаторы и используются для хранения значений. Более подробно изучить переменные в Python вы можете самостоятельно. Данную информацию можно легко найти в интернете.
Переменные разделяются на два типа: локальные и глобальные.
Глобальные переменные можно использовать в любом месте программы, а локальные можно использовать только в определённой функции, определённом условии или цикле, в зависимости от того, где они были объявлены.
Рассмотрим пример из прошлого урока и добавим глобальную переменную delay = 0.5
Данную переменную можно использовать в любом месте программы. Например, в цикле, прибавляя к ней значение 0,1 и в дальнейшем использовать полученное значение как время задержки между включением и выключением светодиода. Для понимания, что получилось, значение выводим с помощью команды print(delay).
И создадим локальную строковую переменную srt = "delay = ", которую можно использовать только в цикле, где переменная была объявлена. Если попробовать получить значения данной переменой в другом месте, то получим ошибку. Также в консоль выводим значение переменной srt.
Запустим программу и получим в консоли следующую информацию.
Типы данных в Python.
Давайте рассмотрим основные типы данных Python. В примере ниже приведены типы данных, которые мы будем часто использовать в уроках. Поэтому нужно знать, как создать целочисленное и дробное значение. Строковую и булеву переменную.
Особенностью Python является возможность в процессе выполнения программы присвоить переменной любое значение, не зависимо от того, какого типа она была объявлена. Давайте присвоим дробное число переменой, которая изначально была объявлена как целочисленное значение и выведем результат в консоль. Затем переприсвоим переменной строку и затем снова целочисленное значение. Все промежуточные значения выведем в консоль.
Ещё одна важная операция, которая используется для объединения строк, называется Конкатенация.
Для того чтобы к строке добавить переменную, нужно использовать символ «+». Если нужно добавить к строке переменную другого типа, её необходимо перевести в строку. Для этого используется функция str(). Данную особенность нужно запомнить. В противном случае при запуске программы вы получите ошибку.
Проверим, что у нас получилось. Как видим, всё выводится.
Математические операции в MicroPython.
Математических операций в Python много, поэтому рассмотрим только основные.
Чтобы сложить, умножить, вычесть число используются операторы, как и в математике: +, -, *. Деление обозначается вот таким символов «/».
Математические операции можно выполнять как с переменными, так и с числами, как показано в примерах.
#Целочисленное деление (//)
print(15//2)
Целочисленное деление обозначается символом «//», и в ответ получаем целое число без учёта остатка от деления.
#Остаток от деления (%)
print(21 % 3)
Чтобы найти остаток от деления, используется оператор «%». Ответом будет остаток от делания числа. Если остатка нет, то ответ будет равен нулю.
#Возведение в степень (**)
a = 2
b = 10
print(a ** b)
И возведение в степень «**». Возведём 2 в 10 степень. Результат будет 1024.
В Python есть и другие математические операции, но их использовать будем редко.
Мигание светодиодом. Оптимизируем код.
Давайте оптимизируем код «мигание светодиодом», используя полученные знания в данном уроке.Создадим две глобальные переменные «x = True» – состояние светодиода и «delay = 0.5» - время задержки между включением и выключением светодиода.
В цикле инвертируем булеву переменную, то есть меняем значения с True на False и наоборот. Для этого используется оператор «not». Так как цикл бесконечный, данное значение будет постоянно меняться. Если переменная равна «True», то она поменяет своё значение на «False» и, если была «False», измениться на «True».
И, чтобы переменную «x» можно было использовать для включения светодиода, её нужно перевести в целочисленное значение. В этом нам поможет функция int(x). В конце цикла выведем значения переменой «x», чтобы отследить работу программы.
При каждом выполнении цикла состояние светодиода меняется. И в консоли видим значение переменной «x» на данный момент.
Программу сделали немного меньше, но её можно сделать более компактной, написав всего 8 строчек кода.
Домашнее задание: разобраться, как работает данный пример программы. Пишите ваши варианты в комментариях. В следующем уроке разберём ваши ответы.
Мигание двумя светодиодами на ESP32 и MicroPython.
Давайте подключим два внешних светодиода к ESP32 вот по такой схеме.
Как видно из схемы, светодиоды подключены к 4 и 5 GPIO микроконтроллера.Возьмём предыдущий пример и на его основе реализуем задачу. Управлять будем двумя светодиодами красного и синего цвета, инициализируем pins для работы с ними.
Немного изменим основной цикл программы. Первым делом включим красный светодиод. Затем инвертируем переменную «x» и выключим синий светодиод. Подождём заданное количество времени. Это вся программа.
Почему же светодиоды включаются и выключаются поочерёдно? Всё просто, так как цикл выполняется бесконечное количество раз при повторном выполнении цикла «x = False», что приведёт к выключению красного светодиода. Затем мы инвертируем переменную «x» и тем самым включаем синий светодиод. Ждём заданное время и повторно выполняем цикл. Включаем красный, выключаем синий и так далее, бесконечное количество раз.
Таким образом получилась реализовать простую мигалку на MicroPython и ESP32.
Понравился Урок 3. Переменные и математические операции в MicroPython? Не забудь поделиться с друзьями в соц. сетях.
Комментарии