Სარჩევი:

Raspberry Pi Photobooth: 5 ნაბიჯი
Raspberry Pi Photobooth: 5 ნაბიჯი

ვიდეო: Raspberry Pi Photobooth: 5 ნაბიჯი

ვიდეო: Raspberry Pi Photobooth: 5 ნაბიჯი
ვიდეო: Raspberry Pi PhotoBooth with Printer Tutorial 2024, ნოემბერი
Anonim
ჟოლო Pi Photobooth
ჟოლო Pi Photobooth

Მიზანი:

  • ისწავლეთ როგორ დააკოპიროთ და დააინსტალიროთ Pi კამერა
  • კოდირებისას defin and if განცხადებების გამოყენება
  • ისწავლეთ ახალი ტექნოლოგიების გამოყენება, როგორიცაა RGB LED- ები

ნაბიჯი 1: რაც დაგჭირდებათ

რაც დაგჭირდებათ
რაც დაგჭირდებათ
რაც დაგჭირდებათ
რაც დაგჭირდებათ
რაც დაგჭირდებათ
რაც დაგჭირდებათ
  • 1 ჟოლო პი 3
  • პურის დაფა
  • მხტუნავები
  • 1 სინათლის დამოკიდებული რეზისტორი
  • 1 კონდენსატორი
  • 1 ღილაკი
  • 6 220 Ohm რეზისტორები
  • 2 RGB LED
  • 1 ჟოლო პი კამერა

ნაბიჯი 2: კამერის მოდულის დაკავშირება

კამერის მოდულის დაკავშირება
კამერის მოდულის დაკავშირება

უპირველეს ყოვლისა, Pi გამორთული, თქვენ უნდა დაუკავშიროთ კამერის მოდული Raspberry Pi კამერის პორტს, შემდეგ ჩართეთ Pi და დარწმუნდით, რომ პროგრამული უზრუნველყოფა ჩართულია.

  1. იპოვნეთ კამერის პორტი, რომელიც მდებარეობს HDMI და 3.5 მმ პორტს შორის
  2. გადაწიეთ კამერის სამაგრ პლასტმასის კიდეებით, სანამ დამჭერი დიაგონალზე არ იქნება
  3. ახლა ჩადეთ კამერის კაბელი ლურჯით 3.5 მმ პორტისკენ

ნაბიჯი 3: კამერის დაყენება

კამერის დაყენება
კამერის დაყენება
კამერის დაყენება
კამერის დაყენება

გახსენით Raspberry Pi კონფიგურაციის ინსტრუმენტი მთავარი მენიუდან და გამორთეთ და ჩართეთ ყველა ინტერფეისი ზემოთ

მთავარი მენიუდან გახსენით ტერმინალი და ჩაწერეთ კოდის შემდეგი ხაზები:

სუდო რასპი-კონფიგურაცია

ახლა აქედან გამოიყენეთ თქვენი ისრის ღილაკები სისტემის მეშვეობით მუშაობისთვის და დააწკაპუნეთ პერიფერიული კავშირის ვარიანტზე და მათი დაწკაპუნებით P1 კამერაზე და ჩართეთ კამერა, შემდეგ აირჩიეთ დასრულება. დავუბრუნდეთ ტერმინალის ტიპს კოდის შემდეგ სტრიქონებში:

პიპ ინსტალაცია picamera

ან Sudo pip დააინსტალირეთ Picamera

ნაბიჯი 4: კამერის მოდულის ტესტირება

კამერის მოდულის ტესტირება
კამერის მოდულის ტესტირება

აქედან შეგვიძლია შევამოწმოთ კამერა მუშაობს თუ არა, რადგან ჩვენ გვაქვს ყველა პროგრამული უზრუნველყოფა და ტექნიკა ჩართული.

გახსენით პითონი 3 მენიუდან

იქიდან გახსენით ახალი ფაილი ჭურვიდან და შეინახეთ cameratest.py.

შეიყვანეთ შემდეგი კოდი:

picamera იმპორტიდან PiCamera #იმპორტირებული მოდული, რომელიც შეიქმნა პიპიდან დააინსტალირეთ pi კამერა ბრძანება დროიდან იმპორტი ძილი #იმპორტირებული ძილი რათა დავრწმუნდეთ რომ ჩვენი კამერა რჩება კამერაზე = PiCamera () #დაყენება კამერისთვის

camera.start_preview ()#იწყებს კამერას და აჩვენებს როგორია კამერის გამომუშავება

ძილი (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. PiCameraMMALE შეცდომა: კამერის კომპონენტის შექმნა ვერ მოხერხდა: გარეთ მეხსიერების)

