Visualizzazione post con etichetta raspicam. Mostra tutti i post
Visualizzazione post con etichetta raspicam. Mostra tutti i post

domenica 5 novembre 2017

Rendere disponibile la Raspicam nella cartella /dev come una webcam

Come rendere disponibile tra i /dev la Raspicam in debian ed utilizzare la Raspicam come una normale webcam.

Con questo semplice comando si rende disponibile la Raspicam nella cartella device come videoX
questa operazione al reboot viene cancellata,
quindi deve essere inserita in rc.local per essere resa permanente
Codice:sudo modprobe bcm2835-v4l2


mercoledì 22 giugno 2016

RPi WebCam Interface

Sempre alla ricerca di qualche applicazione interessante ho scoperto questa che aiuta moltissimo nella costruzione di un  sistema di monitoraggio tramite RaspiCam. Da quando lo ho scoperto, la mia stampante 3D e' costantemente sotto il suo occhio vigile, cosi posso comandarla da remoto e controllare se la stampa impostata, si svolge regolarmente anche quando non sono li di persona.

Istallare il sistema e' semplicissimo.
Partendo da una nuova immagine debian su Raspberry Pi

sudo apt-get update
sudo apt-get dist-upgrade

Poi, se l'istruzione  git  non e' ancora stata caricata nel sistema:

sudo apt-get install git

Quindi:

git clone https://github.com/silvanmelchior/RPi_Cam_Web_Interface.git
cd RPi_Cam_Web_Interface
chmod u+x *.sh
./install.sh

A questo punto il sistema e' installato e potete gia' utilizzarlo chiamando da un browser web l'indirizzo IP della Raspberry Pi, anche dal telefonino come faccio io.



http://elinux.org/RPi-Cam-Web-Interface

mercoledì 11 giugno 2014

Creare una VPN tra Raspberry e il pc di casa

Per un progetto che sto concludendo in questi giorni ho dovuto affrontare questo nuovo problema:
Collegare da remoto una Raspberry in modo da poter accedere come amministratore in ssh su la nostra piccola impegnata ad osservare tramite la RaspiCam, un campo volo.


Ho scelto di percorrere la strada della VPN per ottenere stabilita' del collegamento, sicurezza dei dati, e bassi (nessun) costo di gestione del collegamento
Infatti nella posizione dove andrà istallata la Raspberry ci sarà copertura WiFi dedicata, di conseguenza, non ci sarà bisogno di soluzioni 3G o simili, che avevo invece preso in considerazione inizialmente.
Quindi, Raspberry Pi tipo A con chiavetta WiFi configurata, registrata su rete WiFi dedicata.
A questo punto ho seguito questa guida per la parte riferita al settaggio di HAMACHI su Raspberry.
C'e' un bel file di autoconfigurazione che ho utilizzato, modificandolo per i miei scopi, di cui riporto di seguito il contenuto

istalla_hamachi.sh

#!/bin/bash
#file di istallazione hamachi su Raspberry
#editato da TecnoGeppetto - www.TecnoGeppetto.it
echo "installing requirements"
sudo apt-get update
sudo apt-get -y install --fix-missing lsb lsb-core
echo "Downloading Hamachi"
sudo wget https://www.dropbox.com/s/ectspm1x1lno4sh/logmein-hamachi-2.1.0.101-armel.tgz
echo "extracting Hamachi"
tar xzvf logmein-hamachi-2.1.0.101-armel.tgz
cd log*
echo "installing hamachi"
sudo ./install.sh
/etc/init.d/logmein-hamachi start
echo "installing chkconfig"
sudo apt-get -y install chkconfig
sudo chkconfig -s logmein-hamachi 2
echo "starting hamachi"
sudo hamachi login

sudo hamachi join NOMENETWORK    PASSWORDNETWORK   #gia' creati in precedenza!


#Questa parte non viene utilizzata in quanto LogMeIn ha modificato i profili gratuiti del servizio
#e non puo' più essere utilizzata se non a pagamento





