(495) 240-82-80ПН-СБ с 10:00 до 18:00
We speak English

Урок 1.1. Зажигай

В рамках данного урока вы научитесь основам написания и запуска программы на языке Python, а также использовать световой (красный) LED индикатор на микроконтроллере TI-Innovator Hub.

Вы научитесь

  • Создавать и запускать программу на языке Python
  • Контролировать световой индикатор на микроконтроллере TI-Innovator Hub

Добро пожаловать в мир программирования на языке Python с использованием микроконтроллера TI-Innovator Hub и калькулятора TI-Nspire CX II-Т / TI-Nspire CX II-Т CAS! Ваша первая программа будет нацелена на управление красным LED индикатором на плате микроконтроллера TI-Innovator Hub. Визуально его не видно, но как только вы включите устройство, вы поймете, как он работает!

Примечание для учителя: Данный курс предназначен для учащихся, желающих научиться работать с микроконтроллером TI-Innovator Hub и программировать на языке Python, используя калькулятор TI-Nspire CX II-Т / TI-Nspire CX II-Т CAS. Курс подходит для тех, у кого нет опыта в данной области. За более подробной информацией о программировании на языке Python обратитесь к онлайн курсу по работе с графическим калькулятором TI-Nspire CX II-Т и TI-Nspire CX II-Т CAS "Программирование с Python за 10 минут".

Язык программирования Python, который используется на калькуляторах TI-Nspire CX II-Т / TI-Nspire CX II-Т CAS, доступен в виде подмножества языка Python - MicroPython. Здесь важно учитывать два момента:

  1. MicroPython не включает в себя все стандартные функции языка программирования Python, даже если они находятся в разделе "встроенные" или "стандартные". Например: функция shuffle() не является частью функций list().
  2. Не все модули и функции MicroPython включены в меню TI-Nspire CX II-Т. В меню представлены только часто используемые функции.

Для того чтобы использовать микроконтроллер TI-Innovator Hub, нужно импортировать модуль ti_hub в программу Python с помощью выражения from ti_hub import *. Для работы с роботом-вездеходом Rover (см. Уроки 4, 5, 6) необходимо вставить выражение import ti_rover as rv. Таким образом, можно заметить, что все выражения, относящиеся к работе с роботом-вездеходом Rover, начинаются с префикса rv. Доступ к использованию внешней платы TI-RGB Array (см. Урок 7) дает выражение from ti_hub import*, а также функция создания представителя класса RGB Array: var=rgb_array().

1. В начале своей работы откройте новый документ TI-Nspire. После чего система отобразит доступные приложения. Выберите пункт Add Python, затем New....

2. Теперь необходимо дать имя своей программе (мы использовали имя u1sb1), затем нажать enter.

О поле Type: поговорим позже.

Примечание: Программы Python (файлы) являются частью документа TI-Nspire. При выборе пункта Open... из меню можно увидеть все файлы python в документе (если они есть). В следующем шаге говорится об импорте функции управления микроконтроллером TI-Innovator Hub. Программирование на языке Python имеет "скромный" функционал, "встроенных" функций вполне достаточно для написания несложных программ. Чтобы сделать программирование более продвинутым, можно загрузить пользовательские модули, созданные разработчиками TI для того, чтобы программирование с Python на калькуляторе TI-Nspire CX II-Т было более увлекательно и разнообразно.

3. Теперь вы находитесь в редакторе Python Editor. Нажмите кнопку menu. В каждом из доступных разделов меню есть пункты с инструментами программирования на языке Python. Сейчас нас интересует именно меню TI Hub. Выберите из него самый верхний пункт:

from ti_hub import *

Данная команда в языке Python предоставляет доступ к инструментам (командам) для работы с устройствами на микроконтроллере TI-Innovator Hub (или подсоединенным к нему).

Также данное выражение проверяет, подключен ли микроконтроллер TI-Innovator Hub. В противном случае программа не запустится.

Примечание: Модуль ti_hub содержит функцию, которая проверяет наличие подключения микроконтроллера TI-Innovator Hub к калькулятору.

4. Следующее выражение, которое вам понадобится, это:

light.on()

Можете предположить, для чего оно?

Данное выражение можно найти в меню:

menu > TI Hub > Hub Built-in Devices > Light Output > on()

Все функции, относящиеся к работе с микроконтроллером, есть в меню TI Hub.

Примечание: Обратите внимание на то, что для написания программы много выражений вводить не требуется! Большая часть кодирования доступна через работу с меню.

Еще раз повторим: Если вы попытаетесь запустить программу при отсоединенном микроконтроллере TI-Innovator Hub, вы увидите сообщение об ошибке, и программа остановится. Выражение import ti_hub проверяет подключение и доступность микроконтроллера TI-Innovator Hub.