გთხოვთ, გადადით Raspberry Pi კონფიგურაციაზე, გადადით შესრულების სვეტში და გაზარდეთ თქვენი GPU მეხსიერება, სანამ შეცდომა არ გაქრება (უნდა გადატვირთოთ).

ახლა იმისათვის, რომ შევქმნათ ფოტო, რომელიც შეინახება სამუშაო მაგიდაზე ჩვენ გამოვიყენებთ შემდეგ კოდს:

picamera იმპორტიდან PiCamera #იმპორტირებული მოდული, რომელიც შეიქმნა პიპიდან დააინსტალირეთ pi კამერა ბრძანება დროიდან იმპორტი ძილი #იმპორტირებული ძილი რათა დავრწმუნდეთ რომ ჩვენი კამერა რჩება

კამერა = PiCamera () #დაყენება კამერისთვის

camera.start_preview () #იწყებს წინასწარ გადახედვას (5) #ტოვებს გადახედვას 5 წამის განმავლობაში

camera.capture ('/home/pi/Desktop/image.jpg')# დან

camera.stop_preview ()#აჩერებს გადახედვას

ნაბიჯი 5: შექმენით წრე კოდით

შექმენით წრე კოდით!
შექმენით წრე კოდით!
შექმენით წრე კოდით!
შექმენით წრე კოდით!
შექმენით წრე კოდით!
შექმენით წრე კოდით!

როგორც ზემოთ ჩანს სქემის დიაგრამებიდან, ჩვენ უნდა დავაყენოთ ღილაკი, LDR და ბოლოს ორი RGB LED. პირველი ჩვენ ვაპირებთ ღილაკის დაყენებას პურის დაფის ქვედა მარცხენა მხარეს. ღილაკზე დაყენების დროს ჩვენ გამოვიყენებთ საერთო სარკინიგზო ხაზებს, რაც იმას ნიშნავს, რომ ჩვენ დავამატებთ ჩვენს 3.3 ვ პოზიტივს და უარყოფითს. მას შემდეგ რაც დაასრულებთ წრედის დაყენებას მხოლოდ ღილაკზე.

ჩვენ შევამოწმოთ ჩვენი წრე, რომ შევძლოთ თუ არა ის ისე, რომ ღილაკზე დაჭერისას ჩვენ ჩართოთ led შემდეგი კოდის გამოყენებით:

#იმპორტირებული მოდულები gpiozero იმპორტირების ღილაკიდან picamera იმპორტი PiCamera დროიდან იმპორტი ძილის

#Აწყობა

კამერა = PiCamera () ღილაკი = ღილაკი (22)

#ფუნქციის გადაღების მიზნით, მე გადავწყვიტე ის განსაზღვრულ ფუნქციაში ჩავსვა, რადგან ის გვეხმარება ძირითადი კოდის გაწმენდაში

def photocap ():

Camera.start_preview ()

ძილი (5) Camera.capture ('/home/pi/Desktop/image.jpg') ბეჭდვა ("ფოტო გადაღებულია") Camera.stop_preview ()

#ძირითადი კოდი:

ხოლო True: if Button.is_pressed: print ("Button was pressed") photocap ()

#რატომ მუშაობს ეს: ძირითადი კოდი მუშაობს ისე, როგორც ჩვენ ვაკეთებთ, ვიყენებთ ბრძანებას if ღილაკს. ის_წამოიხატება ცოტახანში ჭეშმარიტ განცხადებაში, ასე რომ ის მუდმივად განახლდება, როდესაც ღილაკზე დაჭერილია ფოტოს გადაღება