#echo "please enter your logmein account email address"
#read email
#sudo hamachi attach $email
#echo "please enter your raspberry pi nickname "
#read nick
#sudo hamachi set-nick $nick
#echo "your pi should now be on your hamachi network"
----------------------------------------------------------------------------------

Fatto girare il file sopra riportato, viene effettuato il download e l'istallazione del programma necessario per la creazione della VPN, poi automaticamente, viene effettuato l'accesso di login e la registrazione sulla rete VPN che avrai già provveduto a creare dal PC di casa.

attraverso questo link scarica il programma per il tuo sistema, istallalo, e sulla finestra di preferenze,  setta i vari parametri della rete che stai costruendo, poi nella finestra "create a network" scegli il nome e la password del network ( le stesse che dovrai scrivere al posto di  NOMENETWORK e PASSWORKNETWORK  nel file qui sopra).

FATTO!

Adesso se tutto e' filato liscio nella finestra del programma Hamachi ti dovresti trovare tutti e due i nomi delle macchine (il pc di casa e la Raspberry) ed i relativi indirizzi IP dedicati sulla VPN

Aprendo una finestra di shell dovresti essere qindi nelle condizioni, chiamando l'IP della VPN di Raspberry, di comunicare con lei in modo regolare.





lunedì 17 febbraio 2014

RaspiCam e comando Led rosso

Il meraviglioso modulo Cam della Raspberry Pi funziona ottimamente, ma il Led rosso costruito in fianco alla telecamerina e che ne comunica l'attivazione in certe circostanze o per certi progetti risulta essere fastidioso. Con una semplice istruzione si puo' disattivarlo, in modo che, per esempio, le riprese con poca luce non vengano inficiate dalla illuminazione forzata indotta dal Led.


Ma se come nel mio caso, il funzionamento della telecamera e' previsto per periodi molto lunghi, viene da chiedersi se tutto stia filando liscio, o se per caso, qualcosa si sia inceppato. dei conseguenza, sebbene sia importante lasciare spento il Led durante il funzionamento ho pensato di fare in modo che, magari a comando, o magari importando con cron un richiamo dello script, si possa controllare il regolare funzionamento del sistema facendo lampegggiare il Led solo per pochi secondi.
ecco quindi uno script in python che ci viene in aiuto:



seiviva.py

#!/usr/bin/env python
import time
import RPi.GPIO as GPIO

# Use GPIO numbering
GPIO.setmode(GPIO.BCM)

# Set GPIO for camera LED
CAMLED = 5

# Set GPIO to output
GPIO.setup(CAMLED, GPIO.OUT, initial=False)

# Cinque flash del Led uno ogni 150 millisecondi
# lungo 150 millisecondi
for i in range(5):
  GPIO.output(CAMLED,True)  # On
  time.sleep(0.15)
  GPIO.output(CAMLED,False) # Off
  time.sleep(0.15)

Basta copiarlo in un file, che io ho chiamato seiviva.py , ricordarsi di settare i permessi di lettura sul file appena costruito, e testarlo con  il comando  ./seiviva.py

sabato 19 ottobre 2013


Ecco appena arrivata dalla Cina, in pacco raccomandato,  la lente che ho applicato alla RaspiCam per aumentarne il campo visivo. Qualche mese fa' (ci vuole sempre almeno un mese per ricevere i pacchi dalla Cina!!) ho letto su un blog di alcune prove che erano state effettuate utilizzando una lente venduta per aumentare il campo visivo di  iPhone. Considerato il prezzo ragionevolissimo ( circa 7 euro) ne ho subito ordinata una per fare le mie prove casarecce.
Ecco quindi cosa ne e' venuto fuori.
Qui puoi vedere anche un paio di filmati che ho ripreso con il sistema di registrazione video che ho inserito in auto, il Car Recording System basato su Raspberry Pi e  RaspiCam.

