bienvenue sur Multi Rotor Fans Club Cliquer ici pour vous enregistrer
ou ici pour vous connecter

Vers le contenu

  • Accès rapide
  • FAQ
  •  Carte des Membres
  • Connexion
  • S’enregistrer
  • Index du forum Arduino et Programmation Codes et Programmations

Débuguage et optimisation code.

Modérateur : Dehas

Répondre
  • Imprimer le sujet
Voir le premier message non lu • 62 messages
  • Précédente
  • 1
  • 2
  • 3
Avatar du membre
Tomdu38
Pilote toutes catégories
Messages : 1104
Enregistré le : dim. 19 mai 2013 17:01
Réputation : 0

Re: Débuguage et optimisation code.

  • 0
  • Citer

Message non lu par Tomdu38 » jeu. 26 mars 2015 22:56

Salut,

Pour lire une entrée pwm sur attiny, il faut reprendre un code vu précédemment.

Code : Tout sélectionner

    int channel = 3; 
    const int  PwmInputPin = 0;
    unsigned long duration = 0;
    
    void setup() {

    pinMode(PwmInputPin, INPUT_PULLUP);
   
    }

    void loop() {
     
     duration = pulseIn(channel, HIGH, 25000);
     if (duration < 1500)
     {
       // code 
     }
    }
Dans la boucle du if, il faut mettre le code que l'on veut.

Le truc qui m'échappe, c'est dans la syntaxe du PulseIn... Sur le forum arduino, la première variable pris en compte,dans la fonctionne "PulseIn" est "channel" qui devrait être la pin d'entrée... or dans les tests vus précédemment dans ce même poste, "channel" est une variable qui déclenche la lecture du ppm sur la voie 3 (int channel = 3 ;)

La question que je me pose, puisque dans cette syntaxe, "duration = pulseIn(channel, HIGH, 25000);" on ne déclare à aucun endroit la pin Input, comment l'arduino c'est qu'il faut lire la pin 0....

Pour résumer, je me pose la question de pourquoi ça marche ???? c'est con hein !!!


Service de découpe CNC pour les membres du forum NON DISPO POUR LE MOMENT
FPV Racer 250 (HomeMade)
*** In 4S high trust ***
Haut

Tomdu38
Avatar du membre
Dehas
Administrateur du site
Messages : 15028
Enregistré le : ven. 3 juin 2011 12:50
Réputation : 5
Localisation : Saint Dié des Vosges
Genre :
Contact :
Contacter Dehas
Facebook YouTube

Re: Débuguage et optimisation code.

  • 0
  • Citer

Message non lu par Dehas » ven. 27 mars 2015 07:04

Alors pourquoi tu te casse la tête ??
Le code est pas mal, mais je l'aimerais en SBUS converti pour ATtiny.


Haut

Dehas
Avatar du membre
Tomdu38
Pilote toutes catégories
Messages : 1104
Enregistré le : dim. 19 mai 2013 17:01
Réputation : 0

Re: Débuguage et optimisation code.

  • 0
  • Citer

Message non lu par Tomdu38 » ven. 27 mars 2015 07:18

Pour le montage que tu as fait précédemment, tu as connecté quelle voie sur quelle Pin de l'arduino ?
Tu est bien en PPM ??? et pas en Pwm avec la voie 3 de ton rx directement sur la Pin 3 de l'Attiny ???

Dac pour le Sbus, je vais regarder.

A+


Service de découpe CNC pour les membres du forum NON DISPO POUR LE MOMENT
FPV Racer 250 (HomeMade)
*** In 4S high trust ***
Haut

Tomdu38
Avatar du membre
Dehas
Administrateur du site
Messages : 15028
Enregistré le : ven. 3 juin 2011 12:50
Réputation : 5
Localisation : Saint Dié des Vosges
Genre :
Contact :
Contacter Dehas
Facebook YouTube

Re: Débuguage et optimisation code.

  • 0
  • Citer

Message non lu par Dehas » ven. 27 mars 2015 07:31

J'ai même pas pu le compiler, donc pas essayé, dans l’entête du code il y a ça

Code : Tout sélectionner

    /* CPPM2LED
      goebish 2014
      for m328 @ 16 MHz
      Date 01/03/2015 --> attafr
      Date 03/03/2015 --> Jeff
    */
Il est bien prévu pour un 328 (promini, micro etc)


Haut

Dehas
Avatar du membre
Tomdu38
Pilote toutes catégories
Messages : 1104
Enregistré le : dim. 19 mai 2013 17:01
Réputation : 0

Re: Débuguage et optimisation code.

  • 0
  • Citer

Message non lu par Tomdu38 » ven. 27 mars 2015 20:30

Pour le ppm, je ne vois pas de problème particulier, tu l'as déjà fait avec ta barre led non ? Je me souvient d'un montage avec un Attiny...

