Arduino: affichage LCD 7 segments

Bonjour,

Voici mon premier projet Arduino : utiliser un afficheur LCD à 7 segments:

Le making off : la caméra d’un Acer Aspire One soudée sur un câble USB, montée sur un support en LEGO, filmée par guvcview, éditée par Avidemux sous Gentoo Linux, le tout sous l’oeil bienveillant de Caroline.

Arduino, Webcam et Caroline

Et le code associé

/*

7-Segments display example
by Xavier Miller http://www.xaviermiller.be

It displays 16 hex digits from 0 to F and dot.

Setup:

LCD display:
  G F (Com) A B
  | |   |   | |
  +-----------+
  |     A     |
  |   +---+   |
  |  F| G |B  |
  |   + - +   |
  |  E|   |C  |
  |   +---+ . |
  |     D     |
  +-----------+
  | |   |   | |
  E D (COM) C Dot

Arduino:
  A = 2;
  B = 3;
  C = 4;
  D = 5;
  E = 6;
  F = 7;
  G = 8;
  Dot = 9;
  
+ 330 ohms resistance to ground

*/

const byte pinStart = 2;

byte masks[] = 
{
  //GFEDCBA
  B00111111, // 0
  B00000110, // 1
  B01011011, // 2
  B01001111, // 3
  B01100110, // 4
  B01101101, // 5
  B01111101, // 6
  B00000111, // 7
  B01111111, // 8
  B01101111, // 9
  B01110111, // A
  B01111100, // b
  B00111001, // C
  B01011110, // d
  B01111001, // E
  B01110001  // F
};

void ShowDigit(byte value, byte dot)
{ 
  // guard
  if (value > sizeof(masks))
    value = 0;
  
  // get digit
  byte mask = masks[value];
  
  // apply dot
  if (dot)
    mask |= 128;
    
  // display each segment
  for (byte b = 0; b < 8; b++)
    digitalWrite(b + pinStart, (mask & (1 << b)) ? HIGH : LOW);
}

void setup()
{
  for (byte pin = 0; pin < 8; pin++)
    pinMode(pin + pinStart, OUTPUT);
}

void loop()
{
  for (byte dot = 0; dot < 2; dot++)
    for (byte digit = 0; digit < sizeof(masks); digit++)
    {
      ShowDigit(digit, dot);
      delay(500);
    }
}
Publié dans arduino | Laisser un commentaire

Acer Aspire One: gestion du ventilateur sous Windows XP

Windows XP ne gère pas le contrôle du ventilateur de l’Acer Aspire One A110, ce qui fait que l’utilisation sous Windows est assez fatigante à cause du bourdonnement constant du ventilateur.

J’ai essayé AA1FanControl et a1ctl, mais tous deux crashent avec une version récente de Windows XP Service Pack 3 et le BIOS v0.3310.

Heureusement, il y a moyen de paramétrer a1ctl pour être compatible avec le BIOS v0.3310, comme indiqué dans un le commentaire 308:

For all those with the unexpected shutdown problem, here is what helped me (AAO 110 with BIOS 3310):

- go to “Configure” and there to Enable controller values
- tick “Enable custom EC values”
- set Fan stop to CF
- set Fan slow to 4
- set Fan auto to 0

Thanks to PavelD and pc.

Et ça marche enfin !

Bien, il ne reste plus qu’à attendre que le module acerhdf pour linux fonctionne avec le kernel >= 3.6 (solution temporaire: initialiser le statut du ventilateur à « OFF » au démarrage).
EDIT 2013-03-21: il existe une nouvelle version du module acerhdf sur le site officiel :)

Publié dans geek, windows | Laisser un commentaire

La geekerie du moment

Floppy to USB emulator

Ceci est un « Floppy Drive Emulator », un appareil qui remplace un lecteur de disquettes, sur lequel on branche une clef USB qui peut contenir jusqu’à 100 images de disquettes. Le PC hôte n’y voit que du feu, l’appareil se comporte comme un lecteur de disquettes.

Les images sont stockées en « RAW », chacune à un multiple de 0×180 000.
Ouf, je vais pouvoir formater ces 100 disquettes via un petit script (merci dd et mtools ;) )

Quelle va en être l’utilité ? La suite pour bientôt (avec les photos de la « victime »… qui n’est pas un PC)

Publié dans geek | Laisser un commentaire

Cross-compilation d’un environnement Gentoo pour Pandaboard : échec

Hello,

Il est actuellement impossible de cross-compiler un environnement de type « desktop », car la plupart des paquets « user interface » se basent sur Perl et/ou Python, qui tous deux sont (mal) torchés, de telle façon qu’il est impossible de les cross-compiler ainsi que toutes leurs dépendances.

Une alternative est d’utiliser distcc. Avec distcc, tout passe, sauf java (du moins IcedTea).
Il faut juste éviter de faire surchauffer le processeur, en limitant entre autres la compilation de GCC sur un job.

