mardi 13 mars 2012

Django, Apache 2 et module WSGI

project.png

Django est un framework web de haut niveau développé en Python dont le but est d'encourager le développement web rapide, propre et simple. Django est libre et publié sous licence BSD.

Bien que Django embarque un serveur, celui-ci est à réserver au développement. En effet il n'est pas prévu pour faire office de serveur de production. Cet article propose de servir un site Django à l'aide d'Apache 2 et du module WSGI.

Si de nombreux articles sur ce sujet sont disponibles sur Internet, peu se contentent du strict minimum. Assez souvent il s'agit même de configurations alambiquées dans lesquelles on se perd, avant de laisser tomber... Cet article propose une configuration minimale qui, même si elle n'est peut-être pas optimale, a au moins le mérite d'être accessible au plus grand nombre.

Lire la suite

vendredi 17 février 2012

Bibliothèque MAX7219 pour Arduino 1.0

max7219_h.png

Le logiciel Arduino est passé en version 1.0 le 30 novembre 2011. Les changements de cette nouvelle version portent aussi bien sur l'environnement de développement que sur les bibliothèques. Ils sont décrits de manière exhaustive sur la page Arduino Software Release Notes.

Certaines de ces modifications rendent impossible la compilation de la bibliothèque MAX7219. Cet article présente les changements effectués sur celle-ci dans le but de la rendre compatible avec Arduino v1.0.

Lire la suite

jeudi 16 février 2012

Création d'une branche arduino-0023 sur le dépôt idreammicro-arduino

Le logiciel Arduino est passé en version 1.0 le 30 novembre 2011. Les changements de cette nouvelle version portent aussi bien sur l'environnement de développement que sur les bibliothèques. Ils sont décrits de manière exhaustive sur la page Arduino Software Release Notes. Ces modifications peuvent  […]

Lire la suite

Ouverture du dépôt idreammicro-arduino

Un logiciel de gestion de versions permet de conserver l'ensemble des révisions d'un logiciel. iDreamMicro a choisi d'utiliser ce type de système, et plus particulièrement Subversion. iDreamMicro a ouvert un dépôt dédié à ses développements pour Arduino. Celui-ci est disponible à l'adresse  […]

Lire la suite

jeudi 5 janvier 2012

FreeRTOS sur ATmega328

FreeRTOS est un noyau de système d'exploitation temps réel faible empreinte pour microcontrôleur. Il est publié sous licence libre GNU General Public License (GPL).

FreeRTOS propose différents portages, notamment pour ATmega323, mais pas pour ATmega328. En effet, certains registres et vecteurs d'interruption relatifs au Timer 1 ont été renommés. Cet article propose d'y remédier de manière didactique, en réalisant le portage pas à pas. Ainsi la démarche pourra être reproduite pour tout autre microcontrôleur ATmega.

L'ATmega328 étant relativement proche de l'ATmega323, le portage de ce dernier servira de base.

La cible utilisée dans cet article est une carte Arduino Uno R2 embarquant un microcontrôleur ATmega328P.

Lire la suite

lundi 19 décembre 2011

avr-size et Ubuntu 10.04 LTS

À l'image de l'utilitaire size pour gcc, avr-size permet de connaître l'empreinte mémoire de programmes pour microcontrôleurs AVR compilés avec avr-gcc.

Ainsi avr-size propose deux options dédiées aux AVR :

  • L'option -C offre une vue de l'empreinte mémoire adaptée aux microcontrôleurs AVR, en distinguant la mémoire de programme (flash) et la mémoire de données (RAM).
  • L'option --mcu permet d'indiquer le type d'AVR et d'obtenir un taux d'occupation mémoire exprimé sous forme de pourcentage.

Malheureusement, ces options ne sont pas supportées par la version d'avr-size livrée avec la distribution Ubuntu 10.04 LTS (Lucid Lynx). Leur utilisation se solde par une erreur.

$ avr-size -C --mcu=atmega328p helloworld.elf
avr-size: invalid option -- 'C'
Usage: avr-size [option(s)] [file(s)]
 Displays the sizes of sections inside binary files
 If no input file(s) are specified, a.out is assumed
 The options are:
  -A|-B     --format={sysv|berkeley}  Select output style (default is berkeley)
  -o|-d|-x  --radix={8|10|16}         Display numbers in octal, decimal or hex
  -t        --totals                  Display the total sizes (Berkeley only)
            --common                  Display total size for *COM* syms
            --target=<bfdname>        Set the binary file format
            @<file>                   Read options from <file>
  -h        --help                    Display this information
  -v        --version                 Display the program's version

avr-size: supported targets: elf32-avr elf32-little elf32-big srec symbolsrec verilog tekhex binary ihex

En effet, la version du paquet binutils-avr (2.20-2) livrée avec cette version de la distribution Ubuntu est une version non patchée de l'utilitaire size de gcc. Cet article propose une solution pour remédier à ce problème.

