Show Posts
Pages: 1 ... 246 247 [248] 249 250 ... 357
3706  International / Le bar / nettoyage du forum et recherche on: March 04, 2012, 08:47:52 am
Je viens d'y penser et de faire quelques essais.
Le moteur de recherche arduino, même si il n'est pas parfait, peut nous aider dans cette tâche.

Exemple :
http://arduino.cc/forum/index.php?action=search2&brd=33&minage=0&maxage=10&sort=numReplies|asc&search="2n2222"

- brd=33 // board 33 --> forum français
- minage = x // fourchette mini de l'age des sujets
- maxage = x // fourchette maxi de l'age des sujets
- sort = { relevance|desc,        // resultat les plus correspondants
                numReplies|desc,     // grand nombre de réponse d'abord
                numReplies|asc,       // faible nombre de réponse d'abord
                ID_MSG|desc,            // sujet plus récent d'abord
                ID_MSG|asc }            // sujet moins récent d'abord
- show_complete = (0|1) // affiche ou pas le contenu
- subject_only = (0|1) // affiche ou pas l'entête
- searchtype = (1|2) // 1 = recherche tous les mots ensembles, 2 = recherche chaques mots.

Je pense avoir fait le tour des options possibles. Le seul inconvénient est qu'il faut nécessairement entrer un mot clé pour la recherche (&search="2n2222"). En cherchant des mots clé, tel que le, la, les, un, une, je pense que l'on peut rapidement faire le tour des sujets en les triant par nombre de réponse.
Ya beaucoup plus simple pour tout récupérer.
Il suffit de parser chaque page du forum, et placer les résultat d'une série de regex dans une base de données type sqlite ou mysql.
Ensuite pour chaque topic tu refait le même systéme pour en extraire les post, sa reviendrai à générer une copie de la base de donnée france du forum.
De la il serait possible de monter notre propre moteur de recherche et notre propre client d'alerte/popup.

Cà serait cool d'avoir notre propre moteur de recherche 100% francophone  smiley-lol
+1

-> topic dédié or not ?
3707  International / Le bar / nettoyage du forum et recherche on: March 04, 2012, 08:18:51 am
Je propose également une date limite pour les sujets n'ayant pas de réponse.

Skywodd, c'est possible de faire un bot qui détecte le nombre de message et la date de création du sujet ?
Le nombre de message : oui,
La date de création : oui mais avec quelques astuces,

Il y a aussi beaucoup de message avec des liens urls non valides !!!

Detections des urls non valides ???
Humm ... détection des liens mal écrit genre htp://google.fr, ou des liens qui ne point vers un 404 not found ou sur un serveur inexistant ?
Si c'est une détection des liens pointant vers un 404 ou rien, j'avais fait un script qui vérifié la validité des liens megaupload, moyennant modification ça doit pouvoir ce faire.

Un client PC pour le forum ... c'est un projet qui me tente bien smiley-mr-green
Un petit topic sur le sujet pour en débattre ?
3708  International / Français / Re: [Projet] Montage de mesure de stabilité on: March 04, 2012, 08:04:06 am
Mais vu que la mega2560 a 8Ko de ram ça ne devrait pas être la cause du probléme.

J'ai bien une Mega, mais 1280.... c'est grave docteur  smiley-mr-green ?
La mega1280 a 8Ko de ram aussi, c'est juste niveau flash quelle en à 1/2 moins qu'une mega2560 smiley-wink

Pour ton probléme de remise à zéro, vérifie tes calculs, surtout ceux utilisant des int.
rappel:
int / int = int,
int / float = float,

Erreur de base : 5 / 10 -> 0, alors que 5 / 10.0 -> 0.5
3709  International / Français / Re: Accéder à une page sur serveur distant sans ip ? on: March 04, 2012, 07:58:35 am
Salut,

l'ip du serveur n'est pas importante, tu en mets une (genre google), quand tu fais la requette http, tu as "GET /index.php" normalement, et bien à cet endroit, tu donnes l'adresse dns de ton site free "GET http://monsitefree.free.fr/index.php"

Heu ... NON !
Ce que tu décris n'est valable qu'avec un proxy http ! Si tu demande une ressource extérieur au serveur celui DOIT te renvoyer un 301 Moved Permanently voir même un 400 Bad Request !

