www.DigitalSpirit.org

Bienvenue sur le blog de Charles Rincheval aka hugo !

Politique d'accessiblité | Aller au contenu | Aller au menu | Aller à la recherche

Keyword - Planet-Libre

Fil des billets - Fil des commentaires

Un exemple d'utilisation de la bibliothèque Oled4d pour Arduino

Voici un exemple très simple expliquant l'utilisation de la bibliothèque libre Oled4D dont j'ai parlé dans un précédent billet.

Ce programme va afficher l'image ci-dessous :

Oled 4D démo pour Arduino

Le code source commenté est affiché en seconde partie de ce billet.

Plus d'informations :

Lire la suite...

Librairie Arduino pour afficheur Oled : Oled4d

Voici une librairie libre de gestion d'afficheur OLED de la société 4D Systems pour Arduino.

Comme leur nom l'indique très bien, ils utilisent la technologie OLED avec tous les avantages de cette technologie : pas besoin d'un rétroéclairage, ils ont un angle de vue de 180°, bonne consommation, très bon contraste, vous pouvez les trouver entre autres chez Lextronic ou encore chez Sparkfun.

Le jeu d'instructions n'est pas toujours très logique mais est assez complet, le principal défaut de ces afficheurs est le prix, à 65€ l'unité, j'imagine mal comment espérer faire de la petite série...

Ces afficheurs sont pilotables directement par le biais d'une connection série dans lequel on envoie directement des commandes d'assez hauts niveaux :

  • Set Background Color
  • Put Pixel
  • Erase Screen
  • Draw Rectangle
  • Place String of ASCII Text
  • ...

Ils disposent également d'un port microSD permettant ainsi de charger des images ou encore des bouts de programmes, attention cependant, car n'espérez pas mettre des images jpg dans la microSD ou autre et les afficher comme ça, d'un coup, ça ne fonctionnera pas, tout d'abord, car le chip de 4D ne gère pas les images compressées mais uniquement des champs de bits et surtout car il n'y a aucune gestion de FAT gérée par le controleur, ainsi, il est possible d'accéder au contenu de la microSD depuis votre programme mais uniquement en brut : à nous de gérer la couche du système de fichiers...

Tester la libraire

Voici la marche à suivre pour tester cette librairie avec Arduino (la librairie peut parfaitement fonctionner hors du projet Arduino...) :

  1. Créer un dossier Oled4d dans le dossier Libraries de votre installation Arduino et copiez dedans le fichier Oled4d.h.
  2. Créez un nouveau projet Arduino et copiez le contenu du fichier oled4d.pde dedans.
  3. Compilez le source, envoyez dans la cible et voilà, vous devriez avoir quelque chose de ce genre s'afficher :

Oui, il s'agit bien de Tux ! ;)

Comment ça fonctionne ?

Voici un petit bout de code :

// Créer l'objet en interface série logiciel
Oled4dSoft oled = Oled4dSoft(serial, 8);

// Pour utiliser l'uart « hardware », procéder ainsi :
//Oled4dHard oled = Oled4dHard(Serial, OLED_RESET_PIN);

// Initialise l'écran
oled.init();

// Efface l'écran
oled.clear();

// Dessine un cercle
oled.drawCircle(64, 64, 20, RGB(255, 255, 0));

// Affiche du texte
oled.drawText(1, 3, SMALL, GREEN, "Hello world !");

Voilà, je pense que l'exemple est assez explicite et logique...