ახლა ჩვენ ვაპირებთ დავაყენოთ 2 RGB LED ნათურა მთელს წრემდე და გამოვყოთ ისინი პურის დაფის შუაგულში და გავაკეთოთ სიმეტრიული. თუ თქვენ არ გაქვთ 220 ohm რეზისტორების ამ პროექტის თქვენ შეგიძლიათ დააყენოთ ისინი პარალელურად დამოკიდებულია თქვენი წინააღმდეგობის იმ resistors თქვენ გაქვთ. 4 პინიანი RGB LED- ის მეორე პინი (ყველაზე გრძელი უნდა იყოს მიწასთან დაკავშირებული რკინიგზის გავლით. სხვა ქინძისთავები ყველა უნდა იყოს დაკავშირებული საკუთარ GPIO ქინძისთავებთან. (პირველი პინი = წითელი, მეორე პინი = მიწა, მესამე პინი = მწვანე, მეოთხე პინი = ლურჯი).

ჩვენ შევამოწმებთ ერთ ჩვენს RGB LED- ს ჩვენს ღილაკზე, ქვემოთ მოყვანილი კოდით:

#იმპორტირებული მოდულები gpiozero იმპორტის ღილაკიდან picamera იმპორტი PiCamera– დან

gpiozero იმპორტიდან RGBLED

დროიდან იმპორტი ძილის

#Აწყობა

კამერა = PiCamera () ღილაკი = ღილაკი (22)

დროული LED = RGBLED (წითელი = 21, მწვანე = 20, ლურჯი = 16)

#ფოტო RGB LED– ით ფუნქციის გადასაღებად, მე გადავწყვიტე მისი განსაზღვრულ ფუნქციაში ჩადება, რადგან ის გვეხმარება ძირითადი კოდის გაწმენდაში

def photocap (): Camera.start_preview () ძილი (4)

დროული. ფერი (1, 0, 0)

ძილი (2)

დროული. ფერი (0, 1, 0)

ძილი (1)

Camera.capture ('/home/pi/Desktop/image.jpg') ბეჭდვა ("ფოტო გადაღებულია") Camera.stop_preview ()

#ძირითადი კოდი:

მართალია:

თუ Button.is_pressed:

ბეჭდვა ("ღილაკზე დაჭერილი იყო") ფოტოკაპი ()

#რატომ მუშაობს ეს: მიზეზი იმისა, თუ რატომ მუშაობს ეს კოდი არის იმაში, რომ ახლა ჩვენ მივიღეთ RGBLED, რომ ვიმუშაოთ როგორც ტაიმერი, როდის იქნება ფოტოს გადაღება

ახლა დააინსტალირეთ სინათლისგან დამოუკიდებელი რეზისტორი პურის ქვედა ქვედა მარჯვენა მხარეს დიაგრამის გამოყენებით ზევით და საერთო რკინიგზაზე ადრე განხილული. დაიმახსოვრეთ LDR– ის ორივე გრძელი ფეხი და კაპიციტორი უნდა იყოს დაკავშირებული GPIO პინთან.

LDR– ის დაკავშირების შემდეგ ჩვენ ვიყენებთ შემდეგ კოდს:

#იმპორტირებული მოდულები

gpiozero იმპორტის ღილაკიდან

საწყისი picamera იმპორტი PiCamera საწყისი gpiozero იმპორტი RGBLED

gpiozero იმპორტი LightSensor

დროიდან იმპორტი ძილის

#Აწყობა

კამერა = PiCamera () ღილაკი = ღილაკი (22) დროული LED = 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

#ძირითადი კოდი:

მართალია:

თუ Button.is_pressed: ბეჭდვა ("ღილაკზე დაჭერილია") ფოტოკაპი ()

თუ Button.is_pressed და Lightsensor.when_dark:

ბეჭდვა ("ღილაკზე დაჭერილი იყო")

ბეჭდვა ("ბნელა")

ფოტოკაპი ()

#რატომ მუშაობს ეს: გზა, რომლითაც მე დავამატე სინათლის სენსორი ჩემს კოდში არის სხვა if განაცხადი, რომელიც შეიცავს სინათლის სენსორის იმპორტირებულ ფუნქციას. როცა ბნელდება ჩვენ მშვენივრად ვქმნით ჩვენს შემდგომ ნაბიჯს

ახლა ამ პროექტის ბოლო ნაბიჯი იქნება სხვა RGBLED სიმეტრიული მეორის გააქტიურება, რომ იმუშაოს როგორც ნათურა, საბოლოო კოდი:

gpiozero იმპორტის ღილაკიდან

საწყისი picamera იმპორტი PiCamera

gpiozero იმპორტიდან RGBLED

gpiozero იმპორტი LightSensor

დროიდან იმპორტი ძილის

#Აწყობა

კამერა = PiCamera ()

ღილაკი = ღილაკი (22)

დროული LED = 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:

ბეჭდვა ("ღილაკი დაჭერილია")

ფოტოკაპი ()

თუ Button.is_pressed და Lightsensor.when_dark:

ბეჭდვა ("ღილაკზე დაჭერილი იყო") ბეჭდვა ("ბნელა")

FlashLED.color (1, 1, 1)

ფოტოკაპი ()

#რატომ მუშაობს ეს: გზა, რომლითაც დავამატე ჩემი ფანარი არის RGB– ის გამოყენებით, რამაც გამოიწვია თეთრი ფერი, რომელიც არის 1, 1, 1 და ეს მხოლოდ იმას ნიშნავს, თუ if განცხადება მართალია.

გირჩევთ: