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
1
Vos projets / Arduino et Android via bluetooth
« le: février 11, 2016, 12:32:32 pm »
Si jamais cela intéresse quelqu'un :

j'ai dans mon projet de réseau de Noel une gestion du réseau via smartphone, pas besoin de commande avec bouton et tout comme il y a bcp d'effets de lumière. Bref, je n'ai aucune connaissance du java et n'est pas envie de savoir comme cela marche.

Bref, 2 choses :
- sur arduino, le bluetooth remplace simplement la voie série. Le code est donc le même. Une précaution lors du téléversement enlever le module bluetooth. A savoir que c'est un composant bon marché.

- sur android, pas de prog à connaître. J'ai utilisé l'app inventor 2 (le 2 est important ce n'est pas les mêmes trucs) créé par google et géré par le MIT. L'interface est dispo en fr.
2 volets : 1/ design ou on place les différents boutons, liste etc et le 2ème une programmation par blocs comme scratch.
Pour permettre une connexion par bluetooth, il faut que l'appli utilise le bluetooth :
1/ design : mettre une list picker et un client bluetooth et 2/ dans les blocks 2 blocks pour permettre la connexion comme un peu sur cette page :
http://mathsp.tuxfamily.org/spip.php?article278

Je peux être plus précis si cela intéresse des personnes.

2
Bibliothèques / Interruptions
« le: février 09, 2016, 09:28:53 pm »
Bonjour,

deux petites choses :
  • la reference arduino a évolué : attachInterrupt s'utilise : attachInterrupt(digitalPinToInterrupt(pin), blink, CHANGE);
    voir https://www.arduino.cc/en/Reference/AttachInterrupt
  • seulement sur un uno par exemple seules les broches 2 et 3 peuvent être utilisées. J'utilise une librairie enableInterrupt disponible dans le gestionnaire de bibliothèques. Les exemples sont explicites, par exemple pour l'attachInterrupt c'est enableInterrupt(pin, fonction, mode); dans la fonction setup, même fonctionnement.
    Le bémol c'est l'incompatibilité de la lib avec l'interruption de base mais la lib apporte ce qu'il faut pour remplaceer l'attachInterrupt.

Bonne soirée

3
Infos et bonnes affaires / Gestion git avec automatisme
« le: janvier 25, 2016, 04:33:31 pm »
Bonjour,

Je range mon ordi et effectue mes sauvegardes. J'emploie maintenant des dépôts git pour garder une trace de ce que je fais. Même si on n'a pas de dépôt distant comme github ou autre, le dépôt local permet de faire le nécessaire et surtout de pouvoir revenir en arrière dans l'écriture du code. Il est possible quand on ajoute une fonctionnalité dans un code de créer une autre branche et de la fusionner après quand tout est débuggé avec la branche master. En prime, le dépôt distant peut être simplement sur une clé usb comme je fais. Bref, quand il y a beaucoup de dépôt, une automatisation semble nécessaire pour pull et push le dossier surtout quand on travaille sur plusieurs pc (et aussi quand git ne sert pas uniquement pour le code).
Un script est disponible sur https://myrepos.branchable.com/, script en perl, je ne sais pas si c'est utilisable sur windows, je suppose sur mac.
Sinon il reste le principe du script bash dispo sous GNU/Linux et MacOSX. Ca suppose certes un investissement en temps (quelques commandes), mais après on a vu une vue d'ensemble des dépôts. (je ne connais pas windows... ).

4
Vos projets / Projet servo-aiguille
« le: septembre 19, 2015, 09:54:22 am »
Dans l'optique d'un projet concernant un servo et son aiguille, j'ai besoin d'une liaison entre arduino et proccessing.

J'ai besoin de l'aide des windowsiens et des apple maniac. Est-ce que des bonnes âmes peuvent télécharger processing3 et éxécuter ce code ?

Pas de virus ou autre truc, juste me dire si dans la liste des voies séries, vous avez celle d'Arduino. Vous trouvez le bon dans l'IDE d'Arduino menu outils et port série.

import processing.serial.*;

boolean start=false;
String[] serial;
Serial arduino;

void setup() {
  size(600, 400);
  background(200);
  serial=Serial.list();
  fill(0);
  text("Liste des ports série", 10, 40);
  fill(70);
  for (int i=0; i<serial.length; i++) {
    text(i+" : "+serial[i], 10, 90+(i*30));
  }
}

void draw() {
 
}

5
Vos projets / Interface processing
« le: août 31, 2015, 04:12:50 pm »
Bonjour,
j'ai toujours dans mes petits projets, dans un coin de ma tête, la question de l'ordinateur.
Nous avons déjà parlé avec certains de processing qui a l'avantage de la même interface mais aussi du même langage qu'Arduino (dérive de là) ajouté à cela des trucs de dessins.
Bref, avec une voie série accessible on peut échanger des informations entre les deux trucs, ajouté à cela un adaptateur bluetooth et cela roule.

Je m'y suis remis car Processing est sorti en v3.
Vérification du code tout le temps et interface de gestion des bibliothèques comme Linux  et son dépôt ;)
Bref, une GUI pour parfaire du nom de Guido (G4P ne peut être installé). et hop un début de prog. Cela peut bien donner cette affaire :