Quand on fait une requête http il faut que les ressources demandé ce trouve sur le serveur ... sinon ça n'as aucun sens ...
Si le serveur se connecte à un autre serveur pour renvoyé la ressource c'est du proxying.

Quote
Pourquoi chercher compliqué  ?

Cela fonctionne, je peux passer à la suite du projet...
Je reste sur le c*l ... tu as utilisé quoi comme IP pour retransmettre ta requête !?
3710  International / Français / Re: diamondback douteux... Problème de compilation on: March 04, 2012, 07:56:23 am
J'ai tweeté ta mésaventure, et on m'as demandé de te donner ce lien :
http://www.60millions-mag.com/layout/set/popup/content/view/full/127331

3711  International / Français / Re: Récupérer une information d'une base sql on: March 04, 2012, 07:45:42 am
Bonjour,

Le plus simple est de faire un script php qui affiche l'état de la led quand il est appelé.

Exemple :
Code:
<?php

if(!isset($_GET["led'"]))
  die(
"-1");

$led intval($_GET["led'"]); 

$conn mysql_connect("localhost""username""password");

if (!
$conn)
  die(
"-1");

if (!
mysql_select_db("dbname"))
  die(
"-1");

$sql "SELECT etat FROM arduino WHERE led = $led";

$result mysql_query($sql);

if (!
$result)
   die(
"-1");

if (
mysql_num_rows($result) == 0)
   die(
"-1");

$row mysql_fetch_assoc($result);
echo 
$row["etat"];

mysql_free_result($result);

?>

Script Sql
Code:
CREATE TABLE arduino(
led INT(5) PRIMARY KEY,
etat INT(1)
);


Et il suffit d'utiliser l'exemple webClient arduino pour demander au serveur la page balbla.php?led=1 par exemple.
La page renverra le nombre qui correspond à la led voulu ou -1 en cas d'erreur.
3712  International / Français / Re: Contact entre 2 I/O ? on: March 04, 2012, 07:35:00 am
Bonjour,

Pour ton systéme tu peut même faire encore plus simple qu'un 2n2222a, prend un BC547 (c'est un petit transistor NPN qui se trouve absolument partout) et une résistance de 1K.

Tu branche ensuite le tout suivant ce principe :
Code:
télécommande point A -------+ (C)
                             BC547 (B) ----- 1K --------- Dx arduino
télécommande point B -------+ (E)
(Si ça ne marche pas inverse E et C smiley-wink)

BC547 :
3713  International / Français / Re: Keypad sur ecran LCD série (web4robot.com) on: March 04, 2012, 07:26:16 am
Bonjour,

Bon déjà pour pouvoir résoudre ton probléme il nous faudrait plus de détails sur le matériels utilisé, ainsi que le code complet.

Sinon tu dis que ton écran / keypas est à 15m de l'arduino !?
Tu doit avoir des problémes à cause de la distance, a tu fait des essai sur des distances inférieur au mètre ?
3714  International / Français / Re: diamondback douteux... Problème de compilation on: March 03, 2012, 05:18:03 pm
Salut,

Ha ouai ... quand même ! smiley-eek-blue

Même moi avec ma poêle je soude des cms avec une meilleur qualité ...

Les soudures aux niveau de la led et du résonateur sont très inquiétantes, elle vont pas tenir longtemps selon moi ...
On dirait presque une carte tout droit sortie d'un lot de pré-production, souder à la main, etc ... c'est trés bizarre !

Et les connecteurs SIL-06 et SIL-08 remplacé par de la barrette non sécable, massacré à la pince coupante ...

ça vaut plus le coup de prendre une carte arduino officiel et une shield wifi de seeedstudio (même CI wifi) !
Tu l'as acheté ou ? Tu devrais pousser une gueulante auprès du vendeur !
3715  International / Français / Re: [Projet] Montage de mesure de stabilité on: March 03, 2012, 05:08:39 pm
Sur les conseils de Skywodd (merci  smiley-wink, si tu veux bien poster ton explication),
Ouaip !

Donc voila toute l'histoire ...

