Show Posts
Pages: 1 ... 244 245 [246] 247 248 ... 361
3676  International / Le bar / Re: [Projet/Idée] Rendre le forum plus agréable pour tout le monde on: March 18, 2012, 02:10:26 pm
Bon je suis en train de regarder pour la partie parsing des topics.

Je crois que je vais reprendre mon code déja fait pour en faire des classes sinon se sera la galére ...

Sinon j'ai remarqué que suivant l'user agent du navigateur le code source de la page (et surtout le format de la date et des liens) sont modifié ce qui pose probléme.

Autre truc je viens de me rendre compte qu'il était possible d'avoir un flux rss sur un forum ou une catégories uniquement :
http://wiki.simplemachines.org/smf/XML_feeds
C'est peut être une solution à envisager ...
3677  International / Français / Re: [Code] :: Optimisation possible ? on: March 18, 2012, 01:58:58 pm
Salut,

J'appellerai pas ça une réel "optimisation" mais bon ...
Code:
#include <avr/io.h>
#include <util/delay.h>

#define _WAIT 500
#define _MS 50
#define _SLEEP 5000
#define DIM 50

uint8_t i, z;

void setup()
{
  TCCR0A = 0x81;
  TCCR1A = 0xA1;
  TCCR1B = 0x3;

  DDRB = B00011100;

  for(i = 0; i < DIM; i++)
    fade(i, 0, 0);
}

void loop()
{
  for(z = 0; z < 6; z++) {
    for(i = DIM; i < 255; i++)
      fade((z & 4) ? i : 0, (z & 2) ? i : 0, (z & 1) ? i : 0);

    _delay_ms(_SLEEP);

    for(i = 255; i > DIM; i--)
      fade((z & 4) ? i : 0, (z & 2) ? i : 0, (z & 1) ? i : 0);

    for(i = DIM; i > 0; i--) {
      switch(z) {
      case 1:
        fade((DIM - i), i, i); // 001
        break;
      case 2:
        fade(0, i, (DIM - i)); // 010
        break;
      case 3:
        fade((DIM - i), i, i); // 011
        break;
      case 4:
        fade(i, (DIM - i), 0); // 100
        break;
      case 5:
        fade(i, (DIM - i), i); // 101
        break;
      }
      _delay_ms(_MS);
    }
  }
}

void fade(uint8_t r, uint8_t g, uint8_t b) {
  OCR1A = r;
  OCR1B = g;
  OCR0A = b;
  _delay_ms(_WAIT);
}
(Ps: tu as 3 define différents pour les delay ? Leur noms sont pas trés significatif ...)

Avant : 156 lignes, 1184 octets
Aprés : 63 lignes, 1056 octets (- 93 lignes, - 128 octets)
3678  International / Français / Re: Projet - Télécommande filaire - Affichage LCD03 I2C on: March 18, 2012, 10:23:12 am
Bon par contre, si je place des Wire.write(0); et Wire.write(12); ça ne compile pas non plus  smiley-roll-sweat
Code:
LCD_I2C.cpp: In function ‘void setup()’:
LCD_I2C.cpp:17: erreur: call of overloaded ‘write(int)’ is ambiguous
/home/geeks/Install/arduino-1.0/libraries/Wire/Wire.h:55: note: candidats sont: virtual size_t TwoWire::write(uint8_t)
/home/geeks/Install/arduino-1.0/hardware/arduino/cores/arduino/Print.h:49: note:                 size_t Print::write(const char*)

Ce qui veut dire que le problème viens d'ailleurs. Ou alors, j'ai pas tout compris. Mais je regarde quand même de mon coté, au cas ou je trouverais quelque-chose.
Suffit de lire l'erreur smiley-wink

call of overloaded ‘write(int)’ is ambiguous -> il y a une ambiguïté sur l'appel de .write()

candidats sont: virtual size_t TwoWire::write(uint8_t)
size_t Print::write(const char*) -> il y a deux version de .write(), une demandant un char* et une autre utilisant un uint8_t (un byte quoi).

Il suffit donc de lire dire ce que l'on veut utiliser, ici write(uint8_t)
Wire.write((uint8_t)0);
Wire.write((uint8_t)12);
3679  International / Français / Re: [Phase 3 : mise en forme] Des catégories pour le forum on: March 18, 2012, 09:54:38 am
Je viens de m'apercevoir d'une chose, lorsque je vire un sujet ou message, ce dernier est mis dans un bac à sable.
Pour atteindre ce bac à sable, je dois ruser, car je n'arrive pas à l'atteindre en direct..... je dois ensuite virer le message une deuxième fois pour qu'il disparaisse complètement.  smiley-mr-green

Ce bac à sable n'est pas vidé et comporte 166 pages inutiles.  smiley-mr-green
C'est une sécurité de SMF pour éviter les suppressions intempestive en cas de modérateurs peut scrupuleux.
Normalement seul un admin peut lancer un vidage des post en attente ...

Ya comme un probléme smiley-small
3680  International / Français / Re: Projet - Télécommande filaire - Affichage LCD03 I2C on: March 18, 2012, 09:50:40 am
Bonjour,

Je viens de faire un essai avec un bout de code. A priori, ils ont tous l'air d'utilisé la librairie Wire.h.

(...)

Et bien sûr, Wire.send() ne fais pas partie de la librairie  smiley-eek
Arduino 1.0 = gros changements
Wire.send() -> Wire.write()
Wire.receive() -> Wire.read()
smiley-wink

Si tu veut le liste compléte des changements entre 0023 et 1.0
http://skyduino.wordpress.com/2012/02/09/arduino-1-0-et-uno-rev3-les-changements-qui-changent-tout/
3681  International / Français / Re: [help] Télémétrie et Radio Commande Modèles réduits on: March 18, 2012, 09:47:06 am
Bonjour,

Quote
Je pensais dans un premier temps tester si la trame d'envoi est bonne en envoyant un truc bidon du type:

Serial.print ({
  0x7c,0x8d,0x00,0xd0,0x00,
  0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x7d,0x00});

Mais je ne sais pas si cela va fonctionner.
Il n'y a aucune chance que cela fonctionne.

Quote
byte data[45] = {
  0x7c,0x8d,0x00,0xd0,0x00,
  0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x7d,0x00};

Serial.write(data, 45);
Mais ça marchera pas non plus vu qu'il faut que tu calcule la checksum.

Tu peut encapsuler tout tes données dans une structure :
Code:
typedef struct {
  uint8_t entete[2];  // 0x7C 0x8D
  uint8_t alarme1;
  uint8_t indentifiant; // 0xD0
  uint8_t alarme2; 
  uint8_t tension_elem[6];
  uint16_t tension_accu[2];
  uint8_t temperature[2];
  uint8_t reservoir_percent;
  uint16_t remplissage;
  uint16_t rotation;
  uint16_t altitude_relative;
  uint16_t taux_montee_sec; 
  uint8_t taux_montee_3sec;
  uint16_t courant_A;
  uint16_t tension_principal;
  uint16_t courant_mA;
  uint8_t garbage[9];
  uint8_t code_fin; // 0x7D
  uint8_t checksum;
} Telemetrie_t;

// Envoi
Serial.write(data, sizeof(Telemetrie_t));

Avant de continuer il faut que tu trouve la méthode de calcul de la checksum (surement une CRC8) smiley-wink
3682  International / Français / Re: W5100 et attachInterrupt on: March 18, 2012, 09:24:30 am
Bonjour,

