Aller au contenu

GO Print

Octopi et pi camera


sbouloc

Messages recommandés

Bonjour,

Je ne vais pas être d'une grande aide mais, ayant déjà installé plusieurs octoprint sur raspberry (PI3 B+ et PI3 A+), avec 2 caméras différentes, ça a toujours marché du 1er coup. Une fois seulement j'avais mal branché la nappe..  ssh me sert juste à mettre à jour raspbian.

Bon courage 🙂

Lien vers le commentaire
Partager sur d’autres sites

Le 01/05/2020 at 12:40, John54 a dit :

pi@octopi:~ $ ps aux|grep mjpg
pi         853  0.0  0.1   7348   488 pts/0    S+   11:33   0:00 grep --color=auto mjpg

Visiblement «mjpg-streamer» n'est pas lancé 😉 sinon tu aurais plutôt une réponse comme :

Citation

pi@octopi:~ $ ps aux | grep mjpg
root       417  0.8  0.6  60388  5916 ?        Sl   May20  43:10 ./mjpg_streamer -o output_http.so -w ./www-octopi -n -i input_uvc.so -r 1280x960 -f 30 -d /dev/video0
pi       29734  0.0  0.0   7348   480 pts/1    S+   17:32   0:00 grep --color=auto mjpg

 

La ligne qui commence par root indique que mjpg-streamer fonctionne. La ligne qui a été exécuté pour son lancement est en fin et commence par ./mjp…

Je ne peux pas t'aider plus car le manque de données est insuffisant 😉 (que cherches-tu à faire hormis demander une solution à ton problème?)

🙂

Lien vers le commentaire
Partager sur d’autres sites

il y a 14 minutes, fran6p a dit :

Visiblement «mjpg-streamer» n'est pas lancé 😉 sinon tu aurais plutôt une réponse comme :

La ligne qui commence par root indique que mjpg-streamer fonctionne. La ligne qui a été exécuté pour son lancement est en fin et commence par ./mjp…

Je ne peux pas t'aider plus car le manque de données est insuffisant 😉 (que cherches-tu à faire hormis demander une solution à ton problème?)

🙂

Merci pour ta réponse, je cherche juste à faire fonctionner ma camera via octoprint et avoir donc un retour vidéo.

Comme dit dans mon premier poste sur ce topic c'est mon premier raspberry et c'est un peu du chinois pour moi encore. Si j'ai bien compris il faut juste que j'active "mjpg-streamer" et ce serait bon? Dans ce cas comment faire stp. Si il faut plus de données je veux bien les donner si on me dit ou et quoi chercher.

Merci

Lien vers le commentaire
Partager sur d’autres sites

Lors de l'insertion de la nappe elle n'aurait pas été inversée ?

Sinon relis à partir de :

 

🙂

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,J'ai du retirer la dièse sur la ligne "camera_raspi_options="-fps 10"" mais pas de changement, je veux juste être sur que j'ai tout bien fait, pense tu qu'il faille que je recommande une autre caméra?

Révélation

 


pi@octopi:~ $ cat /boot/octopi.txt
### Windows users: To edit this file use Notepad++, VSCode, Atom or SublimeText.
### Do not use Notepad or WordPad.

### MacOSX users: If you use Textedit to edit this file make sure to use
### "plain text format" and "disable smart quotes" in "Textedit > Preferences"

### Configure which camera to use
#
# Available options are:
# - auto: tries first usb webcam, if that's not available tries raspi cam
# - usb: only tries usb webcam
# - raspi: only tries raspi cam
#
# Defaults to auto
#
#camera="auto"

### Additional options to supply to MJPG Streamer for the USB camera
#
# See https://faq.octoprint.org/mjpg-streamer-config for available options
#
# Defaults to a resolution of 640x480 px and a framerate of 10 fps
#
#camera_usb_options="-r 640x480 -f 10"

### Additional webcam devices known to cause problems with -f
#
# Apparently there a some devices out there that with the current
# mjpg_streamer release do not support the -f parameter (for specifying
# the capturing framerate) and will just refuse to output an image if it
# is supplied.
#
# The webcam daemon will detect those devices by their USB Vendor and Product
# ID and remove the -f parameter from the options provided to mjpg_streamer.
#
# By default, this is done for the following devices:
#   Logitech C170 (046d:082b)
#   GEMBIRD (1908:2310)
#   Genius F100 (0458:708c)
#   Cubeternet GL-UPC822 UVC WebCam (1e4e:0102)
#
# Using the following option it is possible to add additional devices. If
# your webcam happens to show above symptoms, try determining your cam's
# vendor and product id via lsusb, activating the line below by removing # and
# adding it, e.g. for two broken cameras "aabb:ccdd" and "aabb:eeff"
#
#   additional_brokenfps_usb_devices=("aabb:ccdd" "aabb:eeff")
#
# If this fixes your problem, please report it back so we can include the device
# out of the box: https://github.com/guysoft/OctoPi/issues
#
#additional_brokenfps_usb_devices=()

