Go Down

Topic: Lecteur QR code + LCD + imprimante (Read 3980 times) previous topic - next topic

DjLab

#15
Nov 19, 2016, 08:23 pm Last Edit: Aug 18, 2017, 01:18 pm by DjLab
Salut Artoust,
Voici les réponses à tes questions, dans l'ordre.

1- Dans le panneau de configuration il est dans "Claviers" et marqué comme "Périphérique clavier PIH"???
Dans la notice j'ai vue que l'on pouvait changer le mode de communication en scannant des Qrcode directement de la notice, il y a :
RS-232 standard interface
RS-232 Wincor-Nixdorf
RS-232 for use with OPOS/UPOS/JavaPOS
USB Com to simulate RS-232 standard interface
USB-OEM
Pour ce dernier il est mentionné "Download the correst USB COM driver from www.waspbarcode.com"

2- la librairie est : USB_Host_Shield_2.0-master
Pour le moment il n'y a qu'avec celle là que j'arrive à faire marcher mon shield...

3- le programme de test du clavier est celui contenu en exemple dans la librairie USB_Host_Shield_2.0-master, le voici :

Code: [Select]
#include <hidboot.h>
#include <usbhub.h>

// Satisfy the IDE, which needs to see the include statment in the ino too.
#ifdef dobogusinclude
#include <spi4teensy3.h>
#include <SPI.h>
#endif

class KbdRptParser : public KeyboardReportParser
{
   void PrintKey(uint8_t mod, uint8_t key);

 protected:
   void OnControlKeysChanged(uint8_t before, uint8_t after);

   void OnKeyDown (uint8_t mod, uint8_t key);
   void OnKeyUp (uint8_t mod, uint8_t key);
   void OnKeyPressed(uint8_t key);
};

void KbdRptParser::PrintKey(uint8_t m, uint8_t key)
{
 MODIFIERKEYS mod;
 *((uint8_t*)&mod) = m;
 Serial.print((mod.bmLeftCtrl   == 1) ? "C" : " ");
 Serial.print((mod.bmLeftShift  == 1) ? "S" : " ");
 Serial.print((mod.bmLeftAlt    == 1) ? "A" : " ");
 Serial.print((mod.bmLeftGUI    == 1) ? "G" : " ");

 Serial.print(" >");
 PrintHex<uint8_t>(key, 0x80);
 Serial.print("< ");

 Serial.print((mod.bmRightCtrl   == 1) ? "C" : " ");
 Serial.print((mod.bmRightShift  == 1) ? "S" : " ");
 Serial.print((mod.bmRightAlt    == 1) ? "A" : " ");
 Serial.println((mod.bmRightGUI    == 1) ? "G" : " ");
};

void KbdRptParser::OnKeyDown(uint8_t mod, uint8_t key)
{
 Serial.print("DN ");
 PrintKey(mod, key);
 uint8_t c = OemToAscii(mod, key);

 if (c)
   OnKeyPressed(c);
}

void KbdRptParser::OnControlKeysChanged(uint8_t before, uint8_t after) {

 MODIFIERKEYS beforeMod;
 *((uint8_t*)&beforeMod) = before;

 MODIFIERKEYS afterMod;
 *((uint8_t*)&afterMod) = after;

 if (beforeMod.bmLeftCtrl != afterMod.bmLeftCtrl) {
   Serial.println("LeftCtrl changed");
 }
 if (beforeMod.bmLeftShift != afterMod.bmLeftShift) {
   Serial.println("LeftShift changed");
 }
 if (beforeMod.bmLeftAlt != afterMod.bmLeftAlt) {
   Serial.println("LeftAlt changed");
 }
 if (beforeMod.bmLeftGUI != afterMod.bmLeftGUI) {
   Serial.println("LeftGUI changed");
 }

 if (beforeMod.bmRightCtrl != afterMod.bmRightCtrl) {
   Serial.println("RightCtrl changed");
 }
 if (beforeMod.bmRightShift != afterMod.bmRightShift) {
   Serial.println("RightShift changed");
 }
 if (beforeMod.bmRightAlt != afterMod.bmRightAlt) {
   Serial.println("RightAlt changed");
 }
 if (beforeMod.bmRightGUI != afterMod.bmRightGUI) {
   Serial.println("RightGUI changed");
 }

}

void KbdRptParser::OnKeyUp(uint8_t mod, uint8_t key)
{
 Serial.print("UP ");
 PrintKey(mod, key);
}

void KbdRptParser::OnKeyPressed(uint8_t key)
{
 Serial.print("ASCII: ");
 Serial.println((char)key);
};

USB     Usb;
//USBHub     Hub(&Usb);
HIDBoot<USB_HID_PROTOCOL_KEYBOARD>    HidKeyboard(&Usb);

uint32_t next_time;

KbdRptParser Prs;

void setup()
{
 Serial.begin( 115200 );
#if !defined(__MIPSEL__)
 while (!Serial); // Wait for serial port to connect - used on Leonardo, Teensy and other boards with built-in USB CDC serial connection
#endif
 Serial.println("Start");

 if (Usb.Init() == -1)
   Serial.println("OSC did not start.");

 delay( 200 );

 next_time = millis() + 5000;

 HidKeyboard.SetReportParser(0, &Prs);
}

void loop()
{
 Usb.Task();
}

Artouste

1- Dans le panneau de configuration il est dans "Claviers" et marqué comme "Périphérique clavier PIH"???
Alors teste ton programme arduino avec un simple clavier USB et regarde "si déjà ça cause un peu dans le poste"

DjLab