J'ai tout d'abord pensé à un manque de ram, du coup j'ai fait quelques stats :
J'ai compté :
-  312 int (soit 624 octets)
- 104 float (soit 832 octets)
- 104 long (soit 416 octets)
- 193 char (soit 193 octets)
Soit un total de 1615 octets de ram utilisé statiquement.

Ajouté à cela la pile d'appel pour les fonctions, les buffers des ports séries (96 octets), les instances d'objets (LiquidCrystal, Gps, ...) et SdFat (~1.5Ko) on approche des 4Ko de ram consommé.
Mais vu que la mega2560 a 8Ko de ram ça ne devrait pas être la cause du probléme.

J'ai donc regardé de plus prés le code et j'ai remarqué que les tableaux :
AxeX[], AxeY[], AxeZ[], SpeedVal[], et timeTop[]
Pouvait être sujet à un buffer overflow, car top est incrémenté (ligne 285) dans rpm_fun() sans jamais faire le moindre test de dépassement.

En croisant ce point avec le fait que les tableaux couvrent 50% de la ram, il est trés fortement probable que le bug soit causé par un buffer overflow venant écrire dans des zones mémoires qui ne devraient jamais être bidouillées.
Quand la mémoire ram par en sucette le cpu redémarre au vecteur de reset, ça ressemble donc très fortement aux symptômes.

Quote
oui,  pas sympa skywodd de faire des cachoteries
C'est J-F qui est venu me chercher par MP smiley-mr-green
Enfin, il a bien fait, j'avais complétement décroché du topic smiley-red

Quote
ça fonctionne jusqu'à 30 et ça reset ensuite pareil ou tu ne peux pas simuler des tops qui renvoie une V > 30 Kmh ?
J'espère pas, si ça reset à V > 30Km ça voudrai dire qu'il y a encore un buffer overflow quelques pars smiley-sweat
3716  International / Français / [Résolu] Attiny85 - pb timer & I2c slave on: March 03, 2012, 03:17:37 pm
Bonjour tout le monde !

J'ai un (enfin deux) probléme avec un projet en cours, et j'arrive pas à m'en sortir smiley-confuse

Je suis en train de faire un systéme à base d'ATtiny85 qui génère deux signaux carré de fréquence défini.
Pour ceux faire j'utilise timer0 et timer1, le schéma de mon montage est en pièce jointe.



Le principe : L'ATtiny attend sur le bus I2C deux octets, un premier qui sert de commande, et un deuxième qui sert de valeur.

En gros les "paquets" I2C on cette forme (syntaxe : bus pirate) :
[ adresseI2C canal fréquence ]

"canal" peut prendre les valeurs 0, 1 ou 2.
0 étant un canal spécial qui permet d'arrêter un timer.

Les fréquences sont codé via une valeur de 0 à 127, qui correspond aux notes de musique que génère miditones à partir d'un fichier midi (http://code.google.com/p/miditones/).

Exemple :
[ 0 1 69 ] -> 440Hz sur ch1
[ 0 2 69 ] -> 440Hz sur ch2
[ 0 0 1 ] -> ch1 silence
[ 0 0 2 ] -> ch2 silence


Sauf que (se serait trop beau si tout marchait du 1er coup)

Dans mon code je défini 0x20 comme adresse d'esclave :
Code:
/* I2C Node Address */
#define I2C_NODE_ADDRESS 0x20

Puis j'utilise la librairie usiTwiSlave pour gérer les communications I2C
Code:
/* Seting up I2C Slave */
usiTwiSlaveInit(I2C_NODE_ADDRESS);
sei();

Je devrai donc pouvoir communiquer avec mon Attiny sur l'adresse 0x20, sauf que aprés avoir fait un scan rapide avec ma carte bus pirate, il s'avére que mon Attiny répond sans probléme, mais sur l'adresse 0x00 !
Comme je prévoie de faire 8 modules il faut absolument que la gestion des adresses marche smiley-confuse

Ensuite probléme plus grave, j'utilise les timer 0 & 1 en CTC (clear on timer compare) pour générer les deux signaux.
Sauf que j'ai une énorme différence de fréquence entre timer1 et timer0, pourtant je pense avoir correctement choisi mes prescaller ...

Exemple : [ 0 1 69 ] -> 440Hz sur ch1, en sortie sur mon fréquencemètre : 439Hz (Ok)
               [ 0 2 69 ] -> 440Hz sur ch2, en sortie sur mon fréquencemètre : 121.5Hz (!?)