### Additional options to supply to MJPG Streamer for the RasPi Cam
#
# See https://faq.octoprint.org/mjpg-streamer-config for available options
#
# Defaults to 10fps
#
camera_raspi_options="-fps 10"

### Configuration of camera HTTP output
#
# Usually you should NOT need to change this at all! Only touch if you
# know what you are doing and what the parameters mean.
#
# Below settings are used in the mjpg-streamer call like this:
#
#   -o "output_http.so -w $camera_http_webroot $camera_http_options"
#
# Current working directory is the mjpg-streamer base directory.
#
#camera_http_webroot="./www-octopi"
#camera_http_options="-n"

 

 

 

Voila ce que j'ai ensuite

Révélation



pi@octopi:~ $ cat /etc/default/webcamd
# Configuration for /etc/init.d/webcamd

# Daemon
DAEMON=/root/bin/webcamd

# Log file to use
LOG=/var/log/webcamd.log

# User to run under
USER=pi

# Should we run at startup?
ENABLED=1


 

Et ensuite il ne me met rien

 

pi@octopi:~ $ ps aux |grep webcamd|grep -v grep
pi@octopi:~ $

 

Peut étre une piste?

pi@octopi:~ $ tail /var/log/webcamd.log
tail: cannot open '/var/log/webcamd.log' for reading: No such file or directory
Lien vers le commentaire
Partager sur d’autres sites

@John54

La caméra est-elle démarrée?

service webcamd status

Si elle est bien démarré,  doit te retourner un message du genre (ma PiCAM n'est pas branchée mais la Webcam elle l'est 😉 (les deux peuvent fonctionner ensemble à condition d'ajouter un second script mais là n'est pas le propos)) :

Citation

