Binome2017-6

De Wiki de bureau d'études PeiP


Vidéo HD


Robots communicants : proies et prédateurs

Chasse.jpg

Introduction

L'objectif est de réaliser un robot communicant sur le modèle de proies et prédateurs.

Notre choix s'est porté du côté des prédateurs, et en tant que prédateur, il nous faudra repérer et attraper les proies. Vampire.jpg

Notre prédateur sera équipé d'une Raspberry Pi 3 lui permettant d'être télécommandé à distance l'aide un smartphone.

Ainsi, cette page Wiki constituera le rapport concernant notre projet.




Cahier des charges

On souhaite réaliser un robot d'environ 20 cm x 10 cm

On se concentrera sur la réalisation du châssis et sur la partie télécommandée du robot. Il nous faudra aussi réaliser le shield.

Matériel nécessaire prévu pour notre réalisation

  • batterie
  • moteurs
  • capteur ultrason pour détecter les obstacles
  • capteur infrarouge TSOP pour décoder les signaux IR modulés des proies
    récepteur IR
  • émetteur infrarouge pour être repéré en tant que prédateur
    émetteur IR
  • un électroaimant pour capturer la proie
    électroaimant
  • fils de connexions
  • Arduino méga et son bouclier
    Arduino Mega
  • carte Raspberry Pi 3 pour contrôler le robot
    Raspberry Pi 3
  • caméra
  • contrôleur moteur
  • plaque de plexiglas pour le châssis
  • 2 roues + 1 roue libre OU chenille + roues dentées
  • visserie

Logiciels utilisés

  • Fritzing

Fritzing est un logiciel libre permettant la conception de circuits imprimés assez facilement exploitable par les non-professionnels de l'électronique. Il permet de concevoir un circuit de manière graphique et de l'imprimer. Le logiciel comporte 3 vues principales : La « Platine d'essai », où l'on voit les composants tels qu'ils sont dans la réalité et où l'on construit le montage. La « Vue schématique », représentant le schéma fonctionnel du circuit. Le « Circuit imprimé » ou « PCB » ("Printed Circuit Board") représentant la vue du circuit imprimé tel qu'il sera sorti en PDF pour être imprimé.

  • Onshape

OnShape est logiciel gratuit en ligne de CAO qui est basé sur le fonctionnement d'un cloud, lui permmettant une collaboration de projet assez simplifiée et une accessibilité facile de n'importe où, il suffit juste de créer un compte.

  • Inkscape

Inkscape est un logiciel libre de dessin vectoriel permettant notamment la création d'objet par le dessin de lignes et de formes en tous genres.

Etude rapide du robot

Chaîne d'information :

acquérir   -   traiter   -   communiquer
   ↓             ↓               ↓
capteurs       arduino      fils électriques
   +
commandes


Chaîne d'énergie :

alimenter   -   distribuer   -   convertir   -   transmettre
   ↓               ↓                 ↓                ↓
  piles          pont H           moteurs           pneus
batterie

Résumé des séances

  • 1ère séance (15/01)

prise en compte du sujet et des possibilités de réalisation

  • 2ème séance (16/01)

choix du prédateur

  • 3ème séance (18/01)

construction du shield sur Fritzing

  • 4ème séance (19/01)

continuation du shield sur Fritzing

  • 5ème séance (22/01)

shield sur Fritzing + design châssis

  • 6ème séance (25/01)

fin du shield sur Fritzing + design châssis sur Oneshape + prise de connaissances concernant la programmation de la Raspberry Pi 3

  • 7ème séance (26/01)

début programmation de la raspberry pi 3 et design chassis

  • 8ème séance (29/01)
  • 9ème séance (01/02)

au cours des dernières séances nous avons rencontré certains problèmes concernant la programmation de la Raspberry. nous avons perdu beaucoup de temps pour la configurer en suivant la page Wikipédia "Saison 2017/2018", mais nous prévoyons de finir cette partie la séance d'après

  • 10ème séance (05/02)

la Raspberry est maintenant un point d'accès SSH

  • 11ème séance (08/02)

page d'accueil réalisée, on pourra plus tard contrôler le robot avec un smartphone

  • 12ème séance (12/02)
  • 13ème séance (15/02)

essais de programmation sur Arduino Méga

  • 14ème séance (19/02)
  • 15ème séance (22/02)
  • 16ème séance (05/03)

Soudures sur le shield Nous nous sommes rendues compte que vouloir imprimer en 3D notre chassis était un projet un peu ambitieux : en effet s'il y a une erreur dans nos mesures, il nous faudra ré-imprimer entièrement le chassis La semaine prochaine il faudra alors faire des dessins sur Inkscape afin de découper du plexiglas pour notre chassis

  • 17ème séance (08/03)

Finition des soudures + Début de dessins sur Inkscape

  • 18ème séance (12/03)

Continuation des dessins sur Inkscape. Essais de l'arduino avec notre led RGB. Nous nous sommes rendues compte de différents problèmes : il faudra dessouder et ressouder la led et ses résistances

  • 19ème séance (15/03)
  • 20ème séance (19/03)
  • 21ème séance (26/03)

Code ultrasons fonctionnel

  • 22ème séance (09/04)

Soudures des batteries et des moteurs ainsi que des avancées sur le code Durant la semaine j'ai travaillé chez moi pour trouver d'où venait notre problème de moteurs (ne fonctionnent pas). Je pense qu'il faudra travailler sur des soudures absentes ou mal réalisées.

  • 23ème séance (16/04)

Certaines soudures sont faites

Elaboration du robot

Partie Electronique

Nous avons réalisé un shield pour la carte électronique de notre robot. Nous avons pour cela utilisé le logiciel Fritzing.

Sur Fritzing

Nous avons tout d'abord ajouté à la platine d'essai les différents composants nécessaires auxquels nous avions pensé. Puis il suffit de les relier. On passe ensuite à la vue schématique du circuit. On y retrouve nos composants schématisés avec toutes leurs connexions possibles. Enfin, on y trouve une vue du circuit imprimé comme nous le voulons en réel. Il faut réaliser les connexions, au plus court, sans croisement pour éviter les court-circuits, et conserver un espacement raisonnable et relativement constant entre les fils.

Voici le shield : Média:Shield.zip

Mise en oeuvre du shield

A l'aide d'une machine et de nos fichiers Fritzing, nous avons pu organiser la découpe de notre shield et imprimer le circuit. Puis dans un second temps, nous procéderons à la soudure des pins sur le shield précédemment réalisé.

ShieldPCB.png

Soudures sur le shield

Le circuit ainsi créé et imprimé, nous avons pu souder les différents pins, mais aussi nos leds accompagnées de leur résistance. Nous avons aussi dû, à un moment donné, souder des fils directement sur la piste car ils n'avaient pas été imprimés. Nous avons donc utilisé de la gaine thermorétractable pour protéger la piste des courts circuits.

Shieldsoudure.png Shield.png Shieldgainearrow.png

Partie Mécanique

Réalisation du châssis

Premiers pas

Il s'agissait dans un premier temps de réaliser quelques esquisses rapides afin de déterminer la forme globale de notre robot mais aussi de dédier et répartir l'espace pour nos composants. Nous avons donc procédé aux mesures et essayé de faire concorder nos attentes en terme de design avec le cahier des charges.

schéma des roues avec moteurs et capteur ultrasons
dimensions de la raspberry pi
dimensions de la raspberry pi et de l'arduino méga
1ère esquisse du robot

Dessin pour impression 3D sur OnShape

Nous nous sommes lancées ensuite dans le dessin 3D, nous permettant de mieux voir nos avancées en terme de respect des critères et de se rapprocher d'un visuel voulu. Pour cela nous avons dû prendre en main un logiciel que nous ne connaissions pas. Nous avons choisi de travailler avec OnShape, logiciel gratuit en ligne. Il nous a fallu quelque temps pour le prendre en main afin de découvrir les différentes fonctionnalités, qui sont assez nombreuses et permettent d'aboutir à un résultat convenable à nos attentes. Voici donc ci-dessous les différentes étapes du dessin : Onshape1.png Onshape2.png Onshape3.png Onshape4.png

Après plusieurs séances passées sur le projet de châssis 3D, nous avons finalement décidé d'utiliser des plaques de plexiglas découpées afin de gagner du temps. D'une part, parce qu'une erreur réalisée après impression nécessite une réimpression qui nécessite pas mal de temps. D'autre part, car l'impression nécessite d'être commencée sur une surface plane pour pouvoir imprimer correctement couche par couche. Mais aussi car l'objet est imprimé d'une traite donc il s'agit aussi ici de pouvoir passer les composants et les placer correctement à l'endroit déterminé au préalable.

Dessin pour découpe laser sur Inkscape

Nous avons donc changé de perspective, nous voulions désormais créer une découpe au laser dans du plexiglas pour notre chassis. Nous avons de ce fait découpé 2 formes identiques avec des trous pour pouvoir placer à la fois fils et composants tout en réduisant le poids de l'ensemble. Les 2 formes seront assemblées à l'aide d'entretoises. Nous sommes ainsi allées au Fabricarium pour pouvoir détailler nos 2 formes comme convenu.

découpe au laser

Partie Programmation

Il s'agira de programmer 2 éléments essentiels constituant notre robot :

  • Il y aura la programmation de l'arduino pour faire fonctionner les différents composants.
  • Mais aussi la programmation de la Raspberry Pi afin de contrôler le robot avec un smartphone, via une page web.

Programmation de l'Arduino Mega

Pour faire fonctionner notre robot nous avons dû travailler sur différents codes:

1) Partie capteur à ultrasons, pour détecter les obstacles (fonction void() dans notre code)

2) Partie concernant la led RGB ( displayColor(byte color) dans le code)

3) Partie concernant les infrarouges. Nous nous retrouvons face à un problème : il nous est impossible d'émettre et de recevoir des IR simultanément. Après des recherches sur internet, il s'avère que la librairie utilisée ne le permet pas. On choisit de retenir la partie "recevoir des IR" et laissons la partie "émettre des IR" en commentaire.

4) Partie distinguant les cas "pas d'obstacle détecté" et "obstacle détecté". Si pas d'obstacle, le robot avance en ligne droite. Si il y a un obstacle, il fera demi tour.


Voici notre programme final: Média:code.zip

Programmation de la Raspberry Pi 3

Après plusieurs séances passées sur la Raspberry Pi, nous avons enfin une page web :

Page.png

Cependant après avoir délaissé cette partie lors des dernières séances, et en essayant d'utiliser de nouveau la Raspberry Pi pour tester ce programme prenant en compte l'utilisation de notre Raspberry avec l'Arduino: Média:Robotrpi.zip nous faisons face à un nouveau problème, il nous est impossible de se connecter à la Raspberry Pi via un câble USB vers TTL. Ne trouvant pas de réponse sur internet nous décidons de recommencer à 0 de ce côté. Après plusieurs réécritures de Raspbian sur la micro SD on se retrouve toujours bloquées à ce niveau :

Rpi2.jpg

il est impossible d'entrer le login "pi".

Malgré plusieurs essais pour régler ce problème (changer de port, accéder à la connexion SSH par d'autres méthodes) on reste bloquées au même endroit:

20180429 222721.jpg

On décide donc de continuer le projet sans la Raspberry Pi.

Conclusion

Ce projet suivi en Bureau d'Etudes nous a permis d'en apprendre pas mal sur divers domaines tels que l'informatique, l'électronique, la mécanique notamment et de réaliser notre robot. Il n'est certes pas fini car nous n'avons pu aboutir à ce que nous aspirions, il reste fonctionnel mais peut être amélioré.

Voici des photos de notre robot:

20180506 193524.jpg


20180506 193529.jpg


Pour conclure, nous pouvons dire que nous n'avions pas beaucoup de connaissances en électronique, informatique et conception mécanique : ce bureau d'études a donc été très enrichissant car nous avons beaucoup appris.

Liens

Utilisation de l'Arduino