Obsah:
- Zásoby
- Krok 1: Sestavte
- Krok 2: Fotoaparát
- Krok 3: Monitor
- Krok 4: Zdobení
- Krok 5: Programování
- Krok 6: Příprava Raspberry PI
- Krok 7: Software
- Krok 8: Programování - náhled kamery
- Krok 9: Programování - tlačítko Big Dome
- Krok 10: Zveřejněte na Twitteru
- Krok 11: Kombinace některých prvků
- Krok 12: Zapojení
- Krok 13: MagicBox
Video: Fotoaparát RaspberryPI - MagicBox: 13 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-31 10:18
Před chvílí jsem dostal tento šílený nápad vytvořit fotografický stroj z Raspberry PI. V mém městě se konala malá show, kde lidé chodili ukazovat, co vyrábějí nebo vyráběli pomocí elektroniky, počítačů atd … Byl jsem jako Faire Faer chudáka, ale v místním měřítku.
Jedna se blížila a společně s mojí ženou jsme tuto věc postavili.
Jak to funguje ?
Stiskněte modré tlačítko - začne blikat - a po 3 sekundách je vyfotografován snímek. Na druhé straně fotoaparátu je monitor, který ukazuje odpočítávání a po pořízení snímku náhled fotky.
Nyní se můžete rozhodnout odeslat jej na Twitter a Facebook nebo zrušit a zkusit to znovu. Je to tak jednoduché.
Vše je naprogramováno v Pythonu s využitím PI framebuffer - nepoužívá se žádný Xorg, žádné GUI.
Zde je video z fungování projektu
Zásoby
- Raspberry PI (používám verzi 2)
- Raspberry PI Camera (pomocí verze 1)
- 3x tlačítka Big Dome
- TFT/LCD monitor s VGA/HDMI
- MDF
- Kovové závěsy, šrouby atd.
- Elektrické nářadí
- Volný čas a spoustu zábavy
Krok 1: Sestavte
Stavět to byla zábava. Mnoho řezání, malování a vrtání.
Pro stavbu základní struktury kamery jsem použil MDF panely. Jsou lehké a snadno se s nimi pracuje. Také to byl jeden druh dřeva, který laserový stroj v místním Fablabu dokázal vyřezat.
Přístup k elektroinstalaci uvnitř byl zajištěn ze strany monitoru pomocí hydraulických závěsů, aby mohly pomoci zvednout monitor.
Krok 2: Fotoaparát
Fotoaparát
Fotoaparát je krabice s následujícími rozměry: 60 cm x 40 cm x 30 cm Váš může být menší, větší, záleží jen na vás. Jen se musíte přizpůsobit monitoru, který budete používat. Panely MDF byly řezány laserem v místním Fablabu. Na zadní straně jsou potřeba 3 otvory - dvě velká kopulovitá tlačítka a jedno pro monitor. Vpředu 2 otvory - jeden pro velké kopulovité tlačítko a druhý - menší - pro kameru Raspberry PI. Nemám konkrétní měření - prostě si představte kameru a použijte ji.
Krok 3: Monitor
Monitor
Podpěra monitoru byla vyrobena přidáním malých kousků dřeva, které ji v jejích rozměrech podepřely.
Byl vytažen z plastového pouzdra a zajištěn na místě šrouby. Jako pomoc při zvedání byly použity dva hydraulické závěsy (použité).
Krok 4: Zdobení
Protože se mi hodně líbí styl mého Fuji X-T30, šli jsme udělat něco podobného.
Nejprve jsme ho pokryli pěnou a poté jsme jej nastříkali černou barvou. Po barvě jsme přidali alobal na stříbrné části a zabalili
Pro simulaci objektivu jsme použili kulatý Tupperware, kde jsme vytvořili malou díru pro modul kamery Raspberry PI.
Krok 5: Programování
Programování kamery bylo výzvou, ale bylo to super zábava.
Neexistuje žádné GUI - běží na CLI a běží na Pythonu verze 3.
Nejprve jsem začal testováním a programováním tlačítek, další bylo fotografování pomocí již poskytnutých nástrojů a rozhraní Python API. Poté jsem přešel k překrytí obrázků ve výstupu fotoaparátu (pro odpočítávání) a dále k interakci s Twitterem a Facebookem.
Poté, co mi to všechno bylo příjemné, jsem jako skládačka složil všechny dílky dohromady. Tady jdeme stejným postupem. Začněte pomalu a pomalu a rychle.
Nejprve začněme konfigurací Raspberry PI
Krok 6: Příprava Raspberry PI
Nebudu vysvětlovat, jak nainstalovat Raspbian na Raspberry PI - existuje spousta návodů, dokonce i na oficiálních stránkách Raspberry PI.
Stačí k němu mít přístup SSH nebo jej připojit k monitoru a připojit klávesnici a myš.
POZNÁMKA: Když začínáte s kamerou Raspberry PI, musíte ji mít připojenou k monitoru. Do té doby lze všechny kroky provádět pomocí SSH.
Po spuštění vašeho Raspberry PI musíme povolit kameru Raspberry PI. Použijme k tomu nástroj raspi-config.
sudo raspi-config
- Vyberte možnost 5 - Možnosti rozhraní
- Zvolte P1 - Povolit/Zakázat připojení k Raspberry PI kameře
- Říkat ano
- pro OK
- Vyberte Dokončit
- Chcete -li nyní restartovat, vyberte Ano
Po restartu můžeme pokračovat
Krok 7: Software
K instalaci budeme potřebovat nějaké knihovny Pythonu. Toto bylo aktualizováno pro nejnovější verzi Raspbian - Buster
Nejprve nastavíme Python 3 jako výchozí. Pomocí tohoto odkazu se dozvíte, jak jej nastavit SYSTÉM ŠIROKÉ
Knihovny:
- python-pil.imagetk pro manipulaci s obrázky
- python-rpi.gpio pro přístup k PINŮM GPIO
- python-picamera pro přístup k Raspberry PI kameře
- Tweepy pro sdílení fotografie na twitter
- facebook-sdk ke sdílení na facebookovou stránku
sudo apt-get install python3-pil.imagetk python3-rpi.gpio python3-picamera python3-tweepy python3-pip
K instalaci facebook-sdk použijte Python pip
sudo pip3 nainstalujte facebook-sdk
Krok 8: Programování - náhled kamery
Jedním z požadavků, které jsem tomuto projektu stanovil, bylo, aby tento program běžel v režimu CLI. Musíme tedy zobrazit obraz kamery na konzole. K tomu použijme Python Picamera. Poté použijme pil.imagetk k překrytí v horní části náhledu kamery
Náš malý program (budeme vyvíjet malé programy až do konce jednoho velkého) zobrazí náhled kamery.
#!/usr/bin/env python
import time import picamera from time import sleep camera = picamera. PiCamera () # Nastavte požadované rozlišení camera.resolution = (1280, 1024) camera.framerate = 24 camera.start_preview () try: while (True): sleep (1) kromě (KeyboardInterrupt, SystemExit): print ("Exiting…") camera.stop_preview ()
Chcete -li to vyzkoušet, spusťte jej
python cameraPreview.py
Náhled fotoaparátu s obrázky nahoře
Protože jsem chtěl před pořízením obrázku zobrazit odpočítávání, potřeboval jsem obrázky překrývající se s náhledem fotoaparátu.
Vytvořte obrázek-p.webp" />
Následující kód bude překrývat 1-p.webp
import picamerafrom PIL import Image from time import sleep with picamera. PiCamera () as camera: camera.resolution = (1920, 1080) camera.framerate = 24 camera.start_preview () # load image img = Image.open ('1-p.webp
Zkus to:
python imageOverlay.py
Pojďme nyní vytvořit odpočítávání s překryvnými obrázky. Stejně jako jste vytvořili obrázek 1.png, vytvořte další dva obrázky se 2 a 3 v nich.
Poté použijte následující kód:
import pikamery
z importu PIL Obrázek z času importujte spánek s picamera. PiCamera () jako kamera: camera.resolution = (1280, 1024) camera.framerate = 24 camera.start_preview () # load image img1 = Image.open ('3.png') img2 = Image.open ('2.png') img3 = Image.open ('1.png') # create pad = Image.new ('RGB', ((((img1.size [0] + 31) / / 32) * 32, ((img1.size [1] + 15) // 16) * 16,)) pad.paste (img1, (0, 0)) o = camera.add_overlay (pad.tobytes (), size = img1.size) o.alpha = 128 o.layer = 3 sleep (2) #remove previous overlay camera.remove_overlay (o) pad.paste (img2, (0, 0)) o = camera.add_overlay (pad. tobytes (), size = img2.size) o.alpha = 128 o.layer = 3 sleep (2) # remove previous overlay camera.remove_overlay (o) pad.paste (img3, (0, 0)) o = camera. add_overlay (pad.tobytes (), size = img3.size) o.alpha = 128 o.layer = 3 spánek (2)
Nyní proveďte:
python imageOverlayCounter.py
A podívejte se na odpočítávání
Páni - hodně kódu a žádný snímek … Pojďme to vyřešit kombinací všech dohromady - náhled kamery, odpočítávání a vyfotit
import picamerafrom PIL import Image from time import sleep def overlayCounter (): # load image img1 = Image.open ('3.png') img2 = Image.open ('2.png') img3 = Image.open ('1.-p.webp
Zkus to:
python obrázekWithTimer.py
A tady máme Yodu
Krok 9: Programování - tlačítko Big Dome
Velké kupolové tlačítko je velké kulaté tlačítko - s průměrem přibližně 100 mm a malou LED diodou. Říká, že to funguje na 12 V, ale 3,3 V Raspberry PI stačí k rozsvícení
K testování použijte schéma
Kód:
z RPi import GPIO
takeButton = 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) # Blokovací funkce GPIO.wait_for_edge (takeButton, GPIO. FALLING) tisk ("Tlačítko stisknuto") GPIO.output (ledButton, False) GPIO.cleanup ()
Některé vysvětlení kódu Jednou z forem získávání hodnot z GPIOS je přerušení (jiné je dotazování) - detekce hran.
Okraj je název přechodu z VYSOKÉ na NÍZKOU (sestupná hrana) nebo NÍZKOU na VYSOKOU (stoupající hrana). Pokud PIN k ničemu není připojen, bude jakékoli čtení nedefinováno. Řešením je mít v uvedeném kódu PIN odpor nahoru/dolů. Raspberry PI umožňuje konfigurovat stahovací/dolů rezistory prostřednictvím softwaru.
Linie
GPIO.setup (takeButton, GPIO. IN, GPIO. PUD_UP)
konfiguruje PIN tak, aby to udělal - vytáhněte nahoru
Proč tahat nahoru? Velké kupolové tlačítko má 2 PINy - push to break nebo push to make (stejně jako malá tlačítka, která se často dodávají se sadami Arduino/Raspberry PI). Připojil jsem to k PINu tlačítka „push to make“. Po stisknutí se obvod zavře a elektřina prochází (normálně otevřená).
Linie
GPIO.wait_for_edge (takeButton, GPIO. FALLING)
počká (efektivně pozastaví provádění skriptu), dokud nezjistí pád PINu - uvolněním tlačítka se sníží tok elektřiny a PIN přejde z 3,3 V na 0 V
LED PIN má pouze rozsvítit LED na tlačítku
Více informací o push přepínačích z Arduino Tutorials, Wikipedia o push to make nebo push to break a přerušení GPIO
Nyní zkombinujme tlačítko s fotoaparátem - Pořiďte snímek pouze při stisknutí tlačítka
import picamerafrom čas import spánku z RPi import GPIO z PIL import Image # POZNÁMKA: Toto bude tlačítko pro zrušení v hlavním programu # Používám ho zde jen kvůli přehlednosti videa takeButton = 24 ledCancel = 5 GPIO.setmode (GPIO. BCM) GPIO.setup (takeButton, GPIO. IN, GPIO. PUD_UP) GPIO.setup (ledCancel, GPIO. OUT) def onLeds (): GPIO.output (ledCancel, True) sleep (1) def offLeds (): GPIO.output (ledCancel, False) # Funkce překrytí obrázku def overlayCounter (): #load images img1 = Image.open ('3.png') img2 = Image.open ('2.png') img3 = Image.open ('1.png') # Vytvořte překrytí # Používá se s img1, protože všechny mají stejnou velikost pad = Image.new ('RGB', ((((img1.size [0] + 31) // 32) * 32, ((img1.size [1] + 15) // 16) * 16,)) # vložte překryv - 3 pad.paste (img1, (0, 0)) ov = camera.add_overlay (pad.tobytes (), size = img1.size) ov.alpha = 200 # vrstva je 3, protože náhled kamery je na vrstvě 2 ov.layer = 3 sleep (1) camera.remove_overlay (ov) # vložte překryv - 2 pad.paste (img2, (0, 0)) ov = camera.add_overlay (pad.tobytes (), size = img2.size) ov.alpha = 200 # vrstva je 3, protože náhled kamery je na vrstvě 2 ov.layer = 3 spánek (1) camera.remove_overlay (ov) # vložte překryv - 1 pad.paste (img3, (0, 0)) ov = camera.add_overlay (pad.tobytes (), size = img3.size) ov.alpha = 200 # vrstva je 3, protože náhled kamery je na vrstvě 2 ov.layer = 3 spánek (1) camera.remove_overlay (ov) kamera = picamera. PiCamera () camera.resolution = (1280, 1024) camera.framerate = 24 camera.start_preview () GPIO.wait_for_edge (takeButton, GPIO. FALLING) onLeds () overlayCounter () camera.capture ('pushTesting.jpg') camera.stop_preview () offLeds () GPIO.cleanup ()
Trochu vysvětlení kódu
Spustí náhled kamery a čeká tam, dokud není stisknuto tlačítko. Po stisknutí tlačítka se rozsvítí LED a začne odpočítávání. Po dosažení konce se pořídí snímek a kontrolka LED zhasne
Krok 10: Zveřejněte na Twitteru
Nyní použijeme Python a tweetujeme tweet!:) K zveřejnění budete potřebovat obrázek - vybírejte moudře.
Nejprve musíme přistoupit na twitter API a k tomu musíme vytvořit APP. Přejděte na https://apps.twitter.com a vytvořte novou aplikaci.
Budete muset požádat o účet vývojáře - vyplňte několik otázek a potvrďte svou e -mailovou adresu. Poté budete moci vytvořit novou aplikaci.
Po vytvoření APP přejděte na Klíče a tokeny a vygenerujte přístupový token a tajný klíč přístupu. Zobrazí se okno s KLÍČY POUZE JEDNOU - Zkopírujte je a ULOŽTE JE NA POZDĚJI.
Pomocí následujícího kódu odešlete obrázek na svůj twitterový účet. Nezapomeňte vyplnit:
- consumer_key
- consumer_secret
- access_token
- access_token_secret
twitterová zpráva je text, který se má odeslat v tweetu.
jpg_foto_to_send je obrázek, který bude připojen k tweetu. Udělejte prosím obrázek ve stejném adresáři jako skript Pythonu a změňte název v kódu.
import tweepy # nastavení Twitteru def get_api (cfg): auth = tweepy. OAuthHandler (cfg ['consumer_key'], cfg ['consumer_secret']) auth.set_access_token (cfg ['access_token'], cfg ['access_token_secret']) návrat tweepy. API (auth) # Odeslat na twitter def sendToTwitter (): cfg = {"consumer_key": "", "consumer_secret": "", "access_token": "", "access_token_secret": ""} api = get_api (cfg) # Status Message tweet = "Twitter message" status = api.update_with_media ("jpg_foto_to_Send", tweet) sendToTwitter ()
Zkontrolujte svůj tweet ve svém kanálu Twitter.
Tady je Tweet
Nebo níže:
#RaspberryPI MagicBox. Pořizujte snímky, kontrolujte je a rozhodněte se je posílat na twitter a Facebook. Poháněno Raspberry PI. @@ Raspberry_Pi#RaspberryPI#RaspberryPIProjectpic.twitter.com/cCL33Zjb8p
- Bruno Ricardo Santos (@feiticeir0) 29. února 2020
Krok 11: Kombinace některých prvků
Pojďme nyní zkombinovat tlačítko Big Dome Push, jeho stisknutí, odpočítávání, pořízení obrázku, rozhodnutí, zda jej odešleme na twitter.
Přidáme další překryvný obrázek a použijeme všechna tři tlačítka. Po pořízení snímku se rozsvítí všechny 3 LED diody.
Přidáváme další obrázek, který ukazuje ikony pro zveřejnění na sociálních sítích
SelectOption-p.webp
Aenviar-p.webp
Na videu není zobrazeno modré tlačítko (na přední straně fotoaparátu), ale LED dioda svítí a začne blikat, jakmile je stisknuto.
Pokud chcete, kód je přiložen
Toto je konečný testovací kód před hlavním programem.
# coding = utf-8 import picamera import _thread import subprocess as sp from time import sleep from RPi import GPIO from PIL import Image import threading # Twitter import tweepy # Facebook import facebook # Button to take picture takeButton = 17 # SocialNetwork Button socialNetworkButton = 23 # Cancel Picture cancelButton = 24 # Tlačítko pro pořízení obrázku LED takePicButtonLed = 27 # Tlačítko pro odeslání na sociální síť LED postSNLed = 22 # Tlačítko Cancel LED 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 (postSNLed, GPIO. OUT) GPIO.setup (cancelButtonLed, GPIO. OUT) # Nastavení Twitteru def get_api (cfg): auth = tweepy. OAuthHandler (cfg ['consumer_key'], cfg ['consumer_secret']) auth.set_access_token (cfg ['access_token'], cfg ['access_token_secret']) návrat tweepy. API (auth) # Odeslat na twitter def sendToTwitter (): cfg = {"con sumer_key ":" "," consumer_secret ":" "," access_token ":" "," access_token_secret ":" "} api = get_api (cfg) # Stavová zpráva tweet =" Testovatelné testování 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']) #Získat token stránky zveřejnit jako stránku. Pokud chcete zveřejnit jako sebe, můžete přeskočit # následující. resp = graph.get_object ('já/účty') page_access_token = Žádné pro stránku v resp ['data']: if page ['id'] == cfg ['page_id']: page_access_token = stránka ['access_token'] graph = facebook. GraphAPI (page_access_token) návratový graf # Odeslat na facebook def sendToFacebook (): #Hodnoty pro přístup cfg = {"page_id": "", "access_token": ""} api = get_api_facebook (cfg) titulek = "Titulek obrázku" albumid = "" api.put_photo (image = open ("pushTesting.jpg", "rb"), titulek = "Titulek obrázku ") # Pouze světlo TakePicButtonLed def onlyTakePicLed (): GPIO.output (takePicButtonLed, True) GPIO.output (postSNLed, False) GPIO.output (cancelButtonLed, False) # Light only Cancel a SocialNetwork tlačítko def cancelPostLEDS (): GPI O.output (takePicButtonLed, False) GPIO.output (postSNLed, True) GPIO.output (cancelButtonLed, True) # Blink take LED při odpočítávání def countTimerPicture (): GPIO.output (takePicButtonLed, True) spánku (0,5) GPIO.output (takePicButtonLed, False) sleep (0,5) GPIO.output (takePicButtonLed, True) sleep (0,5) GPIO.output (takePicButtonLed,False) sleep (0,5) GPIO.output (takePicButtonLed, True) sleep (0,5) GPIO.output (takePicButtonLed, False) # Blink postSNLed při odesílání na sociální sítě def blinkPosting (stop_event): # Start while (not stop_event.is_set ()): print ("off") GPIO.output (postSNLed, False) sleep (0,5) print ("on") GPIO.output (postSNLed, True) sleep (0,5) def timer (): GPIO.output (takePicButtonLed, True) sleep (1) GPIO.output (postSNLed, True) sleep (1) GPIO.output (cancelButtonLed, True) sleep (1) def showAllLeds (): GPIO.output (takePicButtonLed, True) GPIO.output (postSNLed, True) GPIO.output (cancelButtonLed, True) # Zobrazit náhled na vrstvě 1 def displayPreview (imgName): # Protože je zobrazení obrázku PIL svinstvo # použijeme překrytí z kamery k zobrazení # náhledu img = Image.open (imgName) padding = Image.new ('RGB', (((img.size [0] + 31) // 32) * 32, ((img.size [1] + 15) // 16) * 16,)) padding.paste (img, (0, 0)) ov = camera.add_overlay (padding.tobytes (), size = img.size) ov.layer = 1 # Zobrazit náhled na vrstvě 3 def displayPreview3 (imgName): # Vzhledem k tomu, že přehlídka obrázků PIL je kecy # používáme překrytí z kamery k zobrazení # náhledu img = Image.open (imgName) padding = Image.new ('RGB', ((((velikost obrázku [0] + 31) // 32) * 32, ((velikost obrázku [1] + 15) // 16) * 16,)) padding.paste (obrázek, (0, 0)) ov = camera.add_overlay (padding.tobytes (), size = img.size) ov.alpha = 150 ov.layer = 3 return ov # Function overlaySocialNetwork def overlaysn (): imgsn = Image.open ('SelectOption.png') # Create Překryvná podložka = Image.new ('RGB', (((imgsn.size [0] + 31) // 32) * 32, ((imgsn.size [1] + 15) // 16) * 16,)) # Vložte překryvný pad.paste (imgsn, (0, 0)) ov = camera.add_overlay (pad.tobytes (), size = imgsn.size) ov.alpha = 100 ov.layer = 3 return ov # Funkce k překrytí image def overlayCounter (): #load images img1 = Image.open ('3.png') img2 = Image.open ('2.png') img3 = Image.open ('1.png') # Vytvořit překrytí # Používá se s img1, protože všechny mají stejnou velikost pad = Image.new ('RGB', ((((img1.size [0] + 31) // 32) * 32, ((img1.size [1] + 15) // 16) * 16,)) # vložte překryv - 3 pad.paste (img1, (0, 0)) ov = camera.add_overlay (pad.tobytes (), size = img1.size) ov.alpha = 200 # vrstva je 3, protože náhled kamery je na vrstvě 2 ov.layer = 3 spánek (1) camera.remove_overlay (ov) # vložte překrytí - 2 pad.paste (img2, (0, 0)) ov = camera.add_overlay (pad.tobytes (), size = img2.size) ov.alpha = 200 # vrstva je 3, protože náhled kamery je na vrstvě 2 ov.layer = 3 spánek (1) camera.remove_overlay (ov) # paste překrytí - 1 pad.paste (img3, (0, 0)) ov = camera.add_overlay (pad.tobytes (), size = img3.size) ov.alpha = 200 # vrstva je 3, protože náhled kamery je na vrstvě 2 ov.layer = 3 spánek (1) camera.remove_overlay (ov) # Hlavní funkce # Vymazat obrazovku, aby nebyly k dispozici spouštěcí zprávy # pravděpodobně by bylo lepší to udělat v bash tmp = sp.call ('clear', shell = True) kamera = picamera. PiCamera () camera.resolution = (1280, 1024) camera.framerate = 24 camera.brightness = 55 camera.sharpness = 0 camera.contrast = 0 #camera.exposure_co mpensation = 0 #camera.exposure_mode = 'auto' #camera.meter_mode = 'average' #Testování zde zkuste: while (True): camera.start_preview () #Show LED Only for Take Picture onlyTakePicLed () #Wait for button to take Obrázek GPIO.wait_for_edge (takeButton, GPIO. FALLING) # Spusťte vlákno pro počítání s LED diodami při zobrazování obrázků # Pravděpodobně by to mohlo být použito ve funkci overlayCounter, # protože má také časovače pro zobrazení obrázků, ale efekty LED by nebyl # stejný _thread.start_new_thread (counttingTimerPicture, ()) # Zobrazit překryvné obrázky v kameře overlayCounter () # Zobrazit všechny LED diody při pořizování obrázku showAllLeds () camera.capture ('pushTesting.jpg') kamera. stop_preview () #display image displayPreview ('pushTesting.jpg') # Show overlay oo = overlaysn () # Show LEDs to Cancel or Post to Social Networks CancelPostLEDS () GPIO.add_event_detect (socialNetworkButton, GPIO. FALLING) GPIO.add_event_detect, GPIO. FALLING) while (True): if GPIO.event_detecte d (socialNetworkButton): camera.remove_overlay (oo) GPIO.output (cancelButtonLed, False) o = displayPreview3 ('Aenviar.png') #print "Social Networks Button" sendToTwitter () sendToFacebook () camera.remove_overlay (o) break if GPIO.event_detected (CancelButton): #print „Zrušeno“camera.remove_overlay (oo) break # reset GPIOS GPIO.remove_event_detect (socialNetworkButton) GPIO.remove_event_detect (cancelButton) GPIO.remove_event_detect (takeButton) print.stop_stop „Ukončeno…“) #offLeds () GPIO.cleanup ()
Krok 12: Zapojení
Zapojení je pouze zapojení tlačítek Big Dome Push k Raspberry PI.
Postupujte podle Fritzingova schématu.
Spojení jsou:
PřipojeníRPI GPIO PIN GND zelené tlačítko GND (#3) GND žluté tlačítko GND (#9) GND modré tlačítko GND (#39) vyfotit (modré tlačítko „Vytvořit“) 17 (BCM) zveřejnit na sociálních sítích (zelené tlačítko Tlačítko „Push to make“) 23 (BCM) Zrušit (žluté tlačítko „Push to make“) 24 (BCM) Modré tlačítko LED27 (BCM) Zelené tlačítko LED22 (BCM) Žluté tlačítko LED5 (BCM)
Tepelně smrštitelné je také barevně odlišeno
- Černá je připojení GND
- Žluté jsou spojení „push to make“
- Modré jsou LED připojení
Čísla GPIO. BCM vs. připojení GPIO. BOARD
Vzhledem k tomu, že moje připojení jsou BCM, myslím, že nyní je vhodná doba si o tom promluvit a rozdílu mezi BCM a BOARD.
Hlavní rozdíl je v tom, jak odkazujete na GPIO PINy, které zase budou řídit způsob připojení. GPIO.board bude PINy odkazovat podle čísla vytištěného na jakémkoli rozložení GPIO na internetu.
GPIO. BCM označuje čísla PIN tak, jak je vidí Broadcom SOC. To se pravděpodobně změní v novějších verzích Raspberry PI.
Na webu pinout.xyz jsou čísla desek ta, která jsou hned vedle kolíků, a BCM se tak označuje - BCM X (kde X je číslo)
Krok 13: MagicBox
Připojený kód k tomuto kroku je konečný.
Můžete jej spustit při zavádění Raspberry PI, aniž byste se museli přihlašovat. Chcete -li to provést, vytvořte tento malý skript v adresáři, do kterého jste umístili kód - podle toho změňte cesty
#!/bin/bash
cd/home/pi/magicbox python MagicBox.py
Nastavit jej jako spustitelný
chmod +x start_magicbox.sh
Nyní jej zavolejte v /etc/rc.local, těsně před instancí exit 0
sudo vi /etc/rc.local
/home/pi/magicbox/start_magicbox.sh &
uložit a skončit.
Nyní se při každém restartu spustí program Python
POZNÁMKA: Všechny soubory obrázků musí být ve stejném adresáři jako skript. Musíte mít:
- 1.png
- 2.png
- 3.png
- Aenviar.png
- Vyberte možnost Volba.png
Všechny tyto soubory můžete získat na githubu MagicBox.
Doporučuje:
Oživte fotoaparát Polaroid Land: 32 kroků (s obrázky)
Vzkřísit Polaroid Land Camera: Polaroid Land Camera byla pojmenována po svém vynálezci Edwinovi Landovi. Seznámilo svět s myšlenkou okamžité fotografie a v určitém ohledu vydláždilo cestu moderní éře okamžitého digitálního uspokojení. Toto je kompletní průvodce pro získání
DIY obrazový snímač a digitální fotoaparát: 14 kroků (s obrázky)
DIY obrazový snímač a digitální fotoaparát: Existuje mnoho online návodů na stavbu vlastní filmové kamery, ale nemyslím si, že by existovaly nějaké o stavbě vlastního obrazového snímače! Off -the -line obrazové senzory jsou k dispozici od mnoha společností online a jejich použití by znamenalo návrh
Fotoaparát s termální tiskárnou napájený Pi: 11 kroků (s obrázky)
Fotoaparát s termální tiskárnou poháněný Pi: Chybí vám váš starý instantní fotoaparát Polaroid nebo černobílý fotoaparát starého Gameboy Classic? Stejně tak my, když cítíme opravdu nostalgii! V tomto Instructable vám ukážeme, jak si vytvořit vlastní instantní kameru pomocí Raspberry Pi, Pi kamery
Zachraňte planetu a svoji kapsu. $$ Převeďte svůj levný digitální fotoaparát P&S na dobíjecí: 4 kroky (s obrázky)
Zachraňte planetu a svoji kapsu. $$ Převeďte svůj levný digitální fotoaparát P&S na dobíjecí: Před lety jsem si koupil digitální fotoaparát Dolphin Jazz 2.0 Megapixel. Měl dobré vlastnosti a cenu. Měl také chuť na baterie AAA. Nebyl to nikdo, kdo by odešel z výzvy, myslel jsem si, že to upravím tak, aby používal dobíjecí baterii a přestal plýtvat
Infračervený digitální fotoaparát/videokamera pro noční vidění: 17 kroků (s obrázky)
Digitální kamera/videokamera s infračerveným nočním viděním: Tento návod vysvětluje, jak převést videokameru Discovery Kids Night Vision (která je falešně inzerována s použitím „skutečné infračervené technologie nočního vidění“) na SKUTEČNOU infračervenou kameru pro noční vidění. To je podobné IR webové kameře