Décodeur SBus

Modérateur : Anim'Elec

Répondre
Avatar de l’utilisateur
thetux
Chauffeur sympa
Chauffeur sympa
Messages : 494
Inscription : 24 juil. 2012, 21:25
Pays : B
Localisation : Andenne
Has thanked : 7 times
Been thanked : 43 times

Décodeur SBus

Message par thetux »

Salut,

dans un projet où je manque cruellement de place, j'ai pensé utiliser un arduino pour décoder le SBus. En clair, avec un seul fil qui va du récepteur (port sbus) à l'arduino, on reçoit les 16 voies de la radiocommande (une FrSky dans mon cas mais ca ne change rien, la librairie s'appelle d'ailleurs Futaba...), et on en fait ce qu'on veut.

L'idée principale, c'est d'extraire les voies, les envoyer aux servos, et en plus de gérer les phares, clignos, ... Genre je vais en marche arrière, j'envoie le signal au vario et j'allume le phare ad-hoc. Je sais que certains vario font cela nativement, mais sur un vario brushless... Un arduino nano coûte 5€, donc moins cher qu'un PS4xx , il suffit de le programmer un peu.

Il existe un libraire qui fait cela très bien:
https://github.com/mikeshub/FUTABA_SBUS

2 coups de cuillère à pot, et on lit les signaux:

Code : Tout sélectionner

#include <FUTABA_SBUS.h>
#include <Servo.h>

//Manage PWM Signals
const int PWMMin = 170;
const int PWMMax = 1800;
const int AngleMin = 5;
const int AngleMax = 175;

//Decode SBUS
FUTABA_SBUS sBus;

//Store canal value
struct channel {
  unsigned long when;
  int pwmvalue;
  int angle;
  byte b;
};


Servo myservo[6];
channel channels[16];

void setup(){
  sBus.begin();
  myservo[0].attach(3);
  myservo[1].attach(5);
  myservo[2].attach(6);
  myservo[3].attach(9);
  myservo[4].attach(10);
  myservo[5].attach(11);
}

void loop(){
  delay(300);
  sBus.FeedLine();
  if (sBus.toChannels == 1){
    sBus.UpdateServos();
    sBus.UpdateChannels();
    sBus.toChannels = 0;
    for (int x; x<16; x++) {
      channels[x].when = millis();
      channels[x].pwmvalue = sBus.channels[x];
      channels[x].angle = pwmToDeg(channels[x].pwmvalue);
    }
    myservo[0].write(channels[0].angle);  
    myservo[1].write(channels[0].angle);
    myservo[2].write(channels[2].angle);
    myservo[3].write(channels[12].angle);
  } 
}

int pwmToDeg(int pwmvalue){
  return map(pwmvalue, PWMMin, PWMMax, AngleMin, AngleMax);
}
Plus qu'à gérer les feux, et on est bon :vantard:
Avatar de l’utilisateur
thetux
Chauffeur sympa
Chauffeur sympa
Messages : 494
Inscription : 24 juil. 2012, 21:25
Pays : B
Localisation : Andenne
Has thanked : 7 times
Been thanked : 43 times

Re: Décodeur SBus

Message par thetux »

Si cela vous intéresse, j'ai amélioré le décodeur sbus.
Il décode le Sbus,
Il gère les phares sur une voie (clignotant, 4 feux, phares, gros phares, gyrophare, stop, marche arrière).
Comme on a toutes les voies, mettre un clignotant à gauche, puis tourner à gauche, le clignotant s'éteindra lors du retour au neutre, comme sur une voiture.

J'y ai aussi ajouté un petit écran qui affiche quelles sont les fonctions actives (le clignotant clignote, ...)

Reste à connecter les leds. Pour ça j'ai prévu un circuit intégré uln2003a, car l'arduino ne supporterait pas tant de leds. L'avantage, c'est que ça commute par le moins, comme les PS4, donc le système remplace très facilement un PS4 :vantard:

Tout le code se trouve ici:
https://github.com/nseinlet/sketchbook/ ... /Modelisme
Avatar de l’utilisateur
easycure
Chauffeur confirmé
Chauffeur confirmé
Messages : 928
Inscription : 17 avr. 2009, 18:28
Numéro de département : 31
Pays : F
Localisation : Toulouse ou Lille et parfois au milieu
Has thanked : 22 times
Been thanked : 45 times
Contact :

Re: Décodeur SBus

Message par easycure »

Chapeau !!! :up:
Waterman
Conducteur retraité ou la belle vie
Conducteur retraité ou la belle vie
Messages : 4018
Inscription : 22 août 2014, 17:45
Numéro de département : 15
Pays : F
Has thanked : 144 times
Been thanked : 118 times

Re: Décodeur SBus

Message par Waterman »

Super !!! :up: :up:
Avatar de l’utilisateur
thetux
Chauffeur sympa
Chauffeur sympa
Messages : 494
Inscription : 24 juil. 2012, 21:25
Pays : B
Localisation : Andenne
Has thanked : 7 times
Been thanked : 43 times

Re: Décodeur SBus

Message par thetux »

Une photo de l'ensemble.
decodeursbus.jpg
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Avatar de l’utilisateur
texas
Chauffeur sympa
Chauffeur sympa
Messages : 469
Inscription : 22 nov. 2010, 11:36
Numéro de département : 0
Pays : B
Localisation : Belgique
Has thanked : 10 times
Been thanked : 6 times

Re: Décodeur SBus

Message par texas »

salut magnifique cet arduino
yannick62141
Coursier international
Coursier international
Messages : 118
Inscription : 03 févr. 2014, 18:17
Numéro de département : 62
Pays : F
Been thanked : 3 times

Re: Décodeur SBus

Message par yannick62141 »

super,
il est intéressant ce projet,
Répondre

Revenir à « le fabuleux destin de l'Arduino »