Prochain défi : faire fonctionner le son correctement. L’image de test donne un son impeccable, mais je n’arrive pas à trouver quel jeu de patches appliquer aux sources du noyau. Affaire en cours !

Publié dans crossdev, gentoo, linux, pandaboard | Laisser un commentaire

Cross-compiler Gentoo pour Pandaboard

Hello,

Je reprends mon monologue dans le vide, pour relater l’une de mes fantaisies du moment : cross-compiler Gentoo pour un Pandaboard.

La Pandaboard est suffisamment puissante que pour s’auto-compiler, mais un Core2Duo dopé en RAM est quand même plus efficace…

Spoiler: Perl et Python ne cross-compilent pas, qu’importe !

A bientôt pour d’autres informations ;)

Publié dans crossdev, gentoo, pandaboard | Laisser un commentaire

Au revoir, Dennis Ritchie !

main()
{
printf("Farewell, Dennis!\n");

return 0;
}

Page Wikipedia sur Dennis Ritchie

Publié dans geek, linux | Laisser un commentaire

Gentoo From Scratch: (happy) end

Suite à un message sur la mailing list des développeurs Gentoo, je suis tombé sur un article : PORTING-HOWTO (from vapier). Cette méthode est mieux documentée que mon « Gentoo From Scratch », ce qui fait que j’ai désactivé la publication de mon script. Tant pis pour les 0,22 personnes qui auraient pu l’utiliser ;)

De toutes façons, je ne prévoyais pas de maintenir ce script, et avec le temps, il commençait à devenir obsolète (nouvelle versions de LinuxFromScratch, de Portage, …).

Mes prochaines élucubrations tourneront probablement autour de PureData

Publié dans geek, gentoo, GentooFromScratch, linux | Laisser un commentaire

Petites annonces

Suite au succès de ses petites annonces réelles et décalées, Yves Dauteuille les a toutes consignées sur son blog, afin que son oeuvre ne disparaisse pas une fois son grenier vidé.

A lire sans modération, c’est plus agréable qu’une rubrique nécrologique écrite en suédois.

http://yves-dauteuille.blogspot.com/

Publié dans général | Laisser un commentaire

Ubuntu Netbook 10.10 ? Zéro pointé !

Ce vendredi 15/10 a lieu une réunion de mon groupe Linux CULButte. Le thème est « Ubuntu 10.10″. À cette occasion, je me suis dévoué pour préparer une clef USB « Ubuntu Netbook 10.10″, afin de tester sur mon netbook et, à la réunion, sur une tablette « United Pepper ».

Je télécharge donc l’image « ISO » de la version « Netbook », et tente de l’installer via l’utilitaire Windows.
Premier mauvais point : la clef USB ainsi générée ne démarre pas !!!
Comment ?!? Ubuntu ne peut pas s’installer depuis Windows ? Tant pis pour 99% des utilisateurs de PC.

Deuxième tentative depuis Linux. Vu que je n’ai pas Ubuntu d’installé (vous ai-je déjà dit que je suis fana de Gentoo ?), je passe en mode « manuel », comme je le fais déjà pour System Rescue CD ou d’autres ISO linux, via « syslinux ». La manipulation n’est pas difficile une fois qu’on la maîtrise bien.
Deuxième échec : même résultat qu’avec Windows : impossible de démarrer la clef USB !!!

Troisième essai : je pars de ma clef USB « System Rescue CD », j’y ajoute un menu « Ubuntu », l’image du système, et ça passe (en QWERTY, mais soit).
Et sans connectivité internet, je rencontre des instabilités : Nautilus crashe en permanence, le lecteur audio aussi, …

En cherchant dans les forums, je remarque que je ne suis pas seul dans ce cas, et que l’un des seuls outils permettant de générer correctement une clef USB est le « Ubuntu Startup Disk Creator ». Je monte mon disque dur contenant l’image iso, je prends une deuxième clef USB, et je lance l’outil. Je commence à comprendre une source du problème : contrairement à l’habitude, la clef est partitionnée comme un disque dur, alors que souvent, formate l’entièreté du disque directement en vfat.

Le système « Unity » est assez sympa, pas encore assez mûr à mon avis, mais il est prometteur.

En conclusion : même contre 2 barils d’Ubuntu Netbook 10.10, je ne quitterais pas encore Gentoo !

Gentoo est la seule distribution Linux qui survit plus que 30 minutes entre mes mains. Suis-je vraiment trop exigeant, ou bien est-ce que ces distributions « tout public » se veulent un peu trop tape à l’oeil, et basées sur des composants trop récents, peu testés, mal intégrés, instables ?

C’était mon ziverderââ du jeudi, poussé dans le vide intersidéral de l’Internet (qui lit ce blog inutile à part son auteur ?).

Ubuntu Netbook 10.10 ? Un Zéro Pointé !

Publié dans linux, ubuntu | 3 commentaires

Love Is In The Air…

Love Is In The Air

Publié dans général | Laisser un commentaire