Pour le Sbus, je suppose que tu veux le faire sans converter ppm ? je suis en train de regarder comme ça se passe.

A+


Service de découpe CNC pour les membres du forum NON DISPO POUR LE MOMENT
FPV Racer 250 (HomeMade)
*** In 4S high trust ***
Haut

Tomdu38
Avatar du membre
Dehas
Administrateur du site
Messages : 15028
Enregistré le : ven. 3 juin 2011 12:50
Réputation : 5
Localisation : Saint Dié des Vosges
Genre :
Contact :
Contacter Dehas
Facebook YouTube

Re: Débuguage et optimisation code.

  • 0
  • Citer

Message non lu par Dehas » ven. 27 mars 2015 20:51

Bon, je me suis fais un petit truc avec des bout de code trouvé sur le net et commandable avec les gza, comme notre code, mais là avec une barrette neopixel

Code : Tout sélectionner

#include <Adafruit_NeoPixel.h>

#define RADIO_PIN   2    

#define PIXEL_PIN    4    

#define PIXEL_COUNT 8

Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800);

bool oldState = HIGH;
int showType = 0;
int newState = 0;
int pos = 0, dir = 1; 
void setup() {
  pinMode(RADIO_PIN, INPUT);
  strip.begin();
  strip.show(); 
}


void loop() {
   newState = pulseIn(RADIO_PIN, HIGH,25000);

    if (newState < 900) {
      delay(20);
      showType=5;
      startShow(showType);
    }

    if ((newState >1000) && (newState <1250)) {
      delay(20); 
      showType=6;
      startShow(showType);
    }
    
    if ((newState >1250) && (newState <1500)) {
      delay(20);
      showType=4;
      startShow(showType);
    }    
    
    if ((newState >1500) && (newState <1750)) {
      delay(20);
      showType=11;
      startShow(showType);
    } 
    
    if ((newState >1750)) {
      delay(20);
      showType=10;
      startShow(showType);
    } 
   }

void startShow(int i) {
  switch(i){

    case 4: theaterChase(strip.Color(0, 0, 127), 50); // blue
            break;
            
    case 5: theaterChase(strip.Color(127,   0,   0), 50); // Red
            break;

    case 6: colorbyte(50);
            break;
            
    case 8: rainbowCycle(20);
            break;
    
    case 10: k2000(10);
            break;
            
    case 11: cligno(20);
            break;
  }
}

void colorbyte(uint32_t c) {

strip.setPixelColor(0, 255, 0, 0);
strip.show();
delay(125);
strip.setPixelColor(1, 255, 128, 0);
strip.show();
delay(125);
strip.setPixelColor(2, 255, 255, 0);
strip.show();
delay(125);
strip.setPixelColor(3, 128, 255, 0);
strip.show();
delay(125);
strip.setPixelColor(4, 0, 255, 0);
strip.show();
delay(125);
strip.setPixelColor(5, 0, 255, 128);
strip.show();
delay(125);
strip.setPixelColor(6, 0, 255, 255);
strip.show();
delay(125);
strip.setPixelColor(7, 0, 0, 255);
strip.show();
delay(125);
for( int i = 0; i<PIXEL_COUNT; i++){
strip.setPixelColor(i, 0, 0, 0);

strip.show();
delay(125);
}
}

void colorWipe(uint32_t c, uint8_t wait) {
  for(uint16_t i=0; i<strip.numPixels(); i++) {
      strip.setPixelColor(i, c);
      strip.show();
      delay(wait);
  }
}

void rainbow(uint8_t wait) {
  uint16_t i, j;

    for(j=0; j<0; j++) {
    for(i=0; i<strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel((i+j) & 255));
    }
    strip.show();
    delay(wait);
  }
}

void rainbowCycle(uint8_t wait) {
  uint16_t i, j;

    for(i=0; i< strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
    }
    strip.show();
    delay(wait);
}

void theaterChase(uint32_t c, uint8_t wait) {
  for (int j=0; j<10; j++) {  //do 10 cycles of chasing
    for (int q=0; q < 3; q++) {
      for (int i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, c);    //turn every third pixel on
      }
      strip.show();
     
      delay(wait);
     
      for (int i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, 0);        //turn every third pixel off
      }
    }
  }
}

// Input a value 0 to 255 to get a color value.
// The colours are a transition r - g - b - back to r.
uint32_t Wheel(byte WheelPos) {
  WheelPos = 255 - WheelPos;
  if(WheelPos < 85) {
   return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  } else if(WheelPos < 170) {
    WheelPos -= 85;
   return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
  } else {
   WheelPos -= 170;
   return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
  }
}