ДЛЯ ПРОДВИНУТЫХ ПОЛЬЗОВАТЕЛЕЙ: Если вы хотите запустить программу при отсоединенном микроконтроллере TI-Innovator Hub (например, чтобы проверить некоторые элементы кодирования), используйте следующую структуру с операторами try... except:

try:
   from ti_hub import *
   hub = True
except:
   hub = False

и по ходу программы при выполнении любых команд работы с микроконтроллером сначала проверяйте, подключен ли он:
   if hub: light.on()

5. Теперь все готово к запуску вашей программы. Сделать это можно через меню:

menu > Run > Run (Ctrl+R)

или используя комбинацию кнопок ctrl+R. Экран вашего калькулятора TI-Nspire CX II-Т теперь должен выглядеть так, как показано на рисунке. Нажатие на комбинацию ctrl+R добавило страницу в ваш документ и поместило в него приложение Shell. Теперь вы используете именно его. Приложение Shell похоже на приложение Calculator в языке TI-Nspire. Именно здесь выполняются программы Python (и фактически только здесь).

Символ >>> это ожидание команды в языке Python, когда система ждет от пользователя очередную команду. Если вы посмотрите на микроконтроллер TI-Innovator Hub, то увидите зажженный красный LED индикатор. Это результат выполнения выражения light.on() в вашей программе.

Примечание: Выражение light.on() намного сложнее, чем кажется на первый взгляд. light - это представитель класса, созданный с помощью модуля ti_hub, а .on() является методом класса, который включает индикатор. С первого взгляда эта команда кажется простой в использовании, но если копнуть глубже, то окажется, что за ней кроется большая работа. В этом преимущество языка Python: это делает аппаратное программирование доступным даже для новичков.

6. Ваша программа Python сейчас находится на странице, расположенной перед страницей приложения Shell. Чтобы вернуться к редактированию программы, нажмите ctrl+стрелка влево. Обратите внимание на то, что красный LED индикатор на микроконтроллере TI-Innovator Hub все еще включен.

7. Можете предположить, какая команда выключает этот красный индикатор? Ее можно найти в меню:

menu > TI Hub > Hub Built-in Devices > Light Output > ...

8. Добавьте команду light.off() после выражения light.on(). В редакторе Python Editor можно пропускать строки. Эти пробелы никак не повлияют на выполнение программы, но их наличие облегчает чтение кода. Снова запустите программу. Видите, как LED индикатор начал быстро мигать? Слишком быстро?

В следующих шагах вы добавите функцию, которая позволяет контролировать промежуток времени включения LED индикатора.

Примечание: Вам предстоит добавить еще одну команду. В последующих уроках вы научитесь использовать "шаблон" программного проекта, который предоставляет множество стандартных блоков необходимых для программирования с использованием микроконтроллера TI-Innovator Hub.

9. Поместите курсор в строку под выражением from ti_hub import *.

Через меню menu > More Modules > Time выберите пункт:

from time import *

Между командами light.on() и light.off() вставьте следующее выражение:

sleep(seconds)

Его также можно найти в меню Time.

Слово seconds является словом-заполнителем. Его можно заменить числом, например, 2 или 3.

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

Теперь, когда вы запустите программу (с помощью комбинации ctrl+R), LED индикатор будет включен в течение заданного количества секунд, а потом выключится.

10. Чтобы добиться мигания индикатора, вы можете повторить эту последовательность выражений в программе или....

В меню Light Output найти функцию blink(), которая активирует мигание LED индикатора. В выражении light.blink() есть два параметра: частота (frequency) и время (time). Замените оба параметра числами, и увидите, что будет. Обратите внимание на всплывающие подсказки!

Примечание: При использовании функции blink() и вводе параметра частота (frequency) всплывает подсказка с указанием диапазона: 0.1-20 Гц. Гц это сокращение от Герц, и этот параметр представляет собой "циклы в секунду", таким образом, частота, равная 3, означает, что LED индикатор будет мигать 3 раза в секунду. Параметр время (time) (0.1-100 сек) говорит микроконтроллеру TI-Innovator Hub, в течение скольких секунд индикатор должен мигать. Таким образом, мы получаем простой пример на умножение: Выражение light.blink(3,5) означает, что LED индикатор будет мигать 3*5=15 раз в 5 секунд.

Повторим: .on(), .off(), и .blink() являются методами класса, в котором переменная света (light) является представителем класса. Это особенность объектно-ориентированного программирования (ООП), на основе которого спроектированы инструменты работы с микроконтроллером TI-Innovator Hub и роботом-вездеходом Rover.