Aller au contenu


Photo
- - - - -

piloter un servomoteur via une sequence vidéo


  • Veuillez vous connecter pour répondre
16 réponses à ce sujet

#1 Davidc.

Davidc.

    Membre

  • Membres
  • 11 messages

Posté 30 mars 2013 - 06:13

Bonjour à tous

Je suis nouveau sur ce forum et tout à fait novice en électronique.
Ma question concerne la fabrication d'une installation vidéo.
Je cherche à savoir si il est possible (et comment) de piloter la course d'un moteur en fonction de la durée/vitesse d'une séquence vidéo.

Le principe générale de l'installation est de la vidéo projection sur une surface mouvante:

- La séquence est diffusée/projetée en palindrome (avant/arrière continu)
- Le servomoteur met en mouvement l'écran de la vidéo projection

Je cherche à "synchroniser" le mouvement de l'écran au mouvement de l'image projetée (sa durée) .


Je me suis posé la question avec le système Arduino, mais j'ai cru comprendre qu'il n'y avait pas possibilité de connecter le timecode de la séquence directement sur la carte (entrée GPI ou autre).
Est-ce que je dois me diriger vers la programmation d'une interface entre le logiciel Arduino et celui qui diffuse la vidéo?
Ou existe-t-il un moyen plus simple?

Pouvez vous me mettre sur des pistes ?

Merci pour votre aide

#2 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 934 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 30 mars 2013 - 07:37

Bonjour et bienvenu à toi =)

Concernant ton problème, juste quelques question : Tu utilises un servomoteur ? à rotation continu ou non ?
Est ce que tu as la possibilité de connaitre la durée de la vidéo avant de la lancer ? Est ce que ton moteur doit faire un trajet précis toujours identique mais qu'il doit adapter se vitesse au temps que dure la vidéo de manière à arriver à la fin de son trajet quand la vidéo s'arrête ou bien est ce que ton moteur tourne toujours à la même vitesse dès qu'une vidéo est lancée et il s'arrête dès que ta vidéo est coupée ?

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#3 Davidc.

Davidc.

    Membre

  • Membres
  • 11 messages

Posté 30 mars 2013 - 08:02

Bonjour et merci pour ton intervention

Je suis pour l'instant à me poser les bonnes questions pour trouver l'application technique la plus simple: c'est à dire que je n'en suis qu'au stade de la réflexion.

L'installation fonctionne en continu. La vidéo projetée est une boucle avant/arrière de 30 secondes, la course du moteur est en aller retour sur un 1/4 de tour.

Je connais la durée de la vidéo à l'image près. Elle a une durée fixe. Donc le mouvement que le servomoteur doit produire est toujours le même, équivalent à peu près à un quart de tour aller puis retour.

Ce mouvement d'aller retour est continu tant que l'installation est en fonction: le problème que cela pose est la grande précision de la synchronisation course du moteur/durée de la séquence car sur plusieurs heures leur décalage peut devenir important.
C'est pourquoi j'avais pensé me servir du timecode (signal généré par chaque image) pour asservir le moteur.

#4 ChristianR

ChristianR

    Membre passionné

  • Membres
  • PipPipPip
  • 474 messages
  • Gender:Male
  • Location:Isère (38)
  • Interests:Arduino, programmation, électronique...

Posté 30 mars 2013 - 08:07

Est ce que tu as la possibilité de récupérer le timecode, sous quelle forme? C'est un code en octets, un bip de départ ?

L'Arduino peut recevoir en entrée aussi bien des données numériques qu'analogiques.
Il y a juste une mise en forme des signaux à faire (réduire ou amplifier le signal entre 0 et 5V).
Christian

#5 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 934 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 30 mars 2013 - 11:35

Bonjour et merci pour ton intervention

Je suis pour l'instant à me poser les bonnes questions pour trouver l'application technique la plus simple: c'est à dire que je n'en suis qu'au stade de la réflexion.

L'installation fonctionne en continu. La vidéo projetée est une boucle avant/arrière de 30 secondes, la course du moteur est en aller retour sur un 1/4 de tour.

Je connais la durée de la vidéo à l'image près. Elle a une durée fixe. Donc le mouvement que le servomoteur doit produire est toujours le même, équivalent à peu près à un quart de tour aller puis retour.

Ce mouvement d'aller retour est continu tant que l'installation est en fonction: le problème que cela pose est la grande précision de la synchronisation course du moteur/durée de la séquence car sur plusieurs heures leur décalage peut devenir important.
C'est pourquoi j'avais pensé me servir du timecode (signal généré par chaque image) pour asservir le moteur.



si tu connais précisément la vidéo et qu'elle a une durée fixe ... même si tu as besoin d'une extrême précision, tant que ce n'est pas sur plusieurs jours, il n'y a pas réellement besoin de synchronisation ... il suffit de régler très précisément ton cycle et de le répéter .... C'est la méthode la plus simple ...