Questo sistema parte in automatico alla accenzione dell'auto e  registra direttamente nella SD della Raspberry Pi le immagini riprese dalla telecamerina RaspiCam e le passa ad un 
server FTP opportunamente predisposto. Effettuato l'upload sul server, la Raspberry Pi cancella il file in locale per liberare risorse e spazio nella SD.
 Il sistema e' in continuo aggiornamento, quindi ancora non pubblichero' i files con i settaggi fin qui predisposti, ma se qualcuno fosse interessato sono a disposizione e mi puo' contattare attraverso questo sito.
Le prossime esperienze con la lente in questione ho in porogetto di condurle nell'ambito dell'osservazione del cielo, credo di aver gia' pubblicato qualcosa delle mie esperienze in questo ambito, ho gia' pronta una Raspberry Pi e la sua relativa telecamerina RaspiCam, gia' inserite in un contenitore stagno IP55, idoneo per essere montato a palo, auto alimentato, pronto per osservare il cielo e scattare foto ad intervalli stabiliti, in maniera da poter ottenere filmati di foto in Timelapse come questi
Di questo pero' parlero' in seguito con un articolo ad hoc.
Saluti a tutti
TecnoGeppetto

venerdì 13 settembre 2013

BerryCam come ti piloto la RaspiCam da Iphone

BerryCam come ti piloto la RaspiCam da Iphone
Ho trovato un simpatico programmetto che consente di gestire la Raspicam attraverso Iphone o Ipad. Sono due giorni che ci sto battendo il capo sopra e finalmente posso dire di averlo "domato"!
Come sapete la mia memoria fa acqua da tutti i pori, quindi eccomi qui a stilare un rapportino delle operazioni "governate" con successo!
Il programma a cui faccio riferimento e' questo che trovate qui
dove sono riportate le istruzioni per il caricamento del programma su Iphone o Ipad e come configurare la Raspberry Pi per poter funzionare correttamente.


Rispetto alle indicazione del sito ho apportato qualche modifica per ottenere un sistema che parta allo start-up della macchina e che possa quindi essere lasciato stand alone, pronto per scattare foto controllandolo a distanza.
Il mio sitema prevede di poter collegare la Raspberry direttamente al terminale mobile, Ipad o Iphone che dir si voglia, fungendo direttamente da Access Point WiFi, in maniera da poter essere utilizzata anche lontano dalle reti casalinghe, penso al controllo remoto di un camper quando siamo spensierati sulla spiaggia, per esempio, o per vedere cosa combinano i ragazzi nella stanza a fianco, o per controllare ed immortalare degli eventi dove anche noi  facciamo parte dell'immagine che vogliamo ottenere, foto con animali per esempio.....
Insomma ci sono una montagna di occasioni durante le quali e' utile un sistema del genere.
Quindi passiamo alla descrizione di come ho operato.
Fatto il dowload del file berryCam.py da qui ho spostato il file nella cartella /home/pi/berrycam/  costruita per l'occasione (diversamente da quanto descritto nel tutorial del sito, per evitare che quando uno si collega con il browser WEB alla porta 8000 della Raspberry, questa si trovi a snocciolare tutto il contenuto della cartella /home/ e quindi lasciare la possibilita' all'utente del programma di vedere tutto il contenuto degli eventuali utenti della macchina- cosa che ho segnalato agli autori e che secondo me dovranno sistemare anche nel loro sistema-)
Dopo questo passaggio sono andato a configurare il file /etc/rc.local aggiungendo  il programma con la sua path , in questo modo il programma parte in automatico ad ogni reboot del sistema.
Cioe':

sudo vi /etc/rc.local
ed ho inserito queste due righe nel file di configurazione digitandole prima di " exit  0 ":
cd /home/pi/berrycam/
python /home/pi/berricam/berryCam.py &


