Developpez.com - Raspberry Pi

Le Club des Développeurs et IT Pro

Apprendre à monter un support de caméra motorisé et programmable pour réaliser un time-lapse avec Raspberry et Arduino

Un tutoriel de Spencer O.

Le 2016-11-20 13:22:39, par f-leb, Responsable Arduino et Systèmes Embarqués


Voici un nouveau tutoriel pour les amateurs de Raspberry Pi et Arduino :

Un support de caméra motorisé et programmable pour réaliser un time-lapse
Où que vous alliez, réalisez de stupéfiantes animations image par image en ultra accéléré avec Raspberry Pi et Arduino
Le faible encombrement, la consommation d'énergie minime et un module caméra de grande qualité font du Raspberry Pi une plate-forme idéale pour capturer des photos et réaliser un time-lapse, un effet d'animation image par image en ultra accéléré sur de longues durées. Dans ce projet, nous utiliserons une carte Arduino Uno pour contrôler le mouvement du module caméra du Raspberry Pi et déclencher les captures d'images.

Au sommet du montage, le support de caméra motorisé suivant deux axes pan et tilt.
La longueur des câbles doit être suffisante pour ne pas gêner le mouvement du support.

Bonne lecture, et vous aussi, n'hésitez pas à contribuer en proposant vos réalisations avec Raspberry Pi

La rubrique Raspberry Pi : cours, tutoriels, FAQ, livres, forum...

Les meilleurs cours et tutoriels pour apprendre les systèmes embarqués
  Discussion forum
7 commentaires
  • Delias
    Modérateur
    Bonsoir à vous deux

    Les servos ont un dead-band de 1µs et un angle de travail de 180° sur 1ms de variation de pulse ce qui met la µs à environ 1/6ème de °. Il effectue un déplacement de 1° par image.
    Donc la solution mixte soft et hard du Pi doit être dans les clous.

    Maintenant sur la vidéo on voit bien des saccades dans le mouvement. Difficile de dire si c'est le support qui n'est pas stable, ou si un phénomène de stick and slip est présent (qui affect en premier les mouvement utilisé ici).

    Bonne soirée

    Delias
  • Delias
    Modérateur
    Bonsoir

    Merci pour le tutoriel (ou faut-il dire la traduction?)

    Par contre ce qui m'étonne c'est que pour cela il faut un Raspberry et un Arduino.
    Je suis conscient que l'Arduino n'arrive pas à gérer la caméra (cela reste un 8bits), mais le Pi n'est pas capable de gérer le truc au complet?

    Bonne soirée

    Delias
  • f-leb
    Responsable Arduino et Systèmes Embarqués


    Peut-être à cause des deux servos, il n'y a qu'une seule sortie PWM hardware sur le Pi.
  • Auteur
    Expert éminent sénior
    Selon toi, le démultiplexage de la sortie PWM (1 sortie TTL pour la sélection du moteur et la sortie PWM) aurait pu être possible ?
  • Delias
    Modérateur
    Bonsoir à vous deux

    @f-leb: J'avais pas fait attention au specs en détails. Je me coucherais moins bête.
    @Auteur: Je ne pense pas, car les deux signaux pour les servos doivent être générés en permanence.

    Maintenant sur un microcontrôleur (comme les Atmel, les PIC et les DSP) on a une interruption déclenchable à chaque période du PWM. En incluant dans cette interruption l'alternance du signal de contrôle du multiplexage, l’alternance de la valeur de consigne du PWM et en doublant la fréquence du PWM cela devrait fonctionner. Mais est-ce réalisable avec le Pi

    Merci à vous deux

    Delias
  • f-leb
    Responsable Arduino et Systèmes Embarqués
    Il y a bien la solution PWM de façon logicielle sur deux broches du Pi, mais peut-être que la précision n'est plus assez suffisante pour un time-lapse.

    On peut envisager un driver PWM (à base de PCA9675) : https://www.adafruit.com/product/815, dont le prix avoisine celui de l'Arduino

    Mais je viens de découvrir qu'on peut aussi générer du PWM via DMA (15 channels) (https://www.raspberrypi.org/forums/viewtopic.php?f=44&t=36572), une solution semi-matérielle avec une précision d'1 microseconde.

    Bon... avec une Arduino plus besoin de se poser la question, c'est sûr...
  • Auteur
    Expert éminent sénior
    Envoyé par f-leb
    Mais je viens de découvrir qu'on peut aussi générer du PWM via DMA (15 channels) (https://www.raspberrypi.org/forums/v...44&t=36572), une solution semi-matérielle avec une précision d'1 microseconde.
    La documentation indique :
    With RPIO.PWM you can use any of the 15 DMA channels and any number of GPIOs per channel.
    Je ne comprends pas trop. On peut utiliser n'importe quelle sortie avec un maximum de 15 ?