Décodeur SBus

Modérateur : Anim'Elec

Répondre
Avatar du membre
thetux
Chauffeur sympa
Chauffeur sympa
Messages : 491
Enregistré le : 24 juil. 2012, 21:25
Pays : B
Localisation : Andenne
A remercié : 7 fois
A été remercié : 41 fois

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 du membre
thetux
Chauffeur sympa
Chauffeur sympa
Messages : 491
Enregistré le : 24 juil. 2012, 21:25
Pays : B
Localisation : Andenne
A remercié : 7 fois
A été remercié : 41 fois

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 du membre
easycure
Chauffeur confirmé
Chauffeur confirmé
Messages : 921
Enregistré le : 17 avr. 2009, 18:28
Numéro de département : 31
Pays : F
Localisation : Toulouse ou Lille et parfois au milieu
A remercié : 19 fois
A été remercié : 42 fois
Contact :

Re: Décodeur SBus

Message par easycure »

Chapeau !!! :up:
Waterman
Conducteur retraité ou la belle vie
Conducteur retraité ou la belle vie
Messages : 4002
Enregistré le : 22 août 2014, 17:45
Numéro de département : 15
Pays : F
A remercié : 140 fois
A été remercié : 114 fois

Re: Décodeur SBus

Message par Waterman »

Super !!! :up: :up:
Avatar du membre
thetux
Chauffeur sympa
Chauffeur sympa
Messages : 491
Enregistré le : 24 juil. 2012, 21:25
Pays : B
Localisation : Andenne
A remercié : 7 fois
A été remercié : 41 fois

Re: Décodeur SBus

Message par thetux »

Une photo de l'ensemble.
decodeursbus.jpg
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Avatar du membre
texas
Chauffeur sympa
Chauffeur sympa
Messages : 520
Enregistré le : 22 nov. 2010, 11:36
Numéro de département : 0
Pays : B
Localisation : Belgique
A remercié : 10 fois
A été remercié : 6 fois

Re: Décodeur SBus

Message par texas »

salut magnifique cet arduino
yannick62141
Coursier international
Coursier international
Messages : 118
Enregistré le : 03 févr. 2014, 18:17
Numéro de département : 62
Pays : F
A été remercié : 3 fois

Re: Décodeur SBus

Message par yannick62141 »

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

Retourner vers « le fabuleux destin de l'Arduino »