Arduino Wire Scanner sur le bus I2C

Aujourd’hui je publie un code qui n’est pas de moi mais qui est bien pratique.

En effet, ce code permet de scanner tous les éléments connectés au port  I2C de votre Arduino.

Vous noterez que ce code utilise la librairie Wire qui permet de communiquer avec les équipements I2C.

Un grand merci à son auteur pour ce scanner Arduino I2C.

 …

Read more

Comprendre le multiplexeur PWM TLC5940

A quoi sert le composant TLC5940 ?

Le composant TLC5940 est un multiplexeur PWM (Pulse Width Modulation) qui peut gérer jusqu’à 16 canaux PWM. Ainsi avec seulement 3 pins de votre Arduino vous allez pouvoir utiliser jusqu’à 16 canaux PWM.

Tout comme le composant Shift Register 74HC595, le circuit intégré TLC5940 peut être connecté en cascade, ce qui permet d’étendre considérablement le nombre de canaux PWM utilisables.

Cela va donc être parfaitement adapté à mon projet EasyLight pour multiplexer des leds RGB.…

Read more

Intéraction entre Dotnet et Arduino

Pour mon projet EasyLight, je vais devoir faire interagir un programme développé en DotNet avec un Arduino Uno.

Après avoir parcouru plusieurs forums, j’ai noté qu’il existait plusieurs possibilités:

  • utiliser FirmData pour faire communiquer Arduino et votre programme DotNet
  • faire du code pour connecter votre logiciel DotNet au port COM de votre Arduino

J’ai donc décidé de partir sur cette seconde option en développant 2 parties de code:

  • une classe DotNet
  • un gabarit pour Arduino

Le code s’inspire de pas mal de samples trouvés ici et là sur le net.…

Read more

[.Net] Convertir une couleur hexadécimale en Couleur

Toujours pour mon projet EasyLight, j’ai développé une petite fonction qui convertit un code couleur hexadécimal en Media.Color.

Le code hexadécimal peut être au format #FFFFFF ou bien au format FFFFFF. Le code retourne un System.Windows.Media.Color, ce qui vous permettra de récupérer ses propriétés R, G ou B 🙂…

Read more

[.Net] Convertir un nombre dans un format lisible

Pour mon projet EasyLight, j’ai dû faire une fonction qui convertit un nombre dans un format lisible et compréhensible pour le commun des mortels.

L’exemple classique est de convertir un nombre de bytes en GigaBytes, MégaBytes, etc…

Pour faire cette conversion de nombre, je vous propose la fonction suivante:

Cette fonction vous permettra de convertir un nombre dans ses différents multiple rapidement et facilement.…

Read more

[.Net] Exécuter une application DotNet au démarrage de Windows

Pour un de mes projets (EasyLight, plus de détails prochainement) qui mêle Arduino et DotNet, j’ai eu à développer pas mal de fonctions qui peuvent être réutilisées dans pas mal de projets.

Une des choses que je suis souvent amené à faire est de lancer une application DotNet au démarrage de Windows.

Pour démarrer automatiquement votre application, vous avez plusieurs solutions:

  • Créer un service Windows qui exécutera votre application au démarrage de Windows. Le problème de cette solution est qu’elle n’est utilisable que pour des applications en tâche de fond sans interface graphique.
Read more

[.Net] Récupérer, Modifier et Travailler avec les pixels et les bitmap

Pour un de mes projets (dont je parlerai plus longuement dans quelques mois), j’ai eu besoin de faire des captures d’écran via une application Dotnet.

Une fois la capture réalisée, j’ai voulu lire et modifier les valeurs RGB de certains pixels.

Certains traitements tels que la mise à jour de nombreux pixels sont coûteux en ressource, c’est pourquoi j’ai fait une petite classe nommée SpeedBitmap. Cette classe permet ainsi d’optimiser certains traitements.

Voici les fonctionnalités de ma classe SpeedBitmap:

  • réaliser une capture d’écran
  • lire le code RGB d’un pixel
  • modifier le code RGB d’un pixel
  • bloquer et débloquer un bitmap afin d’optimiser les temps de traitement

Les fonctions de bloquage et débloquage du bitmap sont relativement pratiques si vous avez à effectuer de nombreux traitements sur le bitmap.

Read more

Contrôler un mini servo avec Arduino

Avec mon pote Idleman, on a pour projet de réaliser un robot (mais chut j’en dis pas plus pour le moment), et qui dit robot dit moteur, articulation, etc…

N’ayant jamais piloter de servo moteurs, j’ai décidé d’acheter sur la baie des mini servo de 9g.

mini servo

 

Fonctionnement d’un servo moteur

Tout d’abord, il faut s’avoir qu’un servo permet d’effecter des déplacements en translation ou en rotation. De nombreux objets du quotidien utilisent des servo moteurs: voitures télécommandées, drône, électroménager, …

Les différents types de servos se distingue par 3 caractéristiques:

  • leur vitesse de rotation par seconde
  • leur course en degré
  • leur couple exprimé en kg.cm

Le fonctionnement d’un servo est relativement simple.…

Read more

[.Net] Erreur “This assembly may have been downloaded from the Web”

Aujourd’hui j’ai rencontré une erreur un peu bizarre lorsque j’ai déployé un serveur de compilation pour générer mes différents projets DotNet.

Ce serveur est une machine sur mon réseau de production qui ne fait que compiler chaque jour mes différentes solutions .Net afin que je puisse disposer à chaque instant d’une version à jour de mes logiciels.

Manque de bol, en déplaçant plusieurs solutions, j’ai eu une erreur de dépendance de librairies.

L’erreur est la suivante:

Après une bonne demi heure de recherche, j’ai trouvé comment corriger ce problème sans avoir à modifier les références dans mes projets.…

Read more

Monitorer votre serveur Linux grace à MRTG

Aujourd’hui j’ai dû installer un logiciel de monitoring sur mes serveurs Linux afin de pouvoir superviser l’utilisation de la bande passante.

Pour faire celà, il m’a suffit d’installer MRTG (Multi Router Traffic Grapher) qui est un logiciel permettant de créer des graphiques sur le trafic réseau.

Il envoie des requêtes SNMP pour interroger des équipements réseaux tels que des routeurs,  des commutateurs, ou bien encore des serveurs disposant d’une MIB SNMP.

Installation d’Apache, MRTG et SNMP

Pour pouvoir utiliser MRTG, il nous apache et snmp.…

Read more