import de.bezier.guido.*;
//Variables

int i=0; //Placer la liste après en dessous du dessin
int espace= 20; //espace entre les listes

//Objets listes voies
CheckBox voie1 ;
CheckBox voie2 ;
CheckBox voie3 ;

void setup ()
{
    size( 300, 300 );
   
    Interactive.make(this);
   
    voie1 = new CheckBox("Voie 1 : garage bâtiment", 30, 30+i, 10, 10 );
    voie2 = new CheckBox("Voie 2 : pleine voie", 30, 30+espace+i, 10, 10 );
    voie3 = new CheckBox("Voie 3 : garage extension", 30, 30+espace*2+i, 10, 10 );
   
   
}

void draw ()
{
    background( 0 );
}

public class CheckBox
{
    boolean checked = false;
    float x, y, width, height;
    String label;
    float padx = 7;
   
    CheckBox ( String l, float xx, float yy, float ww, float hh )
    {
        label = l;
        x = xx; y = yy; width = ww; height = hh;
        Interactive.add( this );
    }
   
    void mouseReleased ()
    {
        checked = !checked;
    }
   
    void draw ()
    {
        noStroke();
        fill( #E21919 );
        rect( x, y, width, height );
        if ( checked )
        {
            fill( #45EC38 );
            rect( x, y, width, height );
        }
        fill( 255 );
        textAlign( LEFT );
        text( label, x+width+padx, y+height );
    }
   
    // this is a special inside test that includes the label text
   
    boolean isInside ( float mx, float my )
    {
        return Interactive.insideRect( x,y,width+padx+textWidth(label), height, mx, my );
    }
}


6
Bibliothèques / PWM
« le: juillet 26, 2015, 05:02:50 pm »
Bonjour,

dans le cadre de mon projet, il est nécessaire de faire 2 choses :
* changer la fréquence des PWM
* changer le nombre de paliers des PWM

Le 1er est réalisé et la fonction qui devait être incorporée dans le sketch est maintenant en librairie sur le git de locoduino.org sur framasoft.org
Le second suivra quand j'aurais étudié le truc, il sera placé aussi dedans.

J'avoue que j'ai copié sur le playground d'Arduino. L'article est en cours de remaniement.
Il sera plus simple de l'avoir en ajout.

Lien : https://git.framasoft.org/locoduino.org/PWM
Il existe une autre biblio mais très peu d'explications et je n'ai rien compris.

Oubli : biblio pour uno, pro mini, nano etc... ce style d'avr

7
Vos projets / Nouveau projet : un petit locodrome
« le: juillet 03, 2015, 11:12:01 pm »
Bonjour,
je vais réveiller un peu le forum ;)

Mon réseau en Hoe le projet je continue tranquillement, par contre ce qui me manque c'est un rond pour faire rouler. Je ne vais pas faire un réseau complet seulement un locodrome, pas de décor seulement pour rouler en tout cas dans un premier temps, le temps de finir les autres trucs.

Donc faire avec ce que j'ai déjà c'est à dire rails et 2 aiguilles.
Donc schématiquement cela donnerait ca : les nombres sont des cm
Je voudrais tout automatiser et peut être employer les cartes alimentation de Jean Luc.
Bref, je voudrais votre aide concernant les coupures, il y aurait minimum 4 cantons, mais j'avoue bien que je n'y connais rien, d'où la demande.

Ps : je suis très bon en dessin


8
Bonjour,
je coince sur un problème de données avec un tableau :
class essai
{
  public:
    essai(byte j=1, byte valeur=0);
    void print();
  private:
    byte n;
    byte essai[n];
};

essai::essai(byte j, byte valeur)
{
  n=j;
  for(byte i=0;i<n;i++){essai[i]=valeur;}
}

void essai::print()
{
  for(byte i=0;i<n;i++)
   {
     Serial.println(n);
     Serial.println(essai[i], DEC);
   }
}

essai essai(2);

void setup() {
   // put your setup code here, to run once:
   Serial.begin(9600);
}

void loop() {
   essai.print();
   delay(5000);
}

Mon but est de créer un tableau d'une certaine longueur dans une class en fonction d'une variable lors de la création de l'objet pour en faire tout un truc pour ma lib animlum. Je créerai avec plusieurs tableaux d'autres objets et autres variables.
J'ai donc fait ce code pour tester mais je n'y arrive pas. Un pb de portée de variable, si on le crée dans public, on n'a pas la longueur initiale et dans le constructeur il est accessible seulement dans le constructeur.

Je n'ai pas trouvé de mot clé pour faire d'une variable locale une variable globale.

Avez-vous des idées ?

9
Présentez vous ! / git.framasoft.org/locoduino.org
« le: mai 13, 2015, 01:34:28 pm »
Bonjour,
après la news sur la site (brève), voici un peu plus d'explications :

Git est un système de gestion de version. En somme, il garde toutes les étapes lorsqu'il y a un enregistrement (commit en langage git). Il y a donc possibilité de revenir en arrière dès que nécessaire.
Un dépôt correspond à un projet en particulier. Chaque bibliothèque a fait l'objet d'un dépôt. Un dépôt peut être constitué de différentes branches : plusieurs axes de développement.
Prenons un programme qui allume plusieurs DEL, il est présent sur la branche master, on la laisse comme cela. Bidule souhaite rajouter des fonctionnalités, il ouvre une branche experimental et rajoute son code, à la stabilité, il proposera un merge, c'est-à-dire verser le code de la branche experimental sur la master.
En somme, la branche master contient le programme on va dire en version stable.  Et les autres les versions en développement.
Voila en gros pour git.

Comment participer :
Inscrivez-vous sur le site git.framasoft.org. Prenez ensuite contact avec moi-même ou Jean-Luc ou Thierry.
Vous serez intégré au groupe en tant que developper. Vous pourrez récupérer le code des dépôts, créer une branche et travailler dessus en envoyant vos commits.
Vous ne pourrez pas changer le code sur la branche master afin de laisser une version stable à tout le monde. Personne n'est à l'abri de faire une erreur surtout moi...
Vous ne pourrez pas créer de dépôt, si vous le souhaitez, écrivez moi je vous le ferais.
Pour pousser la branche experimental (ou celle que vous aurez créé) sur la branche master, vous demanderez une merge request et nous ferons cela en fonction, ceci pour ne pas propager une erreur qui pourrait polluer la version stable pendant un certain temps (nous ne sommes pas présent tout le temps ;))