Lire la suite

Arborescence d'une bibliothèque

Par définition, une bibliothèque doit être réutilisable afin d'être intégrée au plus grand nombre de projets. Mais elle doit également être suffisamment indépendante pour permettre de l'évaluer et de la tester sans être parasité par un projet complet. C'est à dire qu'on doit pouvoir prendre uniquement le dossier de la bibliothèque.

Cet article présente l'arborescence définie par iDreamMicro afin de répondre à ces exigences.

Lire la suite

jeudi 8 décembre 2011

Arduino est libre, sauf son logiciel de CAO !

Arduino Shield

Arduino Shield

À l'image de l'article Tout est libre dans le logiciel libre, sauf sa maison ! publié sur Framablog, on peut se dire qu'il en est de même pour Arduino et son logiciel de CAO.

En effet, Arduino utilise le logiciel propriétaire Eagle de CadSoft pour ses développements hardware, cartes de développement ou shields. Par conséquent, de nombreux développeurs ont suivi ce choix.

Lire la suite

samedi 8 octobre 2011

Arduino Uno et MAX7219

Arduino Uno + MAX7219

Arduino Uno + MAX7219

Cet article propose de piloter un MAX7219 à l'aide d'une carte Arduino Uno. Dans un soucis de modularité, on développera un sketch et une bibliothèque nommée MAX7219. Les développements sont effectués à l'aide de l'environnement de développement Arduino 0022.

Le contrôleur d'affichage MAX7219 a fait l'objet d'une présentation dans un précédent article.

Schéma de câblage

Le montage servant de support à cet article utilise une carte Arduino Uno et un module embarquant un MAX7219 et 8 afficheurs 7 segments.

Les sorties utilisées sur la carte Arduino Uno sont les suivantes :

  • broche 10 (SS) -> CS ;
  • broche 11 (MOSI) -> DIN ;
  • broche 13 (SCK) -> CLK.

Arduino + module MAX7219

Lire la suite

Bus Pirate et MAX7219

Bus Pirate + MAX7219

Bus Pirate + MAX7219

Le Bus Pirate est un outil de développement libre conçu par Dangerous Prototypes. Celui-ci permet de piloter n'importe quel composant utilisant un bus série : 1-Wire, I2C, SPI, JTAG, USART, etc... Il peut également faire office d'analyseur logique d'appoint.

Le Bus Pirate peut être piloté depuis un terminal série ou en mode binaire à l'aide de scripts. Dans cet article nous utiliserons le mode binaire et des scripts Python pour piloter un contrôleur d'affichage MAX7219.

Lire la suite

jeudi 22 septembre 2011

Tutorial Bus Pirate 102 VF

Après avoir traduit le tutorial Bus Pirate 101 en français, iDreamMicro récidive et vous propose la suite, c'est à dire la version française du tutorial Bus Pirate 102. Soyez en conscient et ne l'oubliez pas, tout un chacun peut participer au projet Bus Pirate et plus généralement à n'importe quel  […]

Lire la suite

Limiter le nombre de lignes affichées par SyntaxHighlighter

Par défaut, SyntaxHighlighter affiche toutes les lignes d'un code source quel qu'en soit le nombre. Dans le cas d'un code source ayant des centaines de lignes, outre le fait qu'en afficher la totalité peut-être gênant, l'intérêt en est très limité voire nul.

Cet article présente la solution mise en œuvre sur le blog iDreamMicro pour limiter le nombre de lignes affichées, et ce en modifiant simplement la feuille de style de SyntaxHighligter.

Lire la suite

lundi 29 août 2011

Contrôleurs d'affichage Maxim MAX7219/MAX7221

Affichage 7 segments

Les circuits intégrés MAX7219 et MAX7221 de Maxim sont des contrôleurs d'affichage à interface série. Ces composants sont capables de piloter jusqu'à 8 afficheurs 7 segments avec point décimal ou 64 LEDs tout en assurant le multiplexage entre les différents digits ainsi que le décodage des valeurs à afficher.

Par rapport au MAX7219, le MAX7221 est pleinement compatible SPI, QSPI et Microwire. Aussi, ses contrôleurs de segment présentent un slew rate limité afin de réduire les perturbations électromagnétiques.

Piloter ce type d'affichage avec des composants classiques (transistors pour le multiplexage et décodeurs BCD - 7 segments pour le décodage) n'est pas compliqué à réaliser mais particulièrement fastidieux. En effet, le nombre de composants nécessaires et de sorties requises pour leur pilotage côté microcontrôleur est très nettement supérieur.

Affichage 7 segments

Avant d'entamer une petite série d'articles sur des utilisations concrètes de ces composants, celui-ci vous propose de les découvrir.

