Projet Nivot Célia et Sarrato-Boudet Charlie

Publié le lundi 7 décembre 2020 08:21 - Mis à jour le lundi 1 mars 2021 09:47

Intitulé du projet :

Programmation de géolocalisation et caméra

Eventuellement sur un robot

Composition du groupe : Nivot Célia et Sarrato-Boudet Charlie

Descriptif du projet :

Programmer un robot qui se déplace et qui puisse être géolocalisé. (idée initiale)

Programmer un raspberry géolocalisé qui prend des photos à l'aide une webcam et qui récupère donc la localisation gps et la photographie. (idée finale)

 

 

 

SEANCE 1 : prise en main de la géolocalisation

On s'est connectées sur un raspberry, on a récupéré l'ip de la machine (petit écran) : 10.254.0.14 et on a "pingé" son ip avec l'ordi d'adresse ip : 10.23.17.23 et ça a marché. Donc ils font partie du même réseau.

On s'est connectées avec l'ordi en ssh sur le petit écran.

ssh pi@ipraspberry

On a regardé si dans le raspberry il n'y avait pas déjà un fichier qui code la carte GPS. On en a trouvé et on les a donc copiés sur notre session. (ci-joint, le fichier gps qui a fonctionné)

ls -gps

Cependant on n'a pas réussi a récupéré des données gps car l'antenne était a l'intérieur et n'était pas déroulé donc la prochaine fois on essaiera de mettre l'antenne dehors.

SEANCE 2 : On essaye de faire fonctionner ce qu'on a cherché la dernière fois.

On a cherché a retrouver le fichier dans le raspberry et on a mis l'antenne dehors (sur le rebord de la fenêtre) donc ça devrait fonctionner.

history

sudo systemctl start gpsd

ps aux|grep gpsd

sudo cgps -s

Mais ça n'affiche pas les données du GPS (les câbles sont mals connectés donc pour l'instant nous n'avons aucune données) voir doc ci dessous pour reconneter les cables

On a commencé a regarder comment faire fonctionner la caméra (sans succès), il faudra la faire fonctionner avec "mjpeg" (apparemment déjà dans le raspberry) donc on continuera à la prochaine séance.

SEANCE 3 :

pour démarrer le gps :  sudo gpsd /dev/ttyAMA0 -F /var/run/gpsd.sock

pour consulter les données cgps -s

pour la webcam : webcams/mjpg-streamer/

./start.sh &

Le gps a donc fonctionné et on a pu acceder à la caméra en tapant sur un navigateur http://10.254.0.14:8080 et on a pu voir ce que la caméra filmait. On a aussi essayer de capturer ce que la vidéo filmait pour faire une photo mais on n'a pas réussi donc on a demandé sur discord comment faire. On s'en occupera à la prochaine séance en attendant la réponse.

On a aussi pris des photos du raspberry qu'on mettra en ligne.

SEANCE 4 : (sans Célia et avec les élèves de Champolion)

On a téléchargé fswebcam et on l'a utilisé pour capturer l'écran avec la commande fswebcam nomdelaphoto.jpg

Ensuite on l'a récupéré sur notre session dans un autre terminal avec la commande

scp pi@10.254.0.14:~/test2.jpg .

Puis on a recupéré les dossiers dans mes documents.

Pour nous aider pour faire le bouton on cherche sur internet raspberry button input et on va utiliser le premier lien.

On a modifié le fichier bouton.py pour avoir une photo quand on appuie sur le bouton, l photo va dans le dossier "image" du raspberry et se nomme en fonction de la date et l'heure. On a aussi modifié le progrmme pour le relier a camillegpslast.py pour récupérer la latitude et longitude de quand on a pris la photo. 

Dans la console on note python bouton.py pour utiliser le programme. 

Dans les dossiers on fait ctrl L puis on note ssh://pi@10.254.0.14 pour voir les documents du raspberry.

SEANCE 5 :

On a refait fonctionner le programme bouton.py et essayé de le modifier de façon a ce qu'il fonctionne sans être connecté en ssh au raspberry mais ça n'a pas fonctionné. Il faudra qu'on le modifie de façon a ce qu'il soit un programme deamon. (qui tourne en permanence) Il faudra tout de même lancer le gps pour que ca fonctionne.

On voulait aller prendre des photos dehors pour voir si ça fonctionne mais à causedu problème qu'on a rencontré on le fera plus tard.

SEANCE 6 : (sans Célia)

On a installé screen sur le raspberry pour que le programme bouton.py continue de tourner sans être en réseau.

->screen -S nomdelasession (dans ce cas là "charlie")

          ->python bouton.py

          ->ctrl a puis d (pour se détacher de screen)

->exit (pour quitter le ssh)

->appuyer sur le bouton (2 tentatives)

-> se reconnecter en ssh sur le raspberry

->ls image/ (pour verifier que les photos ont bien été prises)

On a alimenté le raspberry avec une pile puis verfié que ça fonctionne toujours puis on a connecté screen comme pendant le test, on s'est détachés, puis on a retiré le ssh ensuite on s'est deconnectés du réseau.

Avec Paul on est partis prendre des photos dans le couloir du 3ème étage puis dans la cours mais la pile était vide donc ça n'a pas fonctionné. On va réessayer avec un panneau solaire.

Ca n'a pas fonctionné avec le panneau solaire. On essayera peut être de mettre des petites led pour voir quand on peut apuuyer sur le bouton ou pas.

SEANCE 7 :

recap :

lancer gps : sudo gpsd /dev/ttyAMA0 -F /var/run/gpsd.sock

cgps -s

lancer webcam (nouveau) : cd webcams/mjpg-streamer/

./start.sh &

ctrl C

pour sortir de la webcam : cd ..

cd ..

on ouvre le programme ProjetCamGPS.py avec la commande : python ProjetCamGPS.py &

le & sert a le laisser ouvert.

appuyer sur le bouton pour tester.

On a connecté une batterie avec panneau solaire, on va debrancher le réseau et tester de prendre des photos dehors.

Ca fonctionne. On va donc regarder comment fonctionne le programme ProjetCamGPS.py pour bien le connaitre et savoir l'expliquer. De plus nous allons tenter de créer un programme qui lance le gps, la camera et le programme ProjetCamGPS.py au demarrage du raspberry.

Commandes pour utiliser screen : https://doc.ubuntu-fr.org/screen

 

le point (Yves Dhenain)

Donc ok pour

  • le gps (lancement du daemon et lecture
  • la capture d'image (fswebcam)

J'ai ajouté un bouton poussoir sur le montage,  objectif, appuyer sur le bouton :

  • prendre une photo
  • lire es données gps
  • enregistrer les photos sur le disque dur
  • dans un fichier enregistrer l'emplacement de l'image, les coordonnées gps (latitude, longitude, haltitude)

On pourra gérer le tout avec un TAD

la documentation pour l'usage du client gpsd https://gpsd.io/client-howto.html

Il y a plusieurs difficultés ici:

la mesure doit être accessible (antenne déployée ou pas .)

le programme doit pouvoir tourner en mode autonome (pas de commande manuelle , juste bouton)

il faut manager plusieurs actions indépendantes et les ordonner :

lire les mesures

prendre une photo

enregistrer l'ensemble

éventuellement indiquer à l'utilisateur ou on en est par un témoin lumineux.

D'où le choix logique du thread

https://fr.wikibooks.org/wiki/Programmation_Python/Les_threads

 

 

Pièces jointes

À télécharger

 / 1
Catégories
  • nos projets