Skip to main content

Câblage de la rampe à LED intelligente version Arduino

câblage de la rampe à LED intelligente, miniature d'article

Dans un précédent billet, nous avons décrit une rampe à LED intelligente utilisable dans la maison ou dehors. Aujourd’hui, nous nous pencherons sur la construction et le câblage de la rampe à LED intelligente, en version Arduino, sur une breadboard (donc sans soudures).

En savoir plus

Une rampe à LED intelligente pour la cuisine via Arduino avec capteur PIR

rampe à LED intelligente : la carte de commande

Dans ma cuisine, au dessus de l’évier, j’ai rajouté deux lampes basses consommation. Cependant cette solution est loin d’être idéale : il est facile d’oublier d’éteindre ces lumières, l’éclairage est soit éteint, soit à fond (éblouissant en pleine nuit), et je préfère éviter d’avoir du 220V au dessus de l’évier. Je pourrais couvrir avec de l’acrylique, mais ces lampes chauffent, et il faut pouvoir y accéder pour les changer.  Pour résoudre ces problèmes, je vous propose de me suivre pour la réalisation d’une rampe à LED intelligente, économique, basée sur du code libre, programmable et extensible.

En savoir plus

BME280 sur Raspberry pi : température, pression et humidité en I2C

bme280 de l'arrière (côté opposé au capteur)

Le BME280 est le successeur du BMP185 et du BMP85. Ce composant permet de mesurer la température, la pression atmosphérique et l’hygrométrie (taux d’humidité dans l’air). La communication avec ce composant passe par l’omniprésent et très pratique bus I2C. Nous verrons ici comment utiliser le BME280 sur Raspberry pi.

En savoir plus

Fabrication d’un système anti-algues type twinstar DIY

Les pièces imprimées du double pulsar, un Twinstar DIY

Le twinstar, c’est LE truc à la mode ces temps ci. Dans mon club aquariophile (Kazanac), certains en ont, et tout le monde à envie de tester. En tous cas, on en parle, notamment sur l’excellent blog Hackquarium.

Pour une explication détaillée, suivez le lien juste au dessus. Mais en gros, c’est un bidule que vous mettez dans votre aquarium, branchez à un boitier, et qui fait de minuscules bulles. Et par ce biais, on est censés réduire drastiquement la prolifération de certaines algues. Dans ma cuve contrôlée par un système automatisé programmable Rlieh, je n’en ai pas besoin car je n’ai pas d’algues. Par contre je suis curieux, et j’ai bien un petit bac en train de démarrer qui commence à avoir des algues… Seul hic, le twinstar coûte assez cher (150-200€).

Du coup, de nombreuses initiatives apparaissent ici et là pour faire des Twinstar DIY, ou au moins des systèmes comparables.  Je vous propose dans cet article de nous pencher sur la question.

En savoir plus

Projet OpenWheel sur robot-maker

sytème d'entraînement complet

Bonjour à tous! Pour des robots, il faut souvent des roues. Non satisfait des roues disponibles, j’ai commencé le projet OpenWheel, permettant de créer des roues, engrenages, pneus et chenilles pour robots (le tout sous licences libres) de façon paramétrique et donc ajustable. Je n’ai pas encore écrit de vrais articles dessus sur ce site.

Cependant, j’en ai beaucoup discuté sur un forum ou je participe régulièrement,  robot-maker.com. C’est un forum de passionnés de robotique, avec une communauté très accueillante, en français, avec beaucoup de retours très intéressants dans les sujets.

Je vous invite donc à consulter le sujet sur OpenWheels que j’ai créé sur Robot-Maker.com (et pourquoi pas donner votre avis?) 🙂

OpenWheel en configuration chenilles

OpenWheel en configuration chenilles

En savoir plus

Nouveau tutoriel sur le wiki : le DS18B20 sur un Raspberry pi

Sonde de température DS18B20

L’un des tutoriels à été porté sur le wiki. Cette fois ci, il s’agit de la Mesure de la température avec une sonde numérique DS18B20 sur un RaspberryPi. Ce tutoriel avait été préalablement publié au format blog ici.

