Съдържание:

Raspberry Pi Photobooth: 5 стъпки
Raspberry Pi Photobooth: 5 стъпки

Видео: Raspberry Pi Photobooth: 5 стъпки

Видео: Raspberry Pi Photobooth: 5 стъпки
Видео: Raspberry Pi PhotoBooth with Printer Tutorial 2024, Ноември
Anonim
Raspberry Pi Photobooth
Raspberry Pi Photobooth

Целта:

  • Научете как да кодирате и инсталирате Pi камера
  • Използване на дефиниции и ако в кодирането
  • Да се научим да използваме нови технологии като RGB светодиодите

Стъпка 1: Какво ще ви трябва

Какво ще ви трябва
Какво ще ви трябва
Какво ще ви трябва
Какво ще ви трябва
Какво ще ви трябва
Какво ще ви трябва
  • 1 Малина Пи 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 от главното меню и деактивиране и активиране на всички интерфейси по -горе

От главното меню отворете терминала и въведете следните редове код:

Sudo Raspi-config

Сега от тук използвайте клавишите със стрелки, за да работите през системата и щракнете върху опцията Периферна връзка и от тях щракнете върху P1 Camera и активирайте камерата, след което изберете финал. Връщайки се към типа терминал в следните редове код:

pip инсталирайте пикамера

или Sudo pip инсталирайте Picamera

Стъпка 4: Тестване на модула на камерата

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

От тук можем да проверим дали камерата работи или не, защото имаме активиран целия софтуер и хардуер.

Отворете Python 3 от менюто

Оттам отворете нов файл от черупката и го запазете cameratest.py.

Въведете следния код:

от пикамера импортиране PiCamera #импортиран модул, създаден от командата pip install pi cameraот време импортиране на сън #импортиран сън, за да сме сигурни, че нашата камера остава на камерата = PiCamera () #Настройка за камерата

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 префикс =" Неуспешно създаване на камера компонент ") Файл" /usr/lib/python2.7/dist-packages/picamera/exc.py ", ред 112, в mmal_check повдигнете PiCameraMMALError (състояние, префикс) picamera.exc. PiCameraMMALError: Неуспешно създаване на компонент на камерата: Out на паметта)

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

Сега, за да създадем снимка, която да бъде запазена на работния плот, ще използваме следния код:

от пикамера импортиране PiCamera #Импортиран модул, създаден от командата pip install pi cameraот време импортиране на сън #Импортиран сън, за да сме сигурни, че камерата остава включена

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

camera.start_preview () #Стартира предварителен сън (5) #Оставя визуализацията включена за 5 секунди

camera.capture ('/home/pi/Desktop/image.jpg')# От

camera.stop_preview ()#Спира визуализацията

Стъпка 5: Създаване на верига с код

Създаване на верига с код!
Създаване на верига с код!
Създаване на верига с код!
Създаване на верига с код!
Създаване на верига с код!
Създаване на верига с код!

Както се вижда по -горе от електрическите схеми, трябва да настроим бутон, LDR и накрая два RGB светодиода. Първо ще настроим бутона в долната лява част на макета. По време на настройката на бутона ще използваме общите железопътни линии, което означава, че ще включим нашите 3.3V на положително и на земята за отрицателно. След като приключите с настройката на веригата само за бутона.

Ще тестваме нашата верига, за да видим дали можем да направим така, че ако бутонът е натиснат, да включим светодиода, като използваме следния код:

#Импортирани модули от бутон за импортиране на gpiozero от пикамера импортиране на PiCamera от време за импортиране на време

#Настройвам

Камера = 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 за известно време вярно изявление, така че непрекъснато се актуализира, когато бутонът е натиснат, за да направите снимката

Сега ще настроим 2 RGB светодиода чак до върха на веригата и ще ги отделим в средата на макета и ще направим симетрични. Ако нямате 220 ома резистори за този проект, можете да ги настроите паралелно в зависимост от съпротивлението на резисторите, които имате. Вторият щифт на 4 -пиновия RGB светодиод (най -дългият трябва да бъде свързан към земята чрез железопътната линия. Другите щифтове трябва да бъдат свързани към своите собствени GPIO щифтове. (Първият извод = червен, Вторият извод = земята, Третият извод = зелен, Четвърти щифт = син).

Ще тестваме един от нашите RGB светодиоди в нашата верига с бутони с кода по -долу:

#Импортирани модули от бутон за импортиране на gpiozero от пикамера импортиране PiCamera

от gpiozero внос RGBLED

от време внос сън

#Настройвам

Камера = PiCamera () Бутон = Бутон (22)

TimedLED = RGBLED (червено = 21, зелено = 20, синьо = 16)

#Функция за заснемане на снимки с RGB LED, реших да я сложа във функция за дефиниране, тъй като тя ни помага да изчистим основния код

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 ()

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

докато е вярно:

ако Button.is_pressed:

print ("Бутонът е натиснат") photocap ()

#Защо това работи: Причината, поради която този код работи, е, че сега имаме RGBLED да работи като таймер, когато снимката ще бъде направена

Сега настройте резистора, зависим от светлината, в долната дясна страна на макета, като използвате диаграмата до горе в горната част и общите железопътни линии, обсъдени по -горе. Не забравяйте, че двата дълги крака на LDR и капитатора трябва да бъдат свързани към GPIO щифта.

След като свържем LDR, ще използваме следния код:

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

от бутона за импортиране на gpiozero

от пикамера импортиране PiCamera от gpiozero внос RGBLED

от gpiozero импортирайте LightSensor

от време внос сън

#Настройвам

Камера = PiCamera () Бутон = Бутон (22) TimedLED = RGBLED (червено = 21, зелено = 20, синьо = 16)

LightSensor = LightSensor (23)

#Функция за заснемане на снимки с RGB LED, реших да я сложа във функция за дефиниране, тъй като тя ни помага да изчистим основния код

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

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

докато е вярно:

if Button.is_pressed: print ("Бутонът е натиснат") photocap ()

ако Button.is_pressed и Lightsensor.when_dark:

print ("Бутонът е натиснат")

print ("Тъмно е")

photocap ()

#Защо това работи: Начинът, по който добавих светлинния сензор към моя код, е чрез друг оператор if, който съдържа импортираната функция на сензора за светлина. Когато тъмно ни настройва перфектно за следващата ни стъпка

Сега последната стъпка от този проект би била да активира другия RGBLED симетричен спрямо другия, за да работи като светкавица, Окончателният код:

от бутона за импортиране на gpiozero

от пикамера внос PiCamera

от gpiozero внос RGBLED

от gpiozero импортирайте LightSensor

от време внос сън

#Настройвам

Камера = PiCamera ()

Бутон = Бутон (22)

TimedLED = RGBLED (червено = 21, зелено = 20, синьо = 16)

FlashLED = RGBLED (червено = 19, зелено = 13, синьо = 6)

LightSensor = LightSensor (23)

#Функция за заснемане на снимки с RGB LED, реших да я сложа във функция за определяне, тъй като тя ни помага да изчистим основния код 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:

печат ("Бутонът е натиснат")

photocap ()

ако Button.is_pressed и Lightsensor.when_dark:

print ("Бутонът е натиснат") print ("Тъмно е")

FlashLED.color (1, 1, 1)

photocap ()

#Защо това работи: Начинът, по който добавих моето фенерче, е чрез използване на RGB, за да изведе бял цвят, който е 1, 1, 1 и това се прави само ако изявлението if е вярно.

Препоръчано: