Archives de catégorie : Electronique

Articles liés à l’électronique de l’imprimante 3D

Piloter ses drones les mains au chaud !

Allé, l’impression 3D c’est rigolo, mais revenons aux choses sérieuses 😉

Sous nos tropiques, faire voler nos multirotors en hiver, ce n’est pas toujours une partie de plaisir. Pour contourner les problèmes de pluie ou de neige, il y a l’étanchéité du matériel électronique, mais ce n’est pas pour tout de suite. On va commencer par s’attaquer au problème du froid ! En particulier pour les mains : piloter avec les mains gelées, c’est mission impossible. Continuer la lecture

Horloge à base de tubes Nixie

Cette fois-ci, pas de robotique ni trop d’électronique, juste du fun à essayer de faire un bel objet. Il va s’agir d’une horloge, mais pas n’importe laquelle : une  « Nixie Clock ».

Evidemment, elle donne l’heure, mais son originalité repose sur les afficheurs utilisés, des tubes Nixie. Ils ont été inventés en 1954 et sont parmi les premiers afficheurs numériques. Ils ne sont plus fabriqués aujourd’hui, mais l’Union Soviétique en a produit énormément à l’époque et on peut encore en trouver assez facilement sur Ebay (Russie, Ukraine…). Continuer la lecture

Logger de température et d’humidité

Dans le précédent article, j’illustrais la technique de gravure à l’anglaise pour réaliser des circuits imprimés avec un cas pratique : un logger (enregistreur) de température et d’humidité. Ce nouveau billet est l’occasion de revenir plus en détails sur ce petit projet (et de le finir 😉 ).

L’objectif est d’enregistrer à intervalles réguliers la température et l’humidité d’un environnement donné pour pouvoir les étudier, les analyser. Ça peut-être intéressant pour optimiser son chauffage, vérifier le bon fonctionnement d’un réfrigérateur, analyser un environnement naturel etc. Continuer la lecture

Création de PCB avec une CNC (gravure à l’anglaise)

Nous y voilà, ma petite CNC étant maintenant 100% opérationnelle, je peux enfin m’attaquer à la gravure de PCB (circuits imprimés) « à l’anglaise ».

Avant d’entrer dans les détails, voici les grandes étapes du processus :

  • Conception du circuit électronique avec un outil de CAO
  • Modélisation de l’implantation des composants, toujours avec un outil de CAO
  • Export des pistes du circuit au format GERBER et du plan de perçage au format EXCELLON
  • Chargement des fichiers exportés dans FlatCAM, génération des géométries, génération des fichiers pour la CNC
  • Gravure du PCB avec un logiciel de pilotage de CNC (Candle)

Continuer la lecture

CNC : remplacement de l’électronique de contrôle (Protoneer 3.51) et améliorations

Suite à l’analyse des problèmes rencontrés avec la CNC low cost commandée, j’ai donc décidé de tout remplacer, sauf le châssis, pour partir d’une base saine et en espérant me débarrasser des problèmes rencontrés jusqu’ici.

Voici la liste des courses : Continuer la lecture

Ma petite CNC est arrivée !

J’y pensais depuis quelques temps, j’ai franchis le pas et j’ai commandé une petite CNC !

CNC signifie Computer Numerical Control, ce qui, en français, donnerait machine-outil à commande numérique, ou plus littéralement « commande numérique par calculateur ».

Alors qu’une imprimante 3D dépose de la matière en partant du bas de l’objet, la fraiseuse CNC va retirer de la matière en partant du haut de l’objet. Mais si souvent on y fixe une fraise pour faire de l’usinage, on peut aussi y attacher un foret pour réaliser des perçages très précis, ou encore un laser pour « dessiner » sur du bois ou du liège, voir découper certains matériaux.

On peut aussi l’utiliser comme graveuse (sur bois, plexi, alu…). Et l’un des usages qui m’intéresse le plus : la gravure de PCB ! Je ne réalise pas souvent des PCB, mais à chaque fois, avec la gravure chimique, c’est tout un chantier dans la salle de bains, les produits perdent leur efficacité avec le temps, on ne peux pas s’en débarrasser simplement, bref, la gravure m’ira très bien pour mes besoins 🙂

Continuer la lecture

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. : étage batteries

La pause fun avec BB-8 étant terminée, on se remet aux choses sérieuses avec l’étage du robot qui contiendra les batteries. On reprend donc où on en était resté il y a quelques semaines : Projet R.I.P.E.R. (Robotic Intelligent Platform for Entertainment and Research).

Les choix concernant l’alimentation sont expliqués ici : Autonomie et alimentation d’un robot.

