Prise de vue

Carte multi-camera

multicam

Prise en main

Pour tester simplement la carte, plusieurs méthodes :

  1. depuis un script Python

  2. depuis la ligne de commande

Pré-requis

  • l’installation matérielle de la carte comme illustrée dans cette vidéo

  • l’activation de l’interface I2C :

    • soit via sudo raspi-config (→ choisir “Yes” dans le menu Interface Options  I2C)

    • soit par édition du fichier /boot/config.txt en ajoutant la ligne suivante (ou en retirant le symbole de commentaire ‘#’ situé devant) :

      dtparam=i2c_vc=on

      L’activation du bus I2C nécessite de redémarrer la Raspberry Pi

  • l’installation du package i2ctools

    sudo apt-get update
    sudo apt-get install i2ctools

Langage Python

On peut utiliser le script Python fourni sur le dépôt Github officiel de la cartelink

Source Python
AdapterTestDemo.py
import RPi.GPIO as gp
import os

gp.setwarnings(False)
gp.setmode(gp.BOARD)

gp.setup(7, gp.OUT)
gp.setup(11, gp.OUT)
gp.setup(12, gp.OUT)

def main():
    print('Start testing the camera A')
    i2c = "i2cset -y 1 0x70 0x00 0x04"
    os.system(i2c)
    gp.output(7, False)
    gp.output(11, False)
    gp.output(12, True)
    capture(1)
    print('Start testing the camera B')
    i2c = "i2cset -y 1 0x70 0x00 0x05"
    os.system(i2c)
    gp.output(7, True)
    gp.output(11, False)
    gp.output(12, True)
    capture(2)
    print('Start testing the camera C')
    i2c = "i2cset -y 1 0x70 0x00 0x06"
    os.system(i2c)
    gp.output(7, False)
    gp.output(11, True)
    gp.output(12, False)
    capture(3)
    print('Start testing the camera D')
    i2c = "i2cset -y 1 0x70 0x00 0x07"
    os.system(i2c)
    gp.output(7, True)
    gp.output(11, True)
    gp.output(12, False)
    capture(4)

def capture(cam):
    cmd = "libcamera-still -o capture_%d.jpg" % cam
    os.system(cmd)

if __name__ == "__main__":
    main()

    gp.output(7, False)
    gp.output(11, False)
    gp.output(12, True)

Ce script s’appuie sur la version “BullsEye” de Raspberry Pi OS.

Pour une version antérieure de l’OS, remplacer libcamera-still par raspistill dans la définition de la fonction capteur(cam).

Ligne de commande

On peut réaliser l’équivalent du script précédent depuis la ligne de commande.

Exemple pour prendre une photo depuis la caméra ‘A’
# Prise de contrôle des broches 4, 17, 18 des GPIOs
$ sudo echo "4" > /sys/class/gpio/export
$ sudo echo "17" > /sys/class/gpio/export
$ sudo echo "18" > /sys/class/gpio/export
# Configuration des broches 4, 17, 18 des GPIOs en sortie
$ sudo echo "out" > /sys/class/gpio/gpio4/direction
$ sudo echo "out" > /sys/class/gpio/gpio17/direction
$ sudo echo "out" > /sys/class/gpio/gpio18/direction
# Sélection de la caméra '`A`'
$ sudo i2cset -y 1 0x70 0x00 0x04
$ sudo echo "0" > /sys/class/gpio/gpio4/value
$ sudo echo "0" > /sys/class/gpio/gpio17/value
$ sudo echo "1" > /sys/class/gpio/gpio18/value
# Prise du cliché
$ libcamera-still -o cliche-camera-A.jpg
# Libération des broches 4, 17, 18 des GPIOs
$ sudo echo "4" > /sys/class/gpio/unexport
$ sudo echo "17" > /sys/class/gpio/unexport
$ sudo echo "18" > /sys/class/gpio/unexport

🞄  🞄  🞄