Publié le 18 janvier 2014 - par

Un rover « Curiosity » à base de Raspberry Pi

curiosity_laser_250Dans le numéro 170 de la revue PROGRAMMEZ, Lucas DUPUIS nous propose une description de son rover, baptisé CuriosiPi.

Réalisé sur une base de rover Tamiya équipée de chenilles, ce robot est animé par un Raspberry Pi relié par WIFI au pilote de l’engin.

curiosity_02_600

Bien sûr il n’est pas question ici de construire un robot qui pourrait concurrencer le visiteur qui circule sur Mars depuis  août 2012. Quoique… la comparaison entre le système informatique embarqué sur le rover de la NASA et notre framboise314 peut donner à réfléchir (voir cet article de PoBot)…

curiosity_06Origine du rover

Lucas au travers de cet article de 5 pages nous raconte la conception de son rover. Un jeune chiot un peu turbulent qu’il faut surveiller et voilà une application rêvée pour le Raspberry Pi.

Choix de la caméra

Il faut d’abord choisir la caméra. Après avoir essayé une webcam, Lucas a testé un module caméra Raspberry Pi.

Vient ensuite le choix des servomoteurs destinés à orienter le caméra, ainsi que la méthode utilisée pour piloter les servos avec un Raspberry Pi.

Pilotage des servomoteurs

Un premier essai pas très concluant de la bibliothèque GPIO Python a amené Lucas à utiliser pi-blaster qui pilote les servomoteurs sans a coups.

Interface utilisateur

C’est un serveur Flask qui est utilisé. L’interface web est développé en HTML5, une pincée de javascript et le framework jQuery.

nova_screenshotCôté utilisateur, c’est une interface similaire à celle du jeu vidéo N.O.V.A. qui a été choisie, avec des boutons superposés à la vidéo (game pad multi-touch) pour les tablettes et smartphones. Il existe aussi une interface plus classique pour les utilisateurs qui sont restés à l’interface clavier/souris sur PC… (si si, il y en a encore !).

Les actions sur l’écran tactile sont transmis en AJAX au serveur, avec une temporisation pour éviter de le saturer.

Le socle de CuriosiPi

chassis_70108_2chassis_70108

Pour approcher du rover Curiosity, il fallait rendre mobile le Raspberry Pi et sa caméra. Le choix de Lucas s’est porté sur le châssis Tamiya 70098 équipé de chenilles que l’on trouve chez de nombreux détaillants.

moteurs_tamiyaLe châssis a été équipé d’un double moteur 70097 équipé également d’une boîte de vitesse, le tout piloté par un circuit à base de L298 trouvé sur Internet pour quelques euros.

Il existe plusieurs modèles de motorisation chez Tamiya.

curiosity moteursLe châssis ainsi équipé est capable de grimper des pentes relativement importantes.

La liaison WIFI

Pour que le robot soit autonome, il fallait le doter d’un moyen de transmission sans fil. C’est la liaison WIFI qui a été choisie. Un mini dongle compatible avec le Raspberry Pi fera l’affaire. Le robot pourra communiquer avec une machine sur Internet ou avec votre smartphone sans problème.

Le socle Tamiya utilisé sur CuriosiPi (Photo Lucas Dupuis)

Le socle Tamiya utilisé sur CuriosiPi (Photo Lucas Dupuis)

Alimentation du robot CuriosiPi

Pour alimenter l’ensemble des composants du rover c’est du 5 volts qui est nécessaire. Une batterie prévue pour recharger les smartphones fera l’affaire. Prévoyez au moins une batterie 2000mAH car le rover est relativement vorace en énergie, surtout lorsque les moteurs fonctionnent. Si vous ajoutez des LEDs pour éclairer ce que filme le robot il faudra également compter cette consommation.

CuriosiPi complètement terminé, avec les LEDs allumées (photo Lucas Dupuis)

CuriosiPi complètement terminé, avec les LEDs allumées (photo Lucas Dupuis)

CuriosiPi complètement terminé (photo Lucas Dupuis)

CuriosiPi complètement terminé (photo Lucas Dupuis)

Après… Vous pouvez programmer votre robot pour qu’il aille se recharger tout seul lorsque la batterie devient faible, non ?

 Conclusion

Merci à Lucas pour cet article plein d’informations pour qui veut réaliser un robot à base de Raspberry Pi. Il y a bien entendu d’autres articles intéressants pour les raspinautes dans ce numéro 170 de la revue Programmez.

