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 - Dominique

Pages: 1 ... 5 6 [7]
91
Vos projets / Mesure de vitesse, échelles N ou HO
« le: juin 24, 2016, 08:53:03 pm »
Ce fil pour recueillir vos commentaires et suggestions sur la mesure de vitesse de nos modèles réduits, suite aux articles :

http://www.locoduino.org/spip.php?article147
et
http://www.locoduino.org/spip.php?article173

92
Vos projets / Automatisme de passage à niveau
« le: mai 02, 2016, 02:49:33 pm »
Bonjour à tous,vbk

J'ouvre ici une discussion sur vos réalisations en matière d'automatisme de passage à niveau :
  • détecteurs
  • actionneurs
  • sons et lumières
  • logiciel
etc...

93
Vos projets / Un mini module sonore
« le: mars 14, 2016, 11:46:50 am »
J'ai réalisé ce week-end un petit module sonore.

Le réalisme du modélisme nécessite de déclencher des sons selon des événements précis, à des endroits bien choisis. Pour cela j'ai besoin d'un petit module bon marché.

J'ai assemblé un mini, une carte lecteur microSD, un transistor NPN pour amplifier le son vers un haut-parleur 8 ohm standard et un régulateur 7809 pour pouvoir alimenter le montage avec du 12V.
Le mini est programmé avec une petite carte FTDI232 basic.

Le principe est simple, le programme attend que la pin 2 passe au 0V pour délivrer le son inscrit dans un fichier.

Il utilise les bibliothèques SD, SPI et TMRpcm

Voici le programme que vous pouvez adapter à vos besoins :

/*
 * Module sonore - Passage à Niveau
 * Base : un Nano + lecteur microSD + ampli BD241 + haut parleur
 * Version du 13/3/2016 Dominique Bultez
 */
 
#include <SD.h>                   // need to include the SD library
#define SD_ChipSelectPin 10       // using digital pin 10 on arduino nano 328, can use other pins
#include <TMRpcm.h>               //  also need to include this library...
#include <SPI.h>
/*
 * SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK).
 */
TMRpcm tmrpcm;                    // create an object for use in this sketch
File root;
int val;
int bouton, oldbouton = 0;
bool debouncing = false;
#define _Bouton 2
#define _LedSon 4
#define _niveau 4

/////////////////////// SETUP /////////////////

void setup(){

  tmrpcm.speakerPin = 9;              //5,6,11 or 46 on Mega, 9 on Uno, Nano, etc
  pinMode(_LedSon,OUTPUT);            //LED Connected to pin 4
  digitalWrite(_LedSon, LOW);
  pinMode(_Bouton, INPUT_PULLUP);     // pour bouton ou commande extérieure sur pin 2
 
  Serial.begin(115200);
  if (!SD.begin(SD_ChipSelectPin)) {  // see if the card is present and can be initialized:
    Serial.println("SD fail"); 
    while(1) {
      // led clignote
      digitalWrite(_LedSon, HIGH);    // allume Led
      delay(250);
      digitalWrite(_LedSon, LOW);     // eteint led
      delay(250);
    }
  }
  root = SD.open("/");
  //printDirectory(root, 0);
  //delay(500);
  Serial.println("SD OK");
  val = _niveau;
  //Joue(val);
}

//////////////////// LOOP //////////////////

void loop(){ 

while (Serial.available() > 0)
  {
    val = Serial.parseInt();  // lecture entier
    if (Serial.read() == '\n')
    {
      Serial.print("valeur : ");
      Serial.println(val);
      if (val == 0) {
        printDirectory(root, 0);
      } else {
        Joue(val);
      }
    }
  }

  bouton = digitalRead(_Bouton);
  if (bouton == LOW) {
    if (tmrpcm.isPlaying()) {
    } else {
      Joue(_niveau);
      //digitalWrite(_LedSon, HIGH);      // allume Led
    }
  } else {                              // bouton HIGH
      tmrpcm.stopPlayback();            // Stop all playback
      //digitalWrite(_LedSon, LOW);       // eteint Led
  }
 
  if(tmrpcm.isPlaying())  {
    digitalWrite(_LedSon, HIGH);
   } else {
    digitalWrite(_LedSon, LOW);
    }
}