Cette version permet une bonne visualisation du code et le téléchargement aisé des fichiers sources décrits (plus de copier-coller qui fonctionnent mal 🙂 ), ainsi qu’une navigation simplifiée. On peut également exporter l’article vers divers formats.

Bonne lecture!

Les écrans LCD texte et leur conversion I2C

vignette vidéo écrans LCD texte et conversion I2C

J’ai fait une nouvelle vidéo sur ma chaine youtube, sur les écrans LCD texte classiques, à base de HD44780 (ceux qu’on trouve partout), et sur leur conversion en écrans I2C en utilisant une carte additionnelle qui permet de passer de 6-8 GPIOs occupés à 2 (qui restent utilisables en plus!).

Plus d’explications dans la vidéo :

Capteur de son binaire (seuil) – Alitest

Capteur de son binaire

Aujourd’hui, nous testons un capteur de son binaire économique acheté sur Aliexpress. Pour 60 centimes, on nous propose un capteur capable de détecter un niveau sonore. Qu’en est il? c’est ce que nous verrons dans ce nouvel article de la rubrique alitest.

Tout d’abord le capteur en lui même est compact : 46*15.5*9.7mm dans les plus grandes dimensions.  Il est fourni assemblé, avec un connecteur à trois broches (vout, gnd et vcc).

L’ensemble est assez simple, et il y a un trou pour fixer le capteur. Sur le côté droit sur les photos ci dessus  se trouve le microphone chargé de capturer le son. Il n’est pas collé au circuit, donc on a un peu de latitude pour l’orienter, et on peut faire en sorte qu’il soit comme sur la photo, ou tourné vers l’arrière ou l’avant.

Branchement et installation

Le branchement est très simple : connectez la broche VCC au +5V sur un Arduino ou au +3.3V sur un Raspberrypi, GND à la masse, et OUT sur une entrée numérique (ou analogique), et le tour est joué. Si le branchement est correct, une DEL verte devrait s’allumer sur la carte. Sans rien programmer, une seconde DEL devrait s’allumer lorsque l’on fait assez de bruit. Le rail d’alimentation VCC requiert une tension entre 3.3 et 5V, donc toute valeur intermédiaire fera l’affaire.

Capteur de son à sortie binaire, à un moment ou il n'y a pas de son.

Capteur de son binaire, à un moment ou il n’y a pas de son.

Utilisation du capteur de son binaire

L’utilisation est également très simple, puisqu’il s’agit d’un capteur de son binaire, c’est à dire dont la sortie est 0 ou 1. En pratique, il ne retournera pas le niveau sonore, mais simplement indiquera si l’on dépasse un certain seuil sonore.

Capteur de son à sortie binaire, lorsqu'un son est détecté.

Capteur de son binaire, lorsqu’un son est détecté.

Le cas échéant, ce sera indiqué sur la carte par l’allumage d’une petite DEL, comme sur la photo ci dessus. Pour s’en servir, il suffira donc de lire la valeur du GPIO connecté à la broche OUT du capteur. Quand aucun son n’est détecté, la sortie est à 1, alors que lorsqu’un son est détecté la sortie sera à 0, comme illustré sur les deux images ci après. Il faudra donc bien faire attention dans le code, car c’est le contraire de ce à quoi on pourrait s’attendre.

Capteur de son à sortie binaire, à un moment ou il n'y a pas de son, la sortie est 1.

Capteur de son à sortie binaire, à un moment ou il n’y a pas de son, la sortie est 1.

Le potentiomètre bleu visible sur les photos permet de régler le niveau du seuil de détection du son. Il nécessite un petit tournevis pour pouvoir l’ajuster, et ne sera donc pas modifié par erreur.

Utilisation avancée

Puisqu’il s’agit d’un capteur de son binaire, on ne peut pas directement mesurer le niveau sonore. Il est toutefois possible d’obtenir une indication approximative de celui ci. Pour cela, on fera de multiples mesures  pendant une période définie, et on comptera le nombre de fois ou la sortie aura été à 0 (son détecté). Ainsi, la sommation de ces valeurs permettra d’obtenir une indication grossière du niveau sonore sur la période observée. Dans ce contexte, un bon réglage du seuil sera important.