Oui, j'ai testé avec un clavier sans fil avec le dongle branché sur le shield, ça fonctionne bien, dans le moniteur série ça cause bien, bon en QUERTY au lieu de AZERTY mais ça cause.

DjLab

Bonjour à tous,
Ça me taraude cette histoire de lecteur qui ne veut pas s'initialiser sur le shield.
Autre test que j'ai fait ce matin, alimenter mon lecteur en externe via un petit montage classique à base de 7805 et relier les 2 fils "data" au PC.
Au début rien, pas d'initialisation.....et puis j'ai relié le "-" de mon alim externe au "-" de l'usb du PC, et là il s'initialise bien.
J'ai vue et testé des schémas avec un pont de résistances (2 de 330K et 2 de 220K) pour amener du 2V aux "data" mais ça ne change rien.
Du coup je me dit qu'il y a un truc entre l'alim et les fils "data", il y a peu être un truc à faire de ce coté mais je ne vois pas, une idée les amis?

DjLab

Autres tests, hé oui, je veux trouver.
J'ai brancher le lecteur sur:
- ma free, il s'initialise.
- ma télé, il s'initialise.
- mon petit enregistreur TNT, il s'initialise.
Bon, il y a truc bête qui m'échappe car aucun des trois n'a de driver.
Pourquoi mais pourquoi ça ne marche pas ahrgnnnnnn !!!

J-M-L

Il se peut que votre lecteur fasse de le négo de puissance avec le port USB. Les chips FTDI s'occupent de l'énumération pour régler les paramètres alimentation de la prise USB. Ici peut être pas sur le shield

Bien sûr quand vous connectez une alim externe sur les 2 broches 5v et GND câble il FAUT relier ce même GND sur le shield aussi. l'USB fonctionne avec D+ et D- sur les 2 autres broches et donc la référence du GND est nécessaire - c'est bien comme cela que vous aviez procédé en alimentation séparée?
Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

Artouste

Autres tests, hé oui, je veux trouver.
J'ai brancher le lecteur sur:
- ma free, il s'initialise.
- ma télé, il s'initialise.
- mon petit enregistreur TNT, il s'initialise.
Bon, il y a truc bête qui m'échappe car aucun des trois n'a de driver.
Pourquoi mais pourquoi ça ne marche pas ahrgnnnnnn !!!
Bonjour
en fait si , il y a des drivers mais ce sont des drivers generiques embarqués dans l'OS qui gere tes differents systeme.
d'accord avec JML
çà semble bien se diriger vers un probleme d'alim. (nego USB)
lorsque tu connecte ton scanner à une simple alim 5V (genre power bank) il reagit (bip) ?
quelle valeur de tension en charge retrouve tu sur les lignes +5V,GND, USB
selon les dispos auxquel tu le connecte ?
un petit outil tres pratique , un "monitor d'alim UB" transparent aux signaux.




DjLab

Bonjour et merci Artouste et J-M-L,

- Oui, je relie bien le GND de mon alim avec celui de la shield.
- J'ai testé avec une power bank, ça fait pareil que sur le shiel, pas d'initialisation.
- J'ai bien 5V avec la power bank et pareil sur mon alim maison.

"Les chips FTDI s'occupent de l'énumération pour régler les paramètres alimentation de la prise USB. Ici peut être pas sur le shield" Hmmmmmm, j'ai l'impression que ça se passe par là, que puis-je faire?

Artouste

#23
Nov 20, 2016, 02:43 pm Last Edit: Nov 20, 2016, 02:44 pm by Artouste
Bonjour et merci Artouste et J-M-L,

, j'ai l'impression que ça se passe par là, que puis-je faire?
j'ai l'impression aussi :smiley-mr-green:

fais des "belles/lisibles" photos de tout ce qui etait dans la boite de ton scanner

il y a peut etre la possibilté de passer par la config :
USB Com to simulate RS-232 standard interface

programme ton scanner pour cette "interface"

J-M-L

Il faudrait que vous arriviez  entendre le bip sans connexion USB juste en branchant 5v sur les 2 pôles, avec les 2 autres à la masse par exemple

Avez vous une alim externe non USB?
Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

Artouste

Il faudrait que vous arriviez  entendre le bip sans connexion USB juste en branchant 5v sur les 2 pôles, avec les 2 autres à la masse par exemple

Avez vous une alim externe non USB?
a priori , il a fait le test avec un power bank

J-M-L

#26
Nov 20, 2016, 02:51 pm Last Edit: Nov 20, 2016, 02:56 pm by J-M-L
Oui mais la powerbank  un câble USB

Il faudrait séparer vraiment  L'alimentation du connecteur des données est juste rejoindre les masses

Je brancherais un truc comme ça


Au bout du câble (pour ne pas couper le fil) et je regarderai avec les pins pour voir ce qu'il se passe
Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

Artouste

Oui mais la powerbank  un câble USB

Il faudrait séparer vraiment  L'alimentation du connecteur des données est juste rejoindre les masses

Je brancherais un truc comme ça



Au bout du câble et je regarderai avec les pins pour voir ce qu'il se passe
de toutes façons , la balle est dans son camp  pour faire les test/verif  :smiley-mr-green:




DjLab

Pour mon alim externe en fait j'ai coupé un câble USB et mis des pins sur chaque fils pour tout séparer, ça revient au même que le connecteur proposé par J-M-L.
Je vais essayer de relier les masses mécaniques, j'y avait pas pensé.
Je vais tester Artouste la config USB Com to simulate RS-232 standard interface.
Je vous tiens au courant.
Merci encore pour votre aide.

J-M-L

si les masses ne sont pas connectées, c'est sûr que c'est un soucis
Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

Go Up