Bonjour,
je travaille sur un projet pour le développement d'une centrale inertielle, soit la récupération des données d'un capteur 10 DOF et leur affichage au sein d'une IHM.
j'ai réussi a établir la connexion entre mon programme et le capteur mais je ne vois pas comment je pourrais faire pour récupérer les données. Est ce que vous avez des idées de fonctions que je peux utiliser pour ça svp?
Voila a quoi ressemble mon code:
#include "mainwindow.h"
#include <QApplication>
#include <cstdio>
#include <iostream>
#include <unistd.h>
#include <fcntl.h>
#include <sys/ioctl.h>
using namespace std;
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
int file_i2c;
int length;
int buffer[4];
char *filename= (char*) "/dev/i2c-1";
if((file_i2c=open(filename, O_RDWR))<0)
{
cout<<"fail to open I2C bus"<<endl;
}
int addr= 0x77;
if(ioctl(file_i2c, 0x0703, addr)<0)
{
cout<<"failed to acquire bus access or talk to the slave"<<endl;
}
length=4;
if(read(file_i2c, buffer,length)!=length)
{
cout<<"Failed to read from the i2c bus"<<endl;
}else {
// int nb=read(file_i2c,buffer,length);
// cout<<"nb"<<nb<<endl;
//je ne sais pas quoi mettre dans cette partie
}
Récupérer les données d'un capteur en i2c
Modérateur : Francois
-
- Raspinaute
- Messages : 1587
- Enregistré le : dim. 10 mai 2015 18:44
- Localisation : Dans la campagne à côté d'Annecy
- Contact :
Re: Récupérer les données d'un capteur en i2c
Bonjour,
Et bien, que dire d'autre que d'aller voir le datasheet du composant pour voir quelle(s) adresse(s) lire pour récupérer les donner et surtout, en suivant quel protocole ?
Et bien, que dire d'autre que d'aller voir le datasheet du composant pour voir quelle(s) adresse(s) lire pour récupérer les donner et surtout, en suivant quel protocole ?
- BananaPI : Gentoo, disque SATA de 2 To
- Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
- Multimedia par DNLA
- Et pleins d'idées ... et bien sûr, pas assez de temps.
Re: Récupérer les données d'un capteur en i2c
Salut à tous.
Ca ressemble à du C++, mais à y regarder de plus près, un bloc ne se met pas entre crochet [ ] mais entre accolade { }.
Vous devez faire une boucle infinie et à l'intérieur de celle-ci faire une lecture de votre capteur à intervalle régulier.
Cordialement.
Artemus24.
@+
Ca ressemble à du C++, mais à y regarder de plus près, un bloc ne se met pas entre crochet [ ] mais entre accolade { }.
Vous devez faire une boucle infinie et à l'intérieur de celle-ci faire une lecture de votre capteur à intervalle régulier.
Cordialement.
Artemus24.
@+
RPI4B/8GB + Argon FanHAt
Rpi3A+, Rpi3B+
RPi 2B + Joy-It I2C Serial 20x4 2004 LCD Module
RPi 2B + PIM273 Unicorn HAT HD 16x16 Leds RGB
RPi0v1.3, RPi0W + LibreElec/Kodi, Rpi0WH + Tuner TV HAT
NodeMCU ESP32
Rpi3A+, Rpi3B+
RPi 2B + Joy-It I2C Serial 20x4 2004 LCD Module
RPi 2B + PIM273 Unicorn HAT HD 16x16 Leds RGB
RPi0v1.3, RPi0W + LibreElec/Kodi, Rpi0WH + Tuner TV HAT
NodeMCU ESP32