Skip to main content

Conception d’un NAS Raspberry Pi pour l’impression 3D

Vue 3D de la cage à disques du NAS

J’ai conçu et construit un serveur NAS (stockage de fichiers) en bois, avec un CPU AMD classique dedans et 4 disques de 4To. Il tourne sous Open Media Vault 5 (OMV), avec tous mes dockers (Tous deux des logiciels libres et gratuits!). En plus, j’ai 4 disques externes de 4To, en backup des disques du NAS. Jusqu’ici, je branche chaque disque, avant de lancer un Rsync pour synchroniser vers le disque de backup.

Mais plutôt que d’avoir des disques “en vrac”, j’ai décidé de concevoir avec FreeCAD (Aussi libre et gratuit!) un ensemble de pièces qu’on peut fabriquer à l’imprimante 3D, et qui une fois assemblées permettront de construire facilement un second NAS. Nous verrons ici la conception des pièces dans FreeCAD, ce qui peut vous donner une idée de ce que permet ce logiciel.

En savoir plus

Exporter sa clé SSH avec ssh-copy-id vers un raspi (ou autre)

Exporter sa clé SSH avec ssh-copy-id vers un raspi  (ou autre)

Vous avez un/des raspis sur votre réseau, et vous devez souvent vous connecter en ssh dessus.
La méthode classique c’est de faire ssh pi@ip_raspi et de taper le mot de passe.
Mais à la longue ça devient lassant; et ça peut être bloquant pour des scripts qui devraient
automatiquement accéder au raspi via SSH sans que vous soyez là pour taper le mot de passe.
La solution : exporter votre clé publique SSH vers le raspi (ou la cible ssh souhaitée, raspi ou pas).
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

Wiki : installer un module RTC DS3231 sur le Raspberry pi

DS3231 brochage et connexion

Le Raspberry pi ne dispose pas de module RTC lui permettant de garder une mesure précise du temps écoulé. C’est la raison pour laquelle on peut lui ajouter un module RTC, comme le DS3231, et ainsi permettre de garder une heure correcte, même sans réseau et sans synchronisation NTP. Je vous propose de découvrir comment installer, configurer et utiliser le module DS3231 sur un Raspberry pi en suivant cette version Wiki du tutoriel, tout juste terminée. Par rapport à la précédente version “blog”, celle ci est plus lisible, revue et corrigée.

Bonne lecture 🙂

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!

Ramdrive sur un Raspberry pi : réduisez l’usure de la carte SD!

un ramdrive sur rlieh, pour enregistrer temporairement les valeurs des capteurs

Qu’est ce qu’un ramdrive?

Un ramdrive est un espace de stockage qui utilise la RAM (mémoire vive) au lieu du disque dur, SSD, mémoire flash ou autre moyen habituel de stockage. La RAM est plus rapide que tous ces supports, mais en cas de coupure de courant ou si on éteint l’ordinateur, les données sont perdues. Donc, à quoi ça sert, un stockage qui oublie à chaque reboot?

Pourquoi utiliser un ramdrive?

La réponse évidente, c’est la vitesse : si vous avez besoin d’accès ultrarapides, ça peut être une solution. Une seconde réponse intéressera les utilisateurs de raspberry pis : éviter d’user la carte SD du système. La mémoire flash s’use à chaque écriture (c’est simplifié, mais c’est l’idée). Un SSD aura des techniques pour répartir l’usure équitablement et donc ça ne rentrera pas réellement en compte. Mais pour une carte SD, il n’y a pas ces algorithmes avancés. Donc quand on écrit tout le temps au même endroit, on finira par “user” la carte, et elle aura des secteurs défectueux. C’est ici qu’intervient le ramdrive. Pour de nombreux projets à base de Raspberry pi, nous utilisons des capteurs, et nous souhaitons stocker les valeurs des capteurs. Du coup, si à chaque mesure on écrit sur la carte SD, elle lâchera bien vite, d’autant plus vite qu’on écrit souvent, par exemple chaque seconde. Dans ce contexte, je vous propose de créer un ramdrive pour pouvoir écrire dessus en continu, sans se soucier de l’usure, et de copier de temps en temps les données vers la carte SD. En stockant les mesures chaque seconde sur le ramdrive, puis en copiant les données toutes les heures, on écrira 3600 fois moins souvent sur la carte SD!

Voyons maintenant comment réaliser cela.

En savoir plus

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 :

Partage de fichiers samba avec le Raspberry Pi

apt-get install samba

Pour diverses raisons, vous pouvez être amené à transférer des fichiers par le réseau vers votre Raspberry pi, ou au contraire en récupérer. Il est également possible de modifier directement un fichier par le réseau, pratique pour programmer le Raspberry Pi. Il existe pour cela de nombreuses solutions, mais nous verrons dans ce billet l’utilisation du protocole SMB, via le logiciel samba, qui permet de faire des “partages Windows” en reproduisant le protocole de ce système. Si ce n’est pas nécessairement le meilleur protocole pour tous les usages, il sera accessible depuis les postes sous Linux, Unix, Windows, ou encore MacOS, et donc probablement le plus répandu. Nous verrons ici comment installer et configurer tout cela sur votre Raspberry pi.

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 :

 

