Orodha ya maudhui:
- Vifaa
- Hatua ya 1: Jenga
- Hatua ya 2: Kamera
- Hatua ya 3: Fuatilia
- Hatua ya 4: Mapambo
- Hatua ya 5: Kupanga programu
- Hatua ya 6: Kuandaa Raspberry PI
- Hatua ya 7: Programu
- Hatua ya 8: Programu - Uhakiki wa Kamera
- Hatua ya 9: Kupanga programu - Kitufe cha Kubwa cha Dome Kubwa
- Hatua ya 10: Tuma kwa Twitter
- Hatua ya 11: Kuchanganya Baadhi ya Vipengele
- Hatua ya 12: Wiring
- Hatua ya 13: MagicBox
Video: Kamera ya Picha ya RaspberryPI - MagicBox: Hatua 13 (na Picha)
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-31 10:25
Wakati uliopita, nilikuwa na wazo hili la wazimu kuunda mashine ya kupiga picha kutoka kwa Raspberry PI. Katika jiji langu, kulikuwa na onyesho dogo ambapo watu wangeenda na kuonyesha kile walichokuwa wakifanya au walichotengeneza kwa kutumia vifaa vya elektroniki, kompyuta, nk.
Mmoja alikuwa anakuja, na, pamoja na mke wangu, tunaunda jambo hili.
Inafanyaje kazi ?
Unabonyeza kitufe cha bluu - inaanza kupepesa - na baada ya sekunde 3 picha imechukuliwa. Kwa upande mwingine wa kamera kuna mfuatiliaji anayeonyesha hesabu na baada ya picha kupigwa, hakikisho la picha.
Sasa unaweza kuchagua kuituma kwa Twitter na Facebook au kughairi na ujaribu tena. Ni rahisi sana.
Kila kitu kimepangwa katika Python, ikitumia PI framebuffer - Hakuna Xorg, hakuna GUI inayotumika.
Hapa kuna video ya mradi unaofanya kazi
Vifaa
- Raspberry PI (ninatumia toleo la 2)
- Kamera ya Raspberry PI (Kutumia toleo 1)
- 3x Big Dome kushinikiza vifungo
- Monitor ya TFT / LCD na VGA / HDMI
- MDF
- Bawaba za chuma, screws, nk.
- Zana za Nguvu
- Wakati wa kupumzika na raha nyingi
Hatua ya 1: Jenga
Kuijenga ilikuwa ya kufurahisha. Kukata mengi, uchoraji na kuchimba visima.
Nilitumia paneli za MDF kujenga muundo wa msingi wa kamera. Ni nyepesi na rahisi kufanya kazi nayo. Pia, ilikuwa aina moja ya kuni mashine ya Laser huko Fablab ya mahali hapo iliweza kukata.
Ufikiaji wa wiring ndani ulifanywa na upande wa mfuatiliaji, kwa kutumia bawaba za majimaji ili waweze kusaidia kuinua mfuatiliaji.
Hatua ya 2: Kamera
Kamera
Kamera ni sanduku na vipimo vifuatavyo: 60cm x 40cm x 30cm Yako inaweza kuwa ndogo, kubwa, ni juu yako. Unahitaji tu kukaa kwa mfuatiliaji utakayetumia. Paneli za MDF zilikatwa laser kwenye Fablab ya ndani. Kuna haja ya mashimo 3 nyuma - vifungo viwili vya kushinikiza kuba kubwa na moja ya mfuatiliaji. Mbele, mashimo 2 - moja ya kitufe cha kushinikiza kuba kubwa na nyingine - ndogo - kwa kamera ya Raspberry PI. Sina vipimo maalum - fikiria tu kamera na utumie hiyo.
Hatua ya 3: Fuatilia
Kufuatilia
Msaada wa ufuatiliaji ulifanywa ukiongeza vipande vidogo vya kuni kuunga mkono ndani ya vipimo vyake.
Ilikuwa ukanda kutoka kwa nyumba ya plastiki na ililindwa mahali pake na vis. Ili kusaidia kuinua, bawaba mbili za majimaji (zilizotumiwa) zilitumika.
Hatua ya 4: Mapambo
Kwa kuwa napenda sana mtindo wa Fuji X-T30 yangu, tulienda na kufanya kitu kama hicho.
Kwanza, tuliifunika kwa povu na baadaye tukaipaka rangi nyeusi. Baada ya rangi, tuliongeza karatasi ya aluminium kwa sehemu za fedha na kuifunga
Kuiga lensi, tulitumia tu Tupperware pande zote ikiwa tulifanya shimo ndogo kwa moduli ya kamera ya Raspberry PI kukaa.
Hatua ya 5: Kupanga programu
Kupanga kamera ilikuwa changamoto, lakini ilikuwa ya kupendeza sana.
Hakuna GUI - hii inaendesha CLI na inaendesha toleo la 3 la Python.
Nilianza kwanza kwa kujaribu na kupanga vifungo, ijayo nilikuwa nikipiga picha kwa kutumia zana ambazo tayari zimetolewa na API ya Python. Kisha nikaendelea kufunika picha kwenye pato la kamera (kwa hesabu) na karibu kushirikiana na Twitter na Facebook.
Baada ya kuwa raha na yote hayo, kama kitendawili, nilikusanya vipande vyote pamoja. Hapa, tunaenda na mchakato huo huo. Anza polepole na ndogo na nenda kwa haraka na kubwa.
Kwanza, wacha tuanze kwa kusanidi Raspberry PI
Hatua ya 6: Kuandaa Raspberry PI
Sitaelezea jinsi ya kufunga Raspbian kwenye Raspberry PI - kuna mafunzo mengi huko nje, hata kwenye wavuti rasmi ya Raspberry PI.
Unahitaji tu kuwa na ufikiaji wa SSH, au uiunganishe kwa mfuatiliaji na unganisha kibodi na panya.
KUMBUKA: Unapoanza na kamera ya Raspberry PI, unahitaji kuiweka kwenye kufuatilia. Mpaka hapo, hatua zote zinaweza kufanywa kwa kutumia SSH.
Baada ya kupakua kwenye Raspberry PI yako, tunahitaji kuwezesha kamera ya Raspberry PI. Wacha tutumie chombo cha raspi-config kwa hiyo.
Sudo raspi-config
- Chagua chaguo 5 - Chaguzi za Kuingiliana
- Chagua P1 - Wezesha / Lemaza unganisho kwa kamera ya Raspberry PI
- Sema Ndio
- kwa OK
- Chagua Maliza
- Chagua Ndio kuanza upya sasa
Baada ya kuanza upya, tunaweza kuendelea
Hatua ya 7: Programu
Tutahitaji maktaba za Python kusanikishwa. Hii imesasishwa kwa toleo la hivi karibuni la Raspbian - Buster
Kwanza, weka kuweka Python 3 kama chaguo-msingi. Fuata kiunga hiki kujua jinsi ya kuiweka SYSTEM WIDE
Maktaba:
- python-pil.imagetk kudhibiti picha
- python-rpi.gpio kufikia PIN za GPIO
- chatu-picamera kufikia Kamera ya Raspberry PI
- Tweepy kushiriki picha hiyo kwa twitter
- facebook-sdk kushiriki kwenye ukurasa wa facebook
Sudo apt-get kufunga python3-pil.imagetk python3-rpi.gpio python3-picamera python3-tweepy python3-pip
Tumia bomba la Python kusanikisha facebook-sdk
sudo pip3 kufunga facebook-sdk
Hatua ya 8: Programu - Uhakiki wa Kamera
Moja ya mahitaji niliyoweka kwenye mradi huu ni kwamba programu hii ingeendeshwa katika hali ya CLI. Kwa hivyo, tunahitaji kuonyesha picha ya kamera kwenye koni. Kwa hili, wacha tutumie Python Picamera. Baada ya hapo, wacha tutumie pil.imagetk kuonyesha kufunikwa juu ya hakikisho la kamera
Programu yetu ndogo (tutaendeleza programu ndogo hadi moja kubwa mwishoni) itaonyesha hakikisho la kamera.
#! / usr / bin / env chatu
ingiza picha ya kuagiza wakati kutoka kwa wakati kuagiza kamera ya kulala = picamera. PiCamera () # Weka azimio unalotaka kamera. Usuluhishi = (1280, 1024) kamera.framerate = kamera 24. anza_preview () jaribu: wakati (Kweli): lala (1) isipokuwa (KinandaInterrupt, SystemExit): chapisha ("Inatoka…") kamera.stop_preview ()
Ili kuijaribu itekeleze tu
kamera ya chatuPreview.py
Chungulia kamera na picha juu
Kwa kuwa nilitaka hesabu iliyoonyeshwa kabla ya kuchukua picha, nilihitaji picha zinazoingiliana na hakiki ya kamera.
Unda picha ya-p.webp" />
Nambari ifuatayo itaingiliana 1-p.webp
ingiza picha kutoka kwa kuagiza picha ya PIL kutoka wakati uingize kulala na picamera. PiCamera () kama kamera: camera.resolution = (1920, 1080) camera.framerate = 24 camera.art_preview () # mzigo picha img = Image.open ('1.png '# kuunda pedi = Image.new (' RGB ', (((img.size [0] + 31) // 32) * 32, ((img.size [1] + 15) // 16) * 16, pedi) bandika (img, (0, 0)) o = kamera.add_overlay (pad.tobytes (), size = img.size) o.alpha = 128 o.layer = 3 wakati Kweli: lala (1)
Jaribu:
python pichaOverlay.py
Wacha sasa tuunde hesabu iliyo na picha zilizoambatishwa. Kama vile umeunda picha ya 1.png, tengeneza picha zingine mbili na 2 na 3 ndani.
Baada ya hapo, tumia tu nambari ifuatayo:
kuagiza picamera
kutoka kwa PIL kuagiza Picha kutoka wakati wa kuagiza kulala na picamera. PiCamera () kama kamera: camera.resolution = (1280, 1024) camera.framerate = 24 camera.art_preview () # mzigo picha img1 = Image.open ('3.png' img2 = Image.open ('2.png') img3 = Image.open ('1.png') # kuunda pedi = Image.new ('RGB', (((img1.size [0] + 31) / / 32) * 32, ((img1.size [1] + 15) // 16) * 16,)) pedi.bandika (img1, (0, 0)) o = camera.add_overlay (pad.tobytes (), saizi = img1. saizi) o.alpha = 128 o.layer = 3 kulala (2) # ondoa kamera iliyofunikwa ya awali. tobytes (), size = img2.size) o.alpha = 128 o.layer = 3 kulala (2) # ondoa kamera iliyofunikwa hapo awali. ongeza_kufunika (pedi.tobytes (), saizi = img3.size) o.alpha = 128 o.layer = 3 kulala (2)
Sasa itekeleze:
python pichaOverlayCounter.py
Na angalia hesabu
Wow - Nambari nyingi na hakuna picha iliyopigwa… Wacha tutatue hilo kwa kuchanganya zote pamoja - hakiki kamera, hesabu na piga picha
Ingiza picha kutoka kwa PIL ingiza Picha kutoka wakati wa kuingiza usingizi juu ya kufunikaCounter (): # mzigo picha img1 = Image.open ('3.png') img2 = Image.open ('2.png') img3 = Image.open ('1. png ') # tengeneza pedi = Image.new (' RGB ', (((img1.size [0] + 31) // 32) * 32, ((img1.size [1] + 15) // 16) * 16,)) # weka kufunika - pedi 3. bandika (img1, (0, 0)) o = kamera.add_overlay (pedi.tobytes (), saizi = img1.size) o.alpha = 128 o.layer = 3 lala (1) # Ondoa kamera iliyofunikwa hapo awali. ondoa kifuniko (o) # weka kufunika - pedi 2. weka (img2, (0, 0)) o = kamera. o.alpha = 128 o.layer = 3 kulala (1) # ondoa kamera iliyofunikwa hapo awali. ondoa_kufunika (o) # weka kifuniko - pedi 3. bandika (img3, (0, 0)) o = camera.add_overlay (pedi. tobytes (), size = img3.size) o.alpha = 128 o.layer = 3 kulala (1) kamera. ondoa_overlay (o) camera = picamera. PiCamera () camera.resolution = (1280, 1024) camera.framerate = Kamera ya 24. anza_kuangalia [
Jaribu:
picha ya chatuWithTimer.py
Na hapa tuna Yoda
Hatua ya 9: Kupanga programu - Kitufe cha Kubwa cha Dome Kubwa
Kitufe kikubwa cha kushinikiza kuba ni kitufe kikubwa cha pande zote - na kipenyo karibu cha 100mm na LED ndogo. Inasema inafanya kazi saa 12V, lakini 3.3v ya Raspberry PI inatosha kuiwasha
Tumia skimu kwa kupima
Nambari:
kutoka kwa RPi kuagiza GPIO
kuchukuaButton = 17 ledButton = 27 GPIO.setmode (GPIO. BCM) GPIO.setup (takeButton, GPIO. IN, GPIO. PUD_UP) GPIO.setup (ledButton, GPIO. OUT) #Light led GPIO.output (ledButton, True) # Kuzuia kazi GPIO.wait_for_edge (takeButton, GPIO. FALLING) chapa ("Button Pressed")
Baadhi ya kuelezea nambari Moja ya aina ya kupata maadili kutoka kwa GPIOS ni kupitia usumbufu (nyingine ni kupiga kura) - kugundua makali.
Makali ni jina la mpito kutoka HIGH hadi LOW (makali ya kuanguka) au LOW to HIGH (kupanda kwa makali). Wakati PIN haijaunganishwa na chochote, usomaji wowote hautafafanuliwa. Kufanya kazi ni kuwa na kontena la kuvuta / chini kwenye PIN iliyosemwa. Raspberry PI inaruhusu kusanidi vipingamizi vya kuvuta / chini kupitia programu.
Mstari
Kuanzisha GPIO (takeButton, GPIO. IN, GPIO. PUD_UP)
inasanidi hiyo PIN kufanya hivyo tu - vuta
Kwa nini kuvuta? Kweli, kitufe cha kushinikiza kuba kubwa ina PIN 2 - kushinikiza kuvunja au kushinikiza kutengeneza (kama vifungo vidogo vya kushinikiza ambavyo mara nyingi huja na vifaa vya Arduino / Raspberry PI). Nimeiweka waya kwa kitufe cha "kushinikiza kutengeneza". Unapobanwa, mzunguko hufunga na umeme hupita (kawaida hufunguliwa).
Mstari
GPIO.ngojea_kwa_mji (takeButton, GPIO. FALLING)
itasubiri (kusitisha utekelezaji wa hati hiyo) hadi igundue PIN - ikitoa kifungo itakata mtiririko wa umeme na PIN itatoka 3.3v hadi 0v
PIN ya LED ni kuwasha tu LED kwenye kifungo
Maelezo zaidi juu ya swichi za kushinikiza kutoka kwa Mafunzo ya Arduino, Wikipedia kwenye kushinikiza kutengeneza au kushinikiza kuvunja na GPIO inakatiza.
Sasa, wacha tuunganishe kitufe cha kushinikiza na kamera - Piga picha tu wakati kitufe kinabanwa
ingiza picha kutoka wakati wa kuagiza usingizi kutoka kwa RPi kuagiza GPIO kutoka kwa PIL kuagiza Picha # KUMBUKA: Hii ndio kitakuwa kitufe cha kughairi katika programu kuu # Ninaitumia hapa kwa sababu ya uwazi katika kuchukua videoButton = 24 ledCancel = 5 GPIO seti (GPIO. BCM) (): GPIO. Image.open ('1.png') # Unda kufunika # Inatumika na img1 kwa sababu zote ni sawa saizi ya pedi = Image.new ('RGB', (((img1.size [0] + 31) // 32) * 32, ((img1.size [1] + 15) // 16) * 16,)) # weka kufunika - pedi 3. bandika (img1, (0, 0)) ov = camera.add_overlay (pad.tobytes (), size = img1.size) ov.alpha = 200 # safu ni 3 kwa sababu hakikisho la kamera iko kwenye safu ya 2 ov.layer = 3 kulala (1) kamera. ondoa_kufunika (ov) # weka kufunika - pedi 2. img2, (0, 0 ov = kamera. ongeza_kufunika (pedi.tobytes (), saizi = img2.size) ov.alpha = 200 # safu ni 3 kwa sababu hakikisho la kamera liko kwenye safu ya 2 ov. mchezaji = 3 ya kulala (1) kamera. ondoa_kufunika [ov. # weka kufunika - pedi 1. bandika (img3, (0, 0)) ov = kamera.add_overlay (pedi.tobytes (), saizi = img3.size) ov.alpha = 200 # safu ni 3 kwa sababu hakikisho la kamera ni kwenye safu ya 2 ov.layer = 3 kulala (1) kamera. ondoa_kufunika [ov] kamera = picamera. PiCamera () camera.resolution = (1280, 1024) camera.framerate = 24 camera.art_preview () GPIO.wait_for_edge (takeButton, GPIO. FALLING) onLeds () overlayCounter () camera.capture ('pushTesting.jpg') camera.stop_preview () offLeds () GPIO.cleanup ()
Maelezo kidogo ya kificho
Inaanza hakikisho la kamera na kusubiri hapo hadi kitufe kitapobanwa. Baada ya kitufe kushinikizwa, taa ya LED huwaka na hesabu huanza. Wakati wa kufikia mwisho, picha imechukuliwa na LED imezimwa
Hatua ya 10: Tuma kwa Twitter
Sasa, tutatumia Python na tweet tweet!:) Utahitaji picha ili kuchapisha - chagua kwa busara.
Kwanza, tunahitaji kupata API ya twitter na kwa hiyo tunahitaji kuunda APP. Nenda kwa https://apps.twitter.com kuunda programu mpya.
Utahitaji kuomba akaunti ya msanidi programu - jaza maswali kadhaa na uthibitishe anwani yako ya barua pepe. Baada ya hapo, utaweza kuunda APP mpya.
Baada ya kuunda APP, nenda kwa Funguo na Ishara na Utengeneza Ishara ya Ufikiaji na Siri ya Ishara ya Ufikiaji. Dirisha litaonyeshwa na Funguo KWA MARA MOJA - NAKILI ZAO NA UZIOKOE KWA AJILI YA BAADAE.
Tumia nambari ifuatayo kutuma picha kwenye akaunti yako ya twitter. Usisahau kujaza:
- kitufe_ cha watumiaji
- siri_mtumiaji
- ishara_ya ufikiaji
- ufikiaji_wa ishara_ya siri
ujumbe wa twitter ni maandishi ya kutuma kwenye tweet.
jpg_foto_to_send ni picha ambayo itaambatanishwa kwenye tweet. Tafadhali kuwa na picha kwenye saraka sawa na hati ya Python na ubadilishe jina kwenye nambari.
kuagiza tweepy # Mipangilio ya Twitter def get_api (cfg): auth = tweepy. tweepy. API (auth) # Tuma kwa twitter def sendToTwitter (): cfg = {"consumer_key": "", "user_secret": "", "access_token": "", "access_token_secret": ""} api = get_api (cfg) # Hali ya Ujumbe tweet = "Twitter message" status = api.update_with_media ("jpg_foto_to_Send", tweet) sendToTwitter ()
Angalia malisho yako ya Twitter kwa tweet yako.
Hapa kuna Tweet
Au bellow:
#RaspberryPI UchawiBox. Piga picha, zikague na uchague kuzituma kwa twitter na Facebook. Inaendeshwa na PI ya Raspberry. @@ Raspberry_Pi # RaspberryPI # RaspberryPIProjectpic.twitter.com / cCL33Zjb8p
- Bruno Ricardo Santos (@ feiticeir0) Februari 29, 2020
Hatua ya 11: Kuchanganya Baadhi ya Vipengele
Wacha sasa tuunganishe kitufe cha Big Dome Push, kukibonyeza, kuhesabu chini, kupiga picha, kuamua ikiwa utapeleka kwa twitter au la.
Tutaongeza picha nyingine ya kufunika na tumia vifungo vyote vitatu vya kushinikiza. Wakati picha imechukuliwa, vifungo vyote 3 vya LED vitawaka.
Tunaongeza picha nyingine, ambayo inaonyesha ikoni za kuchapisha kwenye mitandao ya kijamii
SelectOption-p.webp
Aenviar-p.webp
Kwenye video haionyeshwa kitufe cha kushinikiza Bluu (mbele ya kamera), lakini LED imewashwa na inaanza kupepesa mara tu inapobanwa.
Nambari imeambatishwa ikiwa unapenda
Hii ndio nambari ya mwisho ya upimaji kabla ya programu kuu.
# coding = utf-8 kuagiza picamera kuagiza _readread subprocess kama sp kutoka wakati kuagiza kulala kutoka RPi kuagiza GPIO kutoka PIL kuagiza picha kuagiza threading # Twitter kuagiza tweepy # Facebook kuagiza facebook # Button kuchukua picha takeButton = 17 # SocialNetwork Button socialNetworkButton = 23 # Ghairi Ghairi ya PichaButton = 24 # Piga kitufe cha picha Piga pichaBiBodi ya Led = 27 # Tuma kwa Kitufe cha Mtandao wa Kijamii LED postSNLed = 22 # Ghairi kifungo LED cancelButtonLed = 5 GPIO.setmode (GPIO. BCM) GPIO.setup (takeButton, GPIO. IN, GPIO. PUD_UP) GPIO.setup (socialNetworkButton, GPIO. IN, GPIO. PUD_UP) GPIO.setup (cancelButton, GPIO. IN, GPIO. PUD_UP) GPIO.setup (takePicButtonLed, GPIO. OUT) GPIO.setup (GPIO.setup, GPIO.setup, GPIO.setup (cancelButtonLed, GPIO. OUT) # Mipangilio ya Twitter inapunguza get_api (cfg): auth = tweepy., cfg ['access_token_secret']) kurudi tweepy. API (auth) # Tuma kwa twitter def sendToTwitter (): cfg = {"con sumer_key ":" "," consumer_secret ":" "," access_token ":" "," access_token_secret ":" "} api = get_api (cfg) # Hali Ujumbe tweet =" Uchunguzi wa Uchunguzi wa MagicBox. #MagicBox #RaspberryPI #Raspberry #Instructables "status = api.update_with_media (" pushTesting.jpg ", tweet) # Facebook AOth def get_api_facebook (cfg): graph = facebook. GraphAPI (cfg ['access_token']) # Pata ishara ya ukurasa chapisha kama ukurasa. Unaweza kuruka # yafuatayo ikiwa unataka kuchapisha kama wewe mwenyewe.] == cfg ['page_id']: page_access_token = ukurasa ['access_token'] graph = facebook. GraphAPI (page_access_token) kurudisha grafu # Tuma kwa facebook def sendToFacebook (): #Bali za ufikiaji cfg = {"page_id": "", "access_token": ""} api = get_api_facebook (cfg) caption = "Nukuu picha" albumid = "" api.put_photo (image = open ("pushTesting.jpg", "rb"), caption = "Nukuu picha ") # Nuru tu ya TakePicButtonLed def onlyTakePicLed (): GPIO.putput (takePicButtonLed, True) GPIO.output (postSNLed, False) GPIO.output (cancelButtonLed, False) # Nuru tu Ghairi na kitufe cha SocialNetwork def canPostLEDS (): O.putput (takePicButtonLed, False) GPIO.output (postSNLed, True) GPIO.output (cancelButtonLed, True) # Blink piga picha ya LED wakati ukihesabu def countingTimerPicture (): GPIO.putput (takePicButtonLed, True) lala (0.5) GPIO. pato (takePicButtonLed, False) kulala (0.5) GPIO.pato (takePicButtonLed, True) lala (0.5) GPIO.output (takePicButtonLed,Kulala) chapa ("off") kulala (1) GPIO.pato (postSNLed, Kweli) kulala (1) GPIO.putput (cancelButtonLed, True) kulala (1) def showAllLeds (): GPIO.output (takePicButtonLed, True) GPIO.output (postSNLed, True) Pato la GPIO (cancelButtonLed, True) # Onyesha hakikisho kwenye safu ya 1 def displayPreview (imgName): # Kwa kuwa onyesho la picha ya PIL ni crap # tunatumia kufunikwa kutoka kwa kamera kuonyesha # hakikisho img = Image.open (imgName padding = Image.new ('RGB', (((img.size [0] + 31) // 32) * 32, ((img.size [1] + 15) // 16) * 16,)) padding.bandika (img, (0, 0)) ov = camera.add_overlay (padding.tobytes (), size = img.size) ov.layer = 1 # Onyesha hakikisho kwenye safu 3 def displayPreview3 (imgName): # Kwa kuwa onyesho la picha ya PIL ni crapp # tunatumia kufunika kwa kamera kuonyesha # hakikisho img = Image.open (imgName) padding = Image.new ('RGB', (((saizi [0] + 31) // 32) * 32, ((img.size [1] + 15) // 16) * 16,)) padding.bandika (img, (0, 0)) ov = kamera. Kifuniko cha kufunika = Picha.new ('RGB', (((imgsn.size [0] + 31) // 32) * 32, ((imgsn.size [1] + 15) // 16) * 16,)) # Bandika pedi ya kufunika. picha overlayCounter (): #pakia picha img1 = Image.open ('3.png') img2 = Image.open ('2.png') img3 = Image.open ('1.png') # Unda kufunika # Imetumika na img1 kwa sababu zote zina ukubwa sawa pedi = Image.new ('RGB', (((img1.size [0] + 31) // 32) * 32, ((img1.size [1] + 15) // 16) * 16,)] # weka kufunika - pedi 3. bandika (img1, (0, 0)) ov = camera.add_overlay (pad.tobytes (), size = img1.size) alpha = 200 # safu ni 3 kwa sababu onyesho la kuchungulia kamera liko kwenye safu ya 2 ov.layer = 3 kulala (1) kamera. = kamera.add_overlay (pedi.tobytes (), saizi = img2.size) ov.alpha = 200 # safu ni 3 kwa sababu hakikisho la kamera liko kwenye safu ya 2 ov.layer = 3 kulala (1) kamera.remove_overlay (ov) # paste kufunika - pedi 1 kuweka (img3, (0, 0)) ov = kamera.add_overlay (pedi.tobytes (), saizi = img3.size) ov.alpha = 200 # safu ni 3 kwa sababu hakikisho la kamera liko kwenye tabaka 2 ov.layer = 3 kulala (1) kamera. ondoa_kufunika (ov) # Kazi kuu # Futa skrini ili ujumbe wa buti usiwepo # labda inaweza kuwa bora kufanya hivyo katika bash tmp = sp.call ('clear', ganda = Kweli) kamera = kamera. PiCamera () kamera. azimio = (1280, 1024) kamera.framerate = kamera 24. mwangaza = kamera 55. ukali = 0 kamera. kulinganisha = 0 # kamera.exposition_co mpensation = 0 # camera.exposition_mode = 'auto' # camera.meter_mode = 'average' # Upimaji hapa jaribu: wakati (Kweli): camera.start_preview () #Show LED Only for Take Photo onlyTakePicLed () # Subiri kitufe kuchukua Picha GPIO.ngojea_kwa_mji (takeButton, GPIO. FALLING) # Anzisha uzi kuhesabu na LED wakati picha zinaonyeshwa # Labda inaweza kutumika katika kazi ya Kufunikwa kwa Kukabiliana, # kwa sababu pia ina muda wa kuonyesha picha, lakini athari zilizoongozwa. singekuwa # sawa thread.nza_kisasa_cha (kuhesabuPimerPicture, ()) # Onyesha picha zilizoambatishwa kwenye picha ya kamera kufunika PichaCounter () # Onyesha LED zote wakati unachukua picha ya onyeshoAllLeds () kamera.capture ('pushTesting.jpg') kamera. stop_preview () #display image displayPreview ('pushTesting.jpg') # Onyesha kufunika = kusambaratika () # Onyesha LEDs Kufuta au Kutuma kwa Mitandao ya Kijamii kufutaPostLEDS () GPIO.add_event_detect (socialNetworkButton, GPIO. FALLING) GPIO.utd_event (CCP), GPIO. FALLING) wakati (Kweli): ikiwa GPIO.event_detecte d (socialNetworkButton): camera.remove_overlay (oo) GPIO. GPIO.event_detected (cancelButton): #print "Camera" iliyofutwa. Ondoa_overlay (oo) kuvunja # reset GPIOS GPIO.remove_event_detect (socialNetworkButton) GPIO.remove_event_detect (cancelButton) GPIO.remover_event (tazama). "Imeondoka…") #offLeds () GPIO.cleanup ()
Hatua ya 12: Wiring
Wiring inaunganisha tu vifungo vya Big Dome Push kwa Raspberry PI.
Fuata tu Schematic ya Fritzing.
Viunganisho ni:
UunganishoRPI GPIO PIN GND Kijani cha Kushinikiza Kijani Kitufe cha "Bonyeza kutengeneza") 23 (BCM) Ghairi (Kitufe cha Kushinikiza cha Njano "Shinikiza utengeneze") 24 (BCM) Kitufe cha samawati cha Bluu LED27 (BCM) Kitufe cha Kijani cha Kijani cha LED22 (BCM) Kitufe cha Msukuma cha Njano LED5 (BCM)
Kupunguza joto pia kuna rangi ya rangi
- Nyeusi ni unganisho la GND
- Njano ni "kushinikiza kufanya" unganisho
- Bluu ni unganisho la LED
Nambari za GPIO. BCM dhidi ya unganisho la GPIO. BOARD
Kwa kuwa miunganisho yangu ni BCM, nadhani sasa ni wakati mzuri wa kuizungumzia na tofauti kati ya BCM na BODI.
Tofauti kuu ni jinsi gani unataja PIN za GPIO, ambazo zitasababisha jinsi unavyounganisha. GPIO.board itataja PIN na nambari iliyochapishwa kwenye mpangilio wowote wa GPIO kwenye wavuti.
GPIO. BCM inaangazia nambari za PIN kama Broadcom SOC inavyoziona. Hii inaweza kubadilika pamoja na matoleo mapya ya Raspberry PI.
Kwenye wavuti ya pinout.xyz, nambari za bodi ndio zilizo karibu kabisa na pini na BCM imeangaziwa kama hiyo - BCM X (ambapo X ni nambari)
Hatua ya 13: MagicBox
Nambari iliyoambatishwa kwa hatua hii ni ya mwisho.
Unaweza kuiendesha kwenye buti ya rasipberry PI, bila hata kuhitaji kuingia. Ili kufanya hivyo, tengeneza tu hati hii ndogo kwenye saraka uliyoweka nambari - badilisha njia ipasavyo
#! / bin / bash
cd / nyumbani / pi / sanduku la uchawi python MagicBox.py
Ifanye iweze kutekelezwa
chmod + x kuanza_magicbox.sh
Sasa, iite katika /etc/rc.local, kabla tu ya kuingizwa 0
sudo vi /etc/rc.local
/ nyumbani/pi/magicbox/start_magicbox.sh &
kuokoa na kuacha.
Sasa, kwa kila reboot, programu ya Python itatekeleza
KUMBUKA: Faili zote za picha lazima ziwe kwenye saraka sawa na hati. Unahitaji kuwa na:
- 1. png
- 2. png
- 3. png
- Aenviar.png
- SelectOption.png
Unaweza kupata faili hizi zote kwenye github ya MagicBox.
Ilipendekeza:
Tengeneza Kamera yako ya Juu ya Kamera na Mwangaza wa LED !: Hatua 5 (na Picha)
Tengeneza Kamera yako ya Juu ya Kamera na Mwangaza wa LED!: Katika mradi huu nitakuonyesha jinsi ya kuunda kifaa rahisi cha kamera. Ulaji hauwezi tu kushikilia kamera juu ya kitu unachotaka kupiga filamu, lakini pia inaangazia mfuatiliaji wa kuona picha na mwangaza wa LED kwa l kikamilifu
KAMERA YA UNICORN - Raspberry Pi Zero W NoIR 8MP Kujenga Kamera: Hatua 7 (na Picha)
KAMERA YA UNICORN - Raspberry Pi Zero W NoIR 8MP Kujenga Kamera: Pi Zero W NoIR 8MP Kujenga KameraHii Inayoweza Kuundwa iliundwa kumsaidia mtu yeyote anayetaka Kamera ya infrared au Kamera ya Kubebeka Kweli Kubwa au Kamera ya Raspberry Pi inayobebeka au Anataka tu kujifurahisha, heheh . Hii ndio bei rahisi na usanidi
Kamera ya Kupoteza Picha Picha Imefanywa Rahisi: Hatua 22 (na Picha)
Kamera ya Kupotea kwa Picha Picha Imefanywa Rahisi: Nilikuwa nikiangalia mojawapo ya Maagizo mengine juu ya kutengeneza sinema za kupoteza muda. Alishughulikia vizuri sehemu ya sinema. Aliiambia juu ya programu ya bure ambayo unaweza kupakua kutengeneza sinema. Nilijisemea, nadhani nitaona ikiwa naweza m
Kamera ya wavuti katika Kamera ya Brownie ya Hawkeye: Hatua 3 (na Picha)
Kamera ya wavuti katika Kamera ya Hawkeye Brownie: Nondo chache zilizopita niliingia kwenye diy kwenye Jarida la Make juu ya kuweka kamera ya wavuti ndani ya kamera ya zamani ya kukunja, na Ilikuwa ni kitu karibu na kile nimekuwa nikijaribu kufanya na hoja na kupiga digicam lakini sijapata kesi kamili kwa hiyo. Napenda
Piga Picha za kushangaza za Macro na Kamera yoyote ya Simu ya Kamera Hasa IPhone: Hatua 6
Chukua Picha za kushangaza za Macro na Kamera yoyote ya Kamera ya Kamera … Hasa IPhone: Umewahi kutaka kupata moja ya picha za karibu za karibu … ile inayosema … WOW!? … na kamera ya simu ya kamera sio chini !? Kimsingi, hii ni nyongeza ya kuongeza kamera yoyote ya kamera ya kamera kukuza lenzi yako ya kamera ili kuchukua