Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Sujets - Guillaume

Pages: 1 [2]
16
Débuter / Objets et répétition d'objets
« le: février 20, 2015, 08:16:42 pm »
Allez une autre question dans la foulée toujours dans le même sujet :
toujours avec l'exemple petittrain qui définit une animation lumineuse avec une même DEL qui fait 2 pics lumineux. Grossièrement, elle s'allume entre 6 et 8 heures puis 18 et 20h et cela selon le même comportement.
Ce qui peut en faire un seul objet qui est définit par une initialisation définissant la broche de sortie mais aussi les heures d'extinction et d'allumage.

Peut-on définir dans ce cas deux objets avec une broche de sortie identique mais des heures différentes ?

17
Débuter / Structures et class objets
« le: février 20, 2015, 08:13:12 pm »
Bonjour,
je me poste une question concernant ces deux notions de langage Arduino.

D'un coté, nous avons des structures qui définissent un objet dans son ensemble avec les différentes variables qui le composent. Si on reprend par exemple l'exemple de petittrain sur ce forum avec un cycle jour/nuit, une DEL qui s'allume et s'éteint selon un temps donné et par étapes (DEL en PWM), nous avons la broche mais aussi les temps définis pour l'allumage ou l'extinction des lumières.

De l'autre coté, nous avons les objets qui sont composés de 2 choses, la définition de l'objet avec les différentes variables qui définissent l'objet mais aussi les méthodes qui définissent le comportement de l'objet.

Pour ma part, il me semble que la class objet est composé d'une structure ainsi que les méthodes qui définissent son comportement. Dans ce cas, est-ce que les structures ont une place dans le codage/programme sur un coté particulier ? Ont-ils une place préférentielle dans une situation donnée ou non ?

18
Vos projets / Micro-module en HOe
« le: février 17, 2015, 08:18:02 pm »
Bonjour,
quelques lignes pour vous présenter mon projet :
un module de 0,15m2 au grand max avec à un bout une plaque tournante sous un bâtiment desservant 3 voies dont 1 traverse après un morceau de ville et va se cacher dans une coulisse de type pont transbordeur.
Tout sera commandé par Arduino du train bien sûr aux animations lumineuses multiples. Il n'y aura pas par contre d'automatismes vu la petitesse du réseau qui ne comporte d'ailleurs pas d'aiguilles.
Voila pour la théorie.

Au niveau pratique, l'architecture est faite mais en carton. La pose des voies se fera au printemps.
Dans l'attente et étant donné la saison, propice au code, je commence à coder les différentes animations. Du fait de l'absence de schémas définitifs, il faudra attendre la pose du décor pour savoir combien de lampadaires, combien de lumières dans les appartements... le codage s'effectue en objets avec l'aide des articles de thierry.
Mais il y a aussi la liste des composants nécessaires pour tout relier sur le module.

Si vous avez des questions.
Un article d'introduction sera fait sur le site pour présenter cela correctement.

19
Présentez vous ! / Ma présentation
« le: février 17, 2015, 08:07:36 pm »
Bonjour,

pour ma part, certains me traitent de Geek, certes on pourrait le croire en voyant mon bureau sur le portable. De multiples écrans de terminaux avec quelques lignes de code avec un seul GUI qu'est Firefox. Et oui en bon Linuxien. Bref, je suis tombé dans l'Arduino un peu avant les articles de Christian en m'intéressant à la domotique et vu l'ouverture qui a été faite, je me suis engouffré dedans.

Je participe à la mesure de mes moyens même restreints, d'ailleurs tout le monde peut le faire.
Sur le plan miniature, je suis en HO multi écartements, et je bosse actuellement sur un micro-module en voie étroite. A voir dans la présentation projets.

20
Vos projets / Animations lumineuses
« le: janvier 25, 2015, 09:29:14 am »
Bonjour,
un petit avis à la population ici :
je suis en train de recoder des programmes d'animations lumineuses qui emploient la fonction delay() afin de passer à la fonction millis(). En effet, la fonction delay() est bloquante et ne permet pas d'ajouter d'autres choses à coté puisque le programme patiente tranquillement pendant le delay(), d'où ce changement de code.
Pour le moment, des animations que vous voyez sur le site, feu tricolore, chenillard et enseigne ont été transcrits. D'autres viendront à savoir soudure à l'arc et phare.

D'où cette demande, avez-vous des idées d'animations lumineuses que l'on peut trouver sur un réseau ?

ps : le cycle jour/nuit est dans mes tuyaux mais est un peu plus spécial

21
Vos projets / Ecran Nokia 5110
« le: décembre 26, 2014, 01:29:33 pm »
Bonjour,
j'ouvre le bal pour une question assez pointue. J'ai pu me débattre un peu avec mais impossible d'aller plus loin, je coince un peu.

Un peu cheap, c'est un composant qui peut nous aider. Je vais m'en servir pour avoir un écran sans shield pour une somme assez dérisoire ; une sorte de petit défi pour faire un cherche servo dans un premier temps.

Déjà la documentation est pléthore mais peu loquace sur certains points, un peu le souci des trucs d'ebay, est-ce que cela correspond de partout ? Le branchement est un peu problématique pour la lumière qui ne marche que si on branche light sur GND et non sur 3v3 comme dit sur pas mal de sites.

Le reste marche, mon problème est au niveau de la lisibilité du texte (et cella même sans rétro-éclairage).
J'ai trouvé déjà des codes sans librairie qui marche pas mal type :
    #define PIN_SCE   7
    #define PIN_RESET 6
    #define PIN_DC    5
    #define PIN_SDIN  4
    #define PIN_SCLK  3

    #define LCD_C     LOW
    #define LCD_D     HIGH

    #define LCD_X     84
    #define LCD_Y     48

    static const byte ASCII[][5] =
    {
     {0x00, 0x00, 0x00, 0x00, 0x00} // 20
    ,{0x00, 0x00, 0x5f, 0x00, 0x00} // 21 !
    ,{0x00, 0x07, 0x00, 0x07, 0x00} // 22 "
    ,{0x14, 0x7f, 0x14, 0x7f, 0x14} // 23 #
    ,{0x24, 0x2a, 0x7f, 0x2a, 0x12} // 24 $
    ,{0x23, 0x13, 0x08, 0x64, 0x62} // 25 %
    ,{0x36, 0x49, 0x55, 0x22, 0x50} // 26 &
    ,{0x00, 0x05, 0x03, 0x00, 0x00} // 27 '
    ,{0x00, 0x1c, 0x22, 0x41, 0x00} // 28 (
    ,{0x00, 0x41, 0x22, 0x1c, 0x00} // 29 )
    ,{0x14, 0x08, 0x3e, 0x08, 0x14} // 2a *
    ,{0x08, 0x08, 0x3e, 0x08, 0x08} // 2b +
    ,{0x00, 0x50, 0x30, 0x00, 0x00} // 2c ,
    ,{0x08, 0x08, 0x08, 0x08, 0x08} // 2d -
    ,{0x00, 0x60, 0x60, 0x00, 0x00} // 2e .
    ,{0x20, 0x10, 0x08, 0x04, 0x02} // 2f /
    ,{0x3e, 0x51, 0x49, 0x45, 0x3e} // 30 0
    ,{0x00, 0x42, 0x7f, 0x40, 0x00} // 31 1
    ,{0x42, 0x61, 0x51, 0x49, 0x46} // 32 2
    ,{0x21, 0x41, 0x45, 0x4b, 0x31} // 33 3
    ,{0x18, 0x14, 0x12, 0x7f, 0x10} // 34 4
    ,{0x27, 0x45, 0x45, 0x45, 0x39} // 35 5
    ,{0x3c, 0x4a, 0x49, 0x49, 0x30} // 36 6
    ,{0x01, 0x71, 0x09, 0x05, 0x03} // 37 7
    ,{0x36, 0x49, 0x49, 0x49, 0x36} // 38 8
    ,{0x06, 0x49, 0x49, 0x29, 0x1e} // 39 9
    ,{0x00, 0x36, 0x36, 0x00, 0x00} // 3a :
    ,{0x00, 0x56, 0x36, 0x00, 0x00} // 3b ;
    ,{0x08, 0x14, 0x22, 0x41, 0x00} // 3c <
    ,{0x14, 0x14, 0x14, 0x14, 0x14} // 3d =
    ,{0x00, 0x41, 0x22, 0x14, 0x08} // 3e >
    ,{0x02, 0x01, 0x51, 0x09, 0x06} // 3f ?
    ,{0x32, 0x49, 0x79, 0x41, 0x3e} // 40 @
    ,{0x7e, 0x11, 0x11, 0x11, 0x7e} // 41 A
    ,{0x7f, 0x49, 0x49, 0x49, 0x36} // 42 B
    ,{0x3e, 0x41, 0x41, 0x41, 0x22} // 43 C
    ,{0x7f, 0x41, 0x41, 0x22, 0x1c} // 44 D
    ,{0x7f, 0x49, 0x49, 0x49, 0x41} // 45 E
    ,{0x7f, 0x09, 0x09, 0x09, 0x01} // 46 F
    ,{0x3e, 0x41, 0x49, 0x49, 0x7a} // 47 G
    ,{0x7f, 0x08, 0x08, 0x08, 0x7f} // 48 H
    ,{0x00, 0x41, 0x7f, 0x41, 0x00} // 49 I
    ,{0x20, 0x40, 0x41, 0x3f, 0x01} // 4a J
    ,{0x7f, 0x08, 0x14, 0x22, 0x41} // 4b K
    ,{0x7f, 0x40, 0x40, 0x40, 0x40} // 4c L
    ,{0x7f, 0x02, 0x0c, 0x02, 0x7f} // 4d M
    ,{0x7f, 0x04, 0x08, 0x10, 0x7f} // 4e N
    ,{0x3e, 0x41, 0x41, 0x41, 0x3e} // 4f O
    ,{0x7f, 0x09, 0x09, 0x09, 0x06} // 50 P
    ,{0x3e, 0x41, 0x51, 0x21, 0x5e} // 51 Q
    ,{0x7f, 0x09, 0x19, 0x29, 0x46} // 52 R
    ,{0x46, 0x49, 0x49, 0x49, 0x31} // 53 S
    ,{0x01, 0x01, 0x7f, 0x01, 0x01} // 54 T
    ,{0x3f, 0x40, 0x40, 0x40, 0x3f} // 55 U
    ,{0x1f, 0x20, 0x40, 0x20, 0x1f} // 56 V
    ,{0x3f, 0x40, 0x38, 0x40, 0x3f} // 57 W
    ,{0x63, 0x14, 0x08, 0x14, 0x63} // 58 X
    ,{0x07, 0x08, 0x70, 0x08, 0x07} // 59 Y
    ,{0x61, 0x51, 0x49, 0x45, 0x43} // 5a Z
    ,{0x00, 0x7f, 0x41, 0x41, 0x00} // 5b [
    ,{0x02, 0x04, 0x08, 0x10, 0x20} // 5c ¥
    ,{0x00, 0x41, 0x41, 0x7f, 0x00} // 5d ]
    ,{0x04, 0x02, 0x01, 0x02, 0x04} // 5e ^
    ,{0x40, 0x40, 0x40, 0x40, 0x40} // 5f _
    ,{0x00, 0x01, 0x02, 0x04, 0x00} // 60 `
    ,{0x20, 0x54, 0x54, 0x54, 0x78} // 61 a
    ,{0x7f, 0x48, 0x44, 0x44, 0x38} // 62 b
    ,{0x38, 0x44, 0x44, 0x44, 0x20} // 63 c
    ,{0x38, 0x44, 0x44, 0x48, 0x7f} // 64 d
    ,{0x38, 0x54, 0x54, 0x54, 0x18} // 65 e
    ,{0x08, 0x7e, 0x09, 0x01, 0x02} // 66 f
    ,{0x0c, 0x52, 0x52, 0x52, 0x3e} // 67 g
    ,{0x7f, 0x08, 0x04, 0x04, 0x78} // 68 h
    ,{0x00, 0x44, 0x7d, 0x40, 0x00} // 69 i
    ,{0x20, 0x40, 0x44, 0x3d, 0x00} // 6a j
    ,{0x7f, 0x10, 0x28, 0x44, 0x00} // 6b k
    ,{0x00, 0x41, 0x7f, 0x40, 0x00} // 6c l
    ,{0x7c, 0x04, 0x18, 0x04, 0x78} // 6d m
    ,{0x7c, 0x08, 0x04, 0x04, 0x78} // 6e n
    ,{0x38, 0x44, 0x44, 0x44, 0x38} // 6f o
    ,{0x7c, 0x14, 0x14, 0x14, 0x08} // 70 p
    ,{0x08, 0x14, 0x14, 0x18, 0x7c} // 71 q
    ,{0x7c, 0x08, 0x04, 0x04, 0x08} // 72 r
    ,{0x48, 0x54, 0x54, 0x54, 0x20} // 73 s
    ,{0x04, 0x3f, 0x44, 0x40, 0x20} // 74 t
    ,{0x3c, 0x40, 0x40, 0x20, 0x7c} // 75 u
    ,{0x1c, 0x20, 0x40, 0x20, 0x1c} // 76 v
    ,{0x3c, 0x40, 0x30, 0x40, 0x3c} // 77 w
    ,{0x44, 0x28, 0x10, 0x28, 0x44} // 78 x
    ,{0x0c, 0x50, 0x50, 0x50, 0x3c} // 79 y
    ,{0x44, 0x64, 0x54, 0x4c, 0x44} // 7a z
    ,{0x00, 0x08, 0x36, 0x41, 0x00} // 7b {
    ,{0x00, 0x00, 0x7f, 0x00, 0x00} // 7c |
    ,{0x00, 0x41, 0x36, 0x08, 0x00} // 7d }
    ,{0x10, 0x08, 0x08, 0x10, 0x08} // 7e ←
    ,{0x78, 0x46, 0x41, 0x46, 0x78} // 7f →
    };

    void LcdCharacter(char character)
    {
      LcdWrite(LCD_D, 0x00);
      for (int index = 0; index < 5; index++)
      {
        LcdWrite(LCD_D, ASCII[character - 0x20][index]);
      }
      LcdWrite(LCD_D, 0x00);
    }

    void LcdClear(void)
    {
      for (int index = 0; index < LCD_X * LCD_Y / 8; index++)
      {
        LcdWrite(LCD_D, 0x00);
      }
    }

    void LcdInitialise(void)
    {
      pinMode(PIN_SCE, OUTPUT);
      pinMode(PIN_RESET, OUTPUT);
      pinMode(PIN_DC, OUTPUT);
      pinMode(PIN_SDIN, OUTPUT);
      pinMode(PIN_SCLK, OUTPUT);
      digitalWrite(PIN_RESET, LOW);
      digitalWrite(PIN_RESET, HIGH);
      LcdWrite(LCD_C, 0x21 );  // LCD Extended Commands.
      LcdWrite(LCD_C, 0xB1 );  // Set LCD Vop (Contrast).
      LcdWrite(LCD_C, 0x04 );  // Set Temp coefficent. //0x04
      LcdWrite(LCD_C, 0x14 );  // LCD bias mode 1:48. //0x13
      LcdWrite(LCD_C, 0x0C );  // LCD in normal mode.
      LcdWrite(LCD_C, 0x20 );
      LcdWrite(LCD_C, 0x0C );
    }

    void LcdString(char *characters)
    {
      while (*characters)
      {
        LcdCharacter(*characters++);
      }
    }

    void LcdWrite(byte dc, byte data)
    {
      digitalWrite(PIN_DC, dc);
      digitalWrite(PIN_SCE, LOW);
      shiftOut(PIN_SDIN, PIN_SCLK, MSBFIRST, data);
      digitalWrite(PIN_SCE, HIGH);
    }

    void setup(void)
    {
      LcdInitialise();
      LcdClear();
      LcdString("Hello World! + ");
    }

    void loop(void)
    {
    }



22
Infos et bonnes affaires / Fêtes et pause
« le: décembre 20, 2014, 03:02:39 pm »
Bonjour à tous,
pour ma part et je pense pour beaucoup d'entre vous, cette période est un peu synonyme de pause.
Bonnes fêtes à tous et à l'année prochaine pour de nouvelles aventures.

Pages: 1 [2]