ch1 semble donc fonctionner, mais ch2 pas pas du tout, en faite je crois que mes prescaller pour le timer2 sont complétement faux :/

Bref ... mon truc marche pas et je vois pas comment m'en sortir smiley-cry
Help ... Doit bien y avoir un mordu de datasheet et de registre dans l'assistance smiley-mr-green

Mon code :
Code:
/*
 * TinySound - Simple, I2C controled, 2 channel music generator
 * Coded by SkyWodd <skyduino.wordpress.com>
 *
 * Based on arduino-playtune (http://code.google.com/p/arduino-playtune/)
 *      and miditones (http://code.google.com/p/miditones/)
 */

/*
 * ATtiny85 Fuses :
 * PLL Clock; Start-up time PWRDWN/RESET: 1K CK/14 CK + 4 ms; [CKSEL=0001 SUT=00]
 * Brown-out detection level at VCC=4.3 V; [BODLEVEL=100]
 * Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]
 * Serial program downloading (SPI) enabled; [SPIEN=0]
 */
 
 /* Includes */
#include <avr/interrupt.h> /* For Timer Interrupt */
#include <avr/pgmspace.h>  /* For PROGMEM */
#include "usiTwiSlave.h"   /* For I2C Slave */
#include <avr/io.h>        /* For I/O usage */

/* I2C Node Address */
#define I2C_NODE_ADDRESS 0x20

 /* PinMapping Definition */
#define SOUND_OUT_1_BIT 3
#define SOUND_OUT_2_BIT 4
#define WORKING_LED_BIT 1

/* Usage Macro */
#define setLedOn() PORTB |= (1 << WORKING_LED_BIT)
#define setLedOff() PORTB &= ~(1 << WORKING_LED_BIT)
#define setLedToggle() PORTB ^= (1 << WORKING_LED_BIT)

#define setChan1On() TIMSK |= (1 << OCIE0A)
#define setChan1Off() TIMSK &= ~(1 << OCIE0A); PORTB &= ~(1 << SOUND_OUT_1_BIT)

#define setChan2On() TIMSK |= (1 << OCIE1A)
#define setChan2Off() TIMSK &= ~(1 << OCIE1A); PORTB &= ~(1 << SOUND_OUT_2_BIT)

/* Chromatic Frequency Table */
const uint16_t PROGMEM tune_freq[128] =
{
    16,17,18,19,21,22,23,24,26,28,29,31,33,35,37,39,41,
    44,46,49,52,55,58,62,65,69,73,78,82,87,92,98,104,110,
    117,123,131,139,147,156,165,175,185,196,208,220,233,
    247,262,277,294,311,330,349,370,392,415,440,466,494,
    523,554,587,622,659,698,740,784,831,880,932,988,1047,
    1109,1175,1245,1319,1397,1480,1568,1661,1760,1865,1976,
    2093,2217,2349,2489,2637,2794,2960,3136,3322,3520,3729,
    3951,4186,4435,4699,4978,5274,5588,5920,6272,6645,7040,
    7459,7902,8372,8870,9397,9956,10548,11175,11840,12544,
    13290,14080,14917,15804,16744,17740,18795,19912,21096,
    22351,23680,25088
};

/* Timer0 Interrupt */
ISR(TIMER0_COMPA_vect) {
    PORTB ^= 1 << SOUND_OUT_1_BIT;
}

/* Timer1 Interrupt */
ISR(TIMER1_COMPA_vect) {
    PORTB ^= 1 << SOUND_OUT_2_BIT;
}

