Projet R.I.P.E.R. : étage alimentation

Après cette parenthèse culinaire, revenons à la technique. Dans un précédent article , je présentais l’étage des batteries du robot, passons à l’étage de gestion de l’alimentation.

Ce bloc va être chargé d’apporter l’énergie aux différents éléments du robots :

  • 5V pour l’électronique de bas niveau et pour le cerveau (mini PC)
  • 7.2V pour les moteurs à courant continu
  • 6V pour les servomoteurs

J’utilise 3 modules :

  • Pour l’électronique, l’alimentation DFRobot DFR0205 3.3-25V 25W convertira les 7.2V de la première batterie (ou de l’alimention externe) en 5V
  • Les moteurs seront alimentés par la seconde batterie et pilotés par le contrôleur SaberTooth 2x5A.
  • Pour les servomoteurs, le module d’alimentation Seeed Studio 1.25-35V 3A convertira les 7.2V de la première batterie (ou de l’alimention externe) en 6V

Lorsque que le robot sera alimenté en 12V (alim externe), il faudra le détecter parce que les moteurs ne pourront pas encaisser les 12V en continu (ou prévoir une alim externe de 9V) :

These motors are intended for use at 6 V. In general, these kinds of motors can run at voltages above and below this nominal voltage, so they should comfortably operate in the 3 – 9 V range, though they can begin rotating at voltages as low as 1 V. Higher voltages could start negatively affecting the life of the motor.

Voici le caisson prévu pour ces éléments :

Les 2 trous sur les extérieurs accueilleront les fiches d’entrée pour les alimentations (électronique/moteurs). Le petit trou accueillera un double switch (pour activer/désactiver les 2 sources de courant en même temps).

Comme cet étage sera « suspendu » dans le châssis par des fixations latérales, j’ai collé 2 plaques d’aluminium sur les côtés pour renforcer la structure et éviter un décollage des couches de plastiques.

La grande ouverture rectangulaire est destinée au connecteur 14 pins qui permettra la connexion avec le corps du robot.

De gauche à droite, la description de chaque pin :

  1. +5V électronique bas niveau
  2. 0V
  3. +5V électronique haut niveau (mini PC, hub USB)
  4. 0V
  5. +6V pour les servomoteurs
  6. 0V
  7. Néant
  8. Pont diviseur de tension sur batterie 1 (surveillance de la charge et détection alim externe)
  9. Pont diviseur de tension sur batterie 2 (surveillance de la charge et détection alim externe)
  10. Pilotage des moteurs (connexion série Arduino Mega –> SaberTooth)
  11. Encodeur A moteur 1 vers Arduino Mega
  12. Encodeur B moteur 1 vers Arduino Mega
  13. Encodeur A moteur 2 vers Arduino Mega
  14. Encodeur B moteur 2 vers Arduino Mega

La photo ci-dessous montre l’agencement des composants :

  • Rose : régulateur 5V
  • Vert : contrôleur des moteurs
  • Blanc : régulateur 6V
  • Bleu : carte d’interface entre les différents éléments
  • Rouge : fiches jack d’entrée pour l’alimentation en provenance des batteries/alim externe
  • Noir : double switch

Le schéma ci-dessous permet de mieux visualiser les connexions :

power_07

Vue du dessous : les composants sont fixés sur des entretoises.

Projet R.I.P.E.R. (Robotic Intelligent Platform for Entertainment and Research)

Désolé, ça commence par beaucoup d’explications textuelles, mais des schémas plus éloquents sont à la fin 🙂

J’ai passé ces deux derniers mois à tester pas mal de choses : moteurs, capteurs, amplis audio, écrans, microcontrôleurs, matériaux, montages, mini-PC… C’était intéressant, mais le but est bien évidemment d’utiliser tout ça pour créer un robot 🙂

Dans ce billet, je vais essayer de formaliser toutes les idées qui me trottent dans la tête depuis quelques temps et décrire où je veux aller.

Jusqu’ici j’ai fabriqué quelques robots assez simples, avec des comportements limités à des tâches précises (et avec un petit microcontrôleur en guise de cerveau). Une fois le robot terminé, il l’était vraiment et je passais à autre chose. Cette fois, je veux réaliser une véritable plateforme robotique, très polyvalente pour explorer différents domaines de la robotique :

  • Le SLAM pour Simultaneous Localization And Mapping (ou cartographie et localisation simultanées). C’est un ensemble de techniques qui permettent à un robot de connaître sa position et de découvrir son environnement.
  • La synthèse vocale (TTS : Text To Speech), pour lui permettre de communiquer avec des êtres humains par la voix.
  • La reconnaissance vocale (SR : Speech Recognition ou STT)
  • Langage, conversation avec un humain
  • Intelligence artificielle et apprentissage
  • Utilisation d’internet (accès à des services, bases de connaissances…)
  • Vision : reconnaissance de formes et de visages, tracking
  • Algorithmes d’évitement d’obstacles (Virtual Force Field algorithm)
  • Pilote de la domotique
  • Télé-présence et surveillance
  • « Humanisation » : permettre au robot d’exprimer des émotions (mouvements, yeux…), lui donner un comportement moins prévisible avec des micro gestes aléatoires (clignement des yeux…), des tics de langages etc.
  • Extensibilités : possibilité de lui ajouter des modules pour lui donner de nouvelles capacités (module pour analyser la qualité de l’air, piloter la domotique, changer la fonction de ses bras/mains : poignée, pince, lasers…)
  • Personnalité, comportements, humeurs, humour…

La plateforme devra être suffisamment évoluée pour approfondir tous ces sujets sans devoir refaire un nouveau robot à chaque fois. En gros, il ne sera jamais vraiment terminé 🙂

Les applications qui en découlent sont illimitées :

  • Accompagnement, stimulation et surveillance/assistance des personnes âgées ou en difficulté
  • Télé-présence : pouvoir prendre le contrôle du robot à distance et se déplacer / communiquer grâce à lui, comme si on y était
  • « Chef d’orchestre » domotique et sécurité (détection et signalisation d’intrus, pilote du chauffage, de la télé, de la musique, de l’humidité, simulation de présence…)
  • Jukebox à la demande
  • Occuper le chat (en le faisant jouer avec un laser etc.)
  • Assistant personnel à domicile (domotique, lecture des e-mails et autres notifications, actualités, météo, discussions, gestion de l’agenda et rappel de rendez-vous, mémos, réveil…)
  • Coach personnel
  • Station d’analyse de l’air, détection de produits dangereux/toxiques
  • Exploration de zones dangereuses/inaccessibles pour l’homme
  • Conquérir le monde…

Pour créer cette plateforme voici les composants que je compte utiliser (dont la plupart ont été testés dans les articles précédents) :

  • Le cerveau supérieur : un mini-PC sous forme de clé HDMI avec un processeur Intel Atom CherryTrail (4 coeurs), 4Go de RAM, 32 Go de mémoire eMMC. Ces « PC » consomment peu, sont très légers et compacts, offrent des possibilités intéressantes en terme d’IA, sans compter l’accès au Bluetooth et au Wifi (et donc à Internet). Pour une centaine d’euros !
  • La moelle épinière : un Arduino MEGA (Pro Mini), qui aura la charge de transmettre les messages entre le cerveau (mini-PC) et le reste du corps du robot (capteurs, actuateurs : moteurs, écrans, HP…).
  • Un anneau de sonars : 12 capteurs ultrasoniques SRF05 pilotés par un Arduino Nano, lui-même connecté à la moelle épinière par le bus I2C. Les capteurs détecteront les obstacles tout autour du robot.
  •  Capteurs d’environnements : boussole (référentiel directionnel), détecteur de luminosité (LDR), détecteur de distance IR (pour éviter les chutes)
  • La tête : webcam USB avec microphone pour récupérer l’image et le son (et la voix) (Logitech c920), matrice de capteurs thermiques pour identifier les sources de chaleur (humains, animaux, feu…) (TPA81), Pixy CMUCam5 pour reconnaître et traquer des objets, 2 matrices de 8×8 LEDs pour émuler les yeux, un bargraphe de 5 LEDs pour animer la bouche, émetteur/récepteur IR pour piloter certains appareils, des LEDs puissantes pour éclairer dans l’obscurité. Le tout sera piloté par un autre Arduino Nano, lui-même connecté à la moelle épinière par le bus I2C.
  • Le cou : une tourelle « pan-tilt » constituée de 2 servomoteurs pour bouger la tête de haut en bas et de gauche à droite.
  • Un ampli et un haut-parleur pour émettre la voix du robot, de la musique ou des sons. Connecté sur la sortie son du mini-PC.
  • Quelques périphériques pour interagir « manuellement » avec le robot (écran OLED, boutons, buzzer).
  • HUB USB : pour connecter le mini-PC, la webcam, l’Arduino MEGA (+ de nouveaux périphériques)
  • Bras : 3-4 servomoteurs et la possibilité d’y attacher un module (pince, laser…)
  • Des cartes de contrôle des moteurs et servomoteurs (raccordés à la moelle épinière)
  • Moteurs CC avec encodeurs et un châssis. J’ai opté pour un châssis à chenilles, type tank : facile à diriger et une meilleure adaptation au terrain que les roues.
  • Alimentation : une première batterie Ni-MH de 7.2V / 5000mA pour les moteurs CC et servomoteurs (bras et cou). Une seconde batterie identique pour tout l’électronique (bas niveau, hub et PC). J’ai opté pour du Ni-Mh pour des raisons de sécurité (je veux pouvoir le laisser allumé même si personne n’est à la maison). La moelle épinière (MEGA) surveillera l’état des batteries. Le robot pourra aussi fonctionner sur une alimentation externe (12 V).

Pour concrétiser tout ça, voici une « maquette » de R.I.P.E.R., ce n’est pas très joli, mais ça a le mérite de clarifier un peu la cible 😉

Maquette_RIPER

Le schéma suivant décrit l’architecture du robot et recense toutes les interfaces nécessaires. Le détail de chaque carte n’est pas représenté pour faciliter la lecture. Cliquer sur le schéma pour le voir en taille réelle :

ArchiRIPERmini

Et voilà, il y a plus qu’à…;)