//////////////// fin de loop ///////////////

void Joue(int a_val) {
      Serial.print("je joue ");Serial.println(a_val);
      switch (a_val) {
        case 1:
        tmrpcm.play((char*)("1.wav"));       
        break;
        case 2:
        tmrpcm.play((char*)("2.wav"));
        break;
        case 3:
        tmrpcm.play((char*)("3.wav"));
        break;
        case 4:
        tmrpcm.play((char*)("4.wav"));
        break;
        case 5:
        tmrpcm.play((char*)("5.wav"));
        break;
        case 6:
        tmrpcm.play((char*)("6.wav"));
        break;
        case 7:
        tmrpcm.play((char*)("7.wav"));
        break;
        case 8:
        tmrpcm.play((char*)("8.wav"));
        break;
        case 9:
        tmrpcm.play((char*)("9.wav"));
        break;
      }
}

void printDirectory(File dir, int numTabs) {
   while(true) {
     
     File entry =  dir.openNextFile();
     if (! entry) {
       // no more files
       Serial.println("fin");
       break;
     }
     for (uint8_t i=0; i<numTabs; i++) {
       Serial.print('\t');
     }
     Serial.print(entry.name());
     if (entry.isDirectory()) {
       Serial.println("/");
       printDirectory(entry, numTabs+1);
     } else {
       // files have sizes, directories do not
       Serial.print("\t\t");
       Serial.println(entry.size(), DEC);
     }
     entry.close();
   }
}

Et il reste 14 pins libres ...

94
Vos projets / Le module Fête Foraine du CMFA
« le: décembre 05, 2015, 10:28:11 am »
Notre Club du Modélisme Ferroviaire d'Arpajon (CMFA) intègre depuis l'année dernière quelques modules Arduino dans le réseau N d'expositions.

La meilleure entrée en matière est cette vidéo :



Au menu :

  • la centrale DCC du va-et-vient entre le village de Tout Juste et la Fête Foraine
  • La commande des manèges
  • L'animation lumineuse de stands
  • La balançoire
  • Le karting

Claude est le génie du décor de cette maquette et maintenant un expert Arduino  8)

Des détails vont suivre...

95
Ce fil se veut complémentaire du fil "Modélisation logicielle d'un réseau" dont le but est d'échanger sur nos visions et expériences sur la manière de concevoir le logiciel qui anime l'ensemble des ingrédients de notre réseau.

Nous nous plaçons dans le cas où l'Arduino a pris le pouvoir sur le réseau, qu'il a donc gagné la bataille contre le logiciel de pilotage sur PC/Mac/Linux/iOS/Android.

Comme notre réseau est colonisé par nos (pas) chers Arduino, ils sont plusieurs à se partager la tâche.
Et là, selon les choix que nous avons fait, il existe de nombreuses possibilités de combinaisons matérielles.

Par exemple, dans l'intervalle entre mon premier et mon second circuit, je voyais l'assemblage de tous les composants comme sur l'image jointe. J'y reviendrai.


Je vous invite à partager, ici, vos choix d'architecture matérielle qui, évidemment éclaireront les discussions sur le logiciel, dans le fil d'à côté.

96
Lorsqu'on conçoit un réseau, en plus des rails, des locos et des wagons, du choix DCC ou analogique (PWM), on fait le choix d'une centrale pour commander les convois et les aiguilles. Ensuite on arrive très vite à définir des cantons et choisir des détecteurs de rétrosignalisation pour organiser la circulation des trains avec des règles de sécurité (éviter les rencontres indésirables), installer des feux de signalisation et d'avertissement, gérer des itinéraires avec des gares de départ et d'arrivée, des horaires, des annonces sonores, etc…, tout en se réservant des possibilités de commande manuelle de convois pour des manoeuvres par exemple et pour le plaisir avant tout.

Pour mettre en oeuvre tout ce joli monde, la voie la plus facile, mais la plus onéreuse, consiste à acheter des produits du commerce (centrale, détecteurs, décodeurs) ainsi qu'un logiciel sur PC qui s'occupera de tout (TCO, pilotage, automatismes, cantons, signalisation, ..). L'ennui c'est que les limites du projet sont celles du logiciel.. et du porte-monnaie.

Pour réaliser quelques économies substantielles, on peut réaliser bon nombre des modules nécessaires par soi-même (DIY). Locoduino est là pour cela.

Pour les automatismes de circulation (bloc système, signalisation, itinéraires, ..), la solution du logiciel sur PC (TrainController, iTrain, …) reste tentante mais elle implique la remontée des signaux de rétrosignalisation vers le PC une l'interface entre le PC et la centrale.

Alors pourquoi ne pas tenter de se passer complètement du PC ?

On peut construire un vrai TCO plus agréable à regarder et plus facile à utiliser qu'un écran de PC, avec ses boutons, curseurs, et Leds bien réels. D'accord, il y a beaucoup de fils à souder, mais le résultat en vaut la peine !

Reste enfin le logiciel qui va gérer l'ensemble de la circulation, la rétrosignalisation, la sécurité, la signalisation : Est-ce possible avec un Arduino ?

L'expérience de mes 2 premiers minuscules réseaux m'a conduit à des solutions très spécifiques, pas généralisables vers des réseaux plus grands. Je cherche donc une modélisation logicielle plus sérieuse.

La lecture de quelques documentations des solutions du commerce me conduisent au principe suivant : La rétrosignalisation est caractérisée par un ensemble de procédures et de composants qui permettent à l’unité de commande du TCO de connaître ce qui se passe sur le réseau et, en conséquence, d’exécuter des actions paramètrées associées à ces évènements.

La modélisation ne serait donc qu'un simple (mais énorme) automate qui associe une ou plusieurs actions à chaque événement. Ce qui sous-entend un satané programme de configuration !

Pas si simple : il faut en outre une définition du réseau (cantons, aiguilles, signaux, distances, vitesses limites, priorités) sur laquelle se superpose les positions et les mouvements des trains (donc aussi une définition des trains). Les interactions sont très nombreuses !

Alors connaissez-vous de la littérature pour atteindre ce but, des documents même théoriques ou des bibliothèques logicielles qui pourraient m'aider ?

98
Composants / Un nouveau composant prometteur : le VL6180
« le: février 15, 2015, 09:08:37 pm »
https://cdn.sparkfun.com/datasheets/Sensors/Proximity/VL6180_ApplicationNote.pdf
On le trouve en breakout à 14$50 chez Sparkfun, mais le mieux serait de le placer seul dans le décor car il mesure 4.8 x 2.8 x 1.0 mm
Il remplace les détecteurs Sharp infrarouge au moins 10 fois plus gros

il mesure des distances de 1 à 50 cm (plutôt moins de 20 cm)

Je vois plein usages dans les trains échelle N :

Detection de train devant un heurtoir
Arret précis des trains
Déclenchement d'animations


99
Je mets ce sujet là, par défaut, et cela ne concerne pas directement l'Arduino, mais quand même les trains.
Je viens d'acheter 45 m de rails Fleischmann Piccolo à moins de 50 % (et 14% de remise supplémentaire) chez STAMPINO, là
"Andreas Ksiensik" <stampinos@web.de>

On le trouve sur eBay (recherche "Stampino ebay") et je pense qu'il a les meilleurs prix. C'est présenté comme "occasion" mais pour moi c'est du neuf.

Plutôt que de passer par eBay et acheter les éléments 1 par 1, j'ai envoyé ma liste par mail à Andreas et reçu un devis le lendemain.

Amicalement
Dominique

Pages: 1 ... 5 6 [7]