Après si il faut que ça tourne plusieurs jours là oui ... un asservissement peut être utile ...

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#6 Davidc.

Davidc.

    Membre

  • Membres
  • 11 messages

Posté 31 mars 2013 - 02:09

si tu connais précisément la vidéo et qu'elle a une durée fixe ... même si tu as besoin d'une extrême précision, tant que ce n'est pas sur plusieurs jours, il n'y a pas réellement besoin de synchronisation ... il suffit de régler très précisément ton cycle et de le répéter .... C'est la méthode la plus simple ...

Après si il faut que ça tourne plusieurs jours là oui ... un asservissement peut être utile ...





Rebonjour

D'après mes calculs sur une journée de 10 heures j'ai 1200 cycles de 30 secondes, si j'arrive à régler mon cycle très précisément (à 20ms près difficile de faire mieux!) j'ai à la fin de ces 10 heures 24 secondes de décalage!

#7 Davidc.

Davidc.

    Membre

  • Membres
  • 11 messages

Posté 31 mars 2013 - 03:05

Est ce que tu as la possibilité de récupérer le timecode, sous quelle forme? C'est un code en octets, un bip de départ ?

L'Arduino peut recevoir en entrée aussi bien des données numériques qu'analogiques.
Il y a juste une mise en forme des signaux à faire (réduire ou amplifier le signal entre 0 et 5V).




Rebonjour
En vidéo tu as la possibilité de sortir le signal du timecode séparément du reste.
Il est aussi possible de transformer ce signal en information midi (donc code en octets si je ne me trompe pas)
Je te mets ici des extraits des recherches que j'ai fait sur le net suite à ta question (trouvés ici http://www.norme-midi.com/pdf/7_2_4.pdf) :

