IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Projet BTS Lecteur RFID programme C++


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Projet BTS Lecteur RFID programme C++
    Bonjour à tous,

    je suis actuellement étudiant en BTS SN-IR (système numérique - informatique et réseau),
    je suis en projet de fin d'année et mon projet consiste par le biais d'un lecteur RFID de pouvoir récupérer les valeurs de plusieurs tags des cartes RFID
    grâce à un programme en c++ sur QT.
    Le problème est que je ne connais pas du tous cette technologie (RFID) ainsi que le programme a faire.
    le lecteur RFID est en liaison série (ttyUSB0).

    Le lecteur RFID est un lecteur Parallax RFID Read/Write Module - Serial 28440.

    J'ai effectué plusieurs test notamment grâce à un programme test Arduino fournis dans la documentation du site internet mais sans succès, les tags ne sont pas reconnus.
    Si j'ai bien compris la doc pour lire un tag RFID il faut que j'envoie une trame de 12 bit.
    Mais bon je n'est pas plus d'information...

    Si quelqu'un aurait la sympathie de pouvoir éclairer ma lanterne, je lui serais très reconnaissant.
    Je suis vraiment coincé là.

    Merci d'avance.
    Cordialement.

  2. #2
    Membre habitué
    Homme Profil pro
    sans activité
    Inscrit en
    Janvier 2016
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : sans activité

    Informations forums :
    Inscription : Janvier 2016
    Messages : 76
    Points : 136
    Points
    136
    Par défaut
    Bonjour jeje2211,

    Je ne suis pas sûr que ton problème soit un problème de C++.

    Si tu as des problèmes de compilation ou de comportement non prévu dans ton programme, passe nous tes sources et nous pourrons t'aider mais il ne semblerai pas que se soit le cas, je dirai que pour l'instant ton problème intéresserai plus un forum d’électronique.

    Ne soit pas étonné de ne pas avoir de réponses, en tout cas, tant que ton problème n'est pas spécifiquement un problème de programmation.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Bonjour rnr72, je suis entièrement d'accord avec toi cependant il y a eu un peu de nouveau durant le journée.
    j'ai repris un arduino et trouvé un programme permettant de récupérer les tags des cartes et cela fonctionne.
    il faudrait que j'arrive à en quelque sorte convertir ce programme en c++ et le mettre en liaison série.

    je vous fais part de ce programme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    #include <SoftwareSerial.h>
    #define RFID_READ 0x01
    #define txPin 6
    #define rxPin 8
     
    SoftwareSerial mySerial(rxPin, txPin);
    int val;
    int runs = 0;
     
    void setup()
    {
      Serial.begin(9600);
      Serial.println("RFID Read/Write Test");
      mySerial.begin(9600);
      pinMode(txPin, OUTPUT);    
      pinMode(rxPin, INPUT);      
    }
     
    void suppressAll()                                //suppresses the "null result" from being printed if no RFID tag is present
    {
        if(mySerial.available() > 0)
        { mySerial.read();
          suppressAll();
        }
    }
     
    void loop()
    {
     int val;
      mySerial.print("!RW");
      mySerial.write(byte(RFID_READ));
      mySerial.write(byte(32));
     
      if(mySerial.available() > 0)
      {      
        val = mySerial.read();                        //The mySerial.read() procedure is called, but the result is not printed because I don't want the "error message: 1" cluttering up the serial monitor
          if (val != 1)                                   //If the error code is anything other than 1, then the RFID tag was not read correctly and any data collected is meaningless. In this case since we don't care about the resultant values they can be suppressed
           {suppressAll();}                              
      }      
     
     
     if(mySerial.available() > 0) {      
        val = mySerial.read();
        Serial.print("1st:");
        Serial.println(val, HEX);
        }
     
    if(mySerial.available() > 0) {        
        val = mySerial.read();
        Serial.print("2nd:");
        Serial.println(val, HEX);
        }
     
    if(mySerial.available() > 0) {      
        val = mySerial.read();
        Serial.print("3rd:");
        Serial.println(val, HEX);
        }
     
    if(mySerial.available() > 0) {          
        val = mySerial.read();
        Serial.print("4th:");
        Serial.println(val, HEX);
        Serial.println("-----------------");
        }  
     
    delay(750);
    }
    si quelqu’un a une idée ?

  4. #4
    Membre habitué
    Homme Profil pro
    sans activité
    Inscrit en
    Janvier 2016
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : sans activité

    Informations forums :
    Inscription : Janvier 2016
    Messages : 76
    Points : 136
    Points
    136
    Par défaut
    Si je comprend bien, tu as réussi à faire les tests de ton matos avec arduino et maintenant tu voudrais utiliser ton émetteur/receveur RFID directement via USB sans passer par arduino. (Je ne connais pas grand chose en électronique)

    Si c'est bien ça, ton problème est d’écrire un programme qui exploite l'USB. Il semblerait que tu soit sous Linux (car cela dépend de l'OS) donc cherche les moyens d’accéder à ton port USB (sous Linux c'est facile, c'est un simple fichier à ouvrir), prendre garde au droit et définir la vitesse de ton bus.

    UNIX standard function definitions
    File control definitions
    POSIX terminal control definitions

    Je ne te dis pas que cela sera chose facile mais avec ces quelles que pistes, tu devrais trouver ton bonheur.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Tu as tous compris c'est exactement ce que je doit faire.
    Le problème est que je dois faire mon programme avec Qt.

    j'ai commencer une base de programme que j'ai réussi à trouver :

    RFID.H :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    #ifndef RFID_H
    #define RFID_H
    #include <QObject>
    #include <QMainWindow>
    #include <QtSerialPort/QSerialPort>
    #include <QSettings>
     
    namespace Ui {
    class RFID;
    }
     
    class RFID : public QMainWindow
    {
        Q_OBJECT
     
    public:
        explicit RFID(QWidget *parent = 0);
        ~RFID();
    signals:
        void dataready(QString data);    
     
    private slots:
        void dataread();
        void cleardata(QByteArray data);
     
    private:
        Ui::RFID *ui;
        QSerialPort *port;
        void initPort();
     
     
    };
     
    #endif // RFID_H
    RFID.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    #include "rfid.h"
    #include "ui_rfid.h"
    #include <QDebug>
     
    RFID::RFID(QObject *parent) : QObject(parent)
    {
        port = new QSerialPort();
        connect(port, SIGNAL(readyRead()), this, SLOT(dataread()));
        initPort();
        port->setBaudRate(QSerialPort::Baud9600);
        port->setDataBits(QSerialPort::Data8);
        port->setParity(QSerialPort::NoParity);
        port->setStopBits(QSerialPort::OneStop);
        port->open(QIODevice::ReadOnly);
    }
    void RFID::initPort(){
        QSettings settings("/RFID.ini", QSettings::IniFormat);
        qDebug()<<settings.value("config/port","rien").toString();
        port->setPortName(settings.value("config/port","ttyUSB0").toString());
    }
     
    void RFID::dataread(){
        QString nombre1,nombre2,nombre3;
        QByteArray data= port->readAll();
        //qDebug()<<"Data : "<<data;
        nombre1=data[30];
        nombre2=data[31];
        nombre3=nombre1+nombre2;
        //qDebug()<<"nombre1 : "<<nombre1;
        //qDebug()<<"nombre2 : "<<nombre2;
        //qDebug()<<"nombre3 : "<<nombre3;
        // qDebug()<<"*--------------------------------------------------------------------";
        emit dataready(nombre3);
        emit cleardata(data);
    } 
    void RFID::cleardata(QByteArray data){
        qDebug()<<"trame1 : "<<data;
        qDebug()<<"trame2 : "<<data;
    }
     
    RFID::~RFID()
    {
        delete ui;
    }
    Mais bon je ne comprends pas très bien ce code quoi

  6. #6
    Membre habitué
    Homme Profil pro
    sans activité
    Inscrit en
    Janvier 2016
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : sans activité

    Informations forums :
    Inscription : Janvier 2016
    Messages : 76
    Points : 136
    Points
    136
    Par défaut
    C'est cool, je dirais que tu n'as plus de problème mais juste du taf.

    Je pense que la suite tu la trouveras dans la doc technique pour savoir quoi lire/écrire sur ton bus.

    Bon courage!

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Après tu penses que le code est correct ?

  8. #8
    Membre habitué
    Homme Profil pro
    sans activité
    Inscrit en
    Janvier 2016
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : sans activité

    Informations forums :
    Inscription : Janvier 2016
    Messages : 76
    Points : 136
    Points
    136
    Par défaut
    Demande à ton compilateur, il te répondra mieux que moi.

    A première vue, question C++, je te dirais que c'est ok (même si cela n’engage que moi).

    Sinon, je n'ai jamais utilisé Qt et donc suis dans l'incapacité de donner mon avis sur l'utilisation de la bibliothèque. Remet toi s'en à la doc de Qt où à l'avis d'un expert qui passerai par là.

    Cordialement RNR72


    EDIT :
    Mais bon je ne comprends pas très bien ce code quoi
    Je n'avais pas vu, désolé.

    Même sans connaitre Qt ce code me parait plutôt clair.

    Initialisation du bus et lecture de données (spécifique à une utilisation qui n'est peut être pas la tienne)

    Il y a une utilisation de .ini pour les settings, sans le fichier difficile de dire quoi que ce soit.

    Je pense que tu trouveras la réponse dans la doc de Qt.

    Mais je pense que tu tiens une bonne base pour pouvoir te lancer.

    Dernier conseil, prend tous les codes que tu veux et où tu veux pour tester et comprendre mais je te conseil de faire les choses par toi même, tu auras la satisfaction d'avoir réussi "seul". C'est toujours bon pour l'estime de soit, plus que de devoir son diplôme au travail d’autrui.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Je te tiens au courant

Discussions similaires

  1. [VS] pas de projet pour avoir un programme EXE?
    Par olivier57b dans le forum Débuter
    Réponses: 3
    Dernier message: 22/03/2008, 19h17
  2. projet : creation d'un programme audio
    Par as-de-trefle dans le forum Réseau
    Réponses: 7
    Dernier message: 15/09/2007, 18h37
  3. Aide pour projet BTS (userform)
    Par Raiga dans le forum Excel
    Réponses: 34
    Dernier message: 18/06/2007, 11h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo