====== Vocore 2 Lite ====== http://vocore.io/v2.html **Development env:** https://www.youtube.com/watch?v=ocl6yFtKSNs {{::vocore-2-lite-usbttl-wire.jpg?400|}} ===== USB2TTL UART console ===== {{::vocore-2-lite-usbttl-uart-1.png}} {{::vocore-2-lite-usbttl-uart-2.png}} ===== Default VoCore2 SSID WiFi ===== Výchozí WiFi AP je bez autentizace, stačí se připojit. * **SSID:** VoCore2 Výchozí přístup do OpenWrt LuCI * **IP:** 192.168.61.1 * **Username:** root * **Pasword:** vocore ===== Aktualizace firmware ===== Firmware: http://vonger.cn/misc/vocore2/20170211L.bin ==== Přes web UI ==== {{::vocore-2-lite-flash-firmware-1.png}} {{::vocore-2-lite-flash-firmware-2.png}} {{::vocore-2-lite-flash-firmware-3.png}} [[Boot info/upgrade firmware Vocore 2 Lite|Boot info/upgrade firmware]] ==== Přes sériovou linku ==== Např. při následující chybě při bootu často nezbude jiná možnost než flash firmware přes sériovou linku. Přenos je dost pomalý, ale naštěstí není firmware velký. *** Warning - bad CRC, using default environment Při boot zvolit možnost 0: Load system code then write to Flash via SERIAL. ============================================ Ralink UBoot Version: 4.3.0.0 -------------------------------------------- ASIC 7628_MP (Port5<->None) DRAM component: 512 Mbits DDR, width 16 DRAM bus: 16 bit Total memory: 64 MBytes Flash component: SPI Flash Date:Jun 25 2016 Time:22:30:18 ============================================ icache: sets:512, ways:4, linesz:32 ,total:65536 dcache: sets:256, ways:4, linesz:32 ,total:32768 RESET MT7628 PHY!!!!!! Please choose the operation: 0: Load system code then write to Flash via SERIAL. 1: Load system code to SDRAM via TFTP. 2: Load system code then write to Flash via TFTP. 3: Boot system code via Flash (default). 4: Entr boot command line interface. 5: Load system code then write to Flash via USB Storage. 7: Load Boot Loader code then write to Flash via Serial. 8: Start Web Server to load system code. 9: Load Boot Loader code then write to Flash via TFTP. 8 You chose 0 0 0: System Load Linux then write to Flash via Serial. ## Ready for binary (kermit) download to 0x80100000 at 115200 bps... Následně např. v Tera Term (Win) poslat firmware do sériové linky {{::vocore2-lite-flash-firmware-serial-01.png}} {{::vocore2-lite-flash-firmware-serial-02.png}} ==== Přes USB Flash disk ==== Flash firmware přes USB Flash disk je rychlý, vyžaduje však mít z Vocore 2 vyveden USB konektor. - naformátovat USB Flash disk na FAT32 - přejmenovat stažený firmware **20170211L.bin** na **root_uImage** - zkopírovat **root_uImage** na USB Flash disk - připojit do USB portu Vocore 2 USB Flash disk - připojit a spustit Vocore 2 přes sériovou linku - zvolit možnost **5: Load system code then write to Flash via USB Storage.** {{::vocore2-lite-flash-firmware-usb-flash-disk-01.png}} ===== Access Point WPA2 ===== LuCI neumožňuje nastavení přístupového bodu s WPA2, proto je zapotřebí použít konzoli. root@OpenWrt:/# uci set wireless.ap.ssid="vfpv" root@OpenWrt:/# uci set wireless.ap.key="--tajne-heslo--" root@OpenWrt:/# uci set wireless.ap.encryption=psk2 root@OpenWrt:/# uci commit root@OpenWrt:/# /etc/init.d/network restart Případně přímou modifikací konfiguračního souboru. config wifi-device 'radio0' option type 'ralink' option variant 'mt7628' option country 'CN' option hwmode '11g' option channel 'auto' config wifi-iface 'ap' option device 'radio0' option mode 'ap' option network 'lan' option ifname 'ra0' option ssid 'vfpv' option disabled '0' option key '--tajne-heslo--' option encryption 'psk2' config wifi-iface 'sta' option device 'radio0' option mode 'sta' option network 'wwan' option ifname 'apcli0' option led 'mediatek:orange:wifi' option ssid 'UplinkAp' option key 'SecretKey' option encryption 'psk' option disabled '1' config 0 'disabled' ===== Client mode ===== Postup nastavení klientského módu pro připojení k přístupovému bodu. shell# uci set wireless.sta.ssid=mojeap shell# uci set wireless.sta.key=heslo-k-moje-ap shell# uci set wireless.sta.network=wwan shell# uci set wireless.sta.disabled=0 shell# uci commit shell# /etc/init.d/network restart shell# sleep 10 shell# uci set wireless.sta.disabled=1 shell# uci commit ===== FPV TEST ===== ==== Instalace motion ==== Vocore 2 Lite má pouze 8 MB NOR storage. Proto je zapotřebí nějaké programy odinstalovat smazat něco z /overlay, co považujeme za nepotřebné, abychom získali místo pro instalaci motion a mohli zrealizovat stream z web kamery. Pro nahrávání videa by bylo zapotřebí nainstalovat ffmpeg, který mám kolem 5 MB a na interní storage jej nedostaneme. Proto by byl vhodnější Vocore 2, kde je 16 MB NOR storage. Nicméně je možné připojit SD kartu a ffmpeg umístit na ni a dále zrealizovat potřebné symbolické linky. Toto, ale nemám vyzkoušené. Pro instalaci je zapotřebí připojit se na přístupový bod, který zprostředkuje připojení k internetu. Je tedy nutné se přepnout do [[https://kb.isn.cz/doku.php/vocore-2-lite#client-mode|klientského módu]] a nakonfigurovat klienta. To provedeme přes sériovou konzoli, protože změnou se zruší Vocore AP bude tedy nedostupné SSH. shell# opkg remove --force-removal-of-dependent-packages lua samba36-server openvpn-polarssl (neúčinné, neuvolní dostatečné místo v /overlay) Nejdříve update balíčkovacího systému root@OpenWrt:/# opkg update Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/ramips/mt7628/packages/base/Packages.gz. Updated list of available packages in /var/opkg-lists/chaos_calmer_base. Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/ramips/mt7628/packages/base/Packages.sig. Signature check passed. Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/ramips/mt7628/packages/linkit/Packages.gz. wget: server returned error: HTTP/1.1 404 Not Found Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/ramips/mt7628/packages/linkit/Packages.sig. wget: server returned error: HTTP/1.1 404 Not Found Signature check failed. Remove wrong Signature file. Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/ramips/mt7628/packages/luci/Packages.gz. Updated list of available packages in /var/opkg-lists/chaos_calmer_luci. Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/ramips/mt7628/packages/luci/Packages.sig. Signature check passed. Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/ramips/mt7628/packages/packages/Packages.gz. Updated list of available packages in /var/opkg-lists/chaos_calmer_packages. Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/ramips/mt7628/packages/packages/Packages.sig. Signature check passed. Collected errors: * opkg_download: Failed to download http://downloads.openwrt.org/chaos_calmer/15.05.1/ramips/mt7628/packages/linkit/Packages.gz, wget returned 1. * opkg_download: Failed to download http://downloads.openwrt.org/chaos_calmer/15.05.1/ramips/mt7628/packages/linkit/Packages.sig, wget returned 1. Smažu mnou domnělý nepotřebný SW z /overlay, pro uvolnění místa root@OpenWrt:/# rm /overlay/upper/usr/bin/ir-keytable Instalace motion root@OpenWrt:/# opkg install motion Installing motion (3.4.0-20141018-9479d910f2149b5558788bb86f97f26522794212-1) to root... Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/ramips/mt7628/packages/packages/motion_3.4.0-20141018-9479d910f2149b5558788bb86f97f26522794212-1_ramips_24kec.ipk. Configuring motion. Instalace v4l-utils root@OpenWrt:/# opkg install v4l-utils Installing v4l-utils (1.6.2-1) to root... Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/ramips/mt7628/packages/packages/v4l-utils_1.6.2-1_ramips_24kec.ipk. Installing libv4l (1.6.2-1) to root... Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/ramips/mt7628/packages/packages/libv4l_1.6.2-1_ramips_24kec.ipk. Installing uclibcxx (0.2.4-1) to root... Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/ramips/mt7628/packages/base/uclibcxx_0.2.4-1_ramips_24kec.ipk. Configuring libv4l. Configuring uclibcxx. Configuring v4l-utils. Instalace uvcdynctrl root@OpenWrt:/# opkg install uvcdynctrl Installing uvcdynctrl (0.2.4) to root... Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/ramips/mt7628/packages/packages/uvcdynctrl_0.2.4_ramips_24kec.ipk. Configuring uvcdynctrl. ==== Trust SpotLight Webcam Pro ==== === Informace o zařízení === Výstup do serial konzole po připojení USB kamery [ 1167.480000] usb 1-1: USB disconnect, device number 2 [ 1170.410000] usb 1-1: new high-speed USB device number 3 using ehci-platform [ 1170.600000] usb 1-1: no of_node; not parsing pinctrl DT [ 1170.610000] uvcvideo 1-1:1.0: no of_node; not parsing pinctrl DT [ 1170.610000] uvcvideo: Found UVC 1.00 device Trust Webcam (0c45:6340) [ 1170.640000] input: Trust Webcam as /devices/101c0000.ehci/usb1/1-1/1-1:1.0/input/input1 USB info shell# lsusb Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 003: ID 0c45:6340 Microdia Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub V4L info shell# v4l2-ctl --all Driver Info (not using libv4l2): Driver name : uvcvideo Card type : Trust Webcam Bus info : usb-101c0000.ehci-1 Driver version: 3.18.29 Capabilities : 0x84000001 Video Capture Streaming Device Capabilities Device Caps : 0x04000001 Video Capture Streaming Priority: 2 Video input : 0 (Camera 1: ok) Format Video Capture: Width/Height : 640/480 Pixel Format : 'YUYV' Field : None Bytes per Line: 1280 Size Image : 614400 Colorspace : SRGB Crop Capability Video Capture: Bounds : Left 0, Top 0, Width 640, Height 480 Default : Left 0, Top 0, Width 640, Height 480 Pixel Aspect: 1/1 Streaming Parameters Video Capture: Capabilities : timeperframe Frames per second: 25.000 (25/1) Read buffers : 0 brightness (int) : min=-64 max=64 step=1 default=0 value=0 contrast (int) : min=0 max=64 step=1 default=32 value=32 saturation (int) : min=1 max=128 step=1 default=64 value=64 hue (int) : min=-40 max=40 step=1 default=0 value=0 gamma (int) : min=72 max=500 step=1 default=100 value=100 gain (int) : min=0 max=100 step=1 default=0 value=0 power_line_frequency (menu) : min=0 max=2 default=1 value=1 sharpness (int) : min=0 max=6 step=1 default=2 value=2 backlight_compensation (int) : min=0 max=2 step=1 default=1 value=1 exposure_auto (menu) : min=0 max=3 default=3 value=3 brightness (int) : min=-64 max=64 step=1 default=0 value=0 contrast (int) : min=0 max=64 step=1 default=32 value=32 saturation (int) : min=1 max=128 step=1 default=64 value=64 hue (int) : min=-40 max=40 step=1 default=0 value=0 gamma (int) : min=72 max=500 step=1 default=100 value=100 gain (int) : min=0 max=100 step=1 default=0 value=0 power_line_frequency (menu) : min=0 max=2 default=1 value=1 sharpness (int) : min=0 max=6 step=1 default=2 value=2 backlight_compensation (int) : min=0 max=2 step=1 default=1 value=1 === Konfigurace motion === # Rename this distribution example file to motion.conf # # This config file was generated by motion 3.4.0-Git-78ba2da ############################################################ # Daemon ############################################################ # Start in daemon (background) mode and release terminal (default: off) daemon off # File to store the process ID, also called pid file. (default: not defined) process_id_file /var/run/motion/motion.pid ############################################################ # Basic Setup Mode ############################################################ # Start in Setup-Mode, daemon disabled. (default: off) setup_mode off # Use a file to save logs messages, if not defined stderr and syslog is used. (default: not defined) ;logfile /tmp/motion.log # Level of log messages [1..9] (EMR, ALR, CRT, ERR, WRN, NTC, INF, DBG, ALL). (default: 6 / NTC) log_level 0 # Filter to log messages by type (COR, STR, ENC, NET, DBL, EVT, TRK, VID, ALL). (default: ALL) log_type all ########################################################### # Capture device options ############################################################ # Videodevice to be used for capturing (default /dev/video0) # for FreeBSD default is /dev/bktr0 videodevice /dev/video0 # v4l2_palette allows to choose preferable palette to be use by motion # to capture from those supported by your videodevice. (default: 17) # E.g. if your videodevice supports both V4L2_PIX_FMT_SBGGR8 and # V4L2_PIX_FMT_MJPEG then motion will by default use V4L2_PIX_FMT_MJPEG. # Setting v4l2_palette to 2 forces motion to use V4L2_PIX_FMT_SBGGR8 # instead. # # Values : # V4L2_PIX_FMT_SN9C10X : 0 'S910' # V4L2_PIX_FMT_SBGGR16 : 1 'BYR2' # V4L2_PIX_FMT_SBGGR8 : 2 'BA81' # V4L2_PIX_FMT_SPCA561 : 3 'S561' # V4L2_PIX_FMT_SGBRG8 : 4 'GBRG' # V4L2_PIX_FMT_SGRBG8 : 5 'GRBG' # V4L2_PIX_FMT_PAC207 : 6 'P207' # V4L2_PIX_FMT_PJPG : 7 'PJPG' # V4L2_PIX_FMT_MJPEG : 8 'MJPEG' # V4L2_PIX_FMT_JPEG : 9 'JPEG' # V4L2_PIX_FMT_RGB24 : 10 'RGB3' # V4L2_PIX_FMT_SPCA501 : 11 'S501' # V4L2_PIX_FMT_SPCA505 : 12 'S505' # V4L2_PIX_FMT_SPCA508 : 13 'S508' # V4L2_PIX_FMT_UYVY : 14 'UYVY' # V4L2_PIX_FMT_YUYV : 15 'YUYV' # V4L2_PIX_FMT_YUV422P : 16 '422P' # V4L2_PIX_FMT_YUV420 : 17 'YU12' # #v4l2_palette 17 v4l2_palette 15 # Tuner device to be used for capturing using tuner as source (default /dev/tuner0) # This is ONLY used for FreeBSD. Leave it commented out for Linux ; tunerdevice /dev/tuner0 # The video input to be used (default: -1) # Should normally be set to 0 or 1 for video/TV cards, and -1 for USB cameras input -1 # The video norm to use (only for video capture and TV tuner cards) # Values: 0 (PAL), 1 (NTSC), 2 (SECAM), 3 (PAL NC no colour). Default: 0 (PAL) norm 0 # The frequency to set the tuner to (kHz) (only for TV tuner cards) (default: 0) frequency 0 # Rotate image this number of degrees. The rotation affects all saved images as # well as movies. Valid values: 0 (default = no rotation), 90, 180 and 270. rotate 0 # Image width (pixels). Valid range: Camera dependent, default: 352 width 320 #width 640 #width 1024 #width 1280 # Image height (pixels). Valid range: Camera dependent, default: 288 height 240 #height 480 #height 768 #height 1024 # Maximum number of frames to be captured per second. # Valid range: 2-100. Default: 100 (almost no limit). framerate 25 # Minimum time in seconds between capturing picture frames from the camera. # Default: 0 = disabled - the capture rate is given by the camera framerate. # This option is used when you want to capture images at a rate lower than 2 per second. minimum_frame_time 0 # URL to use if you are using a network camera, size will be autodetected (incl http:// ftp:// mjpg:// rtsp:// mjpeg:// or file:///) # Must be a URL that returns single jpeg pictures or a raw mjpeg stream. Default: Not defined ; netcam_url value # Username and password for network camera (only if required). Default: not defined # Syntax is user:password ; netcam_userpass value # The setting for keep-alive of network socket, should improve performance on compatible net cameras. # off: The historical implementation using HTTP/1.0, closing the socket after each http request. # force: Use HTTP/1.0 requests with keep alive header to reuse the same connection. # on: Use HTTP/1.1 requests that support keep alive as default. # Default: off netcam_keepalive off # URL to use for a netcam proxy server, if required, e.g. "http://myproxy". # If a port number other than 80 is needed, use "http://myproxy:1234". # Default: not defined ; netcam_proxy value # Set less strict jpeg checks for network cameras with a poor/buggy firmware. # Default: off netcam_tolerant_check off # RTSP connection uses TCP to communicate to the camera. Can prevent image corruption. # Default: on rtsp_uses_tcp on # Let motion regulate the brightness of a video device (default: off). # The auto_brightness feature uses the brightness option as its target value. # If brightness is zero auto_brightness will adjust to average brightness value 128. # Only recommended for cameras without auto brightness auto_brightness off # Set the initial brightness of a video device. # If auto_brightness is enabled, this value defines the average brightness level # which Motion will try and adjust to. # Valid range 0-255, default 0 = disabled brightness 0 # Set the contrast of a video device. # Valid range 0-255, default 0 = disabled contrast 0 # Set the saturation of a video device. # Valid range 0-255, default 0 = disabled saturation 0 # Set the hue of a video device (NTSC feature). # Valid range 0-255, default 0 = disabled hue 0 ############################################################ # Round Robin (multiple inputs on same video device name) ############################################################ # Number of frames to capture in each roundrobin step (default: 1) roundrobin_frames 1 # Number of frames to skip before each roundrobin step (default: 1) roundrobin_skip 1 # Try to filter out noise generated by roundrobin (default: off) switchfilter off ############################################################ # Motion Detection Settings: ############################################################ # Threshold for number of changed pixels in an image that # triggers motion detection (default: 1500) threshold 1500 # Automatically tune the threshold down if possible (default: off) threshold_tune off # Noise threshold for the motion detection (default: 32) noise_level 32 # Automatically tune the noise threshold (default: on) noise_tune on # Despeckle motion image using (e)rode or (d)ilate or (l)abel (Default: not defined) # Recommended value is EedDl. Any combination (and number of) of E, e, d, and D is valid. # (l)abeling must only be used once and the 'l' must be the last letter. # Comment out to disable despeckle_filter EedDl # Detect motion in predefined areas (1 - 9). Areas are numbered like that: 1 2 3 # A script (on_area_detected) is started immediately when motion is 4 5 6 # detected in one of the given areas, but only once during an event. 7 8 9 # One or more areas can be specified with this option. Take care: This option # does NOT restrict detection to these areas! (Default: not defined) ; area_detect value # PGM file to use as a sensitivity mask. # Full path name to. (Default: not defined) ; mask_file value Dynamically create a mask file during operation (default: 0) # Adjust speed of mask changes from 0 (off) to 10 (fast) smart_mask_speed 0 # Ignore sudden massive light intensity changes given as a percentage of the picture # area that changed intensity. Valid range: 0 - 100 , default: 0 = disabled lightswitch 0 # Picture frames must contain motion at least the specified number of frames # in a row before they are detected as true motion. At the default of 1, all # motion is detected. Valid range: 1 to thousands, recommended 1-5 minimum_motion_frames 1 # Specifies the number of pre-captured (buffered) pictures from before motion # was detected that will be output at motion detection. # Recommended range: 0 to 5 (default: 0) # Do not use large values! Large values will cause Motion to skip video frames and # cause unsmooth movies. To smooth movies use larger values of post_capture instead. pre_capture 0 # Number of frames to capture after motion is no longer detected (default: 0) post_capture 0 # Event Gap is the seconds of no motion detection that triggers the end of an event. # An event is defined as a series of motion images taken within a short timeframe. # Recommended value is 60 seconds (Default). The value -1 is allowed and disables # events causing all Motion to be written to one single movie file and no pre_capture. # If set to 0, motion is running in gapless mode. Movies don't have gaps anymore. An # event ends right after no more motion is detected and post_capture is over. event_gap 60 # Maximum length in seconds of a movie # When value is exceeded a new movie file is created. (Default: 0 = infinite) max_movie_time 0 # Always save images even if there was no motion (default: off) emulate_motion off ############################################################ # Image File Output ############################################################ # Output 'normal' pictures when motion is detected (default: on) # Valid values: on, off, first, best, center # When set to 'first', only the first picture of an event is saved. # Picture with most motion of an event is saved when set to 'best'. # Picture with motion nearest center of picture is saved when set to 'center'. # Can be used as preview shot for the corresponding movie. output_pictures off # Output pictures with only the pixels moving object (ghost images) (default: off) output_debug_pictures off # The quality (in percent) to be used by the jpeg compression (default: 75) quality 75 # Type of output images # Valid values: jpeg, ppm (default: jpeg) picture_type jpeg ############################################################ # FFMPEG related options # Film (movies) file output, and deinterlacing of the video input # The options movie_filename and timelapse_filename are also used # by the ffmpeg feature ############################################################ # Use ffmpeg to encode movies in realtime (default: off) ffmpeg_output_movies off # Use ffmpeg to make movies with only the pixels moving # object (ghost images) (default: off) ffmpeg_output_debug_movies off # Use ffmpeg to encode a timelapse movie # Default value 0 = off - else save frame every Nth second ffmpeg_timelapse 0 # The file rollover mode of the timelapse video # Valid values: hourly, daily (default), weekly-sunday, weekly-monday, monthly, manual ffmpeg_timelapse_mode daily # Bitrate to be used by the ffmpeg encoder (default: 400000) # This option is ignored if ffmpeg_variable_bitrate is not 0 (disabled) ffmpeg_bps 400000 # Enables and defines variable bitrate for the ffmpeg encoder. # ffmpeg_bps is ignored if variable bitrate is enabled. # Valid values: 0 (default) = fixed bitrate defined by ffmpeg_bps, # or the range 2 - 31 where 2 means best quality and 31 is worst. ffmpeg_variable_bitrate 0 # Codec to used by ffmpeg for the video compression. # Timelapse videos have two options. # swf - Creates swf file with mpeg-2 encoding. # If motion is shutdown and restarted, new pics will be appended # to any previously created file with name indicated for timelapse. # mpeg4 - Creates avi file with the default encoding. # If motion is shutdown and restarted, new pics will create a # new file with the name indicated for timelapse. # Supported formats are: # mpeg4 or msmpeg4 - gives you files with extension .avi # msmpeg4 is recommended for use with Windows Media Player because # it requires no installation of codec on the Windows client. # swf - gives you a flash film with extension .swf # flv - gives you a flash video with extension .flv # ffv1 - FF video codec 1 for Lossless Encoding ( experimental ) # mov - QuickTime ( testing ) # ogg - Ogg/Theora ( testing ) ffmpeg_video_codec mpeg4 # Use ffmpeg to deinterlace video. Necessary if you use an analog camera # and see horizontal combing on moving objects in video or pictures. # (default: off) ffmpeg_deinterlace off ############################################################ # SDL Window ############################################################ # Number of motion thread to show in SDL Window (default: 0 = disabled) #sdl_threadnr 0 ############################################################ # External pipe to video encoder # Replacement for FFMPEG builtin encoder for ffmpeg_output_movies only. # The options movie_filename and timelapse_filename are also used # by the ffmpeg feature ############################################################# # Bool to enable or disable extpipe (default: off) use_extpipe off # External program (full path and opts) to pipe raw video to # Generally, use '-' for STDIN... ;extpipe mencoder -demuxer rawvideo -rawvideo w=320:h=240:i420 -ovc x264 -x264encopts bframes=4:frameref=1:subq=1:scenecut=-1:nob_adapt:threads=1:keyint=1000:8x8dct:vb v_bufsize=4000:crf=24:partitions=i8x8,i4x4:vbv_maxrate=800:no-chroma-me -vf denoise3d=16:12:48:4,pp=lb -of avi -o %f.avi - -fps %fps ############################################################ # Snapshots (Traditional Periodic Webcam File Output) ############################################################ # Make automated snapshot every N seconds (default: 0 = disabled) snapshot_interval 0 ############################################################ # Text Display # %Y = year, %m = month, %d = date, # %H = hour, %M = minute, %S = second, %T = HH:MM:SS, # %v = event, %q = frame number, %t = thread (camera) number, # %D = changed pixels, %N = noise level, \n = new line, # %i and %J = width and height of motion area, # %K and %L = X and Y coordinates of motion center # %C = value defined by text_event - do not use with text_event! # You can put quotation marks around the text to allow # leading spaces ############################################################ # Locate and draw a box around the moving object. # Valid values: on, off, preview (default: off) # Set to 'preview' will only draw a box in preview_shot pictures. locate_motion_mode off # Set the look and style of the locate box if enabled. # Valid values: box, redbox, cross, redcross (default: box) # Set to 'box' will draw the traditional box. # Set to 'redbox' will draw a red box. # Set to 'cross' will draw a little cross to mark center. # Set to 'redcross' will draw a little red cross to mark center. locate_motion_style box # Draws the timestamp using same options as C function strftime(3) # Default: %Y-%m-%d\n%T = date in ISO format and time in 24 hour clock # Text is placed in lower right corner text_right %Y-%m-%d\n%T-%q # Draw a user defined text on the images using same options as C function strftime(3) # Default: Not defined = no text # Text is placed in lower left corner ; text_left CAMERA %t # Draw the number of changed pixed on the images (default: off) # Will normally be set to off except when you setup and adjust the motion settings # Text is placed in upper right corner text_changes off # This option defines the value of the special event conversion specifier %C # You can use any conversion specifier in this option except %C. Date and time # values are from the timestamp of the first image in the current event. # Default: %Y%m%d%H%M%S # The idea is that %C can be used filenames and text_left/right for creating # a unique identifier for each event. text_event %Y%m%d%H%M%S # Draw characters at twice normal size on images. (default: off) text_double off # Text to include in a JPEG EXIF comment # May be any text, including conversion specifiers. # The EXIF timestamp is included independent of this text. ;exif_text %i%J/%K%L ############################################################ # Target Directories and filenames For Images And Films # For the options snapshot_, picture_, movie_ and timelapse_filename # you can use conversion specifiers # %Y = year, %m = month, %d = date, # %H = hour, %M = minute, %S = second, # %v = event, %q = frame number, %t = thread (camera) number, # %D = changed pixels, %N = noise level, # %i and %J = width and height of motion area, # %K and %L = X and Y coordinates of motion center # %C = value defined by text_event # Quotation marks round string are allowed. ############################################################ # Target base directory for pictures and films # Recommended to use absolute path. (Default: current working directory) target_dir /tmp/motion # File path for snapshots (jpeg or ppm) relative to target_dir # Default: %v-%Y%m%d%H%M%S-snapshot # Default value is equivalent to legacy oldlayout option # For Motion 3.0 compatible mode choose: %Y/%m/%d/%H/%M/%S-snapshot # File extension .jpg or .ppm is automatically added so do not include this. # Note: A symbolic link called lastsnap.jpg created in the target_dir will always # point to the latest snapshot, unless snapshot_filename is exactly 'lastsnap' snapshot_filename %v-%Y%m%d%H%M%S-snapshot # File path for motion triggered images (jpeg or ppm) relative to target_dir # Default: %v-%Y%m%d%H%M%S-%q # Default value is equivalent to legacy oldlayout option # For Motion 3.0 compatible mode choose: %Y/%m/%d/%H/%M/%S-%q # File extension .jpg or .ppm is automatically added so do not include this # Set to 'preview' together with best-preview feature enables special naming # convention for preview shots. See motion guide for details picture_filename %v-%Y%m%d%H%M%S-%q # File path for motion triggered ffmpeg films (movies) relative to target_dir # Default: %v-%Y%m%d%H%M%S # File extensions(.swf .avi) are automatically added so do not include them movie_filename %v-%Y%m%d%H%M%S # File path for timelapse movies relative to target_dir # Default: %Y%m%d-timelapse # File extensions(.swf .avi) are automatically added so do not include them timelapse_filename %Y%m%d-timelapse ############################################################ # Global Network Options ############################################################ # Enable or disable IPV6 for http control and stream (default: off ) ipv6_enabled off ############################################################ # Live Stream Server ############################################################ # The mini-http server listens to this port for requests (default: 0 = disabled) stream_port 8081 # Quality of the jpeg (in percent) images produced (default: 50) stream_quality 50 # Output frames at 1 fps when no motion is detected and increase to the # rate given by stream_maxrate when motion is detected (default: off) stream_motion on # Maximum framerate for stream streams (default: 1) stream_maxrate 25 # Restrict stream connections to localhost only (default: on) stream_localhost off # Limits the number of images per connection (default: 0 = unlimited) # Number can be defined by multiplying actual stream rate by desired number of seconds # Actual stream rate is the smallest of the numbers framerate and stream_maxrate stream_limit 0 # Set the authentication method (default: 0) # 0 = disabled # 1 = Basic authentication # 2 = MD5 digest (the safer authentication) stream_auth_method 0 # Authentication for the stream. Syntax username:password # Default: not defined (Disabled) ; stream_authentication username:password ############################################################ # HTTP Based Control ############################################################ # TCP/IP port for the http server to listen on (default: 0 = disabled) webcontrol_port 8080 # Restrict control connections to localhost only (default: on) webcontrol_localhost off # Output for http server, select off to choose raw text plain (default: on) webcontrol_html_output on # Authentication for the http based control. Syntax username:password # Default: not defined (Disabled) ; webcontrol_authentication username:password ############################################################ # Tracking (Pan/Tilt) ############################################################# # Type of tracker (0=none (default), 1=stepper, 2=iomojo, 3=pwc, 4=generic, 5=uvcvideo, 6=servo) # The generic type enables the definition of motion center and motion size to # be used with the conversion specifiers for options like on_motion_detected track_type 0 # Enable auto tracking (default: off) track_auto off # Serial port of motor (default: none) ;track_port /dev/ttyS0 # Motor number for x-axis (default: 0) ;track_motorx 0 # Set motorx reverse (default: 0) ;track_motorx_reverse 0 # Motor number for y-axis (default: 0) ;track_motory 1 # Set motory reverse (default: 0) ;track_motory_reverse 0 # Maximum value on x-axis (default: 0) ;track_maxx 200 # Minimum value on x-axis (default: 0) ;track_minx 50 # Maximum value on y-axis (default: 0) ;track_maxy 200 # Minimum value on y-axis (default: 0) ;track_miny 50 # Center value on x-axis (default: 0) ;track_homex 128 # Center value on y-axis (default: 0) ;track_homey 128 # ID of an iomojo camera if used (default: 0) track_iomojo_id 0 # Angle in degrees the camera moves per step on the X-axis # with auto-track (default: 10) # Currently only used with pwc type cameras track_step_angle_x 10 # Angle in degrees the camera moves per step on the Y-axis # with auto-track (default: 10) # Currently only used with pwc type cameras track_step_angle_y 10 # Delay to wait for after tracking movement as number # of picture frames (default: 10) track_move_wait 10 # Speed to set the motor to (stepper motor option) (default: 255) track_speed 255 # Number of steps to make (stepper motor option) (default: 40) track_stepsize 40 ############################################################ # External Commands, Warnings and Logging: # You can use conversion specifiers for the on_xxxx commands # %Y = year, %m = month, %d = date, # %H = hour, %M = minute, %S = second, # %v = event, %q = frame number, %t = thread (camera) number, # %D = changed pixels, %N = noise level, # %i and %J = width and height of motion area, # %K and %L = X and Y coordinates of motion center # %C = value defined by text_event # %f = filename with full path # %n = number indicating filetype # Both %f and %n are only defined for on_picture_save, # on_movie_start and on_movie_end # Quotation marks round string are allowed. ############################################################ # Do not sound beeps when detecting motion (default: on) # Note: Motion never beeps when running in daemon mode. quiet on # Command to be executed when an event starts. (default: none) # An event starts at first motion detected after a period of no motion defined by event_gap ; on_event_start value # Command to be executed when an event ends after a period of no motion # (default: none). The period of no motion is defined by option event_gap. ; on_event_end value # Command to be executed when a picture (.ppm|.jpg) is saved (default: none) # To give the filename as an argument to a command append it with %f ; on_picture_save value # Command to be executed when a motion frame is detected (default: none) ; on_motion_detected value # Command to be executed when motion in a predefined area is detected # Check option 'area_detect'. (default: none) ; on_area_detected value # Command to be executed when a movie file (.mpg|.avi) is created. (default: none) # To give the filename as an argument to a command append it with %f ; on_movie_start value # Command to be executed when a movie file (.mpg|.avi) is closed. (default: none) # To give the filename as an argument to a command append it with %f ; on_movie_end value # Command to be executed when a camera can't be opened or if it is lost # NOTE: There is situations when motion don't detect a lost camera! # It depends on the driver, some drivers dosn't detect a lost camera at all # Some hangs the motion thread. Some even hangs the PC! (default: none) ; on_camera_lost value ##################################################################### # Common Options for database features. # Options require database options to be active also. ##################################################################### # Log to the database when creating motion triggered picture file (default: on) ; sql_log_picture on # Log to the database when creating a snapshot image file (default: on) ; sql_log_snapshot on # Log to the database when creating motion triggered movie file (default: off) ; sql_log_movie off # Log to the database when creating timelapse movies file (default: off) ; sql_log_timelapse off # SQL query string that is sent to the database # Use same conversion specifiers has for text features # Additional special conversion specifiers are # %n = the number representing the file_type # %f = filename with full path # Default value: # Create tables : ## # Mysql # CREATE TABLE security (camera int, filename char(80) not null, frame int, file_type int, time_stamp timestamp(14), event_time_stamp timestamp(14)); # # Postgresql # CREATE TABLE security (camera int, filename char(80) not null, frame int, file_type int, time_stamp timestamp without time zone, event_time_stamp timestamp without t ime zone); # # insert into security(camera, filename, frame, file_type, time_stamp, text_event) values('%t', '%f', '%q', '%n', '%Y-%m-%d %T', '%C') ; sql_query insert into security(camera, filename, frame, file_type, time_stamp, event_time_stamp) values('%t', '%f', '%q', '%n', '%Y-%m-%d %T', '%C') ############################################################ # Database Options ############################################################ # database type : mysql, postgresql, sqlite3 (default : not defined) ; database_type value # database to log to (default: not defined) ; database_dbname value # The host on which the database is located (default: localhost) ; database_host value # User account name for database (default: not defined) ; database_user value # User password for database (default: not defined) ; database_password value # Port on which the database is located # mysql 3306 , postgresql 5432 (default: not defined) ; database_port value ############################################################ # Database Options For SQLite3 ############################################################ # SQLite3 database (file path) (default: not defined) ; sqlite3_db value ############################################################ # Video Loopback Device (vloopback project) ############################################################ # Output images to a video4linux loopback device # The value '-' means next available (default: not defined) ; video_pipe value # Output motion images to a video4linux loopback device # The value '-' means next available (default: not defined) ; motion_video_pipe value ############################################################## # Thread config files - One for each camera. # Except if only one camera - You only need this config file. # If you have more than one camera you MUST define one thread # config file for each camera in addition to this config file. ############################################################## # Remember: If you have more than one camera you must have one # thread file for each camera. E.g. 2 cameras requires 3 files: # This motion.conf file AND thread1.conf and thread2.conf. # Only put the options that are unique to each camera in the # thread config files. ; thread /usr/etc/motion/thread1.conf ; thread /usr/etc/motion/thread2.conf ; thread /usr/etc/motion/thread3.conf ; thread /usr/etc/motion/thread4.conf === Spuštění motion === shell# motion -c /etc/motion.conf Sledování na http://ip-vocore-2:8081 === Stream test === Framerate a stream_maxrate nastaveno na 25 snímků dle výchozích parametrů kamery. Při rozlišení 320x240 byl stream vcelku plynulý. Při rozlišení 640x480 již docházelo k framedrop a vytížení procesoru často dosahovalo 100%. Procesor nestíhal zpracování. Snížením framerate by se procesoru ulevilo, ale je otázka zda o snímky přicházet. Tak či tak se zhorší plynulost obrazu při streamování. {{youtube>1pkt9LT7tTI?medium}} ==== Microsoft LifeCam Cinema WebCam 720p ==== **Kamerka má automatické ostření!** === Informace o zařízení === Výstup do serial konzole po připojení USB kamery [ 98.030000] usb 1-1: new high-speed USB device number 2 using ehci-platform [ 98.190000] usb 1-1: no of_node; not parsing pinctrl DT [ 98.210000] uvcvideo 1-1:1.0: no of_node; not parsing pinctrl DT [ 98.210000] uvcvideo: Found UVC 1.00 device Microsoft® LifeCam Cinema(TM) (045e:075d) [ 98.230000] input: Microsoft® LifeCam Cinema(TM) as /devices/101c0000.ehci/usb1/1-1/1-1:1.0/input/input0 USB info shell# lsusb Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 002: ID 045e:075d Microsoft Corp. LifeCam Cinema Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub V4L info shell# v4l2-ctl --all Driver Info (not using libv4l2): Driver name : uvcvideo Card type : Microsoft® LifeCam Cinema(TM) Bus info : usb-101c0000.ehci-1 Driver version: 3.18.29 Capabilities : 0x84000001 Video Capture Streaming Device Capabilities Device Caps : 0x04000001 Video Capture Streaming Priority: 2 Video input : 0 (Camera 1: ok) Format Video Capture: Width/Height : 640/480 Pixel Format : 'YUYV' Field : None Bytes per Line: 1280 Size Image : 939638784 Colorspace : SRGB Crop Capability Video Capture: Bounds : Left 0, Top 0, Width 640, Height 480 Default : Left 0, Top 0, Width 640, Height 480 Pixel Aspect: 1/1 Streaming Parameters Video Capture: Capabilities : timeperframe Frames per second: 0.012 (3125/262144) Read buffers : 0 brightness (int) : min=30 max=255 step=1 default=133 value=133 contrast (int) : min=0 max=10 step=1 default=5 value=5 saturation (int) : min=0 max=200 step=1 default=83 value=83 white_balance_temperature_auto (bool) : default=1 value=1 power_line_frequency (menu) : min=0 max=2 default=2 value=2 white_balance_temperature (int) : min=2800 max=10000 step=1 default=4500 value=4500 flags=inactive sharpness (int) : min=0 max=50 step=1 default=25 value=25 backlight_compensation (int) : min=0 max=10 step=1 default=0 value=1 exposure_auto (menu) : min=0 max=3 default=1 value=3 exposure_absolute (int) : min=5 max=20000 step=1 default=156 value=156 flags=inactive pan_absolute (int) : min=-201600 max=201600 step=3600 default=0 value=0 tilt_absolute (int) : min=-201600 max=201600 step=3600 default=0 value=0 focus_absolute (int) : min=0 max=40 step=1 default=0 value=6 flags=inactive focus_auto (bool) : default=0 value=1 zoom_absolute (int) : min=0 max=10 step=1 default=0 value=0 brightness (int) : min=30 max=255 step=1 default=133 value=133 contrast (int) : min=0 max=10 step=1 default=5 value=5 saturation (int) : min=0 max=200 step=1 default=83 value=83 white_balance_temperature_auto (bool) : default=1 value=1 power_line_frequency (menu) : min=0 max=2 default=2 value=2 white_balance_temperature (int) : min=2800 max=10000 step=1 default=4500 value=4500 flags=inactive sharpness (int) : min=0 max=50 step=1 default=25 value=25 backlight_compensation (int) : min=0 max=10 step=1 default=0 value=1 === Konfigurace motion === [[vocore-2-lite#konfigurace-motion|Konfigurace]] === Spuštění motion === shell# motion -c /etc/motion.conf Sledování na http://ip-vocore-2:8081 === Stream test === Framerate a stream_maxrate nastaveno na 25 snímků. **Při rozlišení 320x240 byl stream perfektně plynulý i při pohybu kamery. Automatické ostření!** Při rozlišení 640x480 již docházelo k velkému framedrop a vytížení procesoru na 100%. Procesor nestíhal zpracování. Snížením framerate by se procesoru ulevilo, ale je otázka zda o snímky přicházet. Tak či tak se zhorší plynulost obrazu při streamování. ===== FPV Final s Microsoft LifeCam Cinema WebCam 720p ===== * automatický start nakonfigurovaného AP s WPA2 a vlastním heslem * automatický start SSH serveru (dropbear) * automatický start streamu (motion) z připojené kamery Microsoft LifeCam Cinema WebCam 720p [[vocore-2-lite#instalace-motion|Instalace motion]] Nastavení/úprava konfigurace motion, ostatní jsem ponechal výchozí. # V4L2_PIX_FMT_YUYV : 15 'YUYV' v4l2_palette 15 # Image width (pixels). Valid range: Camera dependent, default: 352 width 320 # Image height (pixels). Valid range: Camera dependent, default: 288 height 240 # Maximum number of frames to be captured per second. # Valid range: 2-100. Default: 100 (almost no limit). framerate 25 # disable save images, no space left output_pictures off # Maximum framerate for stream streams (default: 1) stream_maxrate 25 # Restrict stream connections to localhost only (default: on) stream_localhost off Nastavení přístupové bodu WPA2, nastavit si vlastní **ssid** (název AP) a **key** (heslo). config wifi-device 'radio0' option type 'ralink' option variant 'mt7628' option country 'CN' option hwmode '11g' option channel 'auto' config wifi-iface 'ap' option device 'radio0' option mode 'ap' option network 'lan' option ifname 'ra0' option ssid 'vfpv' option disabled '0' option key '--tajne-heslo--' option encryption 'psk2' config wifi-iface 'sta' option device 'radio0' option mode 'sta' option network 'wwan' option ifname 'apcli0' option led 'mediatek:orange:wifi' option ssid 'UplinkAp' option key 'SecretKey' option encryption 'psk' option disabled '1' config 0 'disabled' Konfigurace služby pro motion, start AP, start SSH serveru, start motion stream #!/bin/sh /etc/rc.common # Example script # Copyright (C) 2007 OpenWrt.org START=10 STOP=15 start() { echo start # commands to launch application /etc/init.d/network start; sleep 5; /etc/init.d/dropbear start; sleep 5; cd /tmp; motion -c /etc/motion.conf } stop() { echo stop # commands to kill application } Automatický start při bootu root@OpenWrt:# chmod +x /etc/init.d/motion root@OpenWrt:# /etc/init.d/motion enable Stream je dostupný po připojení k AP Vocore2 Lite na URL. http://192.168.61.1:8081 Ve výsledku to může vypadat nějak takto. {{::fpv-01.jpg?200|}} {{::fpv-02.jpg?200|}} {{::fpv-03.jpg?200|}} {{::fpv-04.jpg?200|}} {{::fpv-05.jpg?200|}} Sledování na ovladači s RPi zero #!/bin/bash omxplayer -r --live -b 'http://192.168.61.1:8081' --win 240,120,560,360 {{youtube>wK-sPGMYafI?medium}}