Пример программы на Python, мы рассмотрим в ключе программирования на языке Python микроконтроллеров. Пусть это Вас не отталкивает своей, на первый взгляд, сложностью, на самом деле все очень просто и практично. Только программируя на Python на микроконтроллерах вы быстро, эффективно и профессионально научитесь программированию на языке Python реальных задач IoT - Интернета вещей (англ. internet of things, IoT) и AI— искусственного интеллекта (от англ. Artificial intelligence).
Мы используем самый эффективный (цена/качество) и перспективный (вышла новая более продвинутая версия микроконтроллера Kendryte k510) микроконтроллер Kendryte k210.
Устройство (модуль), для изучения языка Python, мы выбрали также самый оптимальный по цена/качество: Maix Dock от фирмы Sipeed.
Интегрированную среду разработки мы используем самую простую для освоения, это MaixPy IDE - аналог проверенной интегрированной среды разработки OpenMV IDE и подобной широко известной интегрированной среды разработки Arduino IDE. Интегрированную среду программирования MaixPy IDE можно скачать на официальном сайте компании Sipeed. Для ознакомления в качестве яркого примера программы на Python 3 можно рассмотреть нашу статью: Первая программа на Python 3
Приобрели MAiX DOCK на Aliexpress тут …
Приобрести MAiX DOCK на Banggood тут …
Пример программы на Python. Код программы на языке Python
# Hello World Example # # Welcome to the MaixPy IDE! # 1. Conenct board to computer # 2. Select board at the top of MaixPy IDE: `tools->Select Board` # 3. Click the connect buttion below to connect board # 4. Click on the green run arrow button below to run the script! import sensor, image, time, lcd lcd.init(freq=15000000) sensor.reset() # Reset and initialize the sensor. It will # run automatically, call sensor.run(0) to stop sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE) sensor.set_framesize(sensor.QVGA) # Set frame size to QVGA (320x240) sensor.skip_frames(time = 2000) # Wait for settings take effect. clock = time.clock() # Create a clock object to track the FPS. while(True): clock.tick() # Update the FPS clock. img = sensor.snapshot() # Take a picture and return the image. lcd.display(img) # Display on LCD print(clock.fps()) # Note: MaixPy's Cam runs about half as fast when connected # to the IDE. The FPS should increase once disconnected.
Рис.1 Первая программа на Python в среде программирования MaixPy IDE. Файл helloworld.py первой программы на Python автоматически подгружается при запуске среды программирования MaixPy IDE
Пример программы на Python. Расшифровка кода программы на языке Python
# Hello World Example # Пример Hello World
# Welcome to the MaixPy IDE! # Добро пожаловать в MaixPy IDE (среду разработчика на языке Python)
# 1. Conenct board to computer # 1. Подключите плату к компьютеру через USB порт.
# 2. Select board at the top of MaixPy IDE: `tools->Select Board`# 2. Выберите плату в меню в верхней # части MaixPy IDE: `инструменты-> Select Board` в нашем случае уже выбрана первая плата sipeed maix dock
# 3. Click the connect buttion below to connect board # 3. Нажмите кнопку подключения ниже, чтобы подключить плату # кнопка подключения в виде звена цепи (Рис.2)
# 4. Click on the green run arrow button below to run the script! # 4. Нажмите на зеленую кнопку со стрелкой внизу, чтобы запустить скрипт (Рис.4)!
import sensor, image, time, lcd # Импортируем в данный пример программы следующие модули:
# sensor - работаем с видеокамерой
# image - работаем с изображениями
# time - работаем со временем
# lcd - работаем с жидкокристаллическим (ЖК) дисплеем
lcd.init(freq=15000000) # Инициализация ЖК дисплея
sensor.reset() # Сброс и инициализация видеокамеры. Она будет
# запущена автоматически, вызовом функции sensor.run(0) и выключена
sensor.set_pixformat(sensor.RGB565) # Установить формат пикселей на RGB565 (или GRAYSCALE)
sensor.set_framesize(sensor.QVGA) # Установить размер кадра в QVGA (320x240)
sensor.skip_frames(time = 2000) # Пауза, пока настройки вступят в силу.
clock = time.clock() # Создаем объект clock для отслеживания FPS (Frames per second — количество кадров в секунду на экране дисплея)
while(True): # Запускаем цикл вывода покадрово изображений с видеокамеры
clock.tick() # Обновить FPS clock
img = sensor.snapshot() # Создаем снимок и возвращаем изображение объекту img.
lcd.display(img) # Отображаем изображение img на ЖК-дисплее
print(clock.fps()) # Примечание: изображение в окне MaixPy работает примерно вдвое медленнее при подключении
# к IDE. FPS должен увеличиваться после отключения
Рис.2 Нажимаем левой клавишей мыши (ЛКМ) на пиктограмму звена цепи (1), тем самым мы запускаем соединение модуля на микроконтроллере Kendryte с Вашим компьютером, через USB порт. Рис.3 Наблюдаем за процессом соединения модуля на микроконтроллере Kendryte с Вашим компьютером через USB порт, этот процесс длится несколько секунд. Рис.4 Нажимаем левой клавишей мыши (ЛКМ) на надпись "Последовательный терминал" (3), чтобы наблюдать процесс работы нашего примера программы на Python в окне терминала, затем нажимаем ЛКМ на пиктограмму зеленой кнопки со стрелкой (2), тем самым мы запускаем скрипт нашей программы на Python!! Рис.5 Наблюдаем видео изображение не луны и не солнца а светильника на потолке моего кабинета, так как модуль с камерой лежит горизонтально на моем столе и камера направлена своим объективом вверх, справа наблюдается часть стены с ковром. Кроме того в Последовательном терминале наблюдаем частоту кадров видео изображения. Рис.6 Ту же самую картину мы наблюдаем на экране ЖК дисплея модуля Maix Dock на микроконтроллере Kendryte k210
Учим Python за один час от профессионала Хауди Хо: