Binome2017-7 : Différence entre versions

De Wiki de bureau d'études PeiP
(Séance du 15/02/2018)
Ligne 78 : Ligne 78 :
 
Adresse IP : 172.26.145.177/24
 
Adresse IP : 172.26.145.177/24
  
 
+
== '''Création Page Web Raspberry PI pour le contrôle de Bob''' ==
 
== '''Séance du 01/02/2018''' ==
 
== '''Séance du 01/02/2018''' ==
  

Version du 16 février 2018 à 16:50

Imagination et conceptualisation du robot

Séance du 15/01/2018

Découverte du projet et des objectifs.

Après quelques hésitations j'ai choisi de construire un robot prédateur. Celui-ci sera un robot télécommandé grâce a une application sur téléphone mobile avec une structure extérieure contenant certains éléments imprimés a l'aide d'une imprimante 3D. Pour réaliser cela je vais me focaliser sur la programmation de l'ordinateur miniature Raspberry Pi 3 et de l'impression 3D. je vais donc utiliser une carte Arduino Mega préalablement réalisée et je concevrai le bouclier de cet Arduino pour le rendre le plus adapté a mon projet.

MATÉRIELS:

Carte Raspberry Pi 3 -Batterie Raspberry- Camera 
Arduino Mega, récepteur infra-rouge, sonar, contrôleur moteurs ,servomoteur
Moto-réducteurs et 2 roues et quartz, micro-contrôleurs ATMega328p , contrôleur de moteurs TB6612FNG, LED infra-rouge
3 plaques de plexiglas Imprimante 3D


Séance du 16/01/2018

Mise au clair de mes idées, forme générale du robot , les différentes taches a effectuer et la visualisation de plusieurs vidéo expliquant la manipulation de divers composants dont j'ignorais le principe de fonctionnement exact.

Pour avoir une idée de la taille de mon robot final, j'ai du élaborer une liste complète des éléments qui seront sur mon robot et leurs dimensions : Dim.png

J'ai ensuite énuméré les étapes et les choses a réaliser :
  - Créer un Shield pour l'arduino
      * utilisation de logiciel fritzing pour sa conception 
  - Comprendre le fonctionnement de la liaison Arduino/Raspberry
  - Partie Mécanique : * découpe laser des plaques de plexiglas en fonctions du câblage etc ...
                       * impression 3D des parties nécessaires
                       * Faire ma tour avec ses composants ( utiliser un tube en PVC et y passer les câbles? ) 
  - Partie Informatique : * Écrire un code sur IDE Arduino pour contrôler les éléments
                          * Faire en Javascript les relations de commandes entre Raspb et Arduino 
                          * Créer une ' application' sur le téléphone pour contrôler le robot

Travail sur le Shield Arduino

Séance du 18/01/2018

Réalisation du Shield. pendant cette séance j'ai compris le fonctionnement des entrées et sorties de l’Arduino et leurs fonctions, j'ai également appris a manipuler le logiciel fritzing avec lequel j'ai confectionné mon shield d’Arduino. Je me suis basée sur la carte qui nous a été fournie tout en la modifiant pour qu'elle s'adapte a mon projet et aux différents éléments sur mon robot


Séance du 19/01/2018

Finalisation et mise en forme de mon shield pour l'optimiser au maximum ( faciliter le travail de la machine lors de la gravure de ma carte , me faciliter le travail lors de la soudure des différents éléments,...)


PCB12.png


Séance du 22/01/2018

Apport des dernières modifications sur le shield puis son export sous format GEBER pour l'envoyer vers la machine Attention!! Il faut ajouter au PCB un 'plan de masse' grâce au commandes Routing -> Ground fill -> Copper fill bottom pour que la machine puisse reconnaître les parties distinctes sur la carte. On obtient alors un PCB prêt a graver.

PCBfinal.png