Pour traduire en temps réel les informations SMPTE en informations MIDI, trois messages sont utilisés. Le premier se nomme MIDI Time Code quarter frame (quart d'image). Il est constitué d'un octet de statut (F1H de la catégorie system common messages), suivi d'un octet de donnée. En voici le format:

Format: 11110001 (F1H) 0nnndddd
Type: system common message

Le message MTC quarter frame est une traduction simultanée (en temps réel) de certaines des informations contenues dans un message SMPTE : les heures, minutes, secondes et images par secontde. La conversion en binaire de la valeur de chacune de ces quatre catégories d'informations SMPTE occupe donc respectivement 5 bits (24 valeurs de 0 à 23 pour les heures), deux fois 6 bits (60 valeurs de 0 à 59 pour les minutes et les secondes) et 5 bits (de 24 à 30 valeurs pour les images, en fonction du standard du code). En conséquence, la traduction d'un seul et unique message SMPTE nécessite plusieurs messages MTC quarter frame. Pour maintenir un format homogène, chacune de ces quatre catégories d'informations SMPTE est codée sur 8 bits (deux demi octets), même si certains d'entre eux sont inutilisés. Or, un seul octet de donnée (constitué par définition de 7 bits utiles) ne suffit pas à transmettre l'une de ces quatre catégories (8 bits).
L'octet de donnée d'un message quarter frame (constituée, comme toute donnée MIDI, de 7 bits utiles) décomposé en deux groupes de bits: nnn et dddd. Les bits 0 à 3 (dddd) représentent la moitié de l'une des quatre catégories d'informations SMPTE (heures, minutes, secondes ou images par seconde) tandis que les bits 4 à 6 (nnn) précisent de quelle catégorie et de quelle moitiè il s'agit.


Est-ce que cela peut répondre à ta question?

#8 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 934 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 01 avril 2013 - 09:53

Rebonjour

D'après mes calculs sur une journée de 10 heures j'ai 1200 cycles de 30 secondes, si j'arrive à régler mon cycle très précisément (à 20ms près difficile de faire mieux!) j'ai à la fin de ces 10 heures 24 secondes de décalage!


Pourquoi difficilement mieux ? Tu peux faire mieux ! surtout si tu connais précisément la durée de ta vidéo ! En travaillant avec un contrôleur cadencé en 40MHz tu peux être précis au 0,1 ms près même mieux ! Il suffit juste de faire un calcul !

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#9 ChristianR

ChristianR

    Membre passionné

  • Membres
  • PipPipPip
  • 474 messages
  • Gender:Male
  • Location:Isère (38)
  • Interests:Arduino, programmation, électronique...

Posté 01 avril 2013 - 10:43

Pour rester simple, enregistrer un petit bip sonore court et basse fréquence peu audible sur la bande son.
A récupérer par l'Arduino qui resynchronise l'ensemble juste une fois par cycle à chaque lancement.
Christian

#10 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 934 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 01 avril 2013 - 11:50

Pour rester simple, enregistrer un petit bip sonore court et basse fréquence peu audible sur la bande son.
A récupérer par l'Arduino qui resynchronise l'ensemble juste une fois par cycle à chaque lancement.

Ah oui j'y avais pas penser mais cela est une très bonne idée pour du recalage =) Par contre je continu de dire que pour 10H de fonctionnement ce n'est pas réellement nécessaire .

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#11 yorobotlucas

yorobotlucas

    Membre

  • Membres
  • 22 messages

Posté 01 avril 2013 - 12:30

Chapeau Christian

#12 Davidc.

Davidc.

    Membre

  • Membres
  • 11 messages

Posté 01 avril 2013 - 12:55

Pour rester simple, enregistrer un petit bip sonore court et basse fréquence peu audible sur la bande son.
A récupérer par l'Arduino qui resynchronise l'ensemble juste une fois par cycle à chaque lancement.



Merci Christian pour cette piste

Donc si je comprends bien il me suffit d'enregistrer un bip basse fréquence correspondant au début de ma séquence lorsqu'elle lie en avant, puis un autre à la fin de la séquence lorsqu'elle lie en arrière?
Etant donné que ma séquence est diffusée en palindrome (boucle avant arrière) et que cela correspond avec un aller retour du moteur?

Lecture de A à B de la séquence - puis lecture de B à A

#13 Davidc.

Davidc.

    Membre

  • Membres
  • 11 messages

Posté 01 avril 2013 - 01:03

Ah oui j'y avais pas penser mais cela est une très bonne idée pour du recalage =) Par contre je continu de dire que pour 10H de fonctionnement ce n'est pas réellement nécessaire .



Bonjour Mike 118

Et merci pour suivre cette conversation

Donc pour toi il est possible avec un contrôleur cadencé en 40MHz de synchroniser le tout, pour moi c'est une super nouvelle!
Je me pose juste la question de la subdivision en vidéo d'une seconde en 25 images et comment transformer cette durée en milliseconde?

#14 yorobotlucas

yorobotlucas

    Membre

  • Membres
  • 22 messages

Posté 01 avril 2013 - 01:09

C'est peut etre hors sujet mais........................

http://www.lextronic.fr/P1890-module-de-reconnaissance-video-cmucam4.html

#15 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 934 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 01 avril 2013 - 01:31

Bonjour Mike 118

Et merci pour suivre cette conversation

Donc pour toi il est possible avec un contrôleur cadencé en 40MHz de synchroniser le tout, pour moi c'est une super nouvelle!
Je me pose juste la question de la subdivision en vidéo d'une seconde en 25 images et comment transformer cette durée en milliseconde?


Je pense que je n'ai pas compris la question ... Sinon je dirais tout simplement qu'une seconde c'est 1000 millisecondes ...
ou qu'une image dure 40 millisecondes à l'écran...

Si tu connais précisément ton nombre d'image ... il n'y à vraiment pas de problèmes ...

Au moment ou tu appuis sur play pour ta vidéo ça lance le cycle de ton servo-moteur en boucle... Si tu ne fais pas d'erreur de calcul sur le temps que prennent tes opérations tu ne devrais même pas avoir à faire de recalage ;)

Par contre moi je garde l'idée de l'ultrasons dans un coin de ma petite tête car c'est une super idée qui peut être appliquée dans différents cas ! =)

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#16 Davidc.

Davidc.

    Membre

  • Membres
  • 11 messages

Posté 01 avril 2013 - 01:33

C'est peut etre hors sujet mais........................

http://www.lextronic.fr/P1890-module-de-reconnaissance-video-cmucam4.html



Bonjour YOROBOLUCAS

Merci pour ton lien je viens de le lire
Il y a peut-être une solution par ce biais la mais cela me parait assez complexe dans la mesure où c'est une fabrication destinée à la reconnaissance vidéo.

Merci quand même!

#17 Davidc.

Davidc.

    Membre

  • Membres
  • 11 messages

Posté 01 avril 2013 - 03:58

Je pense que je n'ai pas compris la question ... Sinon je dirais tout simplement qu'une seconde c'est 1000 millisecondes ...
ou qu'une image dure 40 millisecondes à l'écran...

Si tu connais précisément ton nombre d'image ... il n'y à vraiment pas de problèmes ...

Au moment ou tu appuis sur play pour ta vidéo ça lance le cycle de ton servo-moteur en boucle... Si tu ne fais pas d'erreur de calcul sur le temps que prennent tes opérations tu ne devrais même pas avoir à faire de recalage ;)/>

Par contre moi je garde l'idée de l'ultrasons dans un coin de ma petite tête car c'est une super idée qui peut être appliquée dans différents cas ! =)



oui tu as raison je vais travailler dans ce sens pour voir dans un 1er temps comment cela fonctionne je te tiens au courant

Encore merci!!!




0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users