Caméra Raspberry pi waterproof : présentation.

SauronPi avec camera et vitre en place

Dans le cadre de mon projet SauronPi, je développe une caméra autonome et waterproof capable de rester un moment dans la nature pour photographier ou filmer pendant de longues périodes sans intervention. Ceci est un sous-projet du projet SauronPi, pour lequel je développe des systèmes vidéo/photo basés sur le Raspberry Pi et son module caméra. L’objectif de ce billet est de vous présenter le projet et ses objectifs.

En savoir plus

Raspberry pi mobile LiPo, test d’autonomie au repos, monitoring batterie

courbe tension batterie lipo en fonction du temps alimentant un raspi A+

Aujourd’hui, voyons comment s’en sort notre raspberry pi équipé de sa batterie LiPo de 6000mAh. Dans ce précédent billet, j’ai décrit le système de base du Raspberry pi mobile, et dans celui ci j’ai rajouté un composant pour mesurer la tension de la batterie. Le premier test effectué nous a permis d’atteindre environ 42 heures d’autonomie, au repos. Cette fois ci, nous reproduisons ce test, mais en mesurant la tension de la batterie durant ce test. Nous étudierons la courbe pour déterminer une relation entre la tension et la charge restante.

En savoir plus

Alitest : écran LCD 10 pouces HDMI 1280×800 IPS

Le bureau de Raspbian sur l'écran LCD 10 pouces HDMI 1280x800 IPS

Le Raspberry pi est capable d’utiliser des écrans HDMI variés, du moniteur d’ordinateur à la télévision de salon. Toutefois, pour certains projets, on peut souhaiter utiliser un écran plus compact, sans se ruiner. Dans cet article, nous testerons un écran LCD 10 pouces HDMI 1280×800 IPS acheté sur Aliexpress. aux alentours de 60€. Il existe des écrans moins chers pour cette diagonale, mais celui ci à l’avantage d’avoir une définition de 1280×800, donc compatible avec le 720p (les modèles moins chers sont plutôt en 1024×600), et également d’être vendu comme ayant une dalle IPS. Nous verrons donc ce que vaut cet écran en pratique, ce que l’on reçoit, et comment assembler le tout (très simple), et nous vérifierons qu’il s’agit bien d’un IPS.

En savoir plus

DS3231 Raspberry pi RTC : ajouter une horloge temps réel I2C – Alitest

DS3231 Raspberry pi RTC - pinout

Le Raspberry pi ne dispose pas de module RTC (Real Time Clock, horloge en temps réel), et ne peut donc pas garder une trace précise du temps écoulé sans avoir recours à une synchronisation sur un serveur de temps (NTP). Cela n’est pas toujours possible, notamment pour des projets ou le Raspberry Pi n’est pas connecté au réseau. Pour remédier à cela, il est possible d’ajouter un module RTC tel que le DS3231, économique, compact et précis. Nous verrons dans ce tutoriel comment réaliser cela.

En savoir plus

DS18B20 Raspberry pi – Mesurer la température avec une sonde numérique

DS18B20 logo sonde température numérique

Pour mesurer la température, il est possible d’utiliser divers capteurs, tels que le TMP36, le DHT11/DH22, ou encore le DS18B20. C’est à cette dernière sonde que nous nous intéresserons aujourd’hui. Il s’agit d’une sonde numérique (pas besoin de convertisseur analogique-numérique tel que le MCP3008) qui est assez précise (±0.5°C sur la plage -10°C – 85°C), raisonnablement facile à utiliser, et consommant peu. Par rapport à une sonde analogique, c’est un peu plus complexe, puisqu’il faut utiliser le protocole dallas 1-wire, mais nous verrons qu’il y a déjà les outils nécessaires pour exploiter tout cela.

En savoir plus

Raspberry pi mobile – mesure de la tension de la batterie

Raspberry pi mobile

Suite à mes premiers tests sur un Raspberry pi mobile utilisant une batterie lipo qui a permis plus de 40 heures d’autonomie, je poursuis les expérimentations dans le domaine. Nous reprendrons le même montage, mais nous ajouterons un convertisseur analogique vers numérique afin de pouvoir mesurer la tension de la batterie. Nous ajouterons également une charge activable sur commande pour représenter une activité plus lourde, et nous établirons des profils de consommation, et chercherons une méthode d’estimation de l’autonomie restante en fonction de la tension mesurée de la batterie.

En savoir plus

Mesurer une tension avec un pont diviseur de tension

pont diviseur de tension

Si l’on mesure une tension, il faut que celle ci soit inférieure aux tensions admissibles par le composant qui les mesure. Généralement il s’agit de la tension d’alimentation du composant : un composant alimenté en 5V mesurera des tensions jusqu’à 5V par exemple. Si l’on dépasse la valeur limite, on risque de détériorer le composant qui mesure la tension. Mais que faire dans ce cas si l’on souhaite mesurer une tension plus élevée? Par exemple, si avec votre Arduino, vous souhaitez mesurer la tension d’une batterie de voiture? Il est possible dans ce contexte d’utiliser un pont diviseur de tension. Nous verrons dans cet article le principe, comment calculer les bonnes valeurs pour votre pont diviseur et également comment le réaliser et s’en servir.

En savoir plus