Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Il NUOVO Modulo Camera Raspberry Pi è qui!
IMMAGINI PERFETTE
Numero 45 Maggio 2016
LA RIVISTA UFFICIALE TRADOTTA IN ITALIANO!
www.raspberryitaly.comLa rivista ufficiale Raspberry Piin italiano, da RaspberryItaly.com
Estratto dal numero 45 di The MagPi, traduzione di Zzed, Claudio Damiani, Claudia Milia. Revisione testi e impaginazione di Zzed, per la Comunità Italiana Raspberry Pi www.raspberryitaly.com. Distribuito con licenza CC BY-NC-SA 3.0 .The MagPi magazine is published by Raspberry Pi (Trading) Ltd., Mount Pleasant House, Cambridge, CB3 0RN. ISSN: 2051-9982
L' UNICA RIVISTA RASPBERRY PI SCRITTA DAI LETTORI, PER I LETTORI
www.raspberryitaly.com
Feature
l modulo fotocamera Raspberry Pi è sempre stato un fantastico add-on per Pi.
C’è sempre un progetto davvero divertente da qualche parte che ne fa uso, e questo può produrre un aspetto visivo molto gratificante per il tuo lavoro. Con il nuovo modulo fotocamera v2 per Raspberry Pi, questi progetti potranno solo migliorare. In parolepovere, è una fotocamera migliore, in grado di scattare foto a risoluzione maggiore ed ha anche funzionalità migliori in termini di registrazioni video. Secondo la consueta tradizione di Raspberry Pi, manterrà lo stessoprezzo del modello precedente, e
CAMERA
Scatta foto e registra video migliori con la versione aggiornata di uno dei nostri add-on preferiti di Raspberry Pi.
RASPBERRY PI
NUOVISSIMA
funzionerà con ogni versione di Raspberry Pi, non avrai quindi bisogno di aggiornare l'hardware, ma potrai semplicemente utilizzarla subito! Stiamo celebrando il nuovo lancio con una grande quantità di progetti fantastici per farti iniziare a utilizzare la nuova fotocamera. Essi funzioneranno anche con la fotocamera precedente, ma crediamo che l’aggiornamento alla nuova versione valga la pena; scopri nelle prossime pagine perché è migliore, mentre la testiamo ed intervistiamo le persone che stanno dietro a tutto questo.
LA
www.raspberryitaly.com
uasi esattamente tre anni fa (il 14 Maggio 2013!) il Modulo Fotocamera Raspberry Pi è stato presentato al mondo intero.
Avvalendosi della porta CSI del Pi che è rimasta relativamente inutilizzata per più di un anno, la fotocamera è stata un piccolo successo. Questo modulo ci è sempre piaciuto, quindi la novità di una nuova fotocamera ci ha entusiasmato. Per scoprire tutte le novità sul nuovo Modulo Fotocamera v2, abbiamo fatto due chiacchiere con James Adams, direttore dell’hardware Raspberry Pi, e Gordon Hollingworth, direttore del software Raspberry Pi, in modo da comprendere tanto la parte relativa all’hardware, quanto quella relativa al software di questa nuova versione.
Madre dell’invenzione
“La fotocamera è stata progettata per sostituire il più possibile l’originale, in quanto il sensore della versione precedente è giunto alla fine del proprio ciclo di vita [End-of-life (EOL)],” ci racconta James. “Quindi abbiamo avuto come obiettivo il medesimo budget e il medesimo form factor, con il più grande miglioramento possibile, in termini di funzionalità... Questa nuova fotocamera è stata un’operazione di sviluppo di fondo dal momento in cui abbiamo compreso, circa un anno fa, che il sensore della versione precedente era ormai un prodotto EOL”.
Facciamo due chiacchiere con il team che sta dietro alla nuova fotocamera per
scoprire nel dettaglio le novità della v2
PI CAMERA V2
PI CAMERA V2Feature
QUALINOVITÀ?
SENSORE:
OmniVision OV5647
RISOLUZIONE SENSORE:
2592 × 1944 pixels (5 megapixel)
SENSORE IMMAGINE:
3,76 × 2,74 mm
DIMENSIONE PIXEL:
1,4 µm × 1,4 µm
DIMENSIONE LENTE:
1/4˝
VIDEO:
1920 × 1080 (1080p), 30fps
1280 × 720 (720p), 60fps
640 × 480 (480p), 90fps
PI CAMERA
SPECIFICHEPI CAMERA V2
SENSORE:
Sony IMX219
RISOLUZIONE SENSORE:
3280 × 2464 pixels (8 megapixel)
SENSORE IMMAGINE:
3,69 × 2,81 mm
DIMENSIONE PIXEL:
1,12 µm × 1,12 µm
DIMENSIONE LENTE:
1/4˝
VIDEO:
1920 × 1080 (1080p), 30fps
1280 × 720 (720p), 60fps
640 × 480 (480p), 90fps
La nuova NoIR!
www.raspberryitaly.com22 Maggio 2016
Q
Feature
La necessità di una nuova camera,poi, non era così elevata. Tuttavia,con diversi anni di nuovi sviluppi ecambiamento dei prezzi dei chip arispetto al primo Camera Module,ho compreso che si potevanoapportare miglioramenti al designoriginale. "I cambiamenti principali sono unnuovo modulo sensore basato su unSony IMX219", spiega James. "Nei test, si è comportato molto bene edè un buon miglioramento dellafotocamera V1. E' anche un sensoreda 8 megapixel piuttosto che il 5MPdell'originale. E la scheda ha ora gliangoli arrotondati!"
Guardando avantiNon che la vecchia scheda fosseparticolarmente spigolosa, ma il nuovo design arrotondato si adatta allo stile dei Raspberry Pi di più recente rilascio, come il Pi Zero e il Sense Hat. C'è stata una grande attenzione alla retro-compatibilità,infatti, anche con un sensore dirisoluzione superiore, essa funzionaugualmente su tutte le versioni delRaspberry Pi dotati di un ingressoper la telecamera.
PI CAMERA
QUALI NOVITÀ?
Con questa compatibilità all'indietroin mente, non è una sorpresa apprendere che sul lato software nonè cambiato nulla, con Gordon che ci informa che raspistill e raspivid possono essere utilizzati esattamentecome prima. Allo stesso modo i menoconosciuti timelapse e raspistillyuv (per le foto RAW). Questo significa che è possibile sostituire il modulofotocamera nel tuo progetto esistenteche ne fa uso, e il modulo v2 funzionerà ugualmente, senzanessun bisogno di modificare ilcodice in nessun modo. La nuova fotocamera è decisamentemigliore, e la squadra ha fatto unottimo lavoro realizzandola, anche se a James sarebbe piaciuto vedereuna aggiunta all'hardware dellascheda, se fosse stato possibile: "L'unica vera caratteristica che sarebbe stato bello avere sulla Cameraè l'audio (vale a dire un microfono), ma attualmente non abbiamo unabuona soluzione tecnica per fare questo,in quanto il connettore per la Cameranon supporta una interfaccia audio." Ricordati di procurarti un microfonoa parte, quindi, quando registrerai iltuo nuovo, meraviglioso, cortometraggio“made in Pi”.
RISOLUZIONE
Solo con i purinumeri, èdiicile comprenderequanto sianomigliori lefotograie delnuovo ModuloPi Camera.Tecnicamentesono il 60% più grandi, ma è diicile renderlo visivamente,ecco quindi unpiccolo esempiodi quello chesigniica in realtà.Ottieni molto dipiù, per lostesso prezzo!
PI CAMERA V2
La maggiore densità di pixel ti darà
un maggior dettaglio nelle
foto, rispetto a prima
23www.raspberryitaly.com Maggio 2016
www.raspberryitaly.com24 Maggio 2016
n maggior numero di pixel. Pixel più piccoli sul sensore. Bordi arrotondati. Hai vistole specifiche e i dati del nuovo Camera Module, quindi, come lo utilizzerai? Ebbene , in gran parte, esattamente come utilizzavi il
Ora che conosci le novità del Modulo Camera – come lo utilizzerai?
CONLA
INIZIARE
vecchio modulo, in effetti. Tuttavia,siccome non abbiamo fatto un tutorial base tipo 'iniziare con la camera' da parecchio tempo, abbiamo pensato di aggiornarlo, peril 2016 ed oltre.
>PASSO-01Collegare la camera
Assicurati che il Pi sia spento, primadi collegare o scollegare lafotocamera. Scollega il cavo dialimentazione. Afferra entrambe leestremità della slitta in plastica delconnettore per la telecamera, postosulla scheda, e allontanala dal Pi,delicatamente ma con decisione; effettuerà un piccolo spostamento,aprendo il connettore. Inserisci ora il cavo a nastro, conil lato del connettore - il lato blu- verso la porta HDMI. Adesso spingi nuovamente indietro la slittain plastica, facendo particolare attenzione a applicare la pressionesu entrambi i lati, in modo che scatti delicatamente in posizione.
>PASSO-02Software per la camera
Collegare nuovamente il RaspberryPi all'alimentazione. Una volta cheil desktop si è avviato, fai clic sul
Feature PI CAMERA V2
NUOVA> Raspberry Pi
con Raspbian
Jessie
magpi.cc/
1MYYTMo
> Modulo Pi camera V2 amazon.it/dp/ B01EQLIYQK
Coa
Serve
Menu Programmi, e scegli Preferenze.Qui troverai il menu di configurazione del Pi, su cui oradovrai fare un click. Nella scheda denominata Interfacce, troverai un'opzione per abilitare la telecamera; se non è impostata suAttivata, fallo adesso. Raspbian non ha la fotocamera attivata di default,quindi questo è obbligatorio. Orariavvia il Pi .
>PASSO-03Primi scatti
Punta la tua fotocamera su qualcosadi interessante, quindi apri un terminale e digita quanto segue:
raspistill -o firstpic.jpg
Vedrai una luce rossa sul Modulo Camera, seguita dall'immagine di quello che la fotocamera sta riprendendo, che apparirà sullo schermo per un istante. Se sei tu, puoi utilizzare lo schermo per trovareil tuo miglior sorriso durante la pausadi cinque secondi prima che venga scattata la foto. Una volta acquisita, puoi trovare l'immagine nella home directory - /home/pi.
Assicurati che la plastica sia
stata rimossa dalla lente, primadi incominciare!
CAMERAU
25www.raspberryitaly.com
Feature
>PASSO-04Trovare l'immagine
Puoi aprire l’immagine e vederla dal File Manager, ma se non possiedi un Pi 2 o un Pi 3, puoi evitare l'inutile sovraccarico per eseguire questa operazione, inserendo semplicemente questo comando sul terminale:
gpicview firstpic.jpg
Se l’immagine appare alquanto offuscata, verifica di aver rimosso la pellicola protettiva dalla lente del Modulo Fotocamera!
>PASSO-05Altri comandi avanzatiIl comando raspistill possiede una lunga lista di opzioni ai limiti dell’intimidazione. Nientepaura, comunque – non avrai bisogno di impararle tutte, ma ce ne sono alcune che potrebbero esserti utili, come ad esempio:
raspistill -t 15000 -o
newpic.jpg
Maggio 2016
INIZIARE
L’opzione -t modifica ilritardo di scatto prima che l’immagine venga catturata, da un default di cinque secondi sino a qualsiasi tempo venga impostato in millesecondi – in questo caso, venticinque secondi, in modo che tu possa preparare perfettamente il tuoscatto dopo aver premuto INVIO .Puoi trovare l’intera lista delleopzioni qui: m ag pi.cc/1Sq BfuT
>PASSO-06Un piccolo trucco
Uno dei problemi con unafotocamera posta all’estremità di un cavo flat è quello di poterla posizionare correttamente. Potresti ritorvarti con la camera capovolta o leggermente storta. I Moduli Camera capovoltipossono essere impostati per ruotare le immagini nel verso giusto con l’opzione --vflip,o -vf per farla breve. L’opzione–hflip gestisce le riflessioni orizzontali, qualora tu avessi bisogno di un’immagine speculare. Se la tua fotocamera è distesa su un fianco, utilizza l’opzione --rotation, o -rot, seguito dal numero dei gradi: 90 o 270.
Per registrare dei video, il comando
raspivid è ciò di cui hai bisogno.
Essa è in grado di registrare video ino a 1080p a 30fps, una frequenza di fotogrammi abbastanza veloce per la qualità cinema, e 720p a 60fps se vuoi qualcosa di più luido.Puoi fare ciò con :
raspistill -t 10000 -o
testvideo.h264
Questo comando registra un video di dieci secondi (10.000 millisecondi) di default nel formato 1920 × 1080. Puoi inoltre realizzare un video al ralletantore a 640 × 480 utilizzando il comando :
raspivid -w 640 -h 480
-fps 90 -t 10000 -o
test90fps.h264
Utilizza omxplayer da riga di
comando per riprodurre i video!
REGISTRARE UN VIDEO
Invece di una fotograia ‘punta e clicca’,ti forniamo ‘punta e riga di comando’ – , non è un passo indietro, ma meglio per l’integrazione nel tuo progetto software.
La profondità di colore nel nuovo Modulo Fotocamera può produrre splendidi scatti al tramonto – o migliorare il rilevamento di un intruso per il tuo cane da guardia robot.
el leggere le ultime pagine avrai certamente pensato che preferiresti scattare unafoto con il Raspberry Pi senza tuttoquel digitare sulla linea di comando.In questa guida vedremo come scattare una foto con la sola pressione di un bottone, come in una macchina fotografica reale.
Scatta splendide foto con il click di un bottone usando la Pi Camera, ideale per video in stop-motion e fotografie ad alta esposizione.
BOTTONE
Se il tuo Raspberry Pi non è già spento, fallo ora. Sucessivamente connetti il bottone al Pi tramitecavallotti, come indicato in fig. 1.Un lato del bottone sarà connesso allamassa; l' altro al GPIO pin 14 (ma puoiscegliere quello che preferisci). Perquanto riguarda la parte hardwarequesto è tutto; vediamo ora invece
Questo potrebbe risultare utile inmolti progetti (per esempio nellefoto ad alta esposizione), ma, inquesta guida, ci concentreremo sullaanimazione in stop-motion. Prima dell'installazione e del cablaggio, assicurati di aver installato la camera sul Raspberry Pi, comemostrato nelle pagine precedenti.
AGGIUNGI UN
Feature
> Raspberry Pi
e camera
> Basetta di prova
> Cavallotti
> Un bottone
Coa
Serve
PI CAMERAALLA
PI CAMERA 2
Ci sono diversi contenitori chepossono alloggiare RaspberryPi e la camera; scegli quello chepiù si adatta alle tue esigenze.
Utilizza il bottone per scattarefoto in modo semplice e veloce
Questo è il set ideale peranimazioni in stop-motion
THE HAYLER-GOODALLS
Ozzy, Jasper, and Richard sono mentorial CoderDojo Ham ed hanno tenuto unapresentazione sulle loro avventure conAstro Pi in occasione del Raspberry Pi party.@rdhayler / coderdojoham.orgrichardhayler.blogspot.co.uk
www.raspberryitaly.com26 Maggio 2016
N
l'installazione dei moduli Python necessari, tramite linea di comando. Digita:
sudo apt-get install python3-pip
sudo pip3 install gpiozero
picamera
Codificare il bottoneInfine, dobbiamo pensare al codice da utilizzare. Considerando che cistiamo focalizzando sullo stop-motion, abbiamo utilizzato lamodalità di preview, così da poterimpostare l'inquadratura prima didi eseguire lo scatto, per essere certiche comprenda tutto quello che desideri. Poi, solo alla pressione del bottone, l'immagine viene salvata sufile. Ogni file immagine avrà un nome differente, basato sulla data ed ora di scatto, così da poter poiassemblare tutte le immagini in unafase successiva. La meravigliosalibreria gpiozero, viene utilizzata per rilevare la pressione del bottone;
abbiamo semplicemente definito unafunzione che viene attivata ogni voltache si preme il bottone. Questafunzione utilizza la libreriaPythonpycamera, che ci permette di controllare la camera tramite codice,rendendo disponibili tutte le normalioperazioni dai linea di comando. Digita o scarica il listato a lato e fallogirare tramite IDLE oppure con lalinea di comando. Per arrestare ilprogramma digitare CTRL+C. Dovresti essere in grado di usarequesto codice come esempio per qualsiasi progetto fotografico tu abbiain mente. Ad esempio, potresti modificare ilcodice per fare in modo che la camerascatti foto in continuazione se si tieneil bottone premuto. Oppure potrestiaggiungere un ulteriore bottone per rendere disponibili più modalità di scatto. Con questa realizzazione, potrestianche cominciare a pensare di realizzare una macchina fotografica Picompleta, portatile, con connessionewireless. Per questa, potresti anche utilizzare il case di Lego - tutto quelloche serve è un caricabatteria portatileper telefoni cellulari, insieme auno schermo da abbinare al Pi.Con alcune modifiche al codice, puoiavere sempre l' immagine dianteprima mostrata sullo schermo.Vuoi poi registrare un video?Ulteriori modifiche consentirebbero la funzione di cattura video. L'unicacriticità in questo paio di progetti potrebbe essere la mancanza di una sorgente luminosa, per cui saràindispensabile avere sempre deisoggetti esposti correttamente.
27www.raspberryitaly.com
Feature
Maggio 2016
#importo i moduli necessari
from datetime import datetime
from gpiozero import Button
import picamera
import time
b=Button(14)
pc=picamera.PiCamera()
running = True
#pc.resolution = (1024, 768)
#usa questo per impostare la risoluzione se non
ti piacciono i valori di default
timestamp=datetime.now()
def picture():
pc.capture('pic'+str(timestamp)+'.jpg')
#scattando la fotografia
pc.start_preview() #preview
b.when_pressed=picture
try:
while running:
print('Active')#displaying 'active' to
the shell
time.sleep(1)
#individuiamo Ctrl-C e chiudiamo il programma
except KeyboardInterrupt:
pc.stop_preview()
running = False
simple Camera.py
Fig 1 E' molto semplice collegare un bottoneal Raspberry Pi.
AGGIUNGI UN BOTTONE
Linguaggio
>PYTHON 3
DOWNLOAD:
magpi.cc/1MFuVNG
>PASSO-01Installare la Pi camera
Assicurarsi di connettere la camera al connettore giusto (ce ne sono due sul Pi, che sono identici). Noi vogliamo quellotra l'HDMI e le porte audio.
>PASSO-02Cablare il pulsante
Si può utilizzare la basetta di prova seil bottone è piccolo. In alternativa si può connettere dei ili volanti direttamente suipiedini,nel caso il bottone sia troppo grosso.
>PASSO-03Luci, Camera, Azione!
Crea la scena per lo stop-motion e usa il bottone per attivare la camera, che scatterà la foto e la salverà su ilecon data e ora.
CREARE UNA CAMERA ATTIVATA DA UN BOTTONE
Il nostro soggetto, l'umile orsodi pelouche, pronto per il 3D
Le due Pi Camera devono essere vicine tra loro
ealizzare dei video o dei film in 3D, in realtà, non è così difficile, dal punto di vista del lato hardware - devi soloessere certo di avere due sensorifotocamera che funzioninocontemporaneamente, e che abbiano il corretto orientamento. La parte un po' più impegnativa ècombinarli e sincronizzarli tra loro.Con il Raspberry Pi , o più di uno,e con giusto un po' di codice, anchetu potrai scattare alcune foto in 3D con il nuovo modulo telecamera.
>PASSO-01Uno straccio di teoria
Se bazzichi in internet abbastanza alungo, ti imbatterai nei socket.Un socket è una API che permette aun computer di parlare ad un altro computer. Lavorano in modo molto simile a un telefono: chiami un numero (o l'indirizzo IP), e attendi che dall'altro lato rispondano.
Utilizza due Raspberry Pi e due moduli camera per creare foto in 3D – naturalmente con l'aiuto di un po' di software
3Dcon sinistra. Infine. sudo reboot. Dovrestiessere accolto da: pi@sinistra ~ $quando accedi o apri un terminale.Ripeti questa procedura per l'altro Pi, usando destra.
>PASSO-03Installare gli strumentiDobbiamo installare alcuni strumenti. Accendi entrambi i Pi, collegati tramite SSH da un altrocomputer (ssh sinistra, password raspberry) e poi lancia i comandi:sudo apt-get install gitpython-picamera screenOra, controlliamo gli script Python suentrambi i PI. Lo possiamo fare rapidamente via SSH:ssh sinistra 'git clone https://github.com/secretbatcave/pipolypicture'Questo farà in modo di loggarsi sul Pisinistra, e verrà poi lanciato il
Questa è una connessione di tipo uno-a-uno, o Unicast. Ma abbiamo la necessità di parlarea molti Pi contemporaneamente. È qui che entra in gioco il Broadcast.È un meccanismo che consente adispositivi sulla stessa rete diparlare gli uni agli altri, senza bisogno di una rubrica telefonica.
>PASSO-02Preparare il Pi Avrai bisogno di cambiare l'hostname di default di entrambi i tuoi Raspberry Pi.Facciamola semplice e utilizziamoi nomi 'sinistra' e 'destra'. Alimenta il primo Pi e digita sudonano /etc/hostname in una finestra del terminale. Sostituisci raspberrypi con sinistra. Dobbiamoanche aggiornare il file hosts: aprilocon sudo nano /etc/hosts e,anche qui sostituisci raspberrypi
Feature
> 2× moduli Pi camera amazon.it/dp/ B01EQLIYQK
> 2× Raspberry Pi
> Dispositivo per connessione SSH magpi.cc/ 1Mm5Npi
Coa
Serve
IMMAGINISCATTARE
WILLEM KOOPMANSysAdmin peripatetico, forniscescontrose soluzioni a scontrosi problemi.È capitato nel campo della computer vision mentre lavorava nel magico mondodegli efetti speciali.secretbatcave.co.uk
PI CAMERA 2
Technicamente, la nostrasoluzione può essere usata perrealizzare dei ilm come si deve.Tuttavia , il processo di trasformazione dei video in un ilm in 3D è un po' più complesso di quello per una foto 3D. Se possiediuna copia di Adobe Premier , ti sarà possibile trovare il modo per adattarli agli occhiali 3D anaglii rosso-e-blu come nelle foto, ma avrete bisogno di qualcosa in più per ottenere un ilm 3D di stile moderno..
I TUOI FILM IN 3D
www.raspberryitaly.com28 Maggio 2016
R
Feature
comando git clone. Fai la stessa cosa per il Pi destra.
Per testare che tutto funzioni:ssh sinistracd pipolypicturesudo python listener.pyDovresti vedere qualcosa tipo:pi@sinistra ~ $ sudo pythonlistener.pySi COMINCIA!
>PASSO-04Ascoltare e inviare
Ora che tutto il codice e le libreriesono stati installati, cominciamo ascattare qualche foto. Noterai che cisono due programmi distinti:sender.py e listener.py . Avrai bisogno di un listener.py per ciascuno dei dispositivi che desideri controllare.Sender.py li controlla tutti con il suomagico broadcast socket.
Partiamo con le impostazioni:ssh sinistracd pipolypicturescreen python listener.pyPremi CTR L+A e poi CTR L+D perdisconnettere la sessione schermo,ma, lasciare in esecuzione in background lo script listener.py .Premi di nuovo CTRL + D per scollegarti da sinistra. Ora bisogneràfare la stessa cosa con destra.
>PASSO-05Scattare fotografie
Abbiamo istruito il Pi all'ascolto diuna parola magica, quindi partiamoa scattare le nostre fotografie! Daltuo computer master, immetti:
cd pipolypictures
E sarai accolto da questa scritta:Invio per scattare una foto, q per uscire:
Premendo INVIO, manderai un pacchetto con la parola 'photo' atutti i dispositivi sulla rete locale.Il programma listener, su ogni Pi,intercetterà questo pacchetto e scatterà una foto. Ogni pacchetto che abbiamo trasmesso ha un numeroallegato. Questo numero è utilizzatocome seconda metà del nome del file,in modo da poter facilmente abbinarele immagini in seguito.
>PASSO-06Combinarle in 3D
Con entrambe le telecamere posteuna accanto all'altra, puoi utilizzarele immagini risultanti per creare unaImmagine 3D. Il modo più semplice èquello di farlo on-line, utilizzando unsito web come create3dphoto.com; questo sito produce degli anaglifi rossoe blu vecchio stile, o foto stereoscopiche,quindi dovrai riuscire a recuperare un paio di Occhiali 3D vecchio stile per poter vedere il risultato. Sperimenta per capire come ottenere la foto in 3Dperfetta.
SCATTARE IMMAGINI 3D
#!/usr/bin/env python
'''attende un pacchetto con dentro la stringa “photo”. Poi scatta
una foto, e la nomina con il nome dell'host e timestamp
'''
import time
import socket
import picamera
udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udp.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
udp.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
udp.bind(('',8000))
print 'SI COMINCIA!'
with picamera.PiCamera() as camera:
camera.resolution = (2592,1944)
time.sleep(1)
while True:
data, addr = udp.recvfrom(1024)
print "Pacchetto ricevuto"
print data
# questa potrebbe essere una stringa qualsiasi che
# può far attivare anche altro, con lo stesso metodo
if "photo" in data:
print "scatto una foto"
serial = data.split("-")
serial = serial[1]
camera.capture("{0}_{1}.jpg".format(
socket.gethostname(),serial))
listener.py#!/usr/bin/env python
'''
spedisce un pacchetto
broadcast con la parola "photo" e
un numero sequenziale
'''
import sys
import time
import socket
MYPORT = 8000
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(('', 0))
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST,
1)
# Modificare questo numero per evitare di
# sovrascrivere per errore immagini precedenti
count = 200
while 1:
data = "photo-{0}".format(count)
count = count + 1
s.sendto(data, ('<broadcast>', MYPORT))
time.sleep(2)
message = raw_input(
"Invio per scattare una foto, q per uscire:")
if str(message) == 'q':
sys.exit()
print "woo"
sender.py Linguaggio
>PYTHON 2
DOWNLOAD: magpi.cc/1N9d0z3
29www.raspberryitaly.com Maggio 2016
python sender.py
ochi numeri fa, abbiamo realizzato alcuni mash-up in Minecraft, che andavano al dilà della normale programmazione inPython per Minecraft, in modo chepotessero interagire con il mondoreale. Con questo tutorial, stiamoriproponendo questo concetto, peravere un codice che attivi la Pi Camera tramite Minecraft. Puoi trovare questo tutorial anche tra leottime risorse Raspberry Pi(magpi.cc/1qEg9Nh). La prima cosa da fare è importare le API (Application programminginterfacace) di Minecraft. Queste ticonsentiranno di collegarti a Minecraft e l'utilizzo di Python per
Crea una cabina fotografica in Minecraft che scatta foto al mondo reale. Cosa vedrai nei tuoi viaggi?
Apri Python 3 dal menu delle applicazioni. Si aprirà l'editor di codice Python IDLE, che utilizzerai per scrivere il programma della cabina foto;fai clic su New>Window per aprire unanuova finestra. Immetti il codice dell listato (oppurelo puoi scaricare e aprirlo ora). Salva con CTRL + S e esegui il programma con F5. Dovresti vedere il messaggio 'Trova il Photobooth ' apparire nelmondo Minecraft. Questa è la primaparte del codice. Interrompine l'esecuzione utilizzando CTRL + C,così possiamo spiegarti il resto.
Testare la cameraProseguendo, dovremo essere certi chela fotocamera sia impostata in manieracorretta. Abbiamo configurato lafotocamera per mostrare due secondidi anteprima, in modo che tu possaverificare inquadratura e posa primadello scatto. L' immagine viene memorizzata in un file chiamato selfie.jpg, nella tua home directory. Ora, devi creare una cabina per fotonell'ambiente Minecraft. Questo viene fatto manualmente , e può essere costruita ovunque si desidera. Puoiutilizzare qualsiasi tipo di blocco, percostruire la tua cabina fotografica.Può avere qualsiasi forma, a tuogradimento, ma dovrebbe avere una apertura larga almeno un blocco, inmodo che il giocatore possa entrare, come una porta o cancello.
programmare. È inoltre necessarioimportare il modulo PiCamera perpoter controllare la telecamera, e ilmodulo time per i aggiungere un piccolo ritardo fra lo scatto di ogni foto. Apri Minecraft dal menu delle applicazioni, quindi entra in unmondo esistente o creane uno nuovoda zero. Sposta la finestra diMinecraft su un lato dello schermo.Dovrai utilizzare il tasto TAB pertogliere il focus del mouse dal contenuto della finestra di Minecraft per poterla spostare. Questo serviràin seguito, quando dovrai saltare dalla finestra di Minecraft a quelladi Python.
Feature
> Raspberry Pi Camera Module amazon.it/dp/ B01EQLIYQK
Coa
Serve
REALIZZA
DAN ALDRED
Un educatore Raspberry Pi Certiicatoche scrive e crea , tra le altre cose,eccellenti progetti per Raspberry Pi.
tecoed.co.uk
MINECRAFTCABINA FOTO
PI CAMERA 2
www.raspberryitaly.com30 Maggio 2016
Costruisci la tua cabinaper foto ovunque desideri;basta che ti assicuri che ilcodice sappia dove è
il tuo alter ego nel mondodi Minecraft -fallo entrare incabina per scattare una foto
Posizionala in qualsiasi punto del mondo. Costruisci una casa e creauna stanza speciale, o usalo comeuna trappola per vedere se qualcuno sta giocando nel vostro mondo
UNA
IN
P
Feature
Dopo aver creato la tua cabina perle foto, devi essere in grado di farci entrare il tuo giocatore e posizionarlo sopra al blocco di attivazione. Questo è il blocco su cuiil giocatore si deve posizionare perfare in modo di eseguire la funzioneche hai scritto nel passo uno, cheattiva la fotocamera. Nell'ambientevirtuale di Minecraft, la tua posizioneè riferita agli assi x, y, e z. Se guardinell'angolo in alto a destra dellafinestra, potrai vedere le coordinatex, y, e z che al momento occupa il tuogiocatore - per esempio, 10.5, 9.0,-44,3. Supponendo che siate ancoraall'interno della cabina fotografica,queste coordinate saranno anchequelle del blocco di attivazione dellavostra cabina per foto.
Entra nella tua cabina fotograficaPrendi nota di tutte e tre le coordinate del blocco di attivazione.Quando stai giocando a Minecraft, iltuo programma dovrà verificare se sei dentro alla cabina fotografica o meno. In caso affermativo, vienerichiamata la funzione take_the_pice scattata una fotografia con la PiCamera. Per poter fare questo, naturalmente Minecraft ha la necessità di conoscere la tua posizione nel suo mondo. Per trovare la tua posizione, usa ilcodice x , y , x = mc.player.getPos ( ).Questo salva la posizione x , y , z deltuo giocatore nelle variabili x , y, e z.Puoi usare, poi, print ( x ) pervisualizzare il valore di x, 0 print ( x , y , z) per vederli tutti, se lo desideri, aggiungendolo al codice.
Ora che conosci la posizione del giocatore, la puoi verificare pervedere se è nella cabina foto. A questo punto abbiamo una cabina, le coordinate del blocco diattivazione, e il codice per controllare il modulo fotocamera escattare una fotografia. La prossimaparte del codice è per testare se ilprogramma capisce quando sei nella cabina fotografica. Abbiamo creato un ciclo che verifica se le coordinate del lettore giocatorecorrispondono a quelle del blocco diattivazione. Se così è, allora sei dentro alla cabina fotografica. Perfare questo, abbiamo usato una semplice istruzione if, che noi chiamiamo una condizionale.. Modifica, nel codice, la riga con if,in modo che le coordinate presentisiano quelle della tua cabina foto.Salva ed esegui il codice per testarlo:cammina fino a dentro la tua cabinae dovresti vedere il messaggio 'Seinella cabina foto! 'nella finestra diMinecraft Noterai che l'istruzione if controlla se il valore di x è maggiore o uguale a 10,5: questo è per garantire chepunti il blocco, come potrebbe avereun valore di 10,6. Ricordati di sostituire i valori della x, y, e z conquelli della tua cabina fotografica.Dopo che il messaggio viene visualizzato, la stessa anteprima e loscatto della fotocamera avverrannoprima che termini il ciclo while, poiricomincerà n modo da poter riprendere il ciclo e poter così scattare un'altra foto!
A sinistra Scatta un seliecon l'aiuto di MinecraftSteve. Se solo potesse mettere anche te nella foto...
CABINA FOTO IN MINECRAFT
31www.raspberryitaly.com Maggio 2016
from mcpi.minecraft import Minecraft
from picamera import PiCamera
from time import sleep
mc = Minecraft.create()
camera = PiCamera()
mc.postToChat("Trova la cabina fotografica")
camera.start_preview()
sleep(2)
camera.capture('/home/pi/selfie.jpg')
camera.stop_preview()
while True:
x, y, z = mc.player.getPos()
sleep(3)
if x >= 10.5 and y == 9.0 and z == -44.3:
mc.postToChat("Sei nella cabina foto!")
sleep(1)
mc.postToChat("Sorridi!")
sleep(1)
camera.start_preview()
sleep(2)
camera.capture('/home/pi/selfie.jpg')
camera.stop_preview()
sleep(3) X
photobooth.py
Linguaggio
>PYTHON
DOWNLOAD: magpi.cc/
MinecraftBooth