Un peu d'apprentissage sera nécessaire. Mais l'utilité sera au rendez-vous, pas que pour locoduino.org, aussi pour vos sketchs arduino (qui n'a pas révé de revenir en arrière) et pour vos autres projets. En effet, il n'est pas nécessaire d'avoir un dépôt comme git.framasoft.org ou autre pour gérer un projet perso.

Voici un peu de documentation en français. Chaque système d'exploitation ramène son interface et autres trucs. Pour ma part, je suis sous GNU/Linux donc pour autre système je suis incompétent. Mais Internet ou les autres pourront apporter quelques réponses.
https://git-scm.com/book/fr/v1

10
Bibliothèques / git et script
« le: mai 04, 2015, 10:42:56 am »
Bonjour,
j'ai concocté ce week end un script sous bash pour gérer un dépôt git sans passer par une ligne de commande. En effet, je suis en train de monter mon petit serveur git sur un pi et je migre sous git certains de mes travaux et ceux de ma copine. Bref, git étant un bon moyen de gérer un document même de l'écriture ou du dessin même, il est important de versionner son travail. Le simple fait de pouvoir revenir à un état initial est génial (ce que j'en pense).
Bref, faire apprendre la ligne de commande ou même l'interface GUI est barbant, d'où l'idée d'un script ; une entrée dans le menu, un choix avec 0, 1, 2 pour pull push et quitter et op la sauvegarde ou récupération est faite.
Bien sûr, cela marche pour les dépôts sur le net comme ceux de github ou framasoft où sont situés quelques biblio de locoduino.

Bien sûr, je tourne sous Linux mais cela devra marcher sous Mac/Os. Désolé pour les windowsiens.
Si cela intéresse, je peux le poster.

11
Bibliothèques / Bibliothèque animations lumineuses
« le: avril 17, 2015, 03:59:58 pm »
Bonjour,
quelques animations ont fait l'objet d'articles sur le site, d'autres ont été créées. Bref, celles-ci ont été compilées dans une bibliothèque très simple.
https://git.framasoft.org/g.macfly/AnimLum/tree/master

Vous trouverez sur cette page les explications. Je la mets dans un premier temps ici avant de faire un article. Elle a besoin de tests supplémentaires pour parfaire certaines animations comme la cheminée avec une DEL rgb que je n'ai pas encore ;).
Rien de difficile, il suffit de créer l'objet que l'on veut avec les numéros de broches. Dans le setup la méthode setup avec le sens du courant ;) et après dans le loop la méthode update. Et la méthode off pour arrêter.
Voilà, amusez-vous bien.

12
Vos projets / Simulation daylight
« le: avril 12, 2015, 02:56:52 pm »
Bonjour,
je souhaite sur mon module HOe mettre une simulation jour/nuit avec des bandes de LED. J'en possède une à ton chaud. Il existe aussi des tons froids.
Je sais que froid c'est plutôt la journée et chaud c'est lever et coucher de soleil.
Avant de faire des tests, est-ce que par hasard quelqu'un s'est penché sur ce point ?

13
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 ?

14
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 ?

15
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.

Pages: [1] 2