Bonjour,
Je suis débutant en python et je désire apprendre ce langage dans le cadre d'un projet pour lequel je n'ai pas trouvé de solution à mon goût (utilisation de la camera HQ du Raspberry pi). j'arrive à faire ce que je recherche en écrivant des petits scripts à l'aide du module "picamera" mais la camera étant fixée sur le Raspberry pi (c'est la solution la plus simple que j'ai trouvé, en en sachant qu'elle est susceptible d'être montée sur différents appareils : microscope trinoculaire, loupe ou télescope ...), j'aimerais m'affranchir d'un maximum de câbles (notamment le câble HDMI) et éviter de devoir passer par une solution type VNC. En plus, je trouve qu'à l'usage, lancer manuellement un script pour "voir ce que je fais", un autre pour "prendre une photo" et un autre pour "enregistrer une vidéo", sans compter la récupération des fichiers obtenus pour les utiliser sur une autre machine, les renommer avec le type d'observation effectuée, la date et les caractéristiques de l'appareil utilisé, etc. ... devient vite laborieux ! J'ai donc pensé à une interface graphique et me suis vite persuadé (à tort ?) que le plus simple pour bosser en local (sur le Raspberry pi) comme en distant (pour le moment, je n'envisage que du "distant" en réseau local, mais je suppose que s'il est justifié, l'accès par Internet ne doit pas être ce qu'il y a de plus compliqué à faire en routant le bon port sur la bonne machine si l'accès en réseau local marche ...), le plus simple donc, était de développer une interface web (plutôt qu'un client spécifique) dans laquelle le remplissage de différents champs (que je pense situer dans une colonne à droite de la page) me permettraient de passer les paramètres requis par l'utilisateur à mes scripts pendant qu'une vue dans la colonne de gauche renverrait un direct de l'image reçue (redimensionné en 640 X 480 par exemple) cliquable, pour avoir une vue dans un nouvel onglet, ainsi qu'un direct de l'image retraitée (zoom d'une partie de l'image, incrustation d'une échelle, prétraitement de flats (correction du vignettage et des assombrissements induits par poussières présentes sur le trajet optique).
Déjà, première question : Est-ce que ça vous semble cohérent de faire une appli web par rapport à ce genre de contraintes (par opposition à un client dédié par exemple, ou autre-chose que je ne connais pas ...) ?
Ensuite, j'ai fait des recherches, et je suis tombé sur plein de frameworks (micro ou pas) pour python, j'en ai retenu 3 (mais le choix n'est que limité à ce que j'ai pu identifier à mon humble niveau) :
- Django : C'est le plus utilisé mais il a l'air d'avoir la réputation d'être plus complexe à mettre en œuvre que les autres pour un débutant, est-ce une réputation justifiée ? Dans le cadre d'un projet que je souhaiterai laisser libre, il me semble qu'un bon départ soit de choisir un framework populaire et qui aura la possibilité d'y apporter des fonctionnalités auxquelles je n'ai pas pensé par la suite, mais n'est-ce pas trop ambitieux pour un débutant ?
- Flask : Ça a l'air pas mal, mais pour une raison obscure, je n'ai même pas réussi à faire ponctionner le premier script de la doc en faisant du copier/coller, c'est mal barré, je suis vraiment un gros débutant, tout seul dans son coin !
- Bottle : Là, ça marche nickel, j'arrive à afficher des pages et à les bricoler un peu
Après, je ne sais pas si les 3 (et surtout les deux derniers qui semblent être plus "simples" que Django) sont capables de faire des pages dynamiques et de renvoyer des paramètres remplis ou sélectionnés par l'utilisateur à mon script, mais je me dis que c'est quand même la base en 2021 (bonne année !). Aussi, je n'ai pas l'ambition de faire tout de suite du responsive, mais je me dis qu'une fonctionnalité intéressante serait de pouvoir aussi y accéder depuis un smartphone ou une tablette (d'ailleurs, je pense qu'il sera intéressant de proposer une option pour que le Raspberry pi soit serveur DHCP de son propre réseau Wifi en utilisation nomade, mais on sort du sujet framework qui m’intéresse ici ...).
Que pensez-vous de ma sélection, vers quoi m'encouragez-vous à m'orienter en sachant que je ne suis pas en mode "je ménage mes efforts" et suis OK pour investir du temps dans ce projet (tout est relatif, mais je pense pouvoir y consacrer un vingtaine d'heures par mois) ?
Merci de vos retours et, encore une fois, meilleurs vœux pour 2021 !
Partager