la & serve per farlo partire come demone.
Adesso se facciamo i primi scatti (ovviamente dopo aver scaricato il programma di gestione del telefono da Apple Store) volendo anche da qui -------->
Possiamo anche vedere gli scatti a grandezza naturale attraverso un browser  (da una macchina inserita nella stessa sottorete della Raspberry, naturalmente) digitando come indirizzo il numero IP della Raspberry e puntando sulla porta 8000 della stessa.
nel mio caso e'  http://192.168.1.169:8000/

RaspiCam la telecamerina III parte


Allora, dopo aver installato la RaspiCam sulla Raspberry Pi ed aver fatto le prime foto di test, ho cercato di fare in maniera di ottenere una serie di foto per costruire filmati in time lapse. Abbiamo visto nell'articolo precedente come ho cercato di risolvere il problema della sovrascittura, ma il sistema cosi come impostato, non risolve il problema.

Oggi ho cercato di approcciare il tutto in un altro modo, facendo scattare Raspistill solo una foto alla volta, senza utilizzare la funzione timelapse interna al programma (-tl), mentre ho deciso di utilizzare crontab per la definizione del numero deglil scatti. In questo modo possimao anche far eseguire piu' istruzioni consecutive al sistema, come quella di fare l'upload delle foto sul file server in FTP e la loro successiva cancellazione in locale.


Ecco cosa ho fatto:
Partendo dall'inizio:
da /home/pi
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install ftp
mkdir cronfiles
per ottenere /home/pi/cronfiles
cd cronfiles
sudo vi cronscatta.cron
che contiene questo:
#=================================================================
#                TEST SCATTO FOTO OGNI TOT  MINUTI
#     utilizzo RASPISTILL per scattare 1 foto alla volta
#     utilizzo crontab per ripetere l'operazione ogni TOT minuti
#     fatta la foto, provvedo all'upload e poi cancello la foto
#     una accortezza nell'associare l'ora al nome della foto
#     per evitare di sovrascriverla ad ogni upload
#              per farlo ogni minuto
#     * * * * * /home/pi/raspicam/scatta_up_cancella.sh
#              per farlo ogni 5 minuti:
#     */5 * * * * /home/pi/raspicam/scatta_up_cancella.sh
#              per farlo ogni 25 minuti:
#     */25 * * * * /home/pi/raspicam/scatta_up_cancella.sh
#=================================================================

MAILTO=""
*/5 * * * * /home/pi/raspicam/scatta_up_cancella.sh >/dev/null


poi:
mkdir /home/pi/raspicam
cd /home/pi/raspicam
sudo vi /home/pi/raspicam/scatta_up_cancella.sh
con questo contenuto:
#!/bin/sh

# scatta_up_ecancella.sh
#
#
# Created by Valerio on 31/07/13.
# Copyright 2013 __MyCompanyName__. All rights reserved.
#
#
# setta il nome del file inserendo la data e l'ora x evitare
# di sovrascrivere al prox passaggio
# poi copia il file su server ftp
# dunque cancella il jpg in locale

echo "Content-type: image/jpg";
echo;

filename=$(date -u +"%Y%m%d_%H%M%S").tlapse.jpg


# Configurazione Server FTP
HOST="ftp.tognozzi.net"
USER="XXXXXXXXXXXXX"
PASS="XXXXXXXXXXXX"
PATH_RMT="/www.tognozzi.net/XXXXXXXXX"
PATH_LCL="/home/pi/raspicam/"
#FILE="*.jpg"

# Rendo attiva la cartella con il file da copiare
cd $PATH_LCL

# Scatto la foto con i parametri impostati
#raspistill  -w 1024 -h 768 -o /home/pi/raspicam/$filename -t 3000  -n -ex au
to  - awb auto
raspistill  -o /home/pi/raspicam/$filename -t 3000  -n -ex auto  -awb auto

# Connessione al server FTP e trasferimento file
ftp -n -i $HOST <user $USER $PASS
binary
cd $PATH_RMT
mput $filename
quit
EOF


# chiusa la connessione  cancello le foto in locale
cd $PATH_LCL
sudo rm $filename