void k2000(uint8_t wait) {
  int j;

  // Draw 5 pixels centered on pos.  setPixelColor() will clip any
  // pixels off the ends of the strip, we don't need to watch for that.
  strip.setPixelColor(pos - 2, 0x100000); // Dark red
  strip.setPixelColor(pos - 1, 0x800000); // Medium red
  strip.setPixelColor(pos    , 0xFF3000); // Center pixel is brightest
  strip.setPixelColor(pos + 1, 0x800000); // Medium red
  strip.setPixelColor(pos + 2, 0x100000); // Dark red

  strip.show();
  delay(10);

  // Rather than being sneaky and erasing just the tail pixel,
  // it's easier to erase it all and draw a new one next time.
  for(j=-2; j<= 2; j++) strip.setPixelColor(pos+j, 0);

  // Bounce off ends of strip
  pos += dir;
  if(pos < 0) {
    pos = 1;
    dir = -dir;
  } else if(pos >= strip.numPixels()) {
    pos = strip.numPixels() - 2;
    dir = -dir;
  }
}

void cligno(uint32_t c) {
  for(uint16_t i=0; i<strip.numPixels(); i++) {
  strip.setPixelColor(2,0,0,255); 
  strip.setPixelColor(3,0,0,255); 
  strip.setPixelColor(4,0,0,255); 
  strip.setPixelColor(5,0,0,255); 
      strip.show();
      delay(20);
 }     

  strip.setPixelColor(0,255,255,0);   
  strip.setPixelColor(1,255,255,0); 
  strip.setPixelColor(6,255,255,0);
  strip.setPixelColor(7,255,255,0);  
      strip.show();
      delay(250); 
  strip.setPixelColor(0,0,0,0);
  strip.setPixelColor(1,0,0,0); 
  strip.setPixelColor(6,0,0,0);
  strip.setPixelColor(7,0,0,0);  
      strip.show();
      delay(250);          
 
  }
C'est un code que j'aimerai faire évoluer en sbus pour pouvoir avoir les autres axes.


Haut

Dehas
Avatar du membre
Tomdu38
Pilote toutes catégories
Messages : 1104
Enregistré le : dim. 19 mai 2013 17:01
Réputation : 0

Re: Débuguage et optimisation code.

  • 0
  • Citer

Message non lu par Tomdu38 » ven. 27 mars 2015 23:27

Du coup, tu as quoi comme montage.

Tu as ta voie des gaz en pwm directement connectée sur la Pin 2, c'est ça ?
Tu n'est pas en ppm, avec tout les signaux sur le même fils, on est d'accord ?

A+

Edit : une librairie pour lire le ppm, pas encore testée.
https://github.com/kiuz/PPM-Signal-Reader-ARDUINO" onclick="window.open(this.href);return false;


Service de découpe CNC pour les membres du forum NON DISPO POUR LE MOMENT
FPV Racer 250 (HomeMade)
*** In 4S high trust ***
Haut

Tomdu38
Avatar du membre
Dehas
Administrateur du site
Messages : 15028
Enregistré le : ven. 3 juin 2011 12:50
Réputation : 5
Localisation : Saint Dié des Vosges
Genre :
Contact :
Contacter Dehas
Facebook YouTube

Re: Débuguage et optimisation code.

  • 0
  • Citer

Message non lu par Dehas » sam. 28 mars 2015 05:40

Oui, c'est ça, je suis en PWM juste sur les gaz.
Merci pour la librairie.


Haut

Dehas
Avatar du membre
Dehas
Administrateur du site
Messages : 15028
Enregistré le : ven. 3 juin 2011 12:50
Réputation : 5
Localisation : Saint Dié des Vosges
Genre :
Contact :
Contacter Dehas
Facebook YouTube

Re: Débuguage et optimisation code.

  • 0
  • Citer

Message non lu par Dehas » sam. 28 mars 2015 07:12

Et voila une librairie Sbus !!
https://github.com/zendes/SBUS


Haut

Dehas
Avatar du membre
lamenace
Quadricopter
Messages : 188
Enregistré le : jeu. 10 juil. 2014 14:03
Réputation : 0

Re: Débuguage et optimisation code.

  • 0
  • Citer

Message non lu par lamenace » mar. 7 avr. 2015 12:21

Je suis en train d'écrire un contrôleur de leds utilisant MavLink, le problème c'est que dans les bouts de code que je trouve ils utilisent un port série pour envoyer les infos de debug et que moi quand je me connecte sur mon rx tx de mon arduino je n'ai rien en sortie!
Help!


Tarort FY650, Pixhawk 2.4.5, GPS NEO-7N, ESC ZTW Spider Series 30A, Sunnysky v3508 580kV, Nacelle 3D RCTimer
Reptile 500, Pixhawk Lite 2.4.6, ESC ZTW Spider Series 30A, Sunnysky v2216 800kV
Radio Hitec Aurora 9
Haut

