mai-juin 2020
Quand j’ai appris l’existence de cette petite caméra, par un mail de l’enseigne commerciale Kubii, je l’ai commandée dans l’instant.
Les raisons sont multiples. La première étant probablement qu’après de longues semaines de confinement, j’avais besoin de quelque chose de neuf à entreprendre. La caméra est beaucoup plus chère que les précédentes (62 euros avec les frais de port), mais deux mois sans dépenses de carburant, sans achats d’impulsion dans les magasins, me l’offraient généreusement.
Hasardeux : risqué, périlleux, un pari hasardeux est celui où l’on risque fort de perdre.
Elle est très petite et propose une définition assez élevée : 8 Mo.
Le capteur IMX219 de Sony a une diagonale de 4,6 mm et les photo-sites mesurent 1,12 x 1,12 micromètres, ce qui est très peu. Conséquence : la dynamique est faible et cette caméra n’est utilisable, en astronomie, qu’avec des sujets très lumineux tels que la Lune. Faire de la longue pose est impossible : au-delà de 10 secondes, on entre dans l’inconnu.
Autre sujet de contrariété : la caméra (version 2) que j’ai achetée était pourvue d’un tout petit objectif qu’il fallait extraire (à ses risques et périls) pour pouvoir l’utiliser avec des focales plus longues.
Conséquences :
En fait, cette caméra me semble peu adaptée à nos usages, même s’il est intéressant de “s’y frotter” pour apprendre… et devenir très modeste.
Le capteur IMX290 de Sony est utilisé par divers fabricants de caméras et il jouit d’une bonne réputation.
Exemple de caméra fabriquée avec ce capteur.
Prix ~400 euros. Diagonale du capteur : 6,44 mm. Les photo-sites mesurent 2,9 micromètres de côté. Les temps de pose sont suffisants.
La somme est beaucoup plus importante, mais on dispose d’un objet fini robuste, facile à brancher sur une lunette ou un télescope (même si les adaptateurs sur objectifs photo sont chers), fourni avec des logiciels.
Deux reproches sont souvent fait à cette gamme de caméra :
Le capteur IMX477 est peu documenté sur internet.
Le format de l’image se rapproche du carré. Diagonale du capteur : 7,8 mm et les photo-sites mesurent 1,55 micromètres de côté. L’image maximale possible a une définition de 12 Mpixels, ce qui est beaucoup trop pour des sujets peu éclairés.
En mode binning
x2 (en groupant 4 pixels pour en simuler un seul), on génère une image de 3 Mpixels et on a des photo-sites équivalents de 3,10 micromètres de côté.
Le temps de pose maximale accessible serait de 200 secondes, ce qui me semble acceptable. Voir ceci.
Ce sont d’autres possibilités, mais aussi d’autres prix et aussi quelques contraintes liées à la mécanique.
Dans le tableau c-dessus sont regroupés quelques éléments relatifs aux capteurs cités.
Nous faisons l’hypothèse que l’efficacité pas élément de surface est la même pour chacun d’eux, c’est à dire que 10 photons (par exemple) frappant une même suface génèreront un même nombre d’électrons.
Il en découle que plus la surface d’un photo-site est grande, et plus il capturera d’électrons.
La ligne rapporté à
traduit le fait que l’on a pris la surface d’un photo-site du premier capteur comme unité.
La ligne binning x2
montre ce qui se passe si l’on groupe les pixels par quatre.
En résumé : sous réserve de faire du binning, l’IMX477 se rapprocherait de l’IMX290.
À priori il n’est pas sûr que cette caméra pourra donner des résultats valables pour nos types d’usages.
En plus de l’achat de la caméra, il faut ajouter une carte Raspberry Pi, ce qui, compte-tenu de divers compléments (carte SD pour le sytème, alimentation, boîtier… ) conduit à un minimum de 120 euros pour la caméra + une carte Raspberry Pi type 3 B.
D’un autre côté, c’est la possibilité de réaliser un démonstrateur et d’apprendre beaucoup de choses sur ce qu’est une caméra et comment on peut la piloter.
Dans l’idéal, on pourra collecter des images intéressantes en suivant une voie originale.
La carte électronique est beaucoup plus large que celle de la précédente. Elle est pourvue de raccords métalliques comportant des filletages.
Il n’y a pas d’optique et une bague complémentaire permet de visser des objectifs à la norme C
ou CS
Un dispositif de mise au point fine, sur quelques millimètres est incorporé dans le montage. Ce qui diminue beaucoup le prix de revient réel si on envisage d’utiliser la caméra sur les montures avec une mise au point médiocre. (la mise au point fournie permettant de parfaire la mise au point).
Une bague de conversion parmettant de passer des objectifs C à CS est fournie, ainsi qu’un bouchon anti-poussière.
(Schéma relevé dans le “Camera Guide officiel des caméras Pi”).
Un cable plat permet le branchement sur une carte Pi.
Ce dispositif a permis de limiter les coûts de fabrication, mais à l’usage présente des inconvénients :
Deux types d’instruments optiques seront utilisés :
Compte-tenu du fait qu’il s’agit d’une expérimentation, on souhaite limiter les coûts autant que possible.
Un raccord mouture C ou CS
vers 1.25 pouces coûte quelques euros.
Une adaptation C ou CS vers Nikon ou Canon coûte entre 30 et 50 euros : c’est trop cher. On a choisi ici d’utiliser un bouchon arrière d’objectif, coûtant quelques euros, de le percer puis de le serrer entre la Base
et la bague Raccord C-CS
.
Cela donne :
Avant d’aller plus loin, il faut s’arrêter sur un point important : qu’est-ce qu’une caméra astronomique d’amateur ?
Regardons cette image qui rassemble deux vues sur une même caméra, de façon a montrer l’avant et l’arrière (la marque a été effacée) .
Elle comporte les éléments 1 et 2 ainsi qu’une électronique qui convertit les charges électriques en informations numériques. Mais tout le reste est absent.
Le micro-ordinateur est une carte Raspberry Pi, dans un boîtier. Comme elle inclut un port RJ45, des ports USB, du Wifi et de Bluetooth, les relations avec l’ordinateur extérieur seront possibles.
Voici un exemple de montage associant les parties 1 à 4.
On remarquera quatre ports USB ainsi que le port RJ45 (pour brancher un cable “internet”).
Il sera possible de bricoler un système de refroidissement par effet Peltier… Mais nous n’en sommes pas là.
Cet article, illustré de nombreuses photographies donne à voir l’objet caméra. On y trouve aussi des indications sur la façon de la défilter (ce qui est dangereux…).
Utilisation de la caméra avec un zoom Nikon. Cet article est le compte-rendu d’une expérimentation réelle. Comme il n’embellit pas les choses, sa lecture est vivement conseillée.
Le projet initié par une fondation britannique avait pour ambition de mettre à la disposition de chacun, pour une somme modique (de l’ordre de 20 euros) un ordinateur monocarte avec lequel se former à la programmation.
L’article de Wikipedia présente la famille Raspberry Pi (souvent appelé Raspi
ou simplement le Pi
).
La gamme de prix s’étend actuellement de 10 à 60 euros et le dernier né, le Pi 4 est une machine puissante dotée de 4 Go de mémoire vive.
La carte utilisée pour l’expérimentation décrite ici est le Pi 3 B
, pourvu de 1 Go de mémoire vive.
C’est un véritable nano ordinateur, de la taille d’une carte de crédit, doté de 4 ports USB, d’un port RJ45 (pour mettre un cable réseau), d’un branchement HDMI (pour brancher un écran), d’une sortie son, ainsi que d’un port particulier flêche blanche
pour brancher la caméra Pi. On remarque également deux rangées de connecteurs simples pour brancher des composants extérieurs (et l’ingéniosité humaine a produit beaucoup de petits dispositifs intéressants et souvent économiques).
Cette caméra ne peut se brancher que sur ce type de port et il a été écrit précédemment qu’elle n’était pas aussi autonome qu’une vraie caméra astro (mais beaucoup moins chère aussi).
Les Pi utilisent un véritable système d’exploitation, très performant et complet mais libre et gratuit : Linux
. Il s’ensuit que l’on peut y installer de nombreux programmes, y compris ceux que l’on a codés soi-même, si l’on veut adapter le mode de fonctionnement de la caméra à ses choix personnels.
Pas de disque dur : le système et les fichiers créés (photographies par exemple) sont contenus dans une carte micro SD flêche rouge
. Cela a une conséqunce pratique intéressante : une fois que l’on a réalisé une configuration qui “marche bien”, il est possible de cloner toute la puce micro SD pour la sauvegarder, mais aussi pour la donner à autrui, lui épargnant des apprentissages difficiles. On peut ainsi fournir une configuration “clé en main”, tout en respectant les rêgles de la propriété intellectuelle.
Lors de l’annonce de la sortie de la nouvelle caméra, il a été écrit que toutes les cartes Pi pouvaient convenir.
J’ai choisi d’utiliser la 3 B parce que j’en avais une de disponible. Sinon j’aurais acheté une carte Pi 4 avec 2 Go de mémoire, parce que son prix ne me semble pas excessif et qu’elle offre plus de puissance et de mémoire que la 3 B.
Elle va être beaucoup sollicitée, si l’on fait beaucoup de photos. L’idéal est d’en avoir deux, la seconde étant le clone de la première (sans les photos). En cas de malheur on n’aura pas à tout reconfiguer.
16 Go est un minimum. La vitesse de lecture / écriture est importante.
Ils ne sont pas présents dans la boîte de la caméra mais sont fournis avec le système ou librement téléchargeables.
Tous sont des logiciels en ligne de commande.
Sont disponibles :
Un logiciel pour réaliser des vidéos : raspivid
.
Un logiciel pour prendre des photos en JPEG : raspistill
.
L’équivalent pour prendre des photos en mode 10 ou 12 bits : raspiyuv
.
Une bibliothèque de fonctions en langage Python permettant de recoder selon ses propres préférences.
Des projets de développement indépendants existent aussi… mais c’est très flou pour moi actuellement.
Dans les pages qui suivent nous allons présenter différentes modalités d’utilisation de l’ensemble caméra + Pi en donnant des exemples de façon à vous permettre de vérifier que vous avez compris.
Cela représente beaucoup de rédaction (et de lecture), mais on ne peut s’en dispenser.
Il s’agit d’une déclinaison de Linux spécialement adaptée au Pi. On l’appelle Raspian
.
La précédente version de Raspian s’appelait Etcher
. La version actuelle s’appelle Buster
. Pour les cartes Pi 3 ou 4, il faut utiliser Buster
.
Se rendre à cette adresse et cliquer sur le bouton de téléchargement.
Pour préparer la carte micro-SD, utiliser ce support.
Machine éteinte introduire la carte système dans son emplacement. Brancher le Pi sur un écran (ou un poste de télévision avec port HDMI), un clavier, une souris. Brancher l’alimentation électrique. Le pi démarre.
Attention : certains supports présents sur internet présentent l’ancienne version de Raspian. La lecture conseillée ici se rapporte à Buster
.
Lire ceci et en tenir compte. Ne pas oublier de cocher les cases autoriser ssh et autoriser caméra. Noter le mot de passe et ne pas l’égarer. Sur ma machine, j’ai choisi raspi
et c’est ce code que j’utiliserai par la suite.
Remarque : le fond d’écran de Raspian Buster est facile à identifier. Si le vôtre est différent, c’est que vous avez chargé Etcher
, auquel cas l’écran de configuration sera différent.
Nous allons commencer par cela parce que, du point de vue informatique, c’est le plus simple.
dongle
qui est fourni avec dans un des ports USB du Pi. Sinon brancher le cable du clavier dans le port USB.La machine démarre et, au bout d’un temps variable selon la puissance de la carte, l’écran d’accueil s’affiche.
Dans le coin haut-gauche, repérer le rectangle noir qui symbolise le terminal
de Raspian.
Cliquer dedans, cela ouvre une fenêtre noire appelée terminal
. (cette fenêtre peut se fermer avec la souris). Dans le terminal
, repérer un petit rectangle blanc : c’est l’emplacement où nos frappes clavier vont être visualisées.
Il est temps de regarder la vidéo suivante
(elle couvre plusieurs sujets dont le chargement de la distribution etcher
de Raspian. C’est un peu fouillis, mais en français, les offres sont peu nombreuses).
Si vous comprenez l’anglais, ceci est plus ciblé. Si vous ne le comprenez pas, baissez le son et regardez les images, c’est tout de même plus évocateur que mes lignes de texte.
Attention : le fond d’écran est celui d’ etcher
mais cela ne change pas grand chose.
Au clavier taper ls
puis appuyer sur la touche Entrée.
Bravo ! vous venez d’exécuter votre première commande. Et elle a modifié l’affichage, en listant le contenu du répertoire courant.
Chez moi, cela a donné :
Desktop Downloads mu_code Public testsPython
Documents image.jpg Music siril video.h264
dossier.jpg MagPi Pictures Templates Videos
Sur votre machine certains noms vont se retrouver.
Maintenant presser la touche flêche haute
du clavier et regardez le terminal : la commande ls
est “remontée” et on peut à nouveau la jouer. C’est très important à savoir : sous Linux on peut rappeler une commande déjà tapée, même trois jours après, cela évite des saisies laborieuses.
Dans le terminal, taper raspi
puis pressez la touche Tab
(éventuellement plusieurs fois).
Ce que nous venons de faire signifie la chose suivante : Eh, l’ordinateur, propose-moi la liste des programmes que tu contiens dont le nom commence par raspi
Il nous renvoie la liste suivante :
raspi-config raspistill raspividyuv
raspi-gpio raspivid raspiyuv
Le programme qui permet de prendre les photos s’appelle raspistill
, alors ajoutons s
derrière raspi et retapons la touche Tab
.
Cette fois, il n’y a plus d’ambiguité : raspistill
est le seul des noms proposés qui contient raspis
, alors le mot se complète tout seul soit raspistill
, derrière lequel nous ajoutons -t 0
suivi de Entrée
raspistill -t 0
puis Entrée
.Une image s’affiche alors, formée par l’objectif.
Il faut maintenant effectuer la mise au point avec l’objectif.
Quand cela est fait Contrôle C
pour interrompre l’affichage.
Rappeler la commande par flêche haute.
La modifier de façon à obtenir :
raspistill -t 1000 -o image.jpg
Ce qui signifie…
raspistill
: prendre une photo,-t 1000
: mais avant laisser passer 1000 millisecondes (soit une seconde),-o image.jpg
: et l’enregistrer sous le nom de image.jpg.Vous avez sans doute remarqué que l’on n’a pas précisé de temps de pose : la caméra s’est débrouillée pour faire au mieux.
Ceci étant, nous pourrions effectuer le réglage de façon très précise… mais ce serait trop pour le moment.
Rappeler ls
.
Dans la liste des fichier doit figurer image.jpg
.
Voilà à titre d’exemple une image de cerisier faite avec cette commande (image réduite) en utilisant un objectif de 55 mm de focale, tenu à la main.
Nous avons montré que l’on pouvait prendre une photo, en utilisant la ligne de commande.
Cela étant, avec écran, les alimentations électriques… on ne sera pas à l’aise sur le terrain.
Il faut trouver autre chose.
Le lien suivant contient des indications pour la “caméra d’avant”, mais ce n’est pas gênant : les démarches sont les mêmes. En plus, il contient des exemples.
La syntaxe des commandes est la suivante :
commande paramètres -o fichier à enregistrer
Le paramètre -o
en minuscule et sans séparation entre le - et le o) signifie output
c’est à dire “sortie vers”.
raspistill
Quelques paramètres usuels :
t
délai en millisecondes avant que la photo ne soit prise.-w
largeur de l’image (maxi : 4056). Choisir des valeurs de 4056 divisé par 1, 2, 3, 4,…-h
hauteur de l’image (maxi : 3040). Choisir des valeurs de 3040 divisé par 1, 2, 3, 4,…-q
qualité (de 0 à 100).-e png
force l’image en qualité png c’est à dire sans compression.ss
suivi d’une durée en micro secondes. Valeurs de 0 à 200000000 : durée de la pose (de très très peu à 200 secondes).Exemple :
raspistill -t 1000 -w 1014 -h 760 -e png -o globe.png
Soit : attendre 1 seconde avant de prendre une photo de 1014 x 760 pixels, en qualité png, et enregistrée sous le nom de globe.png.
raspistill -t 1000 -w 1014 -h 760 -e png -ss 5000000 -o ciel.png
Soit : attendre 1 seconde avant de prendre une photo de 1014 x 760 pixels, en qualité png, posée pendant 5 secondes et enregistrée sous le nom de ciel.png.
Exemple : la photo globe.png
raspivid
Quelques paramètres usuels :
-n
sans visualisation pendant la prise.-w et -h
comme pour raspistill (largeur et hauteur)fps
nombre d’images par secondes. Attention : si l’on prend une valeur élevée, il faut un éclairement puissant.-t
durée de l’enregistrement en millisecondes.-o monfichier.h264
nom du fichier à enregistrer.Exemple :
raspivid -w 640 -h 480 -t 5000 -o test.h264
Soit : Filmer une vidéo durant 5 secondes, au format 640x480, en permettant la visualisation pendant la prise de vue et l’enregistrer sous le nom de test.h264.
Vidéo capturée :
Avant d’aller plus loin, je voudrais attirer votre attention sur là où ça coince.
L’argent magique, je ne sais pas si cela existe, ne l’ayant jamais rencontré… mais l’information magique… cela n’existe pas.
Pour prendre une photo (réussie…), il faut effectuer la mise au point.
Dans le cas qui nous concerne, nous ne voulons pas avoir à transporter un écran d’ordinateur (ou de télévision) sur le terrain, même si nous venons de montrer qu’il est possible, ainsi, de viser et prendre des photos.
Il faut donc “déporter” la visée sur un écran annexe : celui d’un ordinateur portable (appelé par la suite ORD) ou tablette / smartphone (appelé par la suite SP).
Image reproduite de puis ce site
Ce qui suit va donc consister à brancher un “tuyau” entre “le Pi+caméra” et ORD (ou SP).
Quelle devra être la taille minimale du “tuyau” ?
Cela dépend.
Pour simplifier, disons que nous prenons des images de 4000 * 3000 pixels.
Chaque pixel étant codé en trois couleurs, cela fait 4000 * 3000 * 3 = 36 000 000 octets ou 36 Mo (si chaque couleur peut prendre 256 valeurs différente, c’est à dire qu’elle est codée sur un octet).
Si l’on veut faire la mise au point, imaginons que nous voulions recevoir à l’écran une image nouvelle tous les 1/10 ème de seconde(de façon à ce que le résultat de la mise au point soit renouvelé tous les 1/10 èmes de secondes).
Cela signifie que chaque seconde, il va falloir faire circuler 36 Mo * 10 = 360 Mo.
C’est beaucoup d’information, vraiment beaucoup. Et, pour la “véhiculer”, il faut installer un gros tuyau entre la source et la cible.
En plus, comme l’information doit circuler, il va falloir installer une “grosse pompe”.
En langage informatique, cela s’appelle un réseau. Ce réseau va, comme internet, utiliser le protocole TPCP/IP. ??? Pas de panique : vous l’utilisez tous les jours. Cela signifie que chaque machine devra avoir une adresse numérique (qu’il nous va falloir entrer à la main -> configuration).
Ce réseau doit pouvoir fonctionner à la maison (en bénéficiant de “l’aide” (silencieuse) de la box) ou en rase campagne (sans aucune aide).
Le tuyau sera :
“Le Pi+caméra” est doté d’une puce wifi qui suffit en situation classique.
Mais l’expérience montre qu’utilisé comme “tuyau”, il n’offre pas un débit suffisant.
Si l’on veut pouvoir utiliser SP, il faut ajouter un “dongle” amplificateur de wifi (c’est à dire en identifier un bon, le sélectionner, le payer, le recevoir).
Avec ORD, on peut expérimenter le cable, dont on connaîtra le débit à priori… mais qui se révèle raide et qui a tendance à s’accrocher partout.
Nous allons lister les choses qui marchent un peu, pas du tout, bien (???)
Voir image précédente
Les ports réseaux acceptent au moins un débit d’un méga bits seconde" (Mb/s).
Cela veut dire quoi ?
Un méga bits = 1 000 000 / 8 = de l’ordre de 100 000 octets par seconde.
Nous avons calculé plus haut que notre image 4000 x 3000 en trois couleurs représentait 36 000 000 octets.
En comparant ces deux valeurs, on comprend pourquoi il est difficile d’avoir un affichage fluide : le tuyau ne suffit pas.
Il y a diverses normes pour les cables ethernet et il existe de ports très rapides. Encore faut-il que les machines utilisées (Carte Pi et ordinateur) le permettent.
Le Pi 3B+ autorise un débit de 315 Mb/s. voir En refaisant le même calcul : 315 000 000 / 8 = de l’ordre de 40 000 000 octets par seconde.
Et là, notre image peut circuler en entier, sans compression en une seconde.
La carte Pi 4, dispose d’un port 1 Gigabits par seconde. Soit : 1 000 000 000 / 8 = de l’ordre de 100 000 000 octets.
Dans ce cas, on peut faire passer presque trois images non compressées en une seconde… seulement si de PC cible a un port aussi performant (et si on a acheté un cable correspondant à cette norme).
Cela étant, on ne va pas tout racheter. Mais pour quelqu’un qui décide de se lancer, sans stock de carte disponible, un Pi 4 avec 2 ou 4 Go de mémoire serait peut-être un bon choix… sur le PC associé va bien… ou si le PC cible est un autre Pi 4… Mais c’est une autre histoire.
On m’avait appris que le cable devait être croisé. Mais à lire les supports sur le net, il semblerait qu’un cable droit, plus facile à trouver, conviendra aussi.
Les machines (ORD et/ou SP) qui accèdent aux service de la Box
de la maison, que ce soit par wifi ou par cable réseau, constituent avec elle ce que l’on appelle un réseau privé.
La Box
communique avec l’extérieur en utilisant des adresses “de dehors” et communique avec les appareils de la maison avec des adresses privées. Placée entre les deux types de réseaux, elle a également une fonction de protection (si elle est bien paramétrée).
Pour ce qui nous intéresse, les adresses privées commencent toujours par 192.168.
Selon le fournisseur (Orange, Bouigues, SFR, Free), la valeur suivante est 0 ou 1. Par exemple chez Free, les adresses commencent par 192.168.1.
La valeur numérique qui suit, comprise entre 0 et 254 étant l’adresse “personnelle” de la machine. Dans un même réseau, deux machines ne doivent pas avoir la même adresse.
Celle avec laquelle je tape ce texte possède en ce moment l’adresse 192.168.1.128
Mais cette adresse est changeante : elle est affectée par la box à l’ordinateur au moment de la connexion. (mécanisme appelé DHCP).
Important
Il existe une adresse réservée : celle de la box (appelée passerelle ou gateway
).
Chez Free, l’adresse est 192.168.1.254 Il ne faut surtout pas la donner à une des machines.
Imaginons-nous à Jeu-les-Bois. Ma Box
ne va pas envoyer une adresse à mon ordinateur portable ni au Pi : c’est trop loin.
Or, sans adresse TCP/IP
nous ne parviendrons pas à faire communiquer les deux machines, même si elles sont reliées par un cable.
Cela choque votre bon sens ? En fait l’échange de données numériques repose sur l’application de règles de connection, de transmission, de vérification que ce qui a été transmis est bien conforme à l’original.
Conséquence : nous allons donner une adresse fixe (constante) à chacune des deux machines, utilisable sur le “terrain”, et qui soit compatible avec les adresses de la Box
. Il s’agit d’un choix à priori, qui ne repose peut-être sur rien de rationnel ?
Exemple pour Free :
Box
.Dans ce qui suit, nous allons expliquer comment nous faisons pour affecter les adresses :
Menu / Paramètres
Cliquer sur la case encadrée en jaune.
Connection filaire / Onglet Identité.
L’adresse MAC est un identifiant unique affecté à la “carte réseau”. Le programme le détecte tout seul. Ne pas modifier cette valeur.
Connection filaire / Onglet IPv4
Repérer les zones importantes (entourées de jaune).
Cocher Manuel : la connection par cable ne se fera pas par DHCP (via la box), mais c’est nous qui initialisons cette adresse il n’y aura pas à refaire cette manipulation à chaque fois.
Adresses
Là où il y a 192.168.1.12 entrer 192.168.1.14
Masque de réseau : 255.255.255.0 (un seul zéro).
Je n’ai pas pu tester. Voir à cette adresse.
Par chance, j’ai trouvé sur une page en ligne quelque chose de simple, alors que ce que l’on trouve le plus souvent utilise des saisies difficiles à faire pour un débutant sous Linux.
Comment faire?
Une fois que le système a été écrit sur la carte, celle-ci comprend deux parties (on dit partitions). L’une d’elle s’appelle boot
, ce qui signifie : zone de démarrage (en anglais boot désigne les bottes et un jeu de mot des informaticiens d’il y a longtemps, prétendait qu’avant de démarrer on mettait ses bottes…).
Si vous explorez cette zone (avec le gestionnaire de fichier de Windows, Linux ou MacOS) vous verrez un fichier appelé cmdline.txt
.
cmdline.old
, cela fera une copie de sauvegarde à récupérer si nos manipulations causent trop de troubles.Et ajouter le texte suivant (mais rien d’autre : pas d’espaces à la fin, de double espace, de retour chariot, de majuscules, rien que cela)
rootwait ip=192.168.1.100
Puis enregistrez le fichier.
Connectez les deux machines (ORD et Pi) et démarrez-les. Elles sont en condition de “se parler”, même loin d’une box.
ssh
permet de prendre le contrôle du Pi+caméra à distance.
On peut le faire via le wifi ou via le cable réseau présenté plus haut.
Cette page présente les différents cas : Windows, Mac OS, Linux.
Dans le cas de l’exemple présenté ici, la commande sera :
ssh pi@192.168.1.100
En retour la machine demandera le code d’accès.
Ici : raspi
Le système actuel Raspberry PI OS
(autrefois appelé Raspian) est disponible, en 32 bits seulement (pour le moment) sous deux “conditionnements” :
Raspberry Pi OS (32-bit) with desktop
, accompagnée de nombreux logiciels usuels (dont Gimp et Libreoffice). C’est la version à installer si l’on veut utiliser le Pi 3 et plus encore Pi 4 comme un ordinateur de Bureau.Raspberry Pi OS (32-bit) Lite
, sans bureau et sans les logiciels habituels. Beaucoup plus compacte, cette version convient bien si l’on veut transformer son Pi en serveur ou en compagnon de la caméra Pi.C’est cette version qui nous intéresse ici.
Les deux versions peuvent être téléchargées depuis cette page..
Une page en français pour expliquer comment l’on crée une carte système à partir de ce que l’on a chargé.
Le système “Lite” ne démarre pas en mode graphique et le plus grand nombre sera incapable de configurer le réseau, même en démarrant avec un écran, clavier, souris.
Il faut Impérativement effectuer le paramétrage du wifi et du port éthernet avant de démarrer la machine.
Pour cela, nous allons placer la carte mémoire dans un lecteur de carte mémoire micro SD (par exemple celui-ci et modifier certains fichier en étant en mode “super utilisateur” (cas de Linux… pour Windows je ne sais pas si c’est nécessaire).
Je vous invite à vous reporter plus haut dans cette page au chapitre 6.2.3. Inscrire une adresse fixe dans le Pi.
C’est fort bien expliqué ici..
Autrement dit : il faut modifier le fichier /etc/wpa_supplicant/wpa_supplicant.conf
en introduisant le texte ci-dessous.
En fait, si ce fichier contient quelque chose, le mieux sera de l’effacer et de copier-coller ce qui suit.
country=fr
update_config=1
ctrl_interface=/var/run/wpa_supplicant
network={
scan_ssid=1
ssid="nomDeLaBox"
psk="cléDeSécurité"
}
Bien entendu, il faut remplacer “nomDeLaBox” et “cléDeSécurité” par vos propres valeurs.
Modifier, enregistrer, puis introduire cette carte mémoire dans le Pi.
Le Wifi permettra de mettre à jour la carte mémoire et d’ajouter de nouveaux logiciels.
Le port éthernet (cable réseau) permet de passer des commandes depuis le PC (ou le Mac ou un autre Pi).
Les prix des objets du monde Raspberry Pi sont relevés depuis le catalogue de la marque Kubii, mi-juin 2020 mais aussi sur le site de vente en ligne Amazon.
Il existe d’autres importateurs et les prix sont susceptibles de varier.
Des frais de port sont à prévoir, et il peut être avantageux de réunir plusieurs objets dans la commande, plutôt que d’acheter un objet après l’autre.
Achat de la caméra : 56,80 euros.
ou Carte Pi 4 avec 2 Go de mémoire : 39,90 euros
La dernière de la liste, plus rapide et avec deux fois plus de mémoire est à préférer. Attention au cable d’alimentation, la norme ayant changé en passant au Pi 4 (norme USB-C).
Exemple du boîtier officiel : 5,95 euros
Exemple avec ce boîtier : l’ensemble Pi+caméra Pi est fixé sur le porte oculaire d’une lunette courte.
Alimentation pour Pi 4 : 8,90 euros.
Refroidisseurs…
… regroupant boîtier, alimentation, cables, refroidissement… attention : pour Pi 4
Ensemble Bruphny : 20,99 euros
Exemple de dépense :
Ils permettent de relier Pi+caméra aux objectifs photo et/ou aux lunettes et télescopes.
Exemple d’un revendeur chinois : moins de 10 euros
La page d’accueil, traduite de façon automatique donne les informations suivantes :
RPi Cam Web Interface est une interface Web pour le module de caméra Raspberry Pi. Il peut être utilisé pour une grande variété d’applications, notamment la surveillance, l’enregistrement dvr et la photographie en accéléré. Il est hautement configurable et peut être étendu avec l’utilisation de scripts de macro. Il peut être ouvert sur n’importe quel navigateur (smartphones inclus) et contient les fonctionnalités suivantes:
REMARQUE IMPORTANTE: Ceci est uniquement pour la caméra Raspberry Pi. Il ne prend PAS en charge les caméras USB.
Il a été programmé par silvanmelchior en tant que client pour RaspiMJPEG en 2013. Depuis lors, grâce à l’aide de nombreux autres programmeurs, il est devenu la meilleure interface pour contrôler la RPi Cam sur votre navigateur.
Chargez la page et demandez la traduction automatique.
Dans les lignes qui suivent, je vais attirer votre attention sur quelques points qui me semblent importants.
J’ai procédé de la façon suivante :
ssh pi@192.168.1.100
et répondre raspi
à la demande de mot de passe.Pour utiliser le logiciel, depuis votre PC ou Mac ou autre Pi, lancez l’exécution de votre navigateur habituel et entrez l’adresse IP du Pi. Chez moi : http://192.168.1.100:80
Exemple de résultat obtenu, en intérieur avec un objectif Pentacon de 135 mm de focale (le taille-crayon est posé à deux mètres de là).
La page qui s’affiche comprend deux parties :
Jouer à prendre quelques images par record images
et une vidéo par record vidéo start
(puis arrêt par record video stop
).
Dans la partie A de l’interface, repérer le bouton Download Videos and Images
. Cliquer dedans.
On obtient une nouvelle interface (traduite ici automatiquement).
Possibilité ici de visionner, sélectionner (cas à cocher) récupérer ( obtenez Zip
), supprimer.
… to be continued…
Les caméras PI (et ceci est vrai pour les trois générations de caméras : la 1 : 5 méga octets, la 2 : 8 méga octets et la 3, appelée HD : 12,3 méga octets) ne sont pas des appareils photo numériques élaborés par les ingénieurs d’une grande marque.
Ce sont des objets qui exploitent au mieux, en fonction des compétences des codeurs, des composants standards élaborés pour d’autres usages : capteurs pour smart phones, caméras de surveillance urbaine ou routière…
Nous représentons une toute petite “niche” et les “codeurs fous” qui ont adapté ces caméras à nos usages ont fait de leur mieux, compte-tenu des contraintes, même si les choix faits peuvent troubler nos habitudes.
Ayons aussi à l’esprit un fait surprenant pour un photographe : les caméras n’ont pas d’obturateur. Conséquence : à partir du moment où on les active, elles capturent continuellement l’information.
Une photo n’est alors qu’un flot d’électrons générés entre deux repères temporels…
Le logiciel standard de capture d’images fixes fourni par “la communauté Pi” s’appelle raspistill
.
C’est un logiciel en ligne de commande, dont on adapte le comportement en complétant son appel par des paramètres représentés par des signes (lettres, signe -, nombres).
Quelques repères en français pour utiliser raspistill1, avec des exemples que vous pouvez expérimenter.
Point important : la caméra a besoin d’un temps “de chauffe” (d’initialisation) avant de pouvoir capturer une image. Pour cela, il faut toujours inclure le paramètre -t
suivi d’une durée en millisecondes (au moins 2000).
Pour obtenir les données RAW
, il faut ajouter le paramètre -r
ou --raw
à ceux déjà souhaités pour obtenir l’image.
De façon très déroutante, raspistill -t 2000 --raw -o monfichier.jpg
ne génère pas deux fichiers, mais un seul fichier (avec l’extension JPG) qui contient deux paquets de données :
On peut supposer que c’est le choix d’un codeur qui ne voulait pas générer deux séries de fichiers : une série JPG et une série RAW.
Noter aussi la ressemblance (partielle) avec les fichiers FITS qui peuvent contenir plusieurs séries de données sous un seul nom.
Deux photos ont été prises, selon les paramètres suivants :
RPI Cam Control
.raspistill -t 2000 -w 1024 -h 768 -o jepg.jpg
raspistill --raw -t 2000 -w 1024 -h 768 -o jepg_plus_raw.jpg
La seconde image est visualisable ici :.
Remarquer son “poids” : 18 mégaoctets, très excessif pour une image de 1024 pixels de large. Remarquer aussi l’affichage quasi instantanné : l’outil de visualisation à trouvé le piquet d’arrêt et n’a pas eu à charger tout le fichier.
Remarque on utilise ici la commande Linux ls
qui liste les fichiers d’un répertoire (équivalent sous windows, Dos : dir).
ls *jpg -l
: commande demandant le listage de tous les fichiers dont le nom se termine par jpg
.
Réponses : 413292 Jun 15 08:27 jepg.jpg
et 19122758 Jun 15 08:27 jepg_plus_raw.jpg
On peut imaginer plusieurs étapes :
Partant d’une référence des caractéristiques du capteur IMX4772, relevons le nombre de photo-sites dans le sens de la longueur et de la largeur.
Longueur | Largeur |
4056 | 3040 |
Utilisons des variables, selon la logique du langage Python :
w = 4056
: Longueur en nombre de pixels
h = 3040
: Largeur en nombre de pixels
nbpix = w * h
Nombre total de pixels = 12330240
(nous retrouvons les 12.3 mégapixels annoncés).
raw = 18709466
Nombre d’octets pour les données RAW.
Que vaut raw / nbpix
?
Réponse : 1.5173643011003841.
Commentaires :
Nous retrouvons bien le codage sur 12 bits promis par le descriptif.
codage RGB
des JPEG ou autres. On n’a pas encore effectué la “débayérisation”.8 bits puis 8 bit puis 8 bits puis 8 bits
… et qu’ici il a fallu, ici, organiser le stockage de façon à ce qu’un octet récupère, périodiquement le demi (octet) qui permet de coder sur 12 bits. Par exemple 8 bits puis 8 bits puis 4 bits + 4 bits
L’ensemble des personnes qui utilisent les cartes Raspberry Pi et leurs accessoires constitue une population particulière.
Ces cartes sont des objets pour les programmeurs, les expérimentateurs, les personnes attirées par le codage et l’environnement Linux.
Les informations, les échanges sur les manipulations “pointues” sont à rechercher dans la documentation appelée readthedocs
et sur les forums d’échange. La contrepartie étant qu’il faut pouvoir y passer du temps et lire un minimum d’anglais (même si les traducteurs automatiques aident beaucoup). On n’est pas ici un client privilégié (avec un gros compte en banque) et la devise est d’abord “aide toi le ciel t’aidera”.
La dernière version de readthedoc3 , à ce jour, porte le numéro 1.13.
Elle comprend plusieurs chapitres appelés “recipes” (recettes) et les Advenced_Recipes4 incluent un chapitre détaillé consacré aux Captures de données brutes_Bayer5
Pour lire les documentations techniques en anglais, j’utilise le navigateur libre Chromium qui peut être paramétré pour la traduction automatique du texte qui s’affiche. Ce n’est pas parfait, mais j’ai plus de facilité ainsi.
Pour comprendre le texte, il faut remplacer dans sa tête le paramètre raw
par bayer
.
Le texte se rapporte aux données RAW obtenues avec les caméras 1 (appelée ici module V1) et 2 (appelée ici module V2). Il n’y a rien sur la caméra 3, mais on supposera que les logiques adoptées se ressemblent.
Extraits :
Les données brutes de Bayer diffèrent considérablement des simples captures non codées; ce sont les données enregistrées par le capteur de l’appareil photo avant tout traitement par le processeur, y compris la balance des blancs automatique, la compensation de vignette, le lissage, la réduction d’échelle, etc. Cela signifie également:
On trouve, dans Readthedoc un exemple détaillant les différentes opérations à effectuer successivement pour extraire les données Bayer et les “démosaïcer”. Cet exemple est adapté aux capteurs des caméras Pi 1 et 2, mais pas encore à celui de la caméra HD.
La prochaîne version sera peut-être adaptée ? À suivre.
Cité depuis Wikipedia : dcraw (prononcé di-ci-ro) est un logiciel libre de décodage de fichiers de photographiques numériques au format brut, tels que fournis par le capteur photographique, et que l’on trouve sur appareil photographique reflex numérique, et parfois sur certains hybrides ou compacts. Voir article de Wikipedia DCRAW6
C’est un logiciel libre, ce qui signifie que son code est ouvert, modifiable.
Comme il n’incluait rien permettant de travailler sur les données des caméras Pi, un programmeur compétent a codé un complément qui permet de le faire.
Commencer par le paragrapĥe Re: High Quality Camera RAW Examples Sat May 23, 20Re
Dcraw est un logiciel en ligne de commande, dont on lance l’exécution par :
./dcraw des options ... fichier.jpg
Exemple avec une image réelle :
Partant de cette image qui inclut à la fois les données JPEG
et les données RAW
, j’ai exécuté la commande suivante :
./dcraw -T -6 -W -r 3.0 1.0 1.49 1.0 -g 1 1 jepg_plus_raw.jpg
Signification des paramètres :
-T -6
: générer une image au format TIFF 16 bits-W
: représentation linéaire (pas de correction par histogramme)-r 3.0 1.0 1.49 1.0
définit la balance des blancs (l’équilibre des couleurs). On pourra faire varier ces paramètres, mais au risque de travestir les couleurs de la scène. Chaque boîtier de marque a sa (ses) propre balance des blancs. Ici, je ne la connais pas et ai pris les valeurs données dans l’exemple.-g 1 1
réglage du gamma. Les valeurs prises ici sont totalement arbitraires. Les boîtiers photo utilisent des « normes prédéfinies ». Par exemple la norme BT.709 : -g 2.222 4.5 qui est loin des 1 1 passés ici.Importation de l’image dans Gimp 2.10
Cette version sait importer le TIFF 16 bits. Cela donne :
Importation avec SIRIL 0.99.2
Pas de problème non plus avec les données 16 bits.
Deux points sont acquis :
Dcraw
.Nous avons vérifié qu’il était possible d’importer dans SIRIL
les images obtenues ainsi, comme nous le faisons avec celles de notre APN.
Une utilisation de la caméra Pi HD, pour des poses comparables à ce que nous faisons avec notre APN, semble possible.
Suite envisagée
Et si l’on faisait le binning x2
avant d’importer les images dans SIRIL ? Pour gagner de l’espace disque, on pourrait imaginer la logique suivante :
Python 3
à écrire). On pourra en profiter pour enregistrer les résultats dans des fichiers FITS
directement importables par SIRIL
.La rédaction et la publication des “aventures avec une caméra pi HD” génère quelques questions auxquelles je m’efforce de répondre de façon la plus exacte possible.
Voir feuille de calcul (elle est accessible à l’adresse suivante).
Explications sur les lignes et colonnes. Ligne dimension : côté du photo-site supposé carré. Ligne surface : la dimension supérieure élevée au carré.
On prend ensuite comme unité la surface du photo-site de l’IMX219 : 1,2544 et on divise tous les nombres de la ligne “Surface” par cette valeur :
Cela permet de constater que, à supposer que le rendement quantique de ces capteurs soit le même, un pixel de D500 génèrera 14 fois plus d’électrons que l’équivalent sur la caméra Pi 2 (IMX219).
En gros : tout le monde ne joue pas dans la même cour.
Le seul avantage de la caméra Pi 3 (IMX477) est que l’on peut prolonger la pose jusqu’à 200 secondes (en théorie) et que, par binning, on puisse “grossir” artificiellement les pixels.
Reprenant alors la comparaison avec le D500, le rapport de surface n’est plus que de 7,66 / 14,06 alors que je suis limité à 30 secondes de pose avec mon boîtier (sauf Bulb…). Peut-être le moyen de rétablir une forme d’équilibre ?
On aurait alors deux avantages (???) :
Le prix à payer étant le faible champ. Mais, pour quelques études (à définir après réflexion), ce n’est pas forcément un désavantage.
Pour certains sujets lumineux (la Lune) : la finesse de définition du capteur (sans binning) sera un avantage par rapport aux gros pixels type Nikon ou Canon. Plus besoin de Barlow (à vérifier, bien-sûr).
Combien de temps temps peux-tu poser au maximum ?
Le capteur de la caméra fait 12 Millions de pixels, 4 millions de plus que mon Canon 350D, sont-ils plus performants, tout en sachant que l’on peut le passer en binning 2 ?
Le raspberry Pi est il programmable sur un autre système d’exploitation que Linux ?
Comment est il alimenté ?
Mon propre raisonnement :
1. Combien de temps peux-tu poser au maximum ?
D’après la documentation officielle vers le premier tiers de la doc, zone avec des caractères gras “Camera Version Max(microsecondes)” : 200000000 (i.e. 200s)
C’est à dire 200 secondes.
Cela étant, c’est la valeur maximale possible (celle d’un compteur bloqué), ce qui ne signifie pas que c’est exploitable avec certitude.
2. Le capteur de la caméra fait 12 Millions de pixels, 4 millions de plus que mon Canon 350D, sont ils plus performants, tout en sachant que l’on peut le passer en binning 2 ?
Je n’ai aucun élément fiable pour te répondre.
Cela étant, si tu regardes le document joint, tu repéreras une ligne pour le 350D : la taille du pixel et ce qui est dans la colonne intitulée "QE**". Soit : 6,4 micromètres et 27%
Le QE** peut être considéré comme le “rendement” du capteur : il restitue, sous forme d’électricité, 27% de l’énergie lumineuse reçue.
Si tu regardes vers le bas du tableau (l’EOS RP par exemple) tu verras que le “rendement” est de 68%. C’est normal : capteur très récent et haut de gamme.
Le capteur du 350D est ancien et, depuis, de gros progrès ont été fait sur l’efficacité.
Si le capteur de la caméra est récent, son efficacité pourrait être double de celle du capteur de ton Canon…
Mais… la surface de chaque photo-site de celui-ci est beaucoup plus grande…
En fait, on saura, à la fin de l’expérimentation.
3. Le raspberry Pi est il programmable sur un autre système d’exploitation que Linux ?
Oui.
On en cite quelques-uns ici en oubliant android et Risc OS.
J’ai testé Linux (Raspian) qui fonctionne bien et Risc OS, plus léger et rapide, mais plus limité (il n’utilise qu’un seul coeur du processeur).
Pour essayer Windows, je crois que le Pi 4 avec Go de Ram serait le meilleur choix… mais 60 euros pour une solution peut-être bancale, est-ce un bon choix ?
Une remarque (importante de mon point de vue) : Le système est un gros logiciel qui “s’occupe” de toute la quincaillerie (la partie matérielle de l’ordinateur).
Pour “causer” avec un composant (un port USB ou la caméra) il a besoin que quelqu’un écrive un “adaptateur” (on utilise le terme de pilote).
Dans le cas de Raspian, la fondation Raspberry Pi se charge d’écrire les pilotes (et détermine quels composants seront sur la carte).
Mais dans le cas d’Android, de Windows… qui va faire ce boulot ? Probablement personne.
Ce qui fait que, si tu as l’intention d’utiliser la caméra Pi… tu n’auras d’autre choix que Linux.
4. Comment est il alimenté ?
Trois solutions :
À la maison
Sur le terrain :
5. Un jour, peut elle remplacer la caméra astro du marché ?
Je n’ai pas de réponse. L’expérience servira de juge de paix.
Sur la Lune le petit capteur du Pi ne donnera qu’une partie de l’image, mais elle sera beaucoup plus fine que celle du Canon … si la turbulence ne s’en mêle pas.
raspistill: http://sammy76.free.fr/raspberry/camera.php/↩
IMX477: https://www.gophotonics.com/products/cmos-image-sensors/sony-corporation/21-209-imx477/↩
readthedoc: https://picamera.readthedocs.io/en/release-1.13/↩
Advenced_Recipes: https://picamera.readthedocs.io/en/release-1.13/recipes2.html#bayer-data/↩
brutes_Bayer: https://picamera.readthedocs.io/en/release-1.13/recipes2.html#raw-bayer-data-captures/↩