Aller au contenu

GO Print

Chercher dans la communauté

Résultats des étiquettes.

  • Recherche par étiquettes

    Saisir les étiquettes en les séparant par une virgule. Merci de privilégier l'auto-complétion plutôt que de créer des tonnes de tags inutiles.
  • Recherche par auteur

Type du contenu


Forums

  • La vie du forum
    • Présentations
    • On vous écoute
    • Actualité et nouveautés du forum
  • Sur le site
    • Les news du blog
  • Les imprimantes 3D
    • Discussion sur les imprimantes 3D
    • Bien choisir son imprimante 3D
    • Les constructeurs
    • Les RepRap et autres modèles DIY
    • Les imprimantes 3D SLA
    • Consommables (filaments, résines...)
    • Électronique
    • Entraide : Questions/Réponses sur l'impression 3D
    • Tutoriels
  • Les scanners 3D
    • Discussion sur les scanners 3D
    • Kinect
  • Logiciels 3D
    • Discussion sur les logiciels 3D
    • Dessiner / modéliser en 3D
    • Paramétrer et contrôler son imprimante 3D
    • Tutoriels
  • Le coin des makers
    • Projets et impressions 3D
    • La post-production
    • Les cavernes des makers
    • Evénements et rassemblements
    • Arduino
    • Domotique
    • Modélisme
    • Airsoft
    • Vapotage
  • Usinages
    • Discussion sur l'usinage
    • CNC / Graveur laser
    • Entraide : Questions/Réponses sur les CNC et Lasers
    • Machines-outils conventionnelles
  • Petites annonces
    • Achats
    • Ventes
    • Dons
    • Bons plans et crowdfunding
    • Commandes groupées
    • Emplois et services
  • Divers
    • Blabla

Chercher dans...

Résultats qui...


Date de création

  • Début

    End


Dernière mise à jour

  • Début

    End


Filtrer par nombre de...

Inscrit

  • Début

    End


Groupe


Website URL


Skype


Twitter


Facebook


Youtube


Instagram


Lieu


Intérêts


Imprimantes