pi@octo-ssfc:~ $ service webcamd status
● webcamd.service - LSB: webcam daemon
   Loaded: loaded (/etc/init.d/webcamd; generated; vendor preset: enabled)
   Active: active (running) since Sun 2020-05-24 14:57:02 CEST; 5s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 16971 ExecStop=/etc/init.d/webcamd stop (code=exited, status=0/SUCCES
  Process: 16980 ExecStart=/etc/init.d/webcamd start (code=exited, status=0/SUCC
    Tasks: 2 (limit: 4915)
   CGroup: /system.slice/webcamd.service
           ├─16987 /bin/bash /root/bin/webcamd
           └─17013 sleep 30

mai 24 14:57:02 octo-ssfc systemd[1]: Starting LSB: webcam daemon...
mai 24 14:57:02 octo-ssfc webcamd[16980]: Starting Webcam Daemon: webcamd.
mai 24 14:57:02 octo-ssfc systemd[1]: Started LSB: webcam daemon.
mai 24 14:57:03 octo-ssfc mjpg_streamer[17012]: MJPG-streamer [17012]: starting
mai 24 14:57:03 octo-ssfc mjpg_streamer[17012]: MJPG-streamer [17012]: MJPG Stre
mai 24 14:57:03 octo-ssfc mjpg_streamer[17012]: MJPG-streamer [17012]: Using V4L

Sinon, essaye de la redémarrer, via un «sudo service webcamd restart» (n'oublie pas le sudo, il faut être «root» pour arrêter /démarrer des services (daemon).

Que contient le fichier /root/bin/webcamd ? Le mien est ci-dessous :

Révélation

pi@octo-ssfc:~ $ cat /root/bin/webcamd
#!/bin/bash

########################################################################
### DO NOT EDIT THIS FILE TO CHANGE THE CONFIG!!!                    ###
### ---------------------------------------------------------------- ###
### There is no need to edit this file for changing resolution,      ###
### frame rates or any other mjpg-streamer parameters. Please edit   ###
### /boot/octopi.txt instead - that's what it's there for! You can   ###
### even do this with your Pi powered down by directly accessing the ###
### file when using the SD card as thumb drive in your regular       ###
### computer.                                                        ###
########################################################################

MJPGSTREAMER_HOME=/home/pi/mjpg-streamer
MJPGSTREAMER_INPUT_USB="input_uvc.so"
MJPGSTREAMER_INPUT_RASPICAM="input_raspicam.so"

# init configuration - DO NOT EDIT, USE /boot/octopi.txt INSTEAD!
camera="auto"
camera_usb_options="-r 640x480 -f 10"
camera_raspi_options="-fps 10"
camera_http_webroot="./www-octopi"
camera_http_options="-n"
additional_brokenfps_usb_devices=()

if [ -e "/boot/octopi.txt" ]; then
    source "/boot/octopi.txt"
fi

brokenfps_usb_devices=("046d:082b" "1908:2310" "0458:708c" "1e4e:0102" "0471:0311" "${additional_brokenfps_usb_devices[@]}")

# check if array contains a string
function containsString() {
  local e match="$1"
  shift
  for e; do [[ "$e" == "$match" ]] && return 0; done
  return 1
}

# cleans up when the script receives a SIGINT or SIGTERM
function cleanup() {
    # make sure that all child processed die when we die
    local pids=$(jobs -pr)
    [ -n "$pids" ] && kill $pids
    exit 0
}

# says goodbye when the script shuts down
function goodbye() {
    # say goodbye
    echo ""
    echo "Goodbye..."
    echo ""
}

# runs MJPG Streamer, using the provided input plugin + configuration
function runMjpgStreamer {
    input=$1
    pushd $MJPGSTREAMER_HOME > /dev/null 2>&1
        echo Running ./mjpg_streamer -o "output_http.so -w $camera_http_webroot $camera_http_options" -i "$input"
        LD_LIBRARY_PATH=. ./mjpg_streamer -o "output_http.so -w $camera_http_webroot $camera_http_options" -i "$input" &
        wait
    popd > /dev/null 2>&1
}

# starts up the RasPiCam
function startRaspi {
    logger -s "Starting Raspberry Pi camera"
    runMjpgStreamer "$MJPGSTREAMER_INPUT_RASPICAM $camera_raspi_options"
}

# starts up the USB webcam
function startUsb {
    options="$usb_options"
    device="video0"

    # check for parameter and set the device if it is given as a parameter
    input=$1
    if [[ -n $input ]]; then
        device=`basename "$input"`
    fi

    # add video device into options
    options="$options -d /dev/$device"

    uevent_file="/sys/class/video4linux/$device/device/uevent"
    if [ -e $uevent_file ]; then
        # let's see what kind of webcam we have here, fetch vid and pid...
        product=`cat $uevent_file | grep PRODUCT | cut -d"=" -f2`
        vid=`echo $product | cut -d"/" -f1`
        pid=`echo $product | cut -d"/" -f2`
        vidpid=`printf "%04x:%04x" "0x$vid" "0x$pid"`

        # ... then look if it is in our list of known broken-fps-devices and if so remove
        # the -f parameter from the options (if it's in there, else that's just a no-op)
        for identifier in ${brokenfps_usb_devices[@]};
        do
            if [ "$vidpid" = "$identifier" ]; then
                echo
                echo "Camera model $vidpid is known to not work with -f parameter, stripping it out"
                echo
                options=`echo $options | sed -e "s/\(\s\+\|^\)-f\s\+[0-9]\+//g"`
            fi
        done
    fi

    logger -s "Starting USB webcam"
    runMjpgStreamer "$MJPGSTREAMER_INPUT_USB $options"
}

# make sure our cleanup function gets called when we receive SIGINT, SIGTERM
trap "cleanup" SIGINT SIGTERM
# say goodbye when we EXIT
trap "goodbye" EXIT

# echo configuration
echo "Starting up webcamDaemon..."
echo ""
echo "--- Configuration: ----------------------------"
echo "camera:        $camera"
echo "usb options:   $camera_usb_options"
echo "raspi options: $camera_raspi_options"
echo "http options:  -w $camera_http_webroot $camera_http_options"
echo "-----------------------------------------------"
echo ""

# we need this to prevent the later calls to vcgencmd from blocking
# I have no idea why, but that's how it is...
vcgencmd version > /dev/null 2>&1

usb_options="$camera_usb_options"

# if webcam device is explicitly given in /boot/octopi.txt, save the path of the device
# to a variable and remove its parameter from usb_options
extracted_device=`echo $usb_options | sed 's@.*-d \(/dev/video[0-9]\+\).*@\1@'`
if [ "$extracted_device" != "$usb_options" ]
then
    # the camera options refer to a device, save it in a variable
    usb_device_path="$extracted_device"
    # replace video device parameter with empty string and strip extra whitespace
    usb_options=`echo $usb_options | sed 's/\-d \/dev\/video[0-9]\+//g' | awk '$1=$1'`
    echo "Explicitly set USB device was found in options: $usb_device_path"
fi

# keep mjpg streamer running if some camera is attached
while true; do

    # get list of usb video devices into an array
    video_devices=($(find /dev -regextype sed -regex '\/dev/video[0-9]\+' | sort 2> /dev/null))

    if [ ${#video_devices[@]} != 0 ] && { [ "$camera" = "auto" ] || [ "$camera" = "usb" ] ; }; then

        echo "Found video devices:"
        printf '%s\n' "${video_devices[@]}"

        if [[ $usb_device_path ]]; then
            # usb device is explicitly set in options
            if containsString "$usb_device_path" "${video_devices[@]}"; then
                # explicitly set usb device was found in video_devices array, start usb with the found device
                echo "USB device was set in options and found in devices, start MJPG-streamer with the configured USB video device: $usb_device_path"
                startUsb "$usb_device_path"
            else
                # explicitly set usb device was not found
                echo "Configured USB camera was not detected, trying again in two minutes"
                sleep 120 &
                wait
            fi
        else
            # device is not set explicitly in options, start usb with first found usb camera as the device
            echo "USB device was not set in options, start MJPG-streamer with the first found video device: ${video_devices[0]}"
            startUsb "${video_devices[0]}"
        fi

        sleep 30 &
        wait

    elif [ "`vcgencmd get_camera`" = "supported=1 detected=1" ] && { [ "$camera" = "auto" ] || [ "$camera" = "raspi" ] ; }; then
        startRaspi
        sleep 30 &
        wait

    else
        echo "No camera detected, trying again in two minutes"
        sleep 120 &
        wait

    fi
done
pi@octo-ssfc:~ $

 

🙂

Lien vers le commentaire
Partager sur d’autres sites

Ca me semble bon, j'ai collé ci-dessous mais je t'avoue qu je suis largué, c'est du chinois pour moi, dsl.

 

Qu'entend tu par: "Sinon, essaye de la redémarrer, via un «sudo service webcamd restart» (n'oublie pas le sudo, il faut être «root» pour arrêter /démarrer des services (daemon)."

 

pi@octopi:~ $ service webcamd status
● webcamd.service - the OctoPi webcam daemon with the user specified config
   Loaded: loaded (/etc/systemd/system/webcamd.service; enabled; vendor preset:
   Active: active (running) since Sat 2020-05-23 20:29:22 BST; 19h ago
  Process: 323 ExecStart=/root/bin/webcamd (code=exited, status=0/SUCCESS)
 Main PID: 392 (mjpg_streamer)
    Tasks: 9 (limit: 860)
   Memory: 3.5M
   CGroup: /system.slice/webcamd.service
           └─392 ./mjpg_streamer -o output_http.so -w ./www-octopi -n -i input_u

May 23 20:29:22 octopi mjpg_streamer[392]: MJPG-streamer [392]: commands........
May 23 20:29:22 octopi mjpg_streamer[392]: MJPG-streamer [392]: starting input p
May 23 20:29:22 octopi mjpg_streamer[392]: MJPG-streamer [392]: starting output
May 23 20:29:22 octopi webcamd[323]: Done bring up all configured video device
May 23 20:29:22 octopi webcamd[323]: Goodbye...
May 23 20:29:22 octopi systemd[1]: Started the OctoPi webcam daemon with the use
May 23 20:29:27 octopi webcamd[323]:  i: select() timeout
May 23 20:29:27 octopi webcamd[323]:  i: cleaning up resources allocated by inpu
May 23 20:29:27 octopi mjpg_streamer[392]: MJPG-streamer [392]: select() timeout
May 23 20:29:27 octopi mjpg_streamer[392]: MJPG-streamer [392]: cleaning up reso

 

 

pi@octopi:~ $ cat /root/bin/webcamd
#!/bin/bash

########################################################################
### DO NOT EDIT THIS FILE TO CHANGE THE CONFIG!!!                    ###
### ---------------------------------------------------------------- ###
### There is no need to edit this file for changing resolution,      ###
### frame rates or any other mjpg-streamer parameters. Please edit   ###
### /boot/octopi.txt instead - that's what it's there for! You can   ###
### even do this with your Pi powered down by directly accessing the ###
### file when using the SD card as thumb drive in your regular       ###
### computer.                                                        ###
########################################################################

MJPGSTREAMER_HOME=/home/pi/mjpg-streamer
MJPGSTREAMER_INPUT_USB="input_uvc.so"
MJPGSTREAMER_INPUT_RASPICAM="input_raspicam.so"

brokenfps_usb_devices=("046d:082b" "1908:2310" "0458:708c" "1e4e:0102" "0471:0311" "038f:6001")

config_dir="/boot/octopi.conf.d"

echo "Starting up webcamDaemon..."
echo ""

cfg_files=()
cfg_files+=/boot/octopi.txt
if [[ -d ${config_dir} ]]; then
  cfg_files+=( `ls ${config_dir}/*.txt` )
fi

array_camera_config=()
array_camera=()
array_camera_usb_options=()
array_camera_usb_device=()
array_camera_raspi_options=()
array_camera_http_webroot=()
array_camera_http_options=()
array_additional_brokenfps_usb_devices=()
array_camera_device=()
array_assigned_device=()

echo "--- Configuration: ----------------------------"
for cfg_file in ${cfg_files[@]}; do
  # init configuration - DO NOT EDIT, USE /boot/octopi.conf.d/*.txt INSTEAD!
  camera="auto"
  camera_usb_options="-r 640x480 -f 10"
  camera_raspi_options="-fps 10"
  camera_http_webroot="./www-octopi"
  camera_http_options="-n"
  additional_brokenfps_usb_devices=()

  if [[ -e ${cfg_file} ]]; then
      source "$cfg_file"
  fi
  usb_options="$camera_usb_options"

  # if webcam device is explicitly given in /boot/octopi.txt, save the path of the device
  # to a variable and remove its parameter from usb_options
  extracted_device=`echo $usb_options | sed 's@.*-d \(/dev/\(video[0-9]\+\|v4l/[^ ]*\)\).*@\1@'`
  if [ "$extracted_device" != "$usb_options" ]
  then
    # the camera options refer to a device, save it in a variable
    # replace video device parameter with empty string and strip extra whitespace
    usb_options=`echo $usb_options | sed 's/\-d \/dev\/\(video[0-9]\+\|v4l\/[^ ]*\)//g' | awk '$1=$1'`
  else
    extracted_device=""
  fi

  # echo configuration
  echo "cfg_file:      $cfg_file"
  echo "camera:        $camera"
  echo "usb options:   $camera_usb_options"
  echo "raspi options: $camera_raspi_options"
  echo "http options:  -w $camera_http_webroot $camera_http_options"
  echo ""
  echo "Explicitly USB device: $extracted_device"
  echo "-----------------------------------------------"
  echo ""

  array_camera_config+=( $cfg_file )
  array_camera+=( $camera )
  array_camera_usb_options+=("$usb_options")
  array_camera_usb_device+=("$extracted_device")
  array_camera_raspi_options+=("$camera_raspi_options")
  array_camera_http_webroot+=("$camera_http_webroot")
  array_camera_http_options+=("$camera_http_options")
  array_camera_brokenfps_usb_devices+=("${brokenfps_usb_devices[*]} ${additional_brokenfps_usb_devices[*]}")
  array_camera_device+=("")
done

# check if array contains a string
function containsString() {
  local e match="$1"
  shift
  for e; do [[ "$e" == "$match" ]] && return 0; done
  return 1
}

# cleans up when the script receives a SIGINT or SIGTERM
function cleanup() {
    # make sure that all child processed die when we die
    local pids=$(jobs -pr)
    [ -n "$pids" ] && kill $pids
    exit 0
}

# says goodbye when the script shuts down
function goodbye() {
    # say goodbye
    echo ""
    echo "Goodbye..."
    echo ""
}

# runs MJPG Streamer, using the provided input plugin + configuration
function runMjpgStreamer {
    input=$1
    pushd $MJPGSTREAMER_HOME > /dev/null 2>&1
        echo Running ./mjpg_streamer -o "output_http.so -w $camera_http_webroot $camera_http_options" -i "$input"
        LD_LIBRARY_PATH=. ./mjpg_streamer -o "output_http.so -w $camera_http_webroot $camera_http_options" -i "$input" &
        sleep 1 &
        sleep_pid=$!
        wait ${sleep_pid}
    popd > /dev/null 2>&1
}

# starts up the RasPiCam
function startRaspi {
    logger -s "Starting Raspberry Pi camera"
    runMjpgStreamer "$MJPGSTREAMER_INPUT_RASPICAM $camera_raspi_options"
}

# starts up the USB webcam
function startUsb {
    options="$usb_options"
    device="video0"

    # check for parameter and set the device if it is given as a parameter
    input=$1
    if [[ -n $input ]]; then
        device=`basename "$input"`
    fi

    # add video device into options
    options="$options -d /dev/$device"

    uevent_file="/sys/class/video4linux/$device/device/uevent"
    if [ -e $uevent_file ]; then
        # let's see what kind of webcam we have here, fetch vid and pid...
        product=`cat $uevent_file | grep PRODUCT | cut -d"=" -f2`
        vid=`echo $product | cut -d"/" -f1`
        pid=`echo $product | cut -d"/" -f2`
        vidpid=`printf "%04x:%04x" "0x$vid" "0x$pid"`

        # ... then look if it is in our list of known broken-fps-devices and if so remove
        # the -f parameter from the options (if it's in there, else that's just a no-op)
        for identifier in ${brokenfps_usb_devices[@]};
        do
            if [ "$vidpid" = "$identifier" ]; then
                echo
                echo "Camera model $vidpid is known to not work with -f parameter, stripping it out"
                echo
                options=`echo $options | sed -e "s/\(\s\+\|^\)-f\s\+[0-9]\+//g"`
            fi
        done
    fi

    logger -s "Starting USB webcam"
    runMjpgStreamer "$MJPGSTREAMER_INPUT_USB $options"
}

# make sure our cleanup function gets called when we receive SIGINT, SIGTERM
trap "cleanup" SIGINT SIGTERM
# say goodbye when we EXIT
trap "goodbye" EXIT

# we need this to prevent the later calls to vcgencmd from blocking
# I have no idea why, but that's how it is...
vcgencmd version > /dev/null 2>&1

# keep mjpg streamer running if some camera is attached
while true; do

  # get list of usb video devices into an array
  video_devices=($(find /dev -regextype sed -regex '\/dev/video[0-9]\+' | sort 2> /dev/null))

  # add list of raspi camera into an array
  if [ "`vcgencmd get_camera`" = "supported=1 detected=1" ]; then
    video_devices+=( "raspi" )
  fi

  echo "Found video devices:"
  printf '%s\n' "${video_devices[@]}"

  for scan_mode in "usb" "usb-auto" "raspi" "auto"; do
    camera=$scan_mode
    if [[ "usb-auto" == "$scan_mode" ]]; then
      camera="usb"
    fi
    for ((i=0;i<${#array_camera[@]};i++));  do
      if [[ -z ${array_camera_device[${i}]} ]] && [[ $camera == ${array_camera[${i}]} ]]; then
        camera_config="${array_camera_config[${i}]}"
        usb_options="${array_camera_usb_options[${i}]}"
        camera_usb_device="${array_camera_usb_device[${i}]}"
        camera_raspi_options="${array_camera_raspi_options[${i}]}"
        camera_http_webroot="${array_camera_http_webroot[${i}]}"
        camera_http_options="${array_camera_http_options[${i}]}"
        brokenfps_usb_devices="${array_camera_brokenfps_usb_devices[${i}]}"
        if [[ ${camera_usb_device} ]] && { [[ "usb" == ${scan_mode} ]] || [[ "auto" == ${scan_mode} ]]; }; then
           # usb device is explicitly set in options
          usb_device_path=`readlink -f ${camera_usb_device}`
          if containsString "$usb_device_path" "${array_camera_device[@]}"; then
            if [[ "auto" != ${scan_mode} ]]; then
              array_camera_device[${i}]="alredy_in_use"
              echo "config file='$camera_config':Video device already in use."
              continue
            fi
          elif containsString "$usb_device_path" "${video_devices[@]}"; then
            array_camera_device[${i}]="$usb_device_path"
            # explicitly set usb device was found in video_devices array, start usb with the found device
            echo "config file='$camera_config':USB device was set in options and found in devices, start MJPG-streamer with the configured USB video device: $usb_device_path"
            startUsb "$usb_device_path"
            continue
          fi
        elif [[ -z ${camera_usb_device} ]] && { [[ "usb-auto" == ${scan_mode} ]] || [[ "auto" == ${scan_mode} ]]; }; then
          for video_device in "${video_devices[@]}"; do
            if [[ "raspi" != "$video_device" ]]; then
              if containsString "$video_device" "${array_camera_device[@]}"; then
                : #already in use
              else
                array_camera_device[${i}]="$video_device"
                # device is not set explicitly in options, start usb with first found usb camera as the device
                echo "config file='$camera_config':USB device was not set in options, start MJPG-streamer with the first found video device: ${video_device}"
                startUsb "${video_device}"
                break
              fi
            fi
          done
          if [[ -n ${array_camera_device[${i}]} ]]; then
            continue
          fi
        fi
        if [[ "raspi" == ${scan_mode} ]] || [[ "auto" == ${scan_mode} ]]; then
          video_device="raspi"
          if containsString "$video_device" "${array_camera_device[@]}"; then
            if [[ "auto" != ${scan_mode} ]]; then
              array_camera_device[${i}]="alredy_in_use"
              echo "config file='$camera_config':RasPiCam device already in use."
            fi
          elif containsString "$video_device" "${video_devices[@]}"; then
            array_camera_device[${i}]="$video_device"
            echo "config file='$camera_config':Start MJPG-streamer with video device: ${video_device}"
            startRaspi
            sleep 30 &
            sleep_pid=$!
            wait ${sleep_pid}
          fi
        fi
      fi
    done
  done
  array_assigned_device=( ${array_camera_device[*]} )
  if [[ ${#array_camera[@]} -eq ${#array_assigned_device[@]} ]]; then
    echo "Done bring up all configured video device"
    exit 0
  else
    echo "Scan again in two minutes"
    sleep 120 &
    sleep_pid=$!
    wait ${sleep_pid}
  fi
done

Lien vers le commentaire
Partager sur d’autres sites

il y a une heure, John54 a dit :

Ca me semble bon, j'ai collé ci-dessous mais je t'avoue qu je suis largué, c'est du chinois pour moi, dsl.

La ligne de commande, je reconnais que ce n'est pas toujours évident mais c'est ce que je préfère 😉 . Tout langage qu'il soit informatique ou langue étrangère nécessite un apprentissage plus ou moins long si on veut espérer se dépanner et comprendre ce que l'on fait sinon ça s'apparente à de la magie (quand ce n'est pas de la sorcellerie 😄 ) : «Toute technologie suffisamment avancée est indiscernable de la magie.» Arthur C. Clarke

il y a une heure, John54 a dit :

Qu'entend tu par: "Sinon, essaye de la redémarrer, via un «sudo service webcamd restart» (n'oublie pas le sudo, il faut être «root» pour arrêter /démarrer des services (daemon)."

La commande «service webcamd status» que tu as saisie puis validée est utilisable par tout utilisateur du système. Visiblement le service «webcamd» fonctionne sur ta machine. S'il n'avait pas affiché «loaded» et «active», il aurait fallu le redémarrer en saisissant la commande «sudo service webcamd restart» or cette commande nécessite d'avoir des droits d'utilisation supérieur à un simple usager: le «root» . C'est le maître des lieux, il peut tout faire y compris de grosses bêtises (ex: sudo rm -f /* (ne lance surtout pas cette commande sur ton système, tu effacerais tout le contenu de la partition système sur la carte SD et tu devrais réinstaller ta distribution 😉 ).

Donc, la caméra fonctionne ou pas ?

Tu as installé Octoprint à partir de l'image Octopi ?

Si webcamd est actif, que la caméra Pi a bien été installée matériellement et logiciellement activée via raspi-config, il est possible qu'elle soit HS: la version 1 de cette caméra était sensible à l'électricité statique 😞

🙂

Modifié (le) par fran6p
Lien vers le commentaire
Partager sur d’autres sites

Je sais que le code c'est compliqué, j'ai quelques bases en arduino et en programmation de matériel audiovisuel (extron/AMX) et éclairage (DMX) pour le boulot du coup même si c'est du chinois le raspberry je pense que je comprendrais un jour, comme tu dit il faut juste un peu de temps.Merci de m'expliquer ce que ces commandes signifie, ça m'aide à comprendre.

L’installation a été faite depuis l'image pour plus de facilité vu que c'est mon 1er raspberry, j'ai fait au plus simple.

Je n'ai toujours pas d'image 🥺, je me doutais un peu que la cam était morte vu ce que j'avais lu dans le topic mais je voulais être sur avant de la remplacer. Tu aurais un modèle fiable et pas trop chère à me conseiller?

Merci du temps passé à m'aider 👍

Lien vers le commentaire
Partager sur d’autres sites

Il y a 23 heures, John54 a dit :

Merci du temps passé à m'aider

De rien, c'est le principe du forum: aider quand / si on le peut (en plus j'aime ça partager le savoir).

Tu peux aussi remercier un contributeur, en cliquant sur le cœur au bas de son post (il offre aussi d'autres possibilités 😉 ). Ça permet de réagir / d'indiquer son "opinion" sans forcément devoir compléter par écrit un post. Et cerise sur le gâteau, cela améliore sa réputation 😄

946060224_apprciations-explications.jpg.74d8781a5231c272cf26a5928a5b2016.jpg

Il y a 23 heures, John54 a dit :

Tu aurais un modèle fiable et pas trop chère à me conseiller?

Bien que j'ai aussi des Picam, je leur préfère des Webcam USB (Logitech 270, ou mieux une une «Papalook»).

Par contre, la crise sanitaire a fait exploser les prix, ma Papalook. je l'avais payée en 2019, 30€ 🤔 (#yenakiabuseetprofitedelacovid19)

webcam-papalook.thumb.jpg.e21ce2dffad5ab37d17bd1dc8af90b2e.jpg

  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

Malheureusement j'ai pris un pi 3A+ avec un seul USB vu que j'avais prévu une pi cam et qu'il était moins chère qu'un 3B+. Je me suis dit un seul USB fera l'affaire ☹️. Je suis donc bloqué sur les pi-cam. Ma question était plutôt parmi les pi cam, ou les copies laquelle serait la plus fiable.

Lien vers le commentaire
Partager sur d’autres sites

il y a une heure, John54 a dit :

Ma question était plutôt parmi les pi cam, ou les copies laquelle serait la plus fiable.

La 8Mega officielle est bien 😉 .

Un hub USB permet de rajouter des ports USB sur ton 3A+ 😉 (alimenté si tu y connectes des périphériques gourmands).

🙂

Lien vers le commentaire
Partager sur d’autres sites

  • 9 months later...
il y a 54 minutes, Claude17150 a dit :

J'ai une PI 4B avec octopi qui fonctionne bien.
Un seul bémol pour que ma caméra fonctionne je dois débrancher la prise et usb et la rebrancher.

Hello,
Je suis tout neuf ici, quelques jours😀
J'ai plusieurs Pi chez moi et j'ai décidé d'utiliser une Pi 3 B ... simplement que je n'ai qu'une Pi 4B.
Peux-tu expliquer comment tu as installée ta Pi 4 (références, etc), car je crois que c'est moins "traditionnel" qu'une Pi 3?
Ma Pi 3 OctoPrint fonctionne depuis 1 1/2 jours 😃
Après l'installation d'octopi et des plugins des fixes connus ... j'ai simplement sudo raspi-config et avec le menu 3, Interface option, sous 1, mis la camera et sudo reboot.

Je lance le client Web, et je ne fais même pas de connect, et sous Control je vois ... ce que voit la camera.
Je ne suis pas allé plus loin! Avec Putty (Windows) raspistill et raspivid (pour faire des photos et vidéos) ne m'ont pas donnés les résultats que j'avais sous Raspbian (standard OS des Pi3). Pas eu le temps de chercher. Non plus pas essayé encore un petit montage GPIO. octopi sans doute customisé!  
Cordialement

Lien vers le commentaire
Partager sur d’autres sites

Le 07/03/2021 at 15:59, boijean a dit :

Hello,
Je suis tout neuf ici, quelques jours😀
J'ai plusieurs Pi chez moi et j'ai décidé d'utiliser une Pi 3 B ... simplement que je n'ai qu'une Pi 4B.
Peux-tu expliquer comment tu as installée ta Pi 4 (références, etc), car je crois que c'est moins "traditionnel" qu'une Pi 3?
Ma Pi 3 OctoPrint fonctionne depuis 1 1/2 jours 😃
Après l'installation d'octopi et des plugins des fixes connus ... j'ai simplement sudo raspi-config et avec le menu 3, Interface option, sous 1, mis la camera et sudo reboot.

Je lance le client Web, et je ne fais même pas de connect, et sous Control je vois ... ce que voit la camera.
Je ne suis pas allé plus loin! Avec Putty (Windows) raspistill et raspivid (pour faire des photos et vidéos) ne m'ont pas donnés les résultats que j'avais sous Raspbian (standard OS des Pi3). Pas eu le temps de chercher. Non plus pas essayé encore un petit montage GPIO. octopi sans doute customisé!  
Cordialement

Bonjour,

J'ai téléchargé sur le site d'octopi le zip : octopi-buster-armhf-lite-0.18.0.zip qui contient : 2020-12-02-octopi-buster-armhf-lite-0.18.0.img

Dans mon problème il me semble que le service webcam ne démarre pas. Le simple fait de débrancher et rebrancher la webcam suffise à tout remettre en ordre.

Cordialement

Lien vers le commentaire
Partager sur d’autres sites

Merci pour la référence Buster (le Raspbian des Pi 4).
Il faut essayer de trouver quelqu'un qui utilise un Pi 4 et octopi.
J'ai un seul Pi 4 et je n'ai pas trop envie d'essayer. Un Pi 3 est suffisant pour l'impression 3D.
A mon avis c'est un souci dans octopi-buster.

Youps, tu ne mentionnes pas quelle camera, je crois. Moi c'est une camera V2.1 de Raspberry.
Cordialement
 

Lien vers le commentaire
Partager sur d’autres sites

il y a 49 minutes, boijean a dit :

c'est une camera V2.1 de Raspberry.

Cette caméra ne se connecte pas via USB mais via sa nappe dédiée alors que @Claude17150apparemment utilise une Webcam 😉

Sur mes 4 RPi avec Octoprint (2x3B+, 2x4(2Go)). j'ai des combinaisons de PiCam et de Webcam (Logitech 270, Papalook). Il arrive que le «service» webcamd (lancé à partir du répertoire /root/bin/ ) gèle / fige / plante. Débrancher / rebrancher le câble USB de la Webcam n'est généralement pas suffisant (en tout cas chez moi), par contre après un reboot du RPi tout rentre dans l'ordre.

🙂

  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...