Je suis ensuite allée,accompagnée du prof, vers la machine de gravure (une machine très impressionnante!!) pour procéder a la gravure des PCB.Pendant ce temps le prof nous a expliqué le fonctionnent globale de la machine , comment l'utiliser , ses différentes fonctionnalités et les étapes requise pour aboutir a une carte fonctionnelle


GravurePCB.png

Raspberry PI

Séance du 25/01/2018

Pendant cette séance je me suis pencher sur la partie informatique et programmation de ma raspberry pi et de mon arduino. En effet cette partie est l'une des plus importantes de ce projet.

Mon but final est de pouvoir contrôler a distance mon robot a l'aide de mon téléphone.pour cela je m'aiderai d'une raspberry pi et d'une camera pi.je dois donc mettre en place une application ou une page web ou je pourrais visualiser simultanément la vidéo envoyée par la camera et les boutons de commandes du robot.

Ayant jamais manipuler ou programmer une rapsberry, cet objectif est donc un véritable challenge. Pour le relever j'ai commencer par essayer de comprendre comment se faisait la connexion en série entre l'arduino et la raspberry, voir si il y avait des applications mobiles déjà faites que je pourrais utiliser... .

Après quelques recherches je m’aperçois qu'il existe plusieurs applications de visualisation de 'streaming' , d'autre de contrôle , mais aucune réunissant les 2 comme je le souhaitais. ceci implique que je serai donc obligée de la créer moi même (chose a la fois réjouissante et effrayante).

j'ai donc passer cette journée a regarder et lire des tutoriels expliquant la liaison série et le B-A-BA de la programmation de l'arduino et de la raspberry.


Séance du 29/01/2018

Travail sur la raspberry en suivant le protocole qui nous a été fourni sur la page de la saison 2017/2018 du bureau d’étude. Adresse IP : 172.26.145.177/24

Création Page Web Raspberry PI pour le contrôle de Bob

Séance du 01/02/2018

Compréhension de la création et du fonctionnement de la page Web . J'ai téléchargé le fichier Webserial.zip en copiant l'adresse URL du fichier sur internet puis avec la commande "wget adresse" sur le terminal de la raspberry puis j'ai " unzip Webserial.zip" dans le répertoire pi

Séance du 09/02/2018

Création de ma page web pour le contrôle de mon robot après avoir appris les bases du codage HTML (insertion d'images, éventements "onclick"sur une image... ) et j'ai élaboré le code suivant:

   Fichier:Boutons.zip
  <img src="right.png" alt="right button" onclick="sendMessage(8);">
  

pour affecter a une image un événement onclick. cet événement est le déclenchement de la fonction sendMessage(data) qui en utilisant le Websocket va assurer la transmission des commandes entre l'interface internet et l'arduino (voir le code jserial.html)

Web1 0.png

Séance du 15/02/2018

J'ai mis en place ma RaspiCam en suivant ce tutoriel Raspicam Setup et tester le fonctionnement de la camera en Streaming. Pour cela j'ai donc installer sur ma raspberry la fonction motion

 apt-get install -y libjpeg62-turbo libjpeg62-turbo-dev  libavformat-dev  libavcodec-dev  libavutil-dev libc6-dev    zlib1g-dev libmysqlclient18 libmysqlclient-dev libpq5
 apt-get install motion

 apt-get update
 apt-get upgrade

Après quelques réglages de problèmes de droits d'administrateurs j'ai d'abord tester la raspicam en prenant une photo en utilisant "raspistill -o image.jpg" puis une vidéo avec "raspivid -o video.h264 -t 10000" pour une vidéo de 10 secondes et enfin j'ai tester le streaming en direct de la camera en tapant l'adresse 172.26.145.177:8081 sur un navigateur web. il faudra intégrer cette visualisation en direct sur le code de ma page 'control.html' pour avoir l'interface web que j'imagine. Même si ce streaming est fidèle a la réalité (bonne qualité de résolution) il est en revanche très lent. Donc si je ne peut pas régler se problème je serai obligée d’équiper mon robot de capteurs IR pour détecter sa proie.

RaspiCam.jpg