Bien sur, pour obtenir une indication plus précise du niveau sonore, il est préférable d’utiliser des capteurs de son fournissant une sortie continue, comme les modèles suivants:

Conclusions

Est-ce que cette carte fonctionne? Oui, elle fait le boulot. La sortie ne m’a pas paru extrêmement stable (elle ne reste pas toujours à 0,même quand il y a du bruit), donc je pense qu’il y a quelques ajustements à faire dans le code. La sortie du capteur est binaire, ce qui fait qu’il est moins sophistiqué que les autres capteurs mentionnés, mais à un prix aussi bas, je suppose qu’on ne peut pas en demander beaucoup plus!

En pratique, c’est un capteur qui fonctionne, et facilement. Je vous ferai des retours plus tard, en comparant ce que fournit ce capteur et celui d’Adafruit.

Concevoir un waterchiller pour aquarium, avec des peltiers

Gros plan sur un condenseur graham de 200 mm

L’eau d’un aquarium doit être à une température adaptée à ses occupants. Dans les pays tempérés, on installe souvent un chauffage pour augmenter la température de l’eau en hiver, mais ici aux Antilles, je rencontre le problème contraire : l’eau est trop chaude pour certains animaux ou certaines plantes. Pour refroidir l’eau, une solution simple est d’utiliser des ventilateurs qui soufflent sur la surface de l’eau, comme je l’ai fait par le passé, mais cette solution est limitée et ne peut permettre une baisse de température que de quelques degrés. Elle entraîne également une évaporation plus rapide. L’objectif de ce projet est d’utiliser une plaque à effet Peltier (ou plusieurs) pour générer du froid et ainsi pouvoir refroidir l’eau. La plaque Peltier est un composant électrique et peut donc facilement être contrôlée, et il est ainsi possible, avec une sonde de température, de réguler facilement la température souhaitée. Dans ce billet, je présenterai le projet et le concept général, et les solutions envisagées pour la mise en oeuvre.

En savoir plus

Le châssis de R.Hasika : une pièce monocoque et précise pour robots

Châssis de R.Hasika quasi vide

Dans cet article, nous décrirons la conception du châssis de R.Hasika, un robot pensé pour être robuste, précis et autonome, présenté dans ce précédent billet, et dont voici la page de projet. Le châssis du robot est un élément important, puisqu’il lui conférera sa solidité, mais aussi une partie de ses capacités finales. En pratique, un bon châssis permettra un robot précis, du fait du positionnement exact des composants. Le châssis de R.Hasika présenté dans ce billet est un châssis monocoque, en une seule pièce, fait pour être construit à l’imprimante 3D. Détaillons maintenant sa conception et les fonctionnalités qu’il apporte.

En savoir plus

R.Hasika – présentation : un robot Raspberry pi précis et extensible

R.Hasika de profil, avec les câbles rangés

R.Hasika – présentation

R.Hasika est le successeur de R.Cerda, un robot basé sur le Raspberry pi. Si à l’époque mon objectif était simplement de construire un robot basé sur le Raspberry pi, avec R.hasika, je suis plus ambitieux. En effet, il s’agit cette fois de concevoir entièrement le robot, que tout soit correctement pensé, plutôt que de faire certains éléments comme le châssis avec ce qui est disponible sous la main. Cette fois ci, chaque élément du robot aura été pensé. Dans ce billet, je vous propose une rapide présentation de ce robot et de ses objectifs.

J’ai créé une page pour le projet R.Hasika, que je vous invite à consulter pour davantage de détails.

Motorisation et déplacement

moteurs de R.Hasika sans les capteurs de rotation

moteurs de R.Hasika sans les capteurs de rotation

R.Hasika est un robot à conduite différentielle, s’appuyant sur deux moteurs à courant continu. Ces moteurs sont dotés de capteurs de rotation qui permettront un déplacement précis. Ils sont contrôlés par une puce DRV8835, qui permet de les commander facilement en PWM avec seulement 4 GPIO.

Ces moteurs entraînent deux chenilles, mais on peut les remplacer par des roues si on le souhaite. Dans tous les cas, ce choix de propulsion en fait un rover agile, capable de tourner sur lui même sur place, et avec une bonne capacité de franchissement d’obstacles.