2 résultats trouvés

  1. Hello, Il existe de nombreux tutos Octolapse pour des appareils photos (DSLR, etc) et webcams via l'excellent outil GPhoto2 mais pas grand chose pour les appareils Android non supportés. Dans mon cas il s'agit d'un Samsung Galaxy S8. La solution proposée dans ce tuto consiste à prendre des photos à l'aide des commandes ADB (Android Debug Bridge) via un script assez similaire à celui de GPhoto2. Pour rappel, un appareil Android branché en USB peut se mettre dans différents modes (PTP, MTP, charge uniquement, etc). Un spécifique et caché par défaut permet d'envoyer certaines commandes pour différentes actions sur l'appareil (copie de fichiers, execution/arrets/(des)installations de programmes, etc) sans le manipuler directement. C'est le mode "Débogage USB" et c'est grâce à ce mode que l'on va pouvoir prendre les photos. Avant toutes choses, l'éxecution de commandes ADB n'est pas sans risques pour votre appareil. Ni ce forum, ni moi ne peuvent être tenu responsables des éventuels problèmes rencontrés. Pensez à effectuer une sauvegarde de vos données personnelles sur votre appareil Android avant d'aller plus loin ! 1. Activer le mode "Débogage USB" Ce mode est activable dans le menu "développeur", menu caché par défaut, comme précisé dans ce tutoriel. Plus de détail ICI 2. Installer ADB sur le PI : sudo apt-get install adb 3. Brancher l'appareil Android sur le PI via le câble USB. Si le mode Débogage USB est activé, une fenêtre d'autorisation doit apparaître : Il faut valider et pour éviter d'avoir cette fenêtre à chaque fois, cocher pour mémoriser le choix. 4. Vérifier la commande ADB pour l'ouverture du logiciel de la capture photo taper la ligne suivante : adb shell am start -a android.media.action.IMAGE_CAPTURE Dans le cas de mon téléphone, l'application native s'ouvre par contre je n'ai pas la possibilité d'enregistrer de photos (une spécificité Samsung ?). Il faut utiliser la commande suivante à la place : adb shell "am start -a android.media.action.STILL_IMAGE_CAMERA" Si un logiciel par défaut est défini, il va s'ouvrir automatiquement. Sinon un choix doit être proposé (avec la possibilité de mémoriser le choix). Dans le logiciel de prise de photo, il faut également vérifier où sont stoquées les photos prises. Par exemple : ► Carte SD : /storage/0000-0000/DCIM/Camera ► Mémoire interne : /sdcard/DCIM/Camera Les photos sont nommées de cette manière : YYYYMMDD_HHMMSS.jpg (YYYY: année, MM : mois, etc) mais ça dépend du logiciel utilisé Cette étape est importante car il faudra définir le bon emplacement dans le script. 5. La création du script Le script est composé en trois parties, la première et la dernière sont du copier/coller du script utilisé par GPhoto2 : Partie 1 (début) : #!/bin/bash # Put the arguments sent by Octolapse into variables for easy use SNAPSHOT_NUMBER=$1 #... an integer value that increments after each successful snapshot DELAY_SECONDS=$2 #..... the camera delay in seconds DATA_DIRECTORY=$3 #.... the path to the Octolapse data folder SNAPSHOT_DIRECTORY=$4 # the path to the current camera's snapshot folder for the current print job.may not exist so be $SNAPSHOT_FILENAME=$5 #. the expected file name of the snapshot after it has been taken SNAPSHOT_FULL_PATH=$6 # the full path and filename of the expected snapshot.If this file exists after the script has re$ # Check to see if the snapshot directory exists if [ ! -d "${SNAPSHOT_DIRECTORY}" ]; then echo "Creating directory: ${SNAPSHOT_DIRECTORY}" mkdir -p "${SNAPSHOT_DIRECTORY}" mkdir -p "${SNAPSHOT_DIRECTORY}/fullres" fi Il faudra juste rajouter le chemin où sont stoquées les photos: cam_path='/sdcard/DCIM/Camera' Partie 3 (fin): if [ ! -f "${SNAPSHOT_FULL_PATH}" ]; then echo "The snapshot was not found in the expected directory: '${SNAPSHOT_FULL_PATH}'." >&2 exit 1 fi La partie 2 consiste à lancer les commandes ADB adéquates pour prendre la photo et la déplacer dans le dossier d'Octolapse. En fonction de l'appareil Android et du logiciel de photo utilisé, les commandes et délais d'attentes peuvent varier. Il faudra tester et adapter si besoin. Voici les différentes commandes qui peuvent servir : adb shell "input keyevent KEYCODE_WAKEUP" #...................... déverrouillage adb shell "input keyevent KEYCODE_SLEEP" #........................ verrouillage adb shell "input keyevent KEYCODE_HOME" #......................... écran d'accueil adb shell "input keyevent KEYCODE_CAMERA" #....................... prise de la photo adb shell "input keyevent KEYCODE_FOCUS" #........................ focus manuel avant de prendre une photo adb shell "am start -a android.media.action.IMAGE_CAPTURE" #...... ouverture de l'application photo par défaut adb shell "am start -a android.media.action.STILL_IMAGE_CAMERA" #. ouverture de l'application photo par défaut adb shell "am force-stop com.sec.android.app.camera" #............ fermeture de l'application photo adb shell ls #.................................................... la fonction "ls" classique avec tous les paramètres possibles adb pull $FullFileName #.......................................... copier de fichier(s) adb shell rm $FullFileName #...................................... suppression de fichier(s) Par exemple, pour l'application native du Galaxy S8, la prise de photo peut s'enclencher via ce script : adb shell "input keyevent KEYCODE_WAKEUP" adb shell "am start -a android.media.action.STILL_IMAGE_CAMERA" sleep 1 adb shell "input keyevent KEYCODE_CAMERA" sleep 3 adb shell "am force-stop com.sec.android.app.camera" adb shell "input keyevent KEYCODE_SLEEP" Il est important de rajouter quelques secondes (sleep) pour laisser le temps à l'appareil de lancer l'application et prendre la photo. Dans cet exemple le "profil" utilisé est le mode "automatique" et ne permet pas un réglage "aux petits oignons". C'est économe puisque le téléphone se verrouille (écran s'éteint) une fois la tâche terminée mais ça prend plus de temps (ce qui nécessitera de rallonger le paramètre Snapshot Timeout dans Octolapse) Un autre exemple, via une application rajoutée (DLSR Camera Professional) permettant un mode plus "pro" et rapide (mais moins économe). On part du principe que l'application est déjà ouverte, l'utilisateur a effectué tous les réglages désirés (ISO, Focus, exposition, zoom, etc). La prise de photo se réduit à deux lignes : adb shell "input keyevent KEYCODE_CAMERA" sleep 3 Encore une fois, cette partie dépend du matériel (si assez rapide, on peut passer à un "sleep 2" par exemple), du logiciel utilisé et de comment on veut prendre les photos. Ensuite, pour le déplacement de la photo de l'appareil Android sur le PI, j'ai choisi la méthode suivante : last_file=$(adb shell ls -1t $cam_path | head -1) Cette instruction permet de retrouver le dernier fichier présent dans le dossier $cam_path, soit théoriquement la dernière photo, si tout fonctionne correctement... Le déplacement de la photo s'effectue en 2 temps : 1. La copie sur le PI (+ renommage): cd "${SNAPSHOT_DIRECTORY}" # ............. choix du dossier adb pull $cam_path/$last_file # .......... copie de la photo mv $last_file "${SNAPSHOT_FILENAME}" # ... renommage du fichier 2. La suppression sur l'appareil Android : adb shell rm $cam_path/$last_file Bien que fonctionnel, ce n'est pas parfait car si pour X raisons la photo n'a pas été prise correctement, le script en l'état va prendre le dernier fichier (donc pas la photo attendue) et va la copier et la supprimer sur l'appareil Android. Raison pour laquelle il vaut mieux lancer ce script dans un dossier vide par défaut histoire de ne pas faire de bêtises sur des photos précédentes ^^ L'idéal serait de s'assurer préalablement que la photo a été correctement prise. Par exemple en faisant ressortir le dernier fichier datant de moins de 10s et s'il n'y en a pas, alors ça veut dire que la photo n'a pas été prise. Je n'ai pas encore trouvé de solution à ce niveau via une commande "adb shell ls..." mais peut-être que quelqu'un aura la bonne idée pour compléter ce tuto et proposer une méthode plus "secure". Le script complet dans mon cas est le suivant : #!/bin/bash # Put the arguments sent by Octolapse into variables for easy use SNAPSHOT_NUMBER=$1 #... an integer value that increments after each successful snapshot DELAY_SECONDS=$2 #..... the camera delay in seconds DATA_DIRECTORY=$3 #.... the path to the Octolapse data folder SNAPSHOT_DIRECTORY=$4 # the path to the current camera's snapshot folder for the current print job.may not exist so be $SNAPSHOT_FILENAME=$5 #. the expected file name of the snapshot after it has been taken SNAPSHOT_FULL_PATH=$6 # the full path and filename of the expected snapshot.If this file exists after the script has re$ cam_path='/sdcard/DCIM/DSLRCamera' # Check to see if the snapshot directory exists if [ ! -d "${SNAPSHOT_DIRECTORY}" ]; then echo "Creating directory: ${SNAPSHOT_DIRECTORY}" mkdir -p "${SNAPSHOT_DIRECTORY}" mkdir -p "${SNAPSHOT_DIRECTORY}/fullres" fi adb shell "input keyevent KEYCODE_CAMERA" sleep 3 cd "${SNAPSHOT_DIRECTORY}" adb pull $cam_path/$last_file mv $last_file "${SNAPSHOT_FILENAME}" adb shell rm $cam_path/$last_file if [ ! -f "${SNAPSHOT_FULL_PATH}" ]; then echo "The snapshot was not found in the expected directory: '${SNAPSHOT_FULL_PATH}'." >&2 exit 1 fi La création du script peut s'effectuer va la commande suivante (dans le dossier /home/pi ou /scripts/ par exemple): nano take_snapshot.sh puis faire un copier/coller du script et enregistrer. Ensuite il faudra le rendre executable via la commande: sudo chmod +x take_snapshot.sh Enfin, dans le module d'Octolapse, créer un nouveau profile de caméra de type "External camera script", en précisant le script (le chemin complet) et éventuellement ajuster le Timeout : Reste à tester le script via le lien idoine (cf flèche sur l'image ci-dessus) et s'assurer qu'il n'y a pas d'erreurs. Vos retours sont les bienvenus ☺
  2. Bonjour à Tous, je voudrais si vous avez une solution pour utiliser un scanner Structure Sensor sur un smartphone P9 de Huawei? Merci pour l'infos Roberto
×
×
  • Créer...