si j'ai bien compris la fonction attachInterrupt permet de faire un saut dans void loop () vers "void blink()"? et après on revient à void loop().
La fonction attachInterrupt() permet de lier un événement extérieur (un changement d'état sur un broche par exemple) à une fonction.
Dans ton cas je suppose que tu as une fonction void blink(void) quelque pars, et dans setup() quelque chose dans ce style :
Code:
attachInterrupt(0, blink, CHANGE)
(CHANGE : passage de HIGH à LOW ou de LOW à HIGH, RISING : passage de LOW à HIGH, FALLING : passage de HIGH à LOW)

Lorsque la condition d'interruption est vrai sur l'interruption numéro n passé en 1er argument, la fonction passé en 2eme argument est appelé.
Une fois la fonction d'interruption finis le programme reprend là ou il en était avant l'interruption.

on peut déclarer attachInterrupt via un BP , on l'actionne et la fonction se lance , est ce bien cela?
peut on le faire en auto , à des intervalles de temps donné ? genre serveur web (T5min) attachInterrupt serial1datalog (le temps de capturer une trame puis l'enregistrer sur la uSD)
attachInterrupt ne fonctionne pas comme un timer, si tu veut automatiser un appel de fonction toute les n secondes il te faut regarder du coté de MsTimer2 par exemple smiley-wink

Le but d'attachInterrrupt c'est de lier une entrée à une fonction, pour faire une gestion de menu, un arrêt d'urgence, ce genre de chose.

peut on "commander" un attachInterrupt via le navigateur web?
Oui mais pour cela il faut une bonne maitrise des pointeurs sur fonction, des tableaux de pointeur et des switch.
3683  International / Français / Re: [Debutant] Mesure d'une tension sur la pin Analog Input? on: March 17, 2012, 02:07:37 pm
J'ai mis le résultat à la fin du message. Le moment où la sonnette est en fonctionnement correspond au "301". Par contre c'est assez étonnant les résultats autours, j'aurais un signal sinusoïdale?? Pourtant mon voltmètre en DC me donne 0.75V et quand j'inverse les deux fils ça me fait -0.75V...
En traçant un graphique avec tes mesure, il semblerait que par défaut il y a un signal sinusoïdale, et que le moment de la sonnerie est définit par l'absence de ce signal ...
(Voir image)

Je ne sait pas si ça vient du fait que je prend une mesure toute les 100ms ou juste que le signal est telle quelle, mais je trouve ça bizarre ...

Edit: Je t'attache en pièce jointe un programme (de mon-club-elec) permettant de transformer une carte arduino en mini oscilloscope smiley-wink
(Le skecth arduino se trouve dans le dossier sketch, il utilise A0 pour les mesures)
3684  International / Français / Re: Traitement chaîne Hexa on: March 17, 2012, 12:19:55 pm
je viens de testé le code que tu m'a fourni.

il fonctione sauf si j'envoie toute la trame d'un coup.

peut etre que mon logiciel envoie tout d'un coup? la chaudière les envoie les uns après les autre.
smiley-eek
Moi je croyais que ta trame ne contenait que 5 éléments (texte, valeur, index, diviseur, °c/f).

Code:
$ Préchauffage;0008;1;1;zst;Kesseltemp.;0077;2;2;°C;Abgastemp.;0049;3;1;°C;Abgastemp S;0059;11;1;°C;Kesselstrg ;0008;4;1;%;Primärluft ;0000;5;1;%;Rest O2 ist;0207;6;10;%;O2 Regler  ;0100;7;1;%;Sekundärluft;0000;8;1;%;Saugzug Soll;0035;9;1;%;Saugzug Ist;1134;10;1;U;Einschub Ist;0000;12;1;%;O2 Regler Pell ;0035;13;1;%;Füllstand: ;19285;14;207;%;Ansauggeschw.;0193;15;100;m/s;Strom Austrags;1590;16;1000;A;Fühler 1;0081;17;2;°C;Kesselsoll ;0083;18;2;°C;Pufferoben ;0000;20;2;°C;Pufferunten ;0000;21;2;°C;Pufferpumpe ;8192;22;1;%;Boiler 1;0101;23;2;°C;Vorlauf 1;0076;24;2;°C;Vorlauf 2;0076;25;2;°C;HK Pumpe 1;0001;26;1; ;HK Pumpe 2;0001;27;1; ;Aussentemp;0017;28;2;°C;Kollektortemp;0000;29;2;°C;Betriebsstunden;0875;30;1;h;Fehler;Kein Fehler ;99;1; ;
La du coup ya nettement plus d'info ...

Si la "vrai" trame à cette tête il faudrait revoir mon systéme en utilisant un tableau de structure parce que sinon ça risque d'être compliqué de gérer tant de données.
3685  International / Français / Re: [Debutant] Mesure d'une tension sur la pin Analog Input? on: March 17, 2012, 12:11:18 pm
Bonjour,

Tu pourrais nous donner un aperçu du signal que tu reçois ?

Utilise ce code par exemple :
Code:
unsigned int val;

void setup() {
  Serial.begin(115200);
}

void loop()
{
  val = analogRead(A0);
  Serial.println(val, DEC);
  delay(100);
Et post le résultat du Serial Monitor quand la sonnette est en fonctionnement smiley-wink
3686  International / Français / Re: Déconnection bluetooth on: March 16, 2012, 07:32:00 am
Passer en Python si tu me dit que c'est plus facile, ma foi pourquoi pas. Il faut que je trouve quelques exemples de codes qui causent via le port série, et d'autres qui font des dessins.
A partir de ça je devrais me débrouiller.
Quelques exemples maison :
Pour la gestion de fichier (open, write, ...) : http://skyduino.wordpress.com/2011/08/05/arduinopythonglcd-chargement-dimage-depuis-carte-sd/
Pour la gestion d'un port série : http://skyduino.wordpress.com/2011/10/07/test-la-gprs-shield-de-seeedstudio/ (requière PySerial)
Pour la gestion d'un graphique / 3D : http://skyduino.wordpress.com/2011/08/02/python-imu-9dof-modifie/ (requière Vpython)
Pour la gestion d'une connexion réseau (bonus) : http://skyduino.wordpress.com/2011/11/03/tutoriel-arduino-et-ethernet-shield/

Du reste processing pour écrire des trucs dans un fichier texte ca a l'air assez chiant. Je cherche toujours un équivalent au fopen("truc.txt",a) de php (pour loger les trames de mon arduino). Si c'est plus simple en python ca me va bien.
C'est vrai qu'en java la gestion de fichiers c'est "un peu" galére : http://docs.oracle.com/javase/tutorial/essential/io/file.html
Avec processing tu as quand même une API plus simple, mais moins complète (voir files -> examples -> Topics -> File IO).
3687  International / Français / Re: Protection des broches 4 et 5 en I2C on: March 15, 2012, 10:36:03 am
Salut,

Voila je voudrais savoir si on pouvait protégé les ports 4 et 5 ( configuré en I2C), car suite a une malencontreuse manip de ma part,
j'ai renvoyée du 24Volts sur les broches 4 et 5.
Aie .. 24volts

J''avais pensé a des Optocoupleurs, mais je ne vois pas quelles type utilisé.
Ou si vous pensés a d"autre protections pour garder la communication assez rapide (je suis en train de finalisé mon installation de 128 entrées et 64 sorties en I2C).
Sur un bus I2C il faut que les lignes SDA et SCL soit bidirectionnelles, donc un systéme à base optocoupleurs c'est moyen, voir pas du tout approprié.
Un montage à base de mosfet + diode zener serait plus approprié (cherche "i2c mosfet level shifter" sur google smiley-wink)

Sinon, pourquoi du 24v sur un bus I2C !?

Je suis en attende de vos suggestions avant de commander une nouvelle carte ( et de ce faite le matériel de protection de celle-ci).
Si c'est une carte arduino avec un micro-contrôleur en boitier DIP (espèce de "barre" à 28 pattes) tu peut te contenter de remplacer le micro-contrôleur.
Si c'est une carte avec un microcontrôleurs CMS (petit carré de ~1.5cm de coté) la par contre faudra soit tout changer, soit avoir le matériel pour remplacer le composant CMS.
3688  International / Français / Re: Déconnection bluetooth on: March 15, 2012, 10:24:44 am
Salut,

Le bluetooth c'est pas super pour faire des connexions sur le long terme.
Le fait qu'il y ai des déconnexions ne m'étonne pas.

Il doit surement y avoir des moyens coté PC avec la librairie RxTx pour détecter un probléme sur le port série.
Mais la méthode la plus simple c'est encore (je pense) de faire un systéme de timeout qui détecte quand aucune info n'est recu durant un certain intervalle de temps.
En python je pourrai te donner un exemple sans probléme, par contre en java/processing j'ai jamais tenté de faire des lectures non bloquante avec la lib RxTx.
3689  International / Français / Re: futurlec , il y a des clients ici ? (feedback) on: March 15, 2012, 10:19:49 am
Arghh... j'ai reçu ce ceux que j'ai commandé Samedi sur ebay ! 5 jours, pas 1 mois comme d'habitude... si j'avais su !
5 jours avec ebay smiley-eek
Moi il faut entre 20 et 25 jours minimum pour que sa arrive smiley-zipper
Sinon watterott et lextronic livre en 7 jours environ, mais bon sont assez chére pour les "petits trucs" smiley-roll

J'ai entendu dire il y a déjà quelque temps que futurlec avait eu des problémes juridiques, c'est du reste pour ça que j'ai toujours était rétissant à commander chez eux.
Réalité ou fiction ?
3690  International / Français / Re: Pin 10 à 12 HS que faire ? + Utiliser entrée analogique en numérique on: March 15, 2012, 10:16:41 am
Salut,

Bon au vu de la (jolie) bulle -> ATmega mort et enterré.

Si tu veut utiliser une broche analogique en digital:
pinMode(A0, OUTPUT); digitalWrite(A0, HIGH); etc ... par exemple

Un grand merci, ce qui m'ennuie c'est qui me le faut pour demain car je part en France pour un concours
Donc la carte est OK c'est juste l'ATMEGA qui est HS
Trouve toi un magasin d'électronique dans ta ville, et demande leur un ATmega328p-PU (type AVR, fabricant ATMEL si il te le demande) en boitier PDIP-28.

La carte en elle même ne devait pas avoir eu chaud, il y a même des chances vu l'emplacement de la "bulle" que seul le contrôleur d'I/O du port B est rendu l'âme.

PS: Il se trouve ou ton concours ?
Pages: 1 ... 244 245 [246] 247 248 ... 361