# FINE

per rendere eseguibile il file

chmod +rx scatta_up_cancella.sh
e quindi si fa leggere a crontab il file preparato di schedulazione delle attivita':
sudo /usr/bin/crontab /home/pi/cron/cronscatta.cron

a questo punto il sistema dovrebbe si  sincronizzare con crontab e la Raspberry pi comincia a fare le foto volute, le trasferice sul server ftp, e le cancella in locale.


Cosa ne pensate?
Per la gestione di crontab ho seguito le indicazioni di questo sito
Stay Tuned
Tecnogeppetto

Gestire il Led Rosso della Raspberry Cam

Girellando per la rete ho trovato questo utile programmetto per la gestione del Led Rosso della Cam della Raspberry.
Di per se sembra inutile, ci sono tanti altri pin da utilizzare, che senso puo' avere di accendere o spengere a piacimento proprio quello della Cam?
Un senso lo ha per me che sto costruendo una stazionciana di monitoraggio esterna, da affiancare ad una stazione meteo, per esempio, o da utilizzare per la costruzione di filmatini in time lapse con immagini all'esterno. Naturalmente per questo scopo. la RaspiCam deve avere il Led spento, per evitare diversi effetti collaterali non richiesti, quali per es. non fìdare nell'occhio, non ottenere dei riflessi strani sulla ripresa, ecc.... ecc.....
Ma quando il circuito e' nella sua scatolina, bello chiuso e sigillato, e' difficile capire dall'esterno se tutto e' ok e tutto funziona regolarmente, quindi puo' essere utile un segnale da parte della Raspberry, quale migliore occasione di utilizzare il nostro Led del tutto inusato fino a questo momento?
Quindi il programmino che lo fa lampeggiare poprio mentre lo sto monitorando e' un toccasana per questo scopo.
Ecco di seguito il programma, rimediato da questo link grazie Matt per la condivisione

#!/usr/bin/env python
import time
import RPi.GPIO as GPIO
 
# Use GPIO numbering
GPIO.setmode(GPIO.BCM)
 
# Set GPIO for camera LED
CAMLED = 5
 
# Set GPIO to output
GPIO.setup(CAMLED, GPIO.OUT, initial=False)
 
