Procédure modification firmware HC-05 profil HID

Bonjour à tous,

J'ai comme projet d'utiliser une manette de PS4 (Dualshock 4 v2) pour piloter toute sorte de choses par Bluetooth. Je souhaiterais pour cela faire communiquer un module HC-05 avec cette manette mais comme, d'origine, le HC-05 ne prend pas en charge le profil HID, j'ai essayé de suivre le tuto suivant: Turn your HC-05 into a HID Bluetooth device (No Parallel Port Method) - YouTube
Toute la procédure se passe bien jusqu'au moment de tester et configurer le module (à partir de 9min 34sec sur la vidéo). Je ne dispose pas de level shifter pour effectuer la communication série entre l'Arduino et le module BT mais seulement un Arduino Due en 3.3V mais la bibliothèque SoftwareSerial ne semble pas compatible avec les processeurs ARM. Je possède également un Arduino Uno et un Mega si jamais...

Merci d'avance pour votre précieuse aide :wink:

Vous avez 4 ports séries matériels sur votre DUE, pourquoi voudriez vous utiliser la bibliothèque SoftwareSerial ?

utilisez son code modifié et branchez le port série comme cela: RX DUE =17 --> TX HC05 et and TX DUE =16 --> RX HC05 (attention 3.3V !)

/* MODIFIED FOR A DUE
  Jean-Marc for http://forum.arduino.cc/index.php?topic=565547.msg3853039#msg3853039
 */


/*******************************************************************
    A simple sketch for forwarding data and responses from
    the harwdware serial conneciton of an ESP8266 to the
    a software one and vice versa

    I'm using this to communicate with a bluetooth module (HC-06)

    Written by Brian Lough - https://www.youtube.com/channel/UCezJOfu7OtqGzd5xrP3q6WA
 *******************************************************************/

// #include <SoftwareSerial.h>
// #define RX_PIN D2 // connect to TXD of module
// #define TX_PIN D1 // connect to RXD of module (logic level 3.3v!)
// SoftwareSerial swSer(RX_PIN, TX_PIN, false, 128);


#define swSer Serial2 // RX=17 and TX=16


void setup() {
  Serial.begin(115200);
  swSer.begin(115200);
}

void loop() {
  while (swSer.available() > 0) {
    Serial.write(swSer.read());
  }
  while (Serial.available() > 0) {
    swSer.write(Serial.read());
  }
}

Merci beaucoup pour votre réponse et l'adaptation du code !!

Je pensais qu'il était nécessaire de passer par le SoftwareSerial car dans le tuto un port série matériel est bien présent mais le SoftwareSerial est utilisé.

Lorsque j'essaie de le compiler j'obtiens plusieurs erreurs:

C:\Users\maxim\Documents\Arduino\sketch_aug26a\sketch_aug26a.ino: In function 'void setup()':

sketch_aug26a:27:8: error: expected primary-expression before '.' token

   swSer.begin(115200);

        ^

C:\Users\maxim\Documents\Arduino\sketch_aug26a\sketch_aug26a.ino: In function 'void loop()':

sketch_aug26a:22:22: error: expected ')' before ';' token

 #define swSer Serial2; // RX=17 and TX=16

                      ^

C:\Users\maxim\Documents\Arduino\sketch_aug26a\sketch_aug26a.ino:31:10: note: in expansion of macro 'swSer'

   while (swSer.available() > 0) {

          ^

sketch_aug26a:31:15: error: expected primary-expression before '.' token

   while (swSer.available() > 0) {

               ^

sketch_aug26a:31:31: error: expected ';' before ')' token

   while (swSer.available() > 0) {

                               ^

sketch_aug26a:35:10: error: expected primary-expression before '.' token

     swSer.write(Serial.read());

          ^

exit status 1
expected primary-expression before '.' token

Merci encore :wink:

Ooops... j'avais laissé trainer une virgule dans le define...

#define swSer Serial2  // RX=17 and TX=16

ou plus simple vu la taille du code, partout où il avait swSer, écrivez Serial2 et vous n'aurez pas besoin du define....

Merci tout fonctionne parfaitement !!

Il va falloir que je m'attelle à la communication entre la manette est l'arduino maintenant. J'ai vu qu'il y avait une librairie USB_Host_Shield_2.0 qui prenait en charge la manette en connexion filaire et BT, dois-je l'adapter pour une utilisation avec le HC-05 modifié HID ?

Je m'écarte un peu du sujet initial de ce post...

Merci encore

Regardez plutôt côté USBHost sur votre DUE

Bonjour, merci pour le conseil, par contre je ne comprends pas comment faire communiquer la manette en bluetooth avec le module HC-05 modifié avec profil HID avec la librairie USBHost pour Arduino Due.

Je vais ouvrir un nouveau post pour respecter les règles du forum :wink:

Merci

clarifiez exactement ce que vous voulez faire. est-ce que la manette sera accrochée à l'arduino et vous voulez que les actions sur la manette soient reçues par l'arduino et ré-émises en bluetooth HID ? c'est ça ?