Grâce aux capteurs de rotation des moteurs, on sera capable d’ajuster la vitesse de ceux ci pour effectuer des trajectoires parfaitement rectilignes, des rotations d’un angle précis, et même de l’odométrie et ainsi cartographier une zone.

Châssis et éléments structurels

le châssis de R.Hasika dans Openscad

le châssis de R.Hasika dans Openscad

Par rapport à R.Cerda, cette fois, le châssis à été pensé à l’avance. En pratique, la conception a été faite entièrement avec le logiciel libre OpenScad, et le code source (libre) permet à tout un chacun de modifier les paramètres du robot pour l’ajuster à ses besoins. J’ai publié un article détaillé sur le châssis de R.Hasika sur ce blog, comportant plus de détails que la présentation que vous lisez en ce moment.

Le châssis a été pensé pour être fabriqué à l’imprimante 3D d’une seule pièce, avec tous les trous et emplacements de fixation requis pour l’assemblage d’un robot complet. Ce châssis comporte également l’emplacement des batteries, des moteurs, des roues libres et de la plaque de support de l’électronique.

Cette dernière justement est la seconde pièce, sur laquelle viennent se fixer les composants électroniques du robot, les capteurs, etc. Cette plaque se visse simplement sur le châssis, renforçant ainsi davantage sa solidité.

La troisième pièce est la carrosserie, qui vient se visser par dessus, et qui permet de protéger l’électronique, et sert de support à divers autres éléments (voir plus bas dans la section du même nom).

 

Alimentation électrique et autonomie

L’alimentation électrique se fait par le biais de batteries lithium (jusqu’à 4), qui fournissent une capacité de 50Wh, permettant ainsi au robot de dépasser les 24 heures d’autonomie hors déplacement. En déplacement on obtiendra facilement de nombreuses heures d’autonomie.

Un autre point  intéressant avec ces batteries est qu’elles permettent d’intégrer au robot un circuit de charge, permettant de le recharger sans retirer les batteries. Mieux, on peut recharger le robot sans l’éteindre. Encore mieux, cela nous permet de programmer le robot pour qu’il aille se charger seul sur une station dédiée.

Capteurs

Capteur de distance ultrasonique Maxbotix

Capteur de distance ultrasonique Maxbotix

Les capteurs de base embarqués sont deux microswitches à levier, qui servent de capteurs de contact, un capteur de distance à ultrasons maxbotix, et les capteurs de rotation des roues. Si ces derniers permettent des trajectoires et mouvements précis, les deux premiers servent à mettre en oeuvre des algorithmes d’évitement d’obstacles.

D’autres capteurs viendront probablement s’ajouter à ces capteurs, avec par exemple un module accéléromètre, boussole et gyroscope 3D.

Un capteur particulier prendra place à coup sur, en revanche, avec le module caméra du Raspberry pi. Celui ci permet une capture vidéo en fullHD (1920*1080) à 30 images par secondes et des photos à 5Mpixels, voire 8 pour la nouvelle version. Une version infrarouge existe également.

 

Electronique de commande

Pour l’électronique de commande de ce robot, on s’appuie tout d’abord sur un Arduino nano, chargé des tâches de bas niveau (commande des moteurs, lecture des capteurs, contrôle des LEDs et boutons,  etc). Le robot peut être programmé directement via le Arduino, en ignorant le reste.

Le Arduino nano et le DRV8835 de R.hasika sur la plaque électronique. En dessous se trouve le Raspberry pi.

Le Arduino nano et le DRV8835 de R.hasika sur la plaque électronique. En dessous se trouve le Raspberry pi.

 

Mais cet Arduino est connecté par un port série à un Raspberry pi A+, qui permet cette fois de s’intéresser à des tâches plus complexes, telle que la cartographie, le traitement d’information vidéo, les communications wifi, etc. Si on ne souhaite pas s’occuper de la programmation des tâches de bas niveau, il suffit de téléverser le code fourni avec le projet sur l’Arduino et de communiquer avec celui ci depuis le Raspberry pi via un port série pour envoyer des commandes.

Autres éléments