Cet article se concentre tout particulièrement sur le pilotage de ces composants et prodigue quelques conseils ainsi qu'un exemple de mise en œuvre. Il constitue un point de départ pour en faire une utilisation basique tout en épargnant, dans un premier temps, une lecture approfondie de la documentation technique des MAX7219 et MAX7221. C'est d'ailleurs de ce document que sont tirées toutes les illustrations ci-dessous.

Lire la suite

mardi 16 août 2011

Le code de la route sauve des vies, la convention de codage aussi

orange_light.jpg

Le code de la route ne sert à rien. Il ne sert ni à démarrer une voiture, ni à la conduire, ni même à la faire fonctionner. Il n'indique nullement comment y mettre de l'essence, comment régler ses rétroviseurs ou changer ses essuie-glaces. Bref, il ne sert à rien. Ah si ! Il sauve des vies.

Tout comme il est impossible de se passer du code de la route, il est impossible de se passer d'une convention de codage dans le cadre du développement logiciel. Pourtant, on tente trop souvent d'en faire l'économie. Rappelons ce qu'elle est et surtout pourquoi celle-ci est plus que souhaitable : elle sauve des vies.

Lire la suite

jeudi 11 août 2011

Coloration syntaxique dans Dotclear avec SyntaxHighlighter

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
	printf("Hello World!");
	return EXIT_SUCCESS;
}

Le blog iDreamMicro traite essentiellement de développement logiciel. Qui dit développement logiciel dit code source. Qui dit code source dit coloration syntaxique, fonctionnalité indispensable pour présenter du code source de manière claire et lisible.

Parmi tous les plugins et outils disponibles, le choix s'est porté sur SyntaxHighlighter d'Alex Gorbatchev.

Cet article présente la manière dont SyntaxHighlighter est intégré à ce blog Dotclear. Il n'a pas vocation à remplacer la documentation officielle. Mais il faut avouer que mener à bien cette intégration nécessite un réel effort de compréhension.

Lire la suite

mardi 9 août 2011

Le développement logiciel, c'est comme manger du saucisson

Avez-vous déjà essayé d'avaler un saucisson en entier ? Si c'est le cas, l'expérience n'a pas du être particulièrement plaisante ni exquise. Elle s'est peut-être même conclue la tête dans la cuvette des toilettes ...

Il en va de même dans le développement logiciel : quand on tente de s'attaquer à quelque chose de trop conséquent, c'est pénible et désagréable. Et le sort final est vraisemblablement le même : on risque de jeter le projet aux oubliettes.

Cela signifie-t-il qu'il est impossible de mener à bien un projet important ? Pas du tout, l'industrie regorge de succès prestigieux. En fait, il faut juste traiter ces développements comme un saucisson.

Lire la suite

mardi 2 août 2011

La librairie m'a tuer

Le développement logiciel est certainement l'un des domaines où les langues anglaise et française se côtoient et se permutent le plus. Cela conduit parfois à certaines traductions abusives et hasardeuses.

Par exemple, quelle est la traduction exacte de library ? Dans la littérature informatique, il n'est pas rare de trouver aussi bien « librairie » que « bibliothèque ». Quel terme est le plus exact et adapté ?

Lire la suite

dimanche 31 juillet 2011

Tutorial Bus Pirate 101 VF

Quelques tutoriaux sur le Bus Pirate existent à ce jour, en anglais bien sûr, mais aussi en russe, en espagnol et en italien. Mais aucune version française n'avait été rédigée. iDreamMicro s'y est donc attelé et c'est désormais chose faite avec le tutorial Bus Pirate 101 en version française.  […]

Lire la suite

lundi 11 juillet 2011

Environnement de construction SCons pour AVR-GCC (2/2)

Ce second article sur la configuration d'un environnement de construction SCons pour AVR-GCC introduit la notion de SConscript. Le logiciel de sortie de ce projet est exactement le même que celui de l'article précédent, seule la méthode change.

Désormais, le SConstruct est éclaté dans différents scripts, chacun ayant un rôle précis dans la construction du logiciel :

  • configuration de l'environnement de construction ;
  • adaptation de l'environnement de construction à la cible ;
  • construction du projet.

Pour démontrer que cette méthode est bien plus que de la cosmétique, cet article propose également de construire le logiciel pour deux cibles distinctes.

Lire la suite

jeudi 30 juin 2011

Environnement de construction SCons pour AVR-GCC (1/2)

Cet article présente la configuration d'un environnement de construction SCons minimal pour AVR-GCC.

Afin d'aller à l'essentiel, la configuration de l'environnement et la construction du logiciel se font dans un même fichier SConstruct. Même si ce n'est pas la solution la plus élégante, elle demeure la plus simple. Dans le même souci de simplicité, le projet servant d'exemple ne comporte qu'un seul fichier source et n'a recours à aucune bibliothèque.

Lire la suite

page 2 de 2 -