# Five iterations with half a second
# between on and off
for i in range(5):
  GPIO.output(CAMLED,True# On
  time.sleep(0.5)
  GPIO.output(CAMLED,False) # Off
  time.sleep(0.5)
 
Il programma e' gia' funzionante senza aggiunta di altro, io lo ho modificato soltanto per abbreviare i tempi di lampeggio, per evitare che faccia luce proprio quando la Cam sta scattando la foto, passando da 0,5 secondi a 0,15 secondi, sia il tempo di on che quello di off, in questo modo il lampeggìo dura meno dell'intervallo tra uno scatto e l'altro
 

Come spengere il Led rosso della RaspiCam

Quando lo cerco non lo trovo mai, ed e' gia' una diecina di volte che mi capita di doverlo utilizzare, Dunque: Raspberry Cam Come spengere il Led della Raspberry Cam? E' molto semplice, va modificato il file config.txt contenuto nella cartella di boot quindi: sudo vi /boot/config.txt e qui in fondo al file aggiungere ill comando: disable_camera_led=1 chiudere e rebootare FATTO Buon divertimento cn Raspberry Stay Tuned TecnoGeppetto

RaspiCam seconda puntata




Fatte le prime prove con la telecamerina che si comporta egregiamente come mera macchina fotografica, adesso sono passato a realizzare un sistema di scatto foto in automatico per costruire un archivio di foto per time lapse. Per evitare che la semplice istruzione
raspistill - o nomefile.jpg
alla seconda esecuzione sovrascriva il file della foto, ho trovato questo escamotage:
raspistill -o myimage_%06d.jpg
in questa maniera, utilizzando il comando -tl che consente alla RaspiCam di continuare a scattare foto per un tempo espresso in millisecondi, si evita che continui a scattare utilizzando sempre lo stesso nome peril file della foto sovrascrivendolo. Cosi' infatti si ottiene una serie di file numerati myimage_000001.jpg in avanti
l'istruzione completa e':
raspistill -o myimage_%06d.jpg -tl 60000 -t 7200000
in questo caso la RaspiCam scatta una foto ogni 60 secondi (-tl) (60 x 1000millisec.) e lo fa per un tempo (-t) di 2 ore ( 60s x 60m x 2h x 1000millisecondi).
In questa maniera, pero', la capienza del disco potrebbe essere messa a dura prova, infatti le immagini a grandezza standard occupano circa 3 MB ognuna, quindi ho pensato di copiare le immagini ottenute su un server ftp, in maniera da non riempire il disco.
ho scritto questo semplice file da far girare per salvare i file immagini su uno spazio ftp e successivamente cancellarli in locale. La procedura deve essere ancora perfezionata, in quanto non ci sono controlli dell'avvenuto upload, in questo modo, se qualcosa andasse storto, andando avanti comunque lo script, cancellerebbe le immagini senza averle salvate, e noi rimarremmo a bocca asciutta!
Una altra successiva implementazione dovra' per forza prevedere la rinominazione dei file in funzione del tempo, poiche' in questa versione, dopo aver fatto girare lo script di salvataggio delle immagini, se il programma Raspistill venisse fermato, alla sua ripartenza comincerebbe da capo con la numerazione, ed al passo successivo, cioe' all'upload saremmo sempre nella condizione di sovrascittura delle immagini sul server ftp, avendo le seconde immagini lo stesso nome delle prime
. Insomma, c'e' ancora da lavorare, comunque fino a qui le immagini sono sequenziali, e possono essere salvate su di uno spazio ftp e cancellate da locale.
Di seguito lo script creato:
#!/bin/bash

# Configurazione Timelapse
HOST="ftp.tognozzi.net"
USER="XXXXXXXXXXXXXX"
PASS="XXXXXXXXXXXXX"
PATH_RMT="/www.tognozzi.net/XXXXXXXXXXXXXXX"
PATH_LCL="/home/pi/raspicam/"
FILE="*.jpg"

# Rendo attiva la cartella con il file da copiare
cd $PATH_LCL

# Connessione al server FTP e trasferimento file
ftp -n -i $HOST <<EOF
user $USER $PASS
binary
cd $PATH_RMT
mput $FILE
quit
EOF
# chiusa la connessione cancello le foto in locale
cd $PATH_LCL
sudo rm $FILE
Che ne dite?
Stay Tuned
Tecnogeppetto

sabato 17 agosto 2013




Dopo aver aspettato per circa due mesi, RS component si e' decisa a spedire la tanto agognata telecamerina, la RaspiCam.
5 Mpixels concentrati in un centimetro quadro di tecnologia. Appena arrivata ho naturalemnte iniziato con la serie di test, prima su una Raspberry mod B ( perche' la avevo gia' bell'e pronta sulla scrivania), poi con il modello A, che invece ho dovuto ritrovare in mezzo alla confusione del mio perfetto dis-ordine di stazione.
Attraverso il flat cable gia' intestato, il processo di collegamento e' proprio una banalita', basta infilare il flat nella suo connettore dedicato sulla board della Raspi.
Va poi abilitata attraverso il file di config che si puo' anche raggiungere via ssh col comando:

sudo raspi-config

a questo punto per controllare subito se la cam funziona correttamente si puo' fare gia' la prima fotografia col comando

raspistill -o immagine.jpg

in questa maniera la Raspberry attiva la cam per 5 secondi (tempo che puo' essere regolato col comando -t millesimidisecondo) e poi scatta la foto che registrera' col nome immagine.jpg nella cartella dalla quale  e' stato digitato il comando.
Quindi adesso abbiamo le prime foto scattate con la Raspicam.

Stay Tuned
Tecnogeppetto