Оглавление:

Фотокабина Raspberry Pi: 5 шагов
Фотокабина Raspberry Pi: 5 шагов

Видео: Фотокабина Raspberry Pi: 5 шагов

Видео: Фотокабина Raspberry Pi: 5 шагов
Видео: Камера высокого разрешения и объективы для Raspberry Pi. Железки Амперки 2024, Ноябрь
Anonim
Фотокабина Raspberry Pi
Фотокабина Raspberry Pi

Цель:

  • Узнайте, как кодировать и устанавливать камеру Pi
  • Использование операторов define и if в коде
  • Обучение использованию новых технологий, таких как светодиоды RGB

Шаг 1. Что вам понадобится

Что тебе понадобится
Что тебе понадобится
Что тебе понадобится
Что тебе понадобится
Что тебе понадобится
Что тебе понадобится
  • 1 Raspberry Pi 3
  • Макетная плата
  • Джемперы
  • 1 светозависимый резистор
  • 1 конденсатор
  • 1 кнопка
  • 6 резисторов 220 Ом
  • 2 светодиода RGB
  • 1 камера Raspberry Pi

Шаг 2: Подключение модуля камеры

Подключение модуля камеры
Подключение модуля камеры

Прежде всего, при выключенном Pi вам необходимо подключить модуль камеры к порту камеры Raspberry Pi, затем запустить Pi и убедиться, что программное обеспечение включено.

  1. Найдите порт камеры, который находится между портом HDMI и 3,5 мм.
  2. Потяните зажим камеры за пластиковые края, пока зажим не станет диагональным.
  3. Теперь вставьте кабель камеры так, чтобы синий цвет был обращен к порту 3,5 мм.

Шаг 3: настройка камеры

Настройка камеры
Настройка камеры
Настройка камеры
Настройка камеры

Открытие инструмента настройки Raspberry Pi из главного меню, отключение и включение всех вышеперечисленных интерфейсов.

В главном меню откройте Терминал и введите следующие строки кода:

Судо Распи-конфиг

Теперь используйте клавиши со стрелками для работы в системе, нажмите «Периферийное подключение», затем нажмите «Камера P1» и включите камеру, затем выберите «Готово». Вернемся к типу терминала в следующих строках кода:

pip install picamera

или Sudo pip установить Picamera

Шаг 4: Тестирование модуля камеры

Тестирование модуля камеры
Тестирование модуля камеры

Отсюда мы можем проверить, работает ли камера, потому что у нас включено все программное и аппаратное обеспечение.

Откройте Python 3 из меню

Оттуда откройте новый файл из оболочки и сохраните его cameratest.py.

Введите следующий код:

from picamera import PiCamera # импортированный модуль, созданный с помощью команды pip install pi camera.

camera.start_preview () # запускает камеру и показывает, как выглядит вывод камеры

sleep (10) # оставляет предварительный просмотр на 10 секунд

camera.stop_preview () # наконец-то закрывает предварительный просмотр

Запустите код по F5

Если вы получаете эту ошибку при запуске кода:

(mmal: mmal_vc_component_create: не удалось создать компонент vc.ril.camera (1: ENOMEM)

mmal: mmal_component_create_core: не удалось создать компонент 'vc.ril.camera' (1) Отслеживание (последний вызов последним): файл "", строка 1, в файле "/usr/lib/python2.7/dist-packages/picamera /camera.py ", строка 257, в файле _init_ self._init_camera ()" /usr/lib/python2.7/dist-packages/picamera/camera.py ", строка 288, в _init_camera prefix =" Не удалось создать камеру component ") Файл" /usr/lib/python2.7/dist-packages/picamera/exc.py ", строка 112, в mmal_check поднять PiCameraMMALError (статус, префикс) picamera.exc. PiCameraMMALError: Не удалось создать компонент камеры: Out памяти)

Перейдите в конфигурацию Raspberry Pi, перейдите в столбец производительности и увеличьте объем памяти графического процессора, пока ошибка не исчезнет (необходимо перезагрузить компьютер).

Теперь, чтобы создать фотографию, которая будет сохранена на рабочем столе, мы будем использовать следующий код:

from picamera import PiCamera # Импортированный модуль, созданный с помощью команды pip install pi camera from time import sleep # Импортированный спящий режим, чтобы убедиться, что наша камера остается включенной

camera = PiCamera () # Настройка камеры

camera.start_preview () # Запускает предварительный просмотр в режиме ожидания (5) # Оставляет предварительный просмотр включенным на 5 секунд

camera.capture ('/ home / pi / Desktop / image.jpg') # Из

camera.stop_preview () # Останавливает предварительный просмотр

Шаг 5: Создание схемы с помощью кода

Создание схемы с помощью кода!
Создание схемы с помощью кода!
Создание схемы с помощью кода!
Создание схемы с помощью кода!
Создание схемы с кодом!
Создание схемы с кодом!

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

Мы протестируем нашу схему, чтобы увидеть, сможем ли мы сделать так, чтобы при нажатии кнопки мы включали светодиод, используя следующий код:

# Импортированные модули из gpiozero import Кнопка из Picamera import PiCamera из time import sleep

#Настраивать

Камера = PiCamera () Кнопка = Кнопка (22)

