Мазмуну:
- 1 -кадам: Сизге эмне керек
- 2 -кадам: Камера модулун туташтыруу
- 3 -кадам: Камераны орнотуу
- 4 -кадам: Камера модулун тестирлөө
- 5 -кадам: Код менен схеманы түзүү
Video: Raspberry Pi Photobooth: 5 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Ниет:
- Пи Камераны коддоону жана орнотууну үйрөнүңүз
- Коддоодо аныктоо жана if билдирүүлөрүн колдонуу
- RGB LED сыяктуу жаңы технологияларды колдонууну үйрөнүү
1 -кадам: Сизге эмне керек
- 1 Raspberry Pi 3
- Breadboard
- Секирүүчүлөр
- 1 Жарыкка көз каранды резистор
- 1 Конденсатор
- 1 баскыч
- 6 220 Ом резисторлор
- 2 RGB LED
- 1 Raspberry Pi камерасы
2 -кадам: Камера модулун туташтыруу
Биринчиден, Pi өчүрүлгөндө, Камера модулун Raspberry Pi камерасынын портуна туташтырышыңыз керек, андан кийин Pi иштетип, программалык камсыздоонун иштетилгенин текшериңиз.
- HDMI жана 3.5 мм порттун ортосундагы камера портун табыңыз
- Клип диагональ болгончо камера клипти пластикалык четинен өйдө тарткыла
- Эми камера кабелин көк түстөгү 3.5 мм портуна караңыз
3 -кадам: Камераны орнотуу
Негизги менюдан Raspberry Pi Configuration куралын ачуу жана жогорудагы бардык интерфейстерди өчүрүү жана иштетүү
Негизги менюдан Терминалды ачыңыз жана төмөнкү код саптарын териңиз:
Sudo Raspi-config
Эми бул жерден жебенин баскычтарын колдонуп, системада иштеңиз жана Перифериялык туташуу опциясын жана P1 Камерасын чыкылдатып, камераны күйгүзүңүз, анан аягына чыкылдатыңыз. Төмөнкү код саптарында терминалдын түрүнө кайтуу:
пикамераны орнотуу
же Sudo пипи Picamera орнотот
4 -кадам: Камера модулун тестирлөө
Бул жерден биз камеранын иштеп же иштебей турганын текшере алабыз, анткени бизде бардык программалык камсыздоо жана жабдыктар иштетилген.
Менюдан Python 3ту ачыңыз
Ал жерден кабыктан жаңы файлды ачып, аны cameratest.py сактаңыз.
Төмөнкү кодду киргизиңиз:
пикамерадан импорттоо 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) Traceback (акыркы акыркы чалуу): Файл "", 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 көтөрүлбөйт: Камера компоненти түзүлбөй калды: Сыртта эс тутум)
Сураныч, Raspberry Pi конфигурациясына өтүңүз, иштөө тилкесинин астына өтүңүз жана ката кеткенге чейин GPU эс тутумун жогорулатыңыз (өчүрүп күйгүзүү керек).
Азыр столго сактай турган сүрөттү түзүү үчүн биз төмөнкү кодду колдонобуз:
пикамерадан импорттоо PiCamera #Импорттолгон модуль пип орнотуу пи камера командасынан түзүлгөн
camera = PiCamera () #Камерага орнотуу
camera.start_preview () #Алдын ала көрүүнү баштайт (5) #Алдын ала көрүүнү 5 секундга калтырат
camera.capture ('/home/pi/Desktop/image.jpg')# тартып
camera.stop_preview ()#Алдын ала көрүүнү токтотот
5 -кадам: Код менен схеманы түзүү
Жогоруда көрсөтүлгөн схемалардан көрүнүп тургандай, биз баскычты, LDRди жана акыры эки RGB LEDди орнотушубуз керек. Биринчиден, биз панелдин төмөнкү сол жагындагы баскычты орнотобуз. Баскычты орнотуу учурунда биз жалпы темир жол линияларын колдонобуз, демек биз 3.3V позитивдүү жана негативдүү жерге туташтырабыз. Сиз баскыч үчүн гана райондук орнотууну бүтүргөндөн кийин.
Биз муну жасай алабызбы же жокпу, текшерүү үчүн, биз төмөнкү кодду колдонуп, күйгүзгүчтү күйгүзөбүз:
#Импорттолгон модулдар gpiozero импорттоо баскычынан пикамерадан импорттоо PiCamera импорттук уйкудан.
#Жайгашуу
Камера = PiCamera () Button = Button (22)
#Сүрөт тартуу функциясы, мен аны аныктоочу функцияга киргизүүнү чечтим, анткени ал бизге негизги кодду тазалоого жардам берет
def photocap ():
Camera.start_preview ()
уйку (5) Camera.capture ('/home/pi/Desktop/image.jpg') басып чыгаруу ("Сүрөт тартылган") Camera.stop_preview ()
#Негизги код:
while True: if Button.is_pressed: print ("Button pressed") photocap ()
#Эмнеге бул иштейт: Негизги код иштейт, анткени эгерде button.is_pressed бир аз убакыттын ичинде чыныгы буйрукту колдонуп жатабыз, ошондуктан ал сүрөткө тартуу үчүн баскыч басылганда дайыма жаңыртылып турат.
Эми биз 2 RGB LED диапазонун чокусуна чейин орнотуп, аларды нан тактасынын ортосуна бөлүп, симметриялуу кылабыз. Эгерде сизде бул долбоор үчүн 220 Ом каршылыгы жок болсо, анда сизде болгон резисторлорго каршылыгыңызга жараша аларды параллель орното аласыз. 4 пиндүү RGB LEDдин экинчи пини (эң узуну темир жол аркылуу жерге туташтырылышы керек. Башка казыктар баары өз GPIO казыктарына туташтырылышы керек. (Биринчи пин = кызыл, Экинчи пин = жерге, Үчүнчү пин = жашыл), Төртүнчү пин = көк).
Биз төмөндөгү код менен баскыч схемабызда RGB LEDлерибиздин бирин сынап көрөбүз:
#Импорттук модулдар gpiozero импорттоо баскычы пикамерадан PiCamera импорттоо
gpiozero импорттук RGBLEDден
Убакытты импорттоо
#Жайгашуу
Камера = PiCamera () Button = Button (22)
TimedLED = RGBLED (кызыл = 21, жашыл = 20, көк = 16)
#Сүрөт тартуу функциясы RGB LED менен, мен аны аныктоочу функцияга киргизүүнү чечтим, анткени ал бизге негизги кодду тазалоого жардам берет.
def photocap (): Camera.start_preview () уйку (4)
timedled.color (1, 0, 0)
уйку (2)
timedled.color (0, 1, 0)
уйку (1)
Camera.capture ('/home/pi/Desktop/image.jpg') басып чыгаруу ("Сүрөт тартылган") Camera.stop_preview ()
#Негизги код:
чын болсо:
эгер Button.is_pressed:
басып чыгаруу ("Баскыч басылды") фотокапкак ()
#Эмнеге бул иштейт: Бул коддун иштешинин себеби, биз азыр RGBLEDди сүрөткө качан түшүү үчүн таймер катары иштей алдык.
Эми үстөлдүн диаграммасын жана мурун талкууланган жалпы темир жолду колдонуп, нан табактын төмөнкү оң жагына Light Resendent каршылыгын орнотуңуз. Эсиңизде болсун, LDRдин узун эки буту жана капицитатор GPIO пинине туташтырылышы керек.
LDRди туташтыргандан кийин, биз төмөнкү кодду колдонобуз:
#Импорттолгон модулдар
gpiozero импорттоо баскычынан
пикамерадан импорттоо PiCamera gpiozero импорттоо RGBLED
LightSensor импорту gpiozeroдон
Убакытты импорттоо
#Жайгашуу
Камера = PiCamera () Button = Button (22) TimedLED = RGBLED (кызыл = 21, жашыл = 20, көк = 16)
LightSensor = LightSensor (23)
#Сүрөт тартуу функциясы RGB LED менен, мен аны аныктоочу функцияга киргизүүнү чечтим, анткени ал бизге негизги кодду тазалоого жардам берет.
def photocap (): Camera.start_preview () уйку (4) timedled.color (1, 0, 0) уйку (2) timedled.color (0, 1, 0) уйку (1) Camera.capture ('/home/ pi/Desktop/image-j.webp
#Негизги код:
чын болсо:
if Button.is_pressed: print ("Button pressed") photocap ()
if Button.is_pressed жана Lightsensor.when_dark:
басып чыгаруу ("Баскыч басылды")
басып чыгаруу ("Бул караңгы")
фотокапкак ()
#Эмнеге бул иштейт: Жарык сенсорун менин кодума кошуу жолу, жарык сенсорунун импорттолгон функциясын камтыган башка билдирүү аркылуу. Караңгы бизди кийинки кадамыбызга эң сонун орнотот
Эми бул долбоорду ишке ашыруунун акыркы кадамы башка RGBLEDди симметриялуу жандандыруу, жарк катары иштөө болмок, Акыркы код:
gpiozero импорттоо баскычынан
пикамерадан PiCamera импорттоо
gpiozero импорттук RGBLEDден
LightSensor импорту gpiozeroдон
Убакытты импорттоо
#Жайгашуу
Камера = PiCamera ()
Баскыч = Баскыч (22)
TimedLED = RGBLED (кызыл = 21, жашыл = 20, көк = 16)
FlashLED = RGBLED (кызыл = 19, жашыл = 13, көк = 6)
LightSensor = LightSensor (23)
#Сүрөт тартуу функциясы RGB LED менен, мен аны аныктоочу функцияга киргизүүнү чечтим, анткени ал бизге башкы кодду тазалоого жардам берет (): Camera.start_preview () уйку (4) timedled.color) уйку (2) timedled.color (0, 1, 0) уйку (1) Camera.capture ('/home/pi/Desktop/image.jpg') басып чыгаруу ("Сүрөт тартылган") Camera.stop_preview () # Негизги код: Чынында: эгер Button.is_pressed:
басып чыгаруу ("Баскыч басылды")
фотокапкак ()
if Button.is_pressed жана Lightsensor.when_dark:
басып чыгаруу ("Баскыч басылды") басып чыгаруу ("Бул караңгы")
FlashLED.color (1, 1, 1)
фотокапкак ()
#Эмнеге бул иштейт: Менин Чырагымды кошуунун жолу - RGBди колдонуу, 1, 1, 1 ак түстү чыгарууга алып келди жана эгер if оператору чын болсо гана ошентет.
Сунушталууда:
Акустикалык левитация Arduino Uno менен кадам-кадам (8-кадам): 8 кадам
Акустикалык левитация менен Arduino Uno Step-by-Step (8-кадам): ультрадыбыштуу үн өткөргүчтөр L298N Dc аял адаптеринин электр энергиясы менен камсыздоосу эркек токту Arduino UNOBreadboard Бул кантип иштейт: Биринчиден, сиз Arduino Uno кодун жүктөп бересиз (бул санарип менен жабдылган микроконтроллер) жана аналогдук порттор кодду айландыруу үчүн (C ++)
Raspberry Busterди Raspberry Pi 3ке орнотуу - Raspbian Buster менен иштөөнү баштоо Raspberry Pi 3b / 3b+: 4 кадам
Raspberry Busterди Raspberry Pi 3ке орнотуу | Raspbian Buster менен иштөөнү баштоо Raspberry Pi 3b / 3b+: Салам балдар, жакында Raspberry pi уюму Raspbian Buster деп аталган жаңы Raspbian ОСту ишке киргизди. Бул Raspberry пи үчүн Raspbianдин жаңы версиясы. Ошентип, бүгүн бул көрсөтмөлөрдө биз Raspberry Buster OSти Raspberry pi 3ке кантип орнотууну үйрөнөбүз
Raspberry Pi PhotoBooth: HTML5 & NodeJS: 4 кадам
Raspberry Pi PhotoBooth: HTML5 & NodeJS: HTML5 жана NodeJS Photobooth түз көрүү жана бажы чектери менен. Бул долбоор кызымдын мектептеги бийи үчүн курулган нерсе катары башталды. Мен ага жана анын досторуна бул окуяны эстеши үчүн кызыктуу нерсе кааладым (алар акыркы жолу
Автоматташтырылган Photobooth: 4 кадам (сүрөттөр менен)
Автоматташтырылган Photobooth: Бул сизге малина пи, УЗИ аралык сенсорун жана башка бир нече аксессуарларды колдонуп автоматташтырылган фотостендди кантип жасоону көрсөтөт. Мен татаал аппаратты да, татаал программаны да колдонгон долбоорду жасагым келди. Изилдеп жатам
DIY Photobooth: 7 кадам (Сүрөттөр менен)
DIY Photobooth: Бул дүйнө жүзү боюнча соода борборлорунда, оюн -зоок парктарында жана соода борборлорунда көрүлгөн салттуу фотобуттарды кантип куруу боюнча үйрөткүч. Бул стенд толугу менен санариптик жана үйдө жасоо алда канча арзан/жеңил. Жазам