Show Posts
Pages: [1] 2 3 ... 362
1  International / Français / Re: Comment puis faire avec deux fichiers .cpp en une librairie on: Today at 05:06:05 am
avant de lire ton post, j'ai abandoné cette idée et j'ai tout dans le meme fichier sim908.h et sim908.cpp. Je distingue mes fonctions avec un préfixe gsm_, gps_, ou gprs_
En prog il faut toujours se poser la question de qui fait quoi (responsabilité), qui utilise quoi (dépendance), qui stock quoi (modèle de données).
C'est l'étape de conception, la plus importante de toutes les étapes.
Et pour ça les meilleurs outils au monde sont : une feuille de papier, un crayon (et une gomme) et des schémas (uml ou autre). Ya pas mieux smiley-mr-green

Cenpendant, c'est vrai qu'en avacant comme ceci on loupe des chapitres et quand mon proto sera à 100% terminer, j'ai décidé de prendre cours C++ pour compléter, ce qu'il me manque.
Regarde ici : http://cpp.developpez.com/livres/
(attention, ça va du livre pour débutant, au cahier de spécifications de norme C++ smiley-wink)
2  International / Français / Re: Problème d'installation pilote arduino nano on: Today at 04:53:14 am
Dans les info du périph, 1er onglet, en bas dans le cadre tu as le détail de l'erreur.
Fait nous un copier/coller de l'erreur, si ça ce trouve c'est pas un problème de driver smiley-wink
3  International / Français / Re: Projet Led haute puissance avec recepteur de modelisme on: Today at 04:52:12 am
B@tto : tu remplaces pas pulseIn par une interruption smiley-wink
Ou alors ça veut dire que tu vas utiliser millis()/micros() derrière pour traiter le signal ce qui est ... ultra chiant (cf code de réception pour les modules blyss d'il y a quelques temps) et peu précis si le signal de contrôle est court.

Pour remplacer le pulseIn bloquant par un équivalent non bloquant il faut détourner un timer (Timer2 par exemple) pour le faire fonctionner en compteur avec la broche ICP (input capture pin) correspondante.
Voir http://www.atmel.com/images/doc8014.pdf pour les détails d'implémentation.

Ainsi à chaque front du signal de contrôle, une interruption avec la longueur du front est générée. Dans l'interruption il faudra refaire le filtrage du code d'origine pour changer le n° de programme.
Dans le code de loop() il faudra refaire la gestion des programmes en non bloquant avec millis() et des tests en fonction de chaque programme possible (c'est long mais c'est plus simple que d'utiliser un RTOS ou de faire un planificateur).
4  International / Français / Re: Problème d'installation pilote arduino nano on: Today at 04:42:29 am
c'est ce que j'ai fait, mais ce ne fonctionne pas ! Drivers utilisé : http://www.ftdichip.com/Drivers/CDM/CDM%20v2.12.00%20WHQL%20Certified.zip

 smiley-roll-sweat
Dans ce cas essaye de forcer l'installation du bon driver en dézippant le .zip de FTDI sur ton bureau par exemple puis en faisant "mise à jour" -> "depuis un dossier de mon ordinateur".

Si ça met toujours le (!) jaune c'est qu'il y a un problème plus conséquent. Dans ce genre de cas le plus simple et de forcer la désinstallation du périphérique, de redémarrer, puis de réinstaller complétemet le périph. Mais avant de faire ça donne nous l'erreur affiché dans le 1er onglet des info du périphérique smiley-wink
5  International / Français / Re: Projet Led haute puissance avec recepteur de modelisme on: Today at 04:39:16 am
Bonjour,

Si je comprend bien tu veux pouvoir changer de programme pendant qu'un autre est en cours ?
Si oui il va falloir revoir tout ton programme en non-bloquant (sans delay, ni pulseIn), ou utiliser une RTOS pour avoir deux taches en pseudo-parallèle.
6  International / Français / Re: Problème d'installation pilote arduino nano on: Today at 04:34:32 am
Bonjour,

Installe les drivers VCP (Virtual Com Port) directement depuis le site de FTDI et dans le gestionnaire de périph demande une mise à jours du driver. Ça devrait marcher tout seul aprés smiley-wink
http://www.ftdichip.com/Drivers/VCP.htm

Edit : Zut, Artouste m'a grillé smiley-mr-green
7  International / Le bar / Re: STM32 Comment cela se programme ? on: Today at 04:29:01 am
Arf ... encore de l'internet des objets. C'est la grande mode du moment.
Brosses à dent, rouleaux de pq, tout y passe smiley-roll

Point positif : ce coup ci il y a un co-processeur crypto intégré dans le hardware. Reste plus qu'à atteindre un ou deux ans pour que les dév de modules IoT se décident à l'utiliser ...
Entre temps ils auront peut être intégré l'AES hardware, voir un TPM (Trusted Platform Module) pour sécurisé les transmission en plus de l'authentification smiley-sweat
8  International / Français / Re: Equivalent digitalRead on: October 01, 2014, 11:51:17 am
Salut,

Ton code de test n'est pas représentatif smiley-wink

Tu as ré-écris les fonctions pinMode, digitalRead et digitalWrite, ni plus ni moins.
Dans mon code, je met dans des variables les différents pointeurs que je vais utiliser en masse par la suite (dans des boucles à plus de 10000 itérations avec dans des tests inline).
Donc au niveau des boucles et des tests c'est comme si je faisait de la manipulation de ports.

Si tu gardes dans des variables statiques (ou globales) les pointeurs que te retournes les différentes fonctions bas niveau et que tu ne fait l'initialisation de ces variables qu'une seule fois tu auras un gain de temps notable smiley-wink
9  International / Français / Re: Chute de tension pins D5, D6 et D7 de l'arduino nano on: October 01, 2014, 11:35:48 am
Bonjour,

Tu aurais pas monter les transistors dans le mauvais sens par hasard ?
(inversion broche 1 et 3)

Parce que sinon au vu du schéma ya pas de soucis ...
10  International / Français / Re: Programme ralenti par la lecture d'une température on: October 01, 2014, 11:26:02 am
Bonjour,

Il existe une façon simple de transformer cette fonction en une fonction non bloquante.
Mais si tu es débutant tu risques de galérer un peu à faire fonctionner une version non bloquante.
Regarde l'exemple "BlinkWithoutDelay", voir si tu comprends.

Tu fais quoi de la température mesurée ? En quoi le délai est gênant dans ton application ?
Si ça ce trouve un capteur plus classique style LM35 pourrait remplacer avantageusement ton DS18B20 smiley-wink

NB : si tu n'as qu'un seul DS18B20, la fonction te retournera une erreur une fois sur deux. C'est précisé dans les commentaires de mon article d'où le code est tiré smiley-wink

(d'ailleurs ce delai varie selon la resolution souhaitée entre +4 ms pour 9bits jusqu'à 750 ms pour 12 bits)
Pour ceux que ça intéresse, voici un code (théorique) qui permet de changer la résolution de la conversion :
http://skyduino.wordpress.com/2012/04/26/arduino-capteur-de-temperature-ds18b20/#comment-5070
11  International / Français / Re: Achat par erreur carte funduino on: October 01, 2014, 11:15:54 am
J'admets très facilement les erreurs mais je n'admets pas qu'on n'ait pas le courage de les assumer. En conséquence je n'ai plus aucune confiance au produits dit officiels ni en Lextronic.
Moi je n'ai plus du tout confiance en Lextronic depuis le jour où ils ont trouvé intelligent de ne pas me prévenir qu'un produit que j'avais commandé (et qui était affiché en stock), était pas dispo avant un bon mois de délai. Ils ont envoyé le reste de la commande et basta, même pas une petit coup de stylo sur la facture pour dire que ça arriverai plus tard.

Depuis je n'achète plus que des clones qui ont tous parfaitement fonctionnés.
Je choisi des clones "moraux" c'est à dire qui assument leur état de clone et qui ne comportent aucune mention qui rappelle les produits officiels arduino.
Certains clones sont de bien meilleurs qualité que les cartes officielles (la carte seeeduino par exemple est vraiment sympa). Aprés c'est comme tout, il faut savoir trouver le bon fournisseur et ne pas tomber dans le piège des cartes à 10$.
12  International / Français / Re: Comment puis faire avec deux fichiers .cpp en une librairie on: October 01, 2014, 11:00:58 am
Bonjour,

Ce que tu essayes de faire n'est pas du tout logique.

Si tu as besoin d'utiliser la fonction sendAtCommand() de ton autre classe tu DOIS :

- soit lui fourni une instance de la classe en question (Sim908) pour pouvoir appeler la fonction (qui devra être publique, ou privée avec une déclaration "friend" pour l'autre classe).
--> Appeler une fonction d'instance comme une fonction de classe n'est pas possible. Et même si c'était bien une fonction de classe, tu l’appellerait avec la syntaxe :  NomDeLaClasse::nomDeLaFonction(); et non pas avec une "sim908.sendATcommand(...)".

- soit faire hériter la classe gps de la classe sim908 mais ça ne me parait pas logique (en réalité le simple fait d'avoir deux classes ne me parait pas logique. Tu devrais revoir entièrement ton architecture de classe).

Dans tout les cas tu devrais :
- Reprendre ton architecture de classe, il y a manifestement un gros problème de dépendance. Astuce : papier + crayon + uml + réflexion.
- Revoir les bases du C++, en particulier les notions de membres de classe et membres d'instances de classe. Tu as manifestement sauté un chapitre smiley-wink
13  International / Français / Re: Variable int arduino on: October 01, 2014, 10:50:25 am
Bonjour,

Maintenant qu'on sait que l'entrée est en ASCII tout deviens plus simple smiley-wink

Voici une solution simple qui utilise ParseInt() pour lire le nombre et read() pour la lettre.
Le nombre de chiffre n'as pas besoin d'être fixe avec cette solution.

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

void loop() {
 
  // Lit le nombre (attention : parseInt() accepte les valeurs négatives)
  long valeur = Serial.parseInt();

  // parseInt() s’arrête après le premier caractère qui n'est pas une chiffre ou '-'
  // Il reste donc toujours un caractère à lire

  // Lit le caractère après le nombre
  char lettre = Serial.read();

  // Mettre ici le code pour gérer les valeurs
}
14  International / Français / Re: Emplacement de la déclation des variables on: October 01, 2014, 10:40:13 am
Extrait du fichier dht.h
(...)
Celui qui a écrit ce morceau de code ne devait pas être bien réveillé smiley-mr-green
5 fonctions, dont 4 inline, pour faire la même chose ... mouai.
Et le principe d'encapsulation il devait pas connaitre, bref.

Question d'après toi quel statut ont les variables publiques humidity et temperature ?
Attention : ici on est dans le cadre d'une déclaration de membres de classe !

Ici humidity et temperature ne sont pas publiques au sens C, elles sont publiques au sens C++.
Sous entendu : ce sont des variables publiques DE LA CLASSE, il faut passer par l'instance d'un objet de type "dht" pour y accéder.

Pour faire simple : variables publiques de classe en C++  = équivalent des membres d'une structure en C.

Et quel statut aurait une variable déclarée dans la partie private par rapport à la méthode private readSensor?
Variable dans la partie "public" : accessible au travers de l'instance de l'objet par un code extérieur.
Variable dans la partie "private" : accessible uniquement pas le code de l'objet.
Dans les deux cas ce sont des variables de l'objet, pas des variables publiques au sens C.
15  International / Le bar / Re: STM32 Comment cela se programme ? on: October 01, 2014, 10:29:11 am
ARM et ST semble cependant lorgner sur le marché des AVR, voyez par exemple le STM32F030F4P6, qui coute moins cher qu'un atmega, avec en + la possibilité de débuger avec un programmateur SWD à 3€ ! J'ai essayé ça (avec un STM32F103RBT6 cependant), ça marche du tonnerre, plus de nuits blanches à essayer de deviner ce qui se passe  dans la puce.
A ce compte là on pourrait dire que NxP et Freescale lorgnent sur le marché des ARM vu qu'ils sont moins chers ... Le prix ne fait pas tout.

Au passage, un debuggeur complet pour AVR/ARM d'ATMEL (Atmel ICE Basic) c'est ~50€.
Pour du DebugWire uniquement (AVR 8 bits), c'est même encore moins cher avec le chipset EDBG. La carte ATmega328p+EDBG est à 8€ (ATMEGA328P-XMINI) ...

Il faut juste l'IDE adéquat (Mbed ?)
Surement pas Mbed dans ce cas ...
Le debug avec Mbed c'est du printf("coucou") comme sur arduino classique.
Si tu veux du "vrai" debug, c'est pas compliqué, il faut une sonde, un backend dbg et un IDE compatible avec le protocole dbg.

Atmel  gagnerait également à se remettre en question ...
Bof ... Je vois mal en quoi ATMEL pourrait se remettre en question ...

C'est plutôt la team Arduino qui devrait revenir sur terre rapidement.
Le coup des cartes sans suivi ni code, juste fait à la va vite pour remuer les foules ça va pas durer longtemps.
Pages: [1] 2 3 ... 362