R.Hasika embarque divers autres éléments que nous ne détaillerons pas tous ici. Mais en voici quelques uns :

  • 6 leds RGB adressables, dont on peut définir indépendamment la couleur parmi 65536;
  • un bouton poussoir programmable par l’utilisateur;
  • du wifi embarqué, pour pouvoir commander ou programmer le robot à distance;
  • un écran LCD 2*16 pour afficher des informations textuelles;
  • une ouverture permettant au robot d’être modifié, adapté;
  • des emplacements pour fixer des extensions non planifiées pour le moment.

Dans les prochains billets, nous nous pencherons en détail sur tous ces aspects, et nous nous intéresserons également aux objectifs recherchés pour ce robot, en commençant par détailler la conception du châssis et les fonctionnalités par celui ci. En attendant, voici une galerie de R.hasika :

 

Composants de R.Ian – pièces à imprimer ou acheter

châssis de R.Ian assemblé avec les roues, moteurs, la batterie et les contacteurs.

Dans un précédent billet, nous avons vu les objectifs qui ont guidé la conception de R.Ian, et dans le suivant détaillé la conception paramétrique des roues. Nous allons maintenant nous pencher sur les composants de R.Ian, à savoir la liste exhaustive des éléments nécessaires pour le construire de A à Z.

Voyons en pratique la  liste des composants de R.Ian :

Composants de R.Ian à imprimer en 3D :

Au total, les composants de R.Ian à imprimer reviennent à 2.91€ pour le filament, pour un peu moins de 3 heures d’impression 3D à des vitesses normales, et on en a pour 57g de PLA et 12g de ninjaflex.

Composants de R.Ian à acheter

A ce point, nous avons toutes les pièces nécessaires pour un robot minimal pour un peu moins de 27€. Les éléments suivants sont facultatifs, mais tout de même recommandés :

Avec tout cela, nous avons les éléments du robot pour environ 35€, en incluant des options qui ne sont pas nécessaires, mais sympathiques. Nous considérerons que ces options font partie du robot de base, mais elles restent des options car elles peuvent être enlevées si souhaité, tandis que le reste est nécessaire au fonctionnement de R.Ian

Le robot est amené à changer un peu, avec notamment un étage optionnel supplémentaire, pour accueillir un raspberry pi zero (5€), ou un autre modèle (le zero est préféré car moins cher, mais je ferai les pièces pour les autres modèles), mais aussi une carrosserie (une nouvelle pièce à imprimer), qui protégera l’électronique et les capteurs, tout en fournissant une poignée pour attraper le robot, et en gardant l’avant ouvert pour le capteur optique (toutefois couvert par dessus, celui ci étant fragile, surtout monté sur le servomoteur). Cette pièce devrait augmenter le prix total d’un euro environ.

Enfin, le système de roues actuel ne me satisfait pas, la roue sur pivot à l’avant était trop chère, et les axes des servomoteurs sont trop fragiles. Ces servomoteurs sont de plus de qualité un peu médiocre, je pense donc passer à des moteurs DC classiques. Il faudra donc que je conçoive un système imprimable de roue sur pivot, ou alors que je passe à un système de chenilles. J’ai déjà des moteurs en tête, et j’ai conçu le système de fixation des roues sur ces moteur, il me font concevoir les chenilles et les roues libres. L’objectif est aussi de rendre le robot plus solide, pour un usage scolaire.

Dans un prochain billet, je reviendrai sur divers éléments de la conception, comme par exemple les roues, qui sont hautement paramétrables (nombre de rayons, taille, épaisseur, pneus etc).

Roues de R.Ian et motorisation

Dans la version actuelle de R.Ian, j’ai décidé d’utiliser des servomoteurs à rotation continue. En effet, pour faire un robot, il est difficile de faire plus simple en matière d’assemblage, puisque chaque servomoteur utilisera un fil pour l’accès au +5V, un second pour la masse, et un troisième connecté à un GPIO. Cela signifie que pour les deux moteurs, on utilise seulement deux GPIO, et que l’assemblage est très simple, ce qui est l’un des objectifs du robot. Il nous faut maintenant des roues adaptées. Puisque nous cherchons à réduire les coûts, une solution est de les fabriquer, ce qui nous permettra également de les ajuster précisément à nos contraintes. Détaillons maintenant tout cela.

En savoir plus