Vour remarquerez qu'il est possible de passer par l'uart intégré à l'Atmel ou de passer par l'uart logiciel avec la libraire NewSoftSerial (cette librairie dispose de fonctions avancées et est bien supérieure à la librairie d'uart fourni par défaut dans le projet Arduino).

Démo

Voici une petite démo affichant en vrac des lignes, des triangles, des cercles, des polygones, des rectangles...
La vidéo reflète assez mal les couleurs de l'écran qui sont bien vives en réel.

Écran Oled de 4D System piloté par Arduino

Futures évolutions

Actuellement, cette librairie supporte uniquement les instructions standards (General Command Set), les autres (Extended Command Set), qui permettent entre autre un accès au contenu de la microsd, ne sont pas encore gérées mais le plus gros du travail est fait...

Téléchargement

Cette librairie est mise à disposition sous license GPL.
Vous pouvez télécharger la toute dernière version de cette librairie depuis mon compte GitHub à l'adresse suivante : http://github.com/hugokernel/Oled4D

Je mettrai à jour également la page sur le wiki : http://www.digitalspirit.org/wiki/projets/oled4d.

Planet Madeinfr : Regroupement d'articles francophones sur le « fait soit même »

Ouverture ce jour d'un planet (un regroupement d'article issus de différents blogs au sein d'un même blog), consacré au « fait soit même » (autrement appelé « Do It Yourself » outre atlantique) avec une forte attirance pour l'électronique, sa petite particularité est que tous les articles diffusés sont en français.

La publication sur le planet est ouverte à tout le monde, il suffit de posséder un blog et des articles en français sur le sujet, et de nous le signaler par le biais du formulaire approprié.

L'adresse de ce planet est : http://planet.madeinfr.org/

Il est aussi possible de suivre les articles et l'actualité de Made in Fr sur Twitter et Identi.ca :

 

Hyla_Tpl : Un nouveau moteur de template / gabarit / modèle léger et rapide

Pour les besoins de la nouvelle version du gestionnaire de fichiers en ligne Hyla (http://www.hyla-project.org/) qui utilisait jusqu'à lors le moteur de gabarits de la PhpLib, un nouveau moteur bien plus performant à été réécrit respectant la logique des templates de ce dernier.

Il améliore les performances en terme de vitesse d'un facteur 10 et ajoute un certain nombre de fonctionnalités très pratiques :

  1. Tableaux et objets dans les variables : {$user.name}
  2. Les fonctions appliquées aux variables : {$user.name|upper}
  3. Les fonctions simples : {!include:test.tpl}
  4. La traduction : {_Hello World !}
  5. Les commentaires : {# Petit commentaire}
  6. Les blocs ELSE associés aux habituels BEGIN / END

Ce moteur est disponible en mode autonome (standalone) totalement indépendant de Hyla.

Les habitués des templates de la Phplib y trouveront leurs comptes rapidement, les autres seront séduits par la facilité et la légereté de cette librairie.

Je vous invite à consulter le site pour plus de détails et des exemples d'utilisation sur le blog de développement de Hyla.

Éviter l'extinction / le redémarrage accidentel d'un serveur : molly-guard

J'ai découvert par l'intermédiaire de Clochix un petit programme très pratique, voir indispensable, à installer, notamment, sur les serveurs auxquels vous avez l'habitude de gérer à distance par ssh.

Ce paquet permet, en s'intercalant entre vous et les commandes halt, shutdown ou reboot, de vous protéger d'un rédémarrage ou un arrêt intempestif, voir dramatique (oui,  dramatique), de votre serveur en vous demandant de saisir le nom du serveur (hostname) à qui s'adresse ladîte commande...

Une petite mise en situation :

root@prod:$ shutdown
W: molly-guard: SSH session detected!
Please type in hostname of the machine to shutdown: dev
Good thing I asked; I won't shutdown prod ...

Voilà une belle sueur froide d'évitée...

Le paquet se nomme molly-guard et est disponible sur toutes les bonnes distributions GNU/Linux...

Des USE flags à jour pour votre Gentoo

Utilisateur de Gentoo, il m'arrive fréquemment d'ajouter des USE flags afin de profiter de fonctionnalités supplémentaires pour tel ou tel programme, or, j'installe en général les mêmes applications sur mes machines (pro ou perso), du coup, je me retrouve à installer les mêmes USE flags un peu partout.

Afin d'éviter les erreurs de copie de USE flags et d'être synchro entre mes machines, j'ai créé un outils tout simple permettant de fusionner les USE flags, ce dernier est utilisable en ligne à l'adresse suivante : http://www.digitalspirit.org/lab/misc/merge-use-flags.php

L'utilisation est, me semble-t-il, assez claire, copiez dans les champs les contenus de "USE flag" de vos machines, validez, un nouveau champs apparait alors avec un USE flag correspondant à la fusion des 2 précédents.

Cependant, certain USE flags reste spécifique à certaine architecture, prenez garde de ne pas les mélanger, pour ma part, je procède simplement en séparant d'une ligne vide les USE flags génériques (en vert) de ceux spécifiques au matériel (en rouge) :

USE="
alsa automount avahi
bash-completion bluetooh bzip2
cairo cdaudio cdr code
dbus directfb doc dvb dvd dvdr
exif
fat ffmpeg firefox
gif gimp glitz gnome gstreamer gtk
ipod
jpeg jpeg2k
lame libcaca
matroska mng mp3 mpeg mysql
ogg opengl
pdf png php
quicktime
raw
samba sqlite subversion svg
theora tiff truetype type1
unicode usb
v4l v4l2 vnc vorbis
win32codecs
X
x264 xcb xine xinerama xml xulrunner xvid

mmx sse smp
"

Ce script permet aussi de trier les USE flags et éventuellement des les grouper par critères de tri, pratique pour s'y retrouver facilement dans son make.conf ...

Connection ssh sans mot de passe

Billet pense-bête, ça m'évitera de chercher si j'ai un trou de mémoire :)

Il est possible de se connecter sans saisir de mot de passe sur une machine distante en SSH, chose très pratique lors de l'administration de plusieurs machines...

Si ce n'est pas encore fait, il vous faut générer votre paire de clef publique / privée, pour cela, entrez la commande suivante :

$ ssh-keygen

Il vous demandera :

  • L'endroit oû stocker les clefs, (~/.ssh/id_dsa par défaut)
  • Une phrase faisant office de mot de passe, laissez cette dernière vide

Ensuite, il faut copier la clef publique dans le fichier ~/.ssh/authorized_keys du pc distant, vous pouvez le faire manuellement avec la commande scp, mais il existe plus simple :

$ ssh-copy-id user@domain.tld

Voilà, vous pouvez dorénavant vous connecter à votre machine sans mot de passe.

Prenez garde à n'utilisez cette méthode qu'à partir d'une machine "de confiance"...

24h du Mans rollers 2008 : "Les roues libres"

L'édition des 24h du Mans rollers 2008 est finie, pour la deuxième année, nous avons courus avec des Tux sur nous pour représenter l'équipe "Les roues libres".

Une photo de groupe de l'équipe après 24h de roulage :

De gauche à droite, de haut en bas :
Hugo, Bast, Pepito, Bruno, Guillaume, Matthieu, Bruno, Lydia, Danii, Lili

Bravo à Mamachine qui était également présent mais qui tournait en solo !

Notre tux sur roulettes réalisé par Céline, merci à elle :

On se dit à l'année prochaine pour la dixième édition de cette superbe rencontre...

Nouvelle édition des 24h du mans Rollers : Les roues libres

Comme l'année dernière, nous avons formé une équipe sous le signe du libre pour participer au 24h du Mans roller, avec une équipe nommée "Les roues libres".

La course va se dérouler le week end du 28 & 29 juin, l'équipe est presque au complet, il nous reste en effet 2 places, donc, si l'aventure vous intéresse, contactez moi rapidement à l'adresse suivante :

24hrollers arobase digitalspirit point org 

Onglets dans la même instance de GVim

Voilà une petite astuce pour les utilisateurs de GVim qui vous permettra d'ouvrir tous vos documents dans la même instance grâce aux onglets.

La page Vim documentation : remote nous apprend qu'il est possible de faire fonctionner Vim comme un serveur recevant des messages de clients et exécutant les commandes demandées par ces derniers.
Une de ces commandes nous intéresse et va justement nous permettre d'ouvrir des documents dans la même instance de Vim, il s'agit de remote-tab-silent.

Testons cette commande :

 $ gvim -p --remote-tab-silent toto

Une instance de GVim s'ouvre avec toto dans un onglet (le paramètre p permet d'ouvrir un onglet par fichier).
Gardons GVim ouvert et testons de nouveau :

 $ gvim -p --remote-tab-silent foo

Le fichier foo s'affiche maintenant dans un nouvel onglet de la même instance GVim, nous avons donc 2 fichiers ouvert dans GVim : toto et foo.

J'ai fait un petit script bash qui permet de s'affranchir des problèmes rencontrés à l'ouverture avec Nautilus (qui tente d'ouvrir les documents avec le paramètre "-f") et qui évite surtout de devoir saisir les paramètres à chaque fois, il suffit alors de remplacer le fichier binaire de gvim par le script :

 $ mv /usr/bin/gvim /usr/bin/gvim-bin

Ensuite, il vous suffit de déposer le script ci joint dans le dossier /usr/bin et de lui attribuer les droits d'exécution.

Bon Gvim !

- page 2 de 4 -