# Функция фотосъемки, я решил поместить ее в функцию определения, поскольку она помогает нам очистить основной код.

def photocap ():

Camera.start_preview ()

sleep (5) Camera.capture ('/ home / pi / Desktop / image.jpg') print («Фотография сделана») Camera.stop_preview ()

# Основной код:

while True: if Button.is_pressed: print ("Кнопка была нажата") photocap ()

# Почему это работает: основной код работает так, как будто все, что мы делаем, - это использование команды if button.is_pressed в выражении while true, поэтому он постоянно обновляется при нажатии кнопки, чтобы сделать снимок.

Теперь мы собираемся установить 2 светодиода RGB до самого верха схемы, разделить их в середине макета и сделать симметричным. Если у вас нет резисторов 220 Ом для этого проекта, вы можете установить их параллельно в зависимости от вашего сопротивления резисторов, которые у вас есть. Второй контакт 4-контактного светодиода RGB (самый длинный должен быть подключен к земле через железную дорогу. Все остальные контакты должны быть подключены к собственным контактам GPIO (первый контакт = красный, второй контакт = земля, третий контакт = зеленый)., Четвертый контакт = синий).

Мы протестируем один из наших светодиодов RGB в нашей схеме кнопки с помощью кода ниже:

# Импортированные модули из gpiozero import Кнопка из Picamera import PiCamera

из gpiozero импортировать RGBLED

от времени импортный сон

#Настраивать

Камера = PiCamera () Кнопка = Кнопка (22)

TimedLED = RGBLED (красный = 21, зеленый = 20, синий = 16)

# Функция фотосъемки с помощью RGB-светодиода, я решил включить ее в функцию определения, поскольку она помогает нам очистить основной код

def photocap (): Camera.start_preview () sleep (4)

timedled.color (1, 0, 0)

сон (2)

timedled.color (0, 1, 0)

спать (1)

Camera.capture ('/ home / pi / Desktop / image.jpg') print («Фотография сделана») Camera.stop_preview ()

# Основной код:

в то время как True:

если Button.is_pressed:

print ("Нажата кнопка") photocap ()

# Почему это работает: Причина, по которой этот код работает, заключается в том, что теперь у нас есть RGBLED, который работает как таймер, когда будет сделана фотография

Теперь установите светозависимый резистор в нижней правой части макета, используя схему вверху и общие железные дороги, которые обсуждались ранее. Помните, что обе длинные ножки LDR и капицитатор должны быть подключены к контакту GPIO.

После того, как мы подключили LDR, мы будем использовать следующий код:

# Импортированные модули

из кнопки импорта gpiozero

из Picamera импортировать PiCamera из gpiozero импортировать RGBLED

из gpiozero импорт LightSensor

от времени импортный сон

#Настраивать

Камера = PiCamera () Кнопка = Кнопка (22) TimedLED = RGBLED (красный = 21, зеленый = 20, синий = 16)

LightSensor = Световой датчик (23)

# Функция фотосъемки с помощью RGB-светодиода, я решил включить ее в функцию определения, поскольку она помогает нам очистить основной код.

def photocap (): Camera.start_preview () sleep (4) timedled.color (1, 0, 0) sleep (2) timedled.color (0, 1, 0) sleep (1) Camera.capture ('/ home / pi / Desktop / image-j.webp

# Основной код:

в то время как True:

if Button.is_pressed: print («Была нажата кнопка») photocap ()

если Button.is_pressed и Lightsensor.when_dark:

print («Была нажата кнопка»)

print ("Темно")

колпачок ()

# Почему это работает: Я добавил датчик освещенности в свой код с помощью другого оператора if, который содержит импортированную функцию датчика освещенности. Когда темнота настраивает нас идеально для нашего следующего шага

Теперь последним шагом в этом проекте будет активация другого RGBLED, симметричного другому, чтобы он работал как вспышка, Окончательный код:

из кнопки импорта gpiozero

из Picamera импорт PiCamera

из gpiozero импортировать RGBLED

из gpiozero импорт LightSensor

от времени импортный сон

#Настраивать

Камера = PiCamera ()

Кнопка = Кнопка (22)

TimedLED = RGBLED (красный = 21, зеленый = 20, синий = 16)

FlashLED = RGBLED (красный = 19, зеленый = 13, синий = 6)

LightSensor = Световой датчик (23)

# Функция фотосъемки с помощью RGB-светодиода, я решил поместить ее в функцию определения, поскольку она помогает нам очистить основной код def photocap (): Camera.start_preview () sleep (4) timedled.color (1, 0, 0) sleep (2) timedled.color (0, 1, 0) sleep (1) Camera.capture ('/ home / pi / Desktop / image.jpg') print ("Фотография была сделана") Camera.stop_preview () # Основной код: while True: if Button.is_pressed:

print ("Была нажата кнопка")

колпачок ()

если Button.is_pressed и Lightsensor.when_dark:

print («Была нажата кнопка») print («Темно»)

FlashLED.color (1, 1, 1)

колпачок ()

# Почему это работает: Я добавил свой фонарик с помощью светодиода RGB для вывода белого цвета, равного 1, 1, 1, и это происходит только в том случае, если утверждение if истинно.

Рекомендуемые: