Запись на SD карту будем производить сначала картинки с видеокамеры, а затем видео с этой же видеокамеры. Программу записи на SD карту будем писать на языке Python. В качестве аппаратной поддержки решения нашей задачи записи на SD карту будем использовать модуль Maix Dock на микроконтроллере Kendryte k210 от компании Sipeed. Пусть это Вас не смущает, так как язык Python аппаратно не привязан ни к какому конкретному устройству и может быть запущен на любом микроконтроллере или компьютере.
Приобрели MAiX DOCK на Aliexpress тут …
Приобрести MAiX DOCK на Banggood тут …
Запись на SD карту. Код программы на языке Python
import sensor import image sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.run(1) sensor.skip_frames() img = sensor.snapshot() img.save("/sd/test5.jpg", quality=95) print(img)
Рис. 1 В интегрированной системе программирования MaixPy IDE наблюдаем один кадр видео изображения, это не луна и не солнце а светильник на потолке моего кабинета, так как модуль с камерой лежит горизонтально на моем столе и камера направлена своим объективом вверх, справа наблюдается часть стены с ковром. Кроме того в Последовательном терминале наблюдаем характеристики одного кадра видео изображения.
Запись на SD карту. Расшифровка кода программы записи изображения на SD карту
import sensor # Импортируем в данный пример программы модуль sensor - работаем с модулем камерой # image - работаем с изображениями # time - работаем со временем # lcd - работаем с жидкокристаллическим (ЖК) дисплеем
import image # Импортируем в данный пример программы модуль image - работаем с изображениями
sensor.reset() # Выполняем сброс и инициализацию модуля камеры
sensor.set_pixformat(sensor.RGB565) # Устанавливаем формат пикселей для модуля камеры, в нашем случае sensor.RGB565: 16 бит на пиксель, т. е. 5-красный, 6-зеленый (наш глаз более восприимчив к градации зеленого) 5-голубой
sensor.set_framesize(sensor.QVGA) # Устанавливаем размер кадра для модуля камеры, в нашем случае sensor.QVGA: 320x240 пикселей
sensor.run(1) # Запускаем модуль камеры, в текущей версии вызывать его не обязательно, камера автоматически запустится после завершения вышеуказанных настроек
sensor.skip_frames() # Делаем nнесколько снимков, чтобы изображение камеры стабилизировалось после изменения настроек камеры. По умолчанию этот метод пропускает кадры на 300 миллисекунд
img = sensor.snapshot() # Делаем снимок с помощью камеры и возвращаем image объект.
img.save("/sd/test5.jpg", quality=95) # Записываем текущий кадр изображения на SD карту в файл test5.jpg
print(img) # Выводим в Последовательный монитор характеристики картинки
Проверка записи на SD карту. Код программы вывода изображения с SD карты на экран ЖК дисплея
import lcd, image lcd.init() lcd.init() img = image.Image("/sd/test5.jpg") lcd.display(img)
Рис.2 Изображение в Буфере кадра интегрированной системы программирования MaixPy IDE отсутствует, так как изображение кадра мы считываем прямо из файла расположенного на SD карте и выводим непосредственно экран ЖК дисплея
Расшифровка кода программы вывода изображения с SD карты на экран ЖК дисплея
import lcd, image # Импортируем в данный пример программы модуль lcd - работаем с жидкокристаллическим (ЖК) дисплеем и модуль image - работаем с изображениями lcd.init() # Выполняем инициализацию ЖК дисплея img = image.Image("/sd/test5.jpg") # Считываем один кадр изображения с помощью метода Image("/sd/test5.jpg") lcd.display(img) # Выводим изображение на экран ЖК дисплея
Рис.3 Наблюдаем ту же самую картину на экране ЖК дисплея модуля Maix Dock на микроконтроллере Kendryte k210, что и на Рис.1 в Буфере кадра браузера интегрированной системы программирования MaixPy IDE. Следовательно наша программа записи на SD карту работает и работает правильно, т.е. создала файл test5.jpg на SD карте и поместила в него один кадр текущего видео изображения