lamenace
Avatar du membre
Dehas
Administrateur du site
Messages : 15028
Enregistré le : ven. 3 juin 2011 12:50
Réputation : 5
Localisation : Saint Dié des Vosges
Genre :
Contact :
Contacter Dehas
Facebook YouTube

Re: Débuguage et optimisation code.

  • 0
  • Citer

Message non lu par Dehas » mar. 7 avr. 2015 16:56

poste ton code et une photo du montage stp


Haut

Dehas
Avatar du membre
lamenace
Quadricopter
Messages : 188
Enregistré le : jeu. 10 juil. 2014 14:03
Réputation : 0

Re: Débuguage et optimisation code.

  • 0
  • Citer

Message non lu par lamenace » mer. 8 avr. 2015 00:09

j'ai revu mon cablage et là miracle ça marche, j'ai le flux mavlink sur putty :)


Tarort FY650, Pixhawk 2.4.5, GPS NEO-7N, ESC ZTW Spider Series 30A, Sunnysky v3508 580kV, Nacelle 3D RCTimer
Reptile 500, Pixhawk Lite 2.4.6, ESC ZTW Spider Series 30A, Sunnysky v2216 800kV
Radio Hitec Aurora 9
Haut

lamenace
Répondre
  • Imprimer le sujet

62 messages
  • Précédente
  • 1
  • 2
  • 3

Retourner vers « Codes et Programmations »

Aller à
  • ↳   Souscription
  • Général
  • ↳   Régles du Forum.
  • ↳   Réglementations
  • ↳   Présentation
  • ↳   Présentation de vos machines
  • ↳   Glossaires et notices
  • ↳   Questions de débutants
  • ↳   Magasins et Sites
  • ↳   Forums amis
  • ↳   Les plus de MRFC
  • ↳   Tests des produits GearBest
  • ↳   Produits et promotions BangGood
  • ↳   Une question pour ou sur bangGood, postez ici
  • ↳   HobbyGaga
  • ↳   Produits et promotions HobbyGaga
  • ↳   Une question pour ou sur HobbyGaga, postez ici
  • ↳   Jeux et Concours HobbyGaga
  • ↳   Tests des produits HobbyGaga
  • ↳   Vos pages Perso
  • ↳   Petites Annonces
  • ↳   REGLEMENT DES PETITES ANNONCES
  • ↳   VENTES
  • ↳   Multi/Châssis
  • ↳   Electronique/moteurs/Lipos
  • ↳   Vide grenier/Lots
  • ↳   Divers
  • ↳   RECHERCHES
  • ↳   Multi/Châssis
  • ↳   Electronique/moteurs/Lipos
  • ↳   Divers
  • ↳   ECHANGES
  • Les Cartes de contrôle
  • ↳   Cartes KK et dérivés
  • ↳   Cartes a base de Multiwii
  • ↳   Carte Naze32 et dérivés
  • ↳   Cartes Rabbit
  • ↳   Cartes et Modules DJI
  • ↳   Cartes et modules Openpilot.
  • ↳   Release LibrePilot
  • ↳   Cartes TMF
  • ↳   Cartes et modules Arducopter et dérivé
  • ↳   Cartes et modules ZeroUAV
  • ↳   Cartes diverses
  • Les châssis
  • ↳   Châssis du commerce
  • ↳   Réalisation personnelle
  • ↳   Nacelles
  • ↳   CNC
  • ↳   Imprimantes 3D
  • Radiocommandes et accessoires
  • ↳   Les radios
  • ↳   Les servos
  • ↳   Les brushless et ESC
  • Lipos et chargeurs
  • ↳   Les Lipos
  • ↳   Les Chargeurs
  • FPV
  • ↳   Matériels FPV
  • ↳   Multis
  • ↳   Avions
  • ↳   Voitures
  • ↳   Divers
  • FPV RACING
  • ↳   Châssis
  • ↳   Electronique (Cartes, Moteurs, ESC, Radios)
  • ↳   Micro/Nano
  • ↳   Configurations
  • ↳   Rencontres FPV RACING (à venir, passées et vidéo)
  • Arduino et Programmation
  • ↳   Tutoriaux
  • ↳   Modules et Montages DIY
  • ↳   Codes et Programmations
  • Espace Détente
  • ↳   Photos et vidéos
  • ↳   Histoires de vols
  • ↳   Parler pour ne rien dire
  • ↳   Les rencontres
                         
  • Index du forum
  • Heures au format UTC+01:00
  • Supprimer les cookies

Développé par phpBB® Forum Software © phpBB Limited

Traduit par phpBB-fr.com

PS4 Pro style ©Jester Modifié par Déhas



Confidentialité | Conditions

 

 

cron