/* Tune Channel to frequency */
void set_channel(uint8_t channel, uint8_t note) {
uint8_t prescalarbits;
uint16_t ocr, freq2 = pgm_read_word(tune_freq + note);

// make sure the note isn't too low to be playable
if (note < 24) return;  // ignore if so

    ocr = F_CPU / freq2 - 1;
    prescalarbits = 0b001;  // ck/1
    if (ocr > 255) {

ocr = F_CPU / freq2 / 8 - 1;
prescalarbits = (channel == 1) ? 0b010 : 0b100;  // ck/8
if (ocr > 255) {

ocr = F_CPU / freq2 / 64 - 1;
prescalarbits = (channel == 1) ? 0b011 : 0b111; // ck/64
if (ocr > 255) {

ocr = F_CPU / freq2 / 256 - 1;
prescalarbits = (channel == 1) ? 0b100 : 0b1001; // ck/256
if (ocr > 255) {

ocr = F_CPU / freq2 / 1024 - 1;
prescalarbits = (channel == 1) ? 0b101 : 0b111; // ck/1024
}
}
}
}

if (channel == 1) {
TCCR0B = (TCCR0B & 0b11111000) | prescalarbits;
OCR0A = ocr & 255;
} else {
TCCR1 = (TCCR1 & 0b11110000) | prescalarbits;
OCR1A = ocr & 255;
}
}

/* Entry Point */
int main(void) {
/* Variables */
uint8_t channel;
uint8_t note;

/* Channels & Led Pin As Output */
    DDRB |= (1 << SOUND_OUT_1_BIT) | (1 << SOUND_OUT_2_BIT) | (1 << WORKING_LED_BIT);

/* Seting up Timer To CTC Mode */
/* Timer0 */
TCCR0A = 1 << WGM01;
TCCR0B = 1 << CS00;

/* Timer1 */
TCCR1 = (1 << CS10) | (1 << CTC1);

/* Stop Interrupt */
setChan1Off();
setChan2Off();
setLedOff();

/* Seting up I2C Slave */
usiTwiSlaveInit(I2C_NODE_ADDRESS);
sei();

/* Forever loop */
for(;;) {
/* If Data Sent Over I2C */
if(usiTwiDataInReceiveBuffer()) {
setLedToggle();
channel = usiTwiReceiveByte();
note = usiTwiReceiveByte();
switch(channel) {
case 0:
if(note == 1) {
setChan1Off();
} else if(note == 2) {
setChan2Off();
}
break;

case 1:
set_channel(1, note & 127);
setChan1On();
break;

case 2:
set_channel(2, note & 127);
setChan2On();
break;
}
}
}
}

Mon makefile :
Code:
DEVICE=attiny85
AVRDUDE = avrdude -c usbtiny -p $(DEVICE)

COMPILE = avr-gcc -Wall -Os -I. -mmcu=$(DEVICE) -DF_CPU=16000000 -DDEBUG_LEVEL=0
SIZE = avr-size --mcu=$(DEVICE)
OBJECTS = usiTwiSlave.c tinysound.c

all: $(OBJECTS) clean
$(COMPILE) -o main.bin $(OBJECTS)
avr-objcopy -j .text -j .data -O ihex main.bin main.hex
$(SIZE) main.hex
rm -f *.bin

flash:
$(AVRDUDE) -U flash:w:main.hex

fuse:
$(AVRDUDE) -U lfuse:w:0xc1:m -U hfuse:w:0xd4:m -U efuse:w:0xff:m

clean:
rm -f *.o *.bin *.hex
3717  International / Le bar / Re: Rédaction d'une Charte (réglement) du forum on: March 03, 2012, 01:00:38 pm
C'est marrant, tu ne parles pas d'orthographe....  smiley-lol
*sifflote* de quoooi ? smiley-kiss
3718  International / Français / Re: Projet affichage pseudo 115 led RGB on: March 03, 2012, 05:57:44 am
smiley-eek ok donc c'est une forme spécial ...

Tu veut faire des effets de lumière sur chaque led de chaque lettres, ou tu veut faire des effets sur chaque lettres (globalement).

Tu peut aussi regarder du coté des led RGB avec CI intégré :
http://www.watterott.com/de/BlinkM-miniM-I2C-RGB-LED
http://www.watterott.com/de/WS2801-Breakout
http://www.watterott.com/de/12mm-RGB-LED-Strang-WS2801
http://www.watterott.com/de/Digital-Addressable-RGB-LED
3719  International / Le bar / Re: Rédaction d'une Charte (réglement) du forum on: March 03, 2012, 05:24:28 am
Salut,

Bonne idée d'ouvrir ce topic !