Une batterie de 7.2V/5Ah sera dédiée à l’alimentation des moteurs CC et servomoteurs, l’autre alimentera tout l’électronique du robot. Il pourra fonctionner au choix, sur batteries ou sur alimentation secteur (via régulation 12V). La bascule se fera automatiquement.

On pourra recharger les batteries du robot sans les sortir du chassis, via 2 connecteurs jack.

Voici le modèle 3D :

00_EtageBatteries

Et la sortie d’impression :

On commence par installer les connecteurs jack femelles :

  • Les 2 à l’avant permettront la recharge des batteries
  • Les 2 sur les côtés à l’arrière permettront d’alimenter l’étage supérieur (contrôle des moteurs et alimentation du robot)
  • Le connecteur du milieu est l’entrée pour une alimentation fixe de l’ensemble du robot

Le circuit électronique utilise le principe de commutation par diodes, décrit ici. Quand l’alimentation fixe du robot est coupée (12V), les batteries prennent automatiquement le relais (7.2V). Voici le schéma de la carte :

07_EtageBatteriesSchema

Les Jx sont des borniers, Cx des diodes Schottky. J3 est l’arrivée de l’alimentation fixe en 12V. J7 et J8 sont connectés aux prises jack de rechargement des batteries. Les borniers J1 et J2 permettent de raccorder les 2 batteries. Enfin, J4 et J8 sont les sorties vers les connecteurs jack qui alimenteront l’électronique et les moteurs du robot.

Après installation des 2 batteries :

J’ai également imprimé un couvercle, essentiellement pour des raisons esthétiques, en gardant une ouverture pour l’évacuation de la chaleur.

Le bloc prendra ensuite place dans le châssis.

J’espère que le diamètre des fils sera suffisant pour le courant qui circulera. J’ai été contraint d’utiliser des borniers plus petits que prévu initialement pour des raisons de place. On verra bien 🙂

BB-8 DIY (contrôlé par la Force ;)

Après quelques mois passés à bosser sur un gros projet, je m’offre une petite pause de fun pour un petit BB-8 fait maison, parce qu’il est vraiment trop mignon 😉 (vidéo disponible à la fin de l’article).

A la base, je voulais juste faire une une figurine et puis je me suis dit que ça serait sympa de l’animer un peu. Alors il ne se déplace pas, mais il tourne la tête, émet des sons et détecte les obstacles devant lui : un simple passage de la main devant lui déclenchera différentes animations.

Ci-dessous, l’ensemble des éléments utilisés (électronique, pièces imprimées, capteur ultrasons, servomoteur…). Le modèle 3D n’est pas de moi, il vient d’ici. J’ai fait des trous dans le corps pour pouvoir passer l’axe de la tête et imprimé des joints pour assembler le tout (+ le support).

Après ponçage, enduit, peinture et vernis, il ne reste plus qu’à assembler le tout.

L’image suivante représente le « cerveau » de BB-8 : un simple Arduino Nano, un buzzer et 3 borniers à visser (alimentation et capteur ultrasons).

Le code est disponible ici. C’est pas super propre mais bon, ça fait l’affaire. J’ai eu de petits soucis d’incompatibilité entre différentes librairies car elles utilisaient les mêmes interrupts : Servo, NewPing, Tone (ou même NewTone pour éviter le conflit avec NewPing). Au final, je n’utilise aucune librairie pour piloter le buzzer).

Vue du boitier une fois tous les composants en place :

Le servomoteur est fixé au centre du boitier :

Pour prolonger l’axe du servomoteur, j’ai utilisé un tube (qui remontera jusqu’à la tête) et imprimé 2 joints qui s’emboîtent dans le tube de PVC : le premier a un emplacement prévu pour intégrer le connecteur à la tête du servomoteur (en noir, que j’ai découpé d’un support vendu avec le servo) et le second qui permet de faire la jonction avec la tête).

Au passage, le socle au dessus du servo est constitué de 2 pièces : la première permet de surélever le support au dessus des vis du servo et le second est un cône qui donnera l’illusion d’une dune (le sable a été saupoudré sur une couche de colle à bois) parce qu’on rencontre BB-8 dans le désert ;).

Aperçu du système de rotation de la tête :

A l’arrière : un interrupteur et un connecteur USB (le robot peut fonctionner sur USB ou sur pile, au choix) :

Et voilà !

Pour finir, une démonstration de notre petit BB-8 en vidéo 🙂

 

Tous les fichiers sont disponibles ici (modèles Sketchup, fichiers STL et code pour le Arduino Nano). Les fichiers STL du robot en lui-même sont à récupérer sur Thingiverse comme indiqué plus haut.

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’à…;)