msl_laser_466x248Si vous envisagez de réaliser un robot, je vous rappelle également l’article consacré à Zumo, le robot réalisé par Frédéric que j’ai présenté début janvier sur framboise314.

curiosity_01Je n’ai pas trouvé de site relatif à CuriosiPi. Les éléments disponibles dans l’article devraient permettre à utilisateur avancé du Raspberry Pi de réaliser un projet similaire. Par contre un débutant aurait besoin d’un descriptif plus détaillé. Si vous avez réalisé des tutoriels ou un blog qui pourrait aider les futurs réalisateurs de rover, n’hésitez pas à donner leur adresse dans les commentaires ci-dessous.

À propos François MOCQ

Électronicien d'origine, devenu informaticien, et passionné de nouvelles technologies, formateur en maintenance informatique puis en Réseau et Télécommunications. Dès son arrivée sur le marché, le potentiel offert par Raspberry Pi m’a enthousiasmé j'ai rapidement créé un blog dédié à ce nano-ordinateur (www.framboise314.fr) pour partager cette passion. Auteur de plusieurs livres sur le Raspberry Pi publiés aux Editions ENI.

6 réflexions au sujet de « Un rover « Curiosity » à base de Raspberry Pi »

  1. Ping : Un rover « Curiosity » à bas...

  2. Olivier

    Excellent ! J’aimerai bien voir l’interface graphique finale 🙂
    Je travaille en ce moment sur une interface de pilotage à distance avec un retour d’image, mais j’ai de gros problèmes de latence… Surtout au niveau de la vidéo.
    Pour les commandes je passe directement par un socket en UDP pour gagner en rapidité. Dans son approche avec des requêtes en AJAX (et la lib jQuery), j’ai des gros doutes sur la réactivité de l’ensemble :/

    Répondre
  3. Math

    Salut,
    Tout d’abord bravo pour ce site de qualité, je l’ai découvert il y a quelques semaines et c’est une véritable mine d’informations.
    Il m’est très utile dans la « conception » de mon robot.
    J’en profite donc pour poser ma question, sur ce robot quelle est la solution technique utilisé pour faire cette éclairage, des Leds Haute Luminosité toute simple ?
    De plus, je me permet de faire une proposition de poste, il pourrait être intéressent de faire un poste sur un bouton ON/OFF, en effet dans un système embarqué (un robot, un drône, un timelapse …) nous n’avons pas tout le temps d’écran ou même accès au câble d’alimentation de la raspi … il nous faut donc développer un système, il y a bien des tutoriel pour éteindre sur internet mais pas pour couper l’alimentation et ensuite ré-allumer . J’ai bien une idée mais elle prend 2 GPIO ce que je ne trouve pas optimal …

    En tout cas merci encore pour ce site et le temps passé à déniché toutes ces offre et ces solutions.

    Bonne soirée.

    Mathieu

    Répondre
    1. admin Auteur de l’article

      Bonsoir Mathieu
      Pour la première question oui bien sûr les LEDs haute luminosité sont LA solution (beaucoup de lumière avec peu de courant :-)). Pour la part j’ai acheté une lampe de ce modèle mais en 220v dans les soldes et je l’ai démontée pour récupérer les plaquettes. Ça éclaire du tonnerre ! Si tu es un peu plus fortuné il existe des solutions plus « classe » !
      Pour la deuxième question, la remarque est souvent faite il existe aussi des solutions comme ATXRasPi ou encore PiSupply (mais il y en a d’autres). Elles permettent la mise sous et hors tension de la framboise314 en appuyant (plus ou moins longtemps) sur un bouton.
      Bon amusement dans la réalisation de ton robot!
      N’hésite pas à revenir poser des questions (mais je n’ai pas toutes les réponses non plus !!!) et pourquoi pas une description et des photos que je serais heureux de publier.
      Cordialement
      François

      Répondre
      1. Math

        Oui bien sur, quand j’aurais terminé j’enverrais les photo !!! ça peut toujours donné des idées aux raspi-naute !
        Mais bon, c’est pas pour tout de suite, j’avoue prendre mon temps, je découvre beaucoup de chose, ça n’est pas toujours facile mais ô combien formateur !!!
        En tout cas, merci pour la réponse rapide et les tuyaux je vais regarder ça !

        Bonne soirée

        Mathieu

        Répondre
  4. Ping : Un rover « Curiosity » &a...

  5. Ping : Raspberry Pi | Pearltrees

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Complétez ce captcha SVP *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.