Pour ma pars je verrai bien des régles du genre :
- Pas de lien ebay dans les messages, toujours utiliser des liens qui perdure dans le temps, ou fournir une capture d'écran de l'objet avec la description,
- Attacher en piéce jointe les images, ne pas utiliser d'hébergeur externe (l'hébergeur ferme -> tout les liens sont HS),
- Ne pas attacher une image en pleine résolution (sinon ça devient impossible de naviguer avec une image sur tout l'écran),
- Mettre tout code source entre balise code (non seulement parce que c'est plus propre, mais en plus ça évite les bug avec les balises BBcode),
- Expliquer en détails son probléme des le 1er post, ne pas laisser de coté des détails qui semble insignifiant,
- Lorsque qu'on parle d'un produit, mettre un lien vers le produit en question (carte arduino officiel exclu),
- Lorsque qu'on souhaite de l'aide pour un montage, fournir un schéma détaillé du montage sous format image (voir si possible fournir le fichier fritzing / proteus / eagle ...),
- Dans le cas d'un bug visuelle (un afficheur qui déconne etc ...) fournir une photo qui montre le bug et un schéma/photo montrant le résultat souhaité,
- Choisir un nom de topic concret, pas un simple "besoin d'aide",
- Respecter une typo pour le nom de topic, Donner le type de post [Astuce] [Bug] [Release] ..., le matériel principal utilisé UNO + EthShield, et le contenu du topic - Pb Exemple Webserver (ex: [Bug] UNO + EthShield - Pb Exemple Webserver),
- Ne pas écrire son post en une seul ligne, les retours lignes ça coute rien et c'est beaucoup plus clair pour tout le monde,
- Pas de sms ou de raccourci barbare, on n'est pas là pour faire de la cryptographie orthographique,
- Pas d'insultes ou de moqueries, que ce soit envers un débutant, comme envers un membres expérimenté,
- Pas de message à caractéres provocateur, raciste, etc etc ...
- On ne discutte pas les décisions d'un arbitre lors d'un match, ça vaut aussi pour les modérateurs du forum,
- Pas de MP pour poser une question à un autre membre sur un sujet pouvant intérésser d'autres membres, le principe d'une communauté c'est de partager, pas de faire son truc dans son coin par MP interposé,
- La fonction rcherche marche mal mais c'est pas pour ça qu'il faut pas l'utiliser,
- Ne pas poster de messages HS sur tout et n'importe quoi, la (futur) partie Bar est là pour ça
- 1 sujet = 1 topic, ne pas faire dériver le sujet d'origine vers un autre sujet, au risque qu'il perde toute intégrité, si un nouveau sujet se pose, ouvrir un nouveau topic.

J'en aurai encore plein d'autres à ajouter, mais si j'en ajoute encore on va me prendre pour un dictateur ^^""

Il faudrait aussi ajouter les divers régles énoncée dans le règlement en anglais, ainsi que faire un topic/message portant sur l'aspect légal des interventions (messages racistes, etc ..., disclaimer au sujets des possible dégradation matériel et physique).
Au passage pour les tutoriels il faudra mettre en place une mise en forme et quelques régles à respecter (fournir une version pdf par exemple, ce genre de truc), et mettre en place un post regroupant les différents type de licence utilisable pour la publication.

Une charte de bonne conduite concernant le vole de code (plagiat) et la citation des sources serait pas mal aussi.

Aprés ya plein d'autres chose à mettre en place si on veut faire bien ...

Tient du coup en écrivant ces lignes je me rend compte que arduino.cc serait vraiment plus sympa avec :
- un service interne comme pastebin pour les codes volumineux,
- un service interne d'hébergement d'image (même basique),
- une fonction recherche pouvant cibler une seul section du forum.

Enfin voila, my 2 cents smiley-mr-green
3720  International / Français / Re: Projet affichage pseudo 115 led RGB on: March 03, 2012, 01:09:09 am
Salut,

Bon déja avec des 74HC595 c'est réalisable MAIS tu n'aura que 7 couleurs possible (différents état logique 0/1 sur RGB).

Tu parle de 115 led rgb, ok, mais sous quel forme, ligne, colonne, matrice, ... ?

Sinon dans le principe, controler 115 led rgb, avec les CI qui vont bien c'est tout à fait possible.
Aprés faire le câblage des led c'est beaucoup plus chiant ...
Pages: 1 ... 246 247 [248] 249 250 ... 357