Il mio ultimo progetto, mi ha dato molte soddisfazioni! Ci sono un bel po' di cose sul piatto quando si decide di fare una ip-cam con arduino specialmente se si vuole aggiungerci la possibilità di controllarla da remoto per poter spostare l'inquadratura magari dal proprio iphone o dal proprio tablet.
Arduino da solo non credo sia in grado di gestire uno streaming di una webcam da solo (se potete smentitemi che ne sarei felicissimo!), carambola si. Sebbene in teoria sia possibile controllare dei servo motori direttamente da carambola, credo che un microcontrollore lo possa fare meglio e più facilmente, d'altra parte carambola è l'ideale per gestire uno stack tcpip completo, un webserver seppur minimo, un linguaggio di scripting comodo (nel mio caso php a cui voglio bene nonostante i difetti!) e sopratutto mjpeg per lo streaming video! Insomma l'accoppiata mi piace.... mi piace tantissimo.
MATERIALE UTILIZZATO:
- Arduino 2009
- Carambola + devboard
- webcam
- servo
- breadboard
FIRST THINGS FIRST: SETUP DI CARAMBOLA
Innanzi tutto bisogna far funzionare carambola ed installare tutti i moduli del kernel necessari.
La cosa sarebbe anche abbastanza semplice perchè carambola usa come SO openwrt, un famosissimo fork di linux pensato per sistemi embedded, il quale ha il comodo opkg come gestore di pacchetti.
Ci sono davvero tantissimi programmi nei repositori ma attualmente pochi disponibili nel repository ufficiale di carambola. Poco male si puo' sfruttare un repository alternativo (che per altro era il primo repository utilizzato dalle prime versioni di carambola) ma attenzione i moduli del kernel installati dal nuovo repositori non funzionano perchè nel frattempo il kernel è cambiato. Per cui bisogna fare attenzione quando si compila l'openwrt di selezionare dal make menuconfig tutti i moduli necessari. Sebbene sia possibile compilarli a parte ed installarli successivamente io l'ho trovato un po' incasinato e ho preferito mangiarmi un po' di merda e ricompilare da capo.
Di seguito la lista dei moduli che ho installato sulla mia carambola:
------
root@OpenWrt:~# lsmod
Module Size Used by Not tainted
uvcvideo 51952 1
ftdi_sio 26464 1
v4l2_common 4192 0
videodev 61232 3 uvcvideo,v4l2_common
usb_storage 32672 0
usbserial 22304 3 ftdi_sio
i2c_gpio 1360 0
i2c_algo_bit 4208 1 i2c_gpio
dwc_otg 58800 0
i2c_dev 4016 0
i2c_core 12336 5 v4l2_common,videodev,i2c_gpio,i2c_algo_bit,i2c_dev
nop_usb_xceiv 1168 0
nf_nat_irc 816 0
nf_conntrack_irc 2512 1 nf_nat_irc
nf_nat_ftp 992 0
nf_conntrack_ftp 4448 1 nf_nat_ftp
ipt_MASQUERADE 944 1
iptable_nat 2128 1
nf_nat 10048 4 nf_nat_irc,nf_nat_ftp,ipt_MASQUERADE,iptable_nat
xt_conntrack 2112 3
xt_CT 1072 0
xt_NOTRACK 464 0
iptable_raw 560 1
xt_state 624 0
nf_conntrack_ipv4 3824 6 iptable_nat,nf_nat
nf_defrag_ipv4 624 1 nf_conntrack_ipv4
nf_conntrack 36544 12 nf_nat_irc,nf_conntrack_irc,nf_nat_ftp,nf_conntrack_ftp,ipt_MASQUERADE,iptable_nat,nf_nat,xt_conntrack,xt_CT,xt_NOTRACK,xt_state,nf_conntrack_ipv4
sd_mod 22496 0
pppoe 7200 0
pppox 1152 1 pppoe
ipt_REJECT 1696 2
xt_TCPMSS 1952 0
ipt_LOG 6000 0
xt_comment 416 0
xt_multiport 1120 0
xt_mac 544 0
xt_limit 960 1
iptable_mangle 816 1
iptable_filter 624 1
ip_tables 8960 4 iptable_nat,iptable_raw,iptable_mangle,iptable_filter
xt_tcpudp 1600 3
x_tables 10080 18 ipt_MASQUERADE,iptable_nat,xt_conntrack,xt_CT,xt_NOTRACK,iptable_raw,xt_state,ipt_REJECT,xt_TCPMSS,ipt_LOG,xt_comment,xt_multiport,xt_mac,xt_limit,iptable_mangle,iptable_filter,ip_tables,xt_tcpudp
gpio_dev 1328 0
ppp_async 6016 0
ppp_generic 18576 3 pppoe,pppox,ppp_async
slhc 4176 1 ppp_generic
vfat 7728 0
fat 41056 1 vfat
ext4 213408 0
jbd2 36800 1 ext4
mbcache 3504 1 ext4
rt2800usb 12096 0
rt2800pci 5568 0
rt2800lib 40784 2 rt2800usb,rt2800pci
rt2500usb 17504 0
rt2x00usb 7344 2 rt2800usb,rt2500usb
rt2x00soc 1120 1 rt2800pci
rt2x00pci 1856 1 rt2800pci
rt2x00lib 37520 7 rt2800usb,rt2800pci,rt2800lib,rt2500usb,rt2x00usb,rt2x00soc,rt2x00pci
mac80211 226592 4 rt2800lib,rt2x00usb,rt2x00soc,rt2x00lib
usbcore 94896 9 uvcvideo,ftdi_sio,usb_storage,usbserial,dwc_otg,rt2800usb,rt2500usb,rt2x00usb
scsi_mod 68352 2 usb_storage,sd_mod
nls_base 4544 3 vfat,fat,usbcore
crc16 944 1 ext4
crc_itu_t 944 0
crc_ccitt 944 2 ppp_async,rt2800lib
eeprom_93cx6 1056 0
cfg80211 136144 2 rt2x00lib,mac80211
compat 3200 1 mac80211
lib80211_crypt_tkip 6736 0
lib80211_crypt_ccmp 3792 0
lib80211_crypt_wep 1920 0
lib80211 2592 3 lib80211_crypt_tkip,lib80211_crypt_ccmp,lib80211_crypt_wep
arc4 768 2
aes_generic 29632 0
crypto_algapi 9024 2 arc4,aes_generic
leds_gpio 1552 0
input_core 19824 2 uvcvideo
------
Nessun commento:
Posta un commento