Bonjour, j'ai quelques questions à propos de "mémoire" sur Arduino.
J'expose le problème (théorique):
J'ai un capteur MPU-6050 (central inertie) qui me renvoie 6 valeurs (3 d'accélération et 3 de vitesse angulaire) et je souhaite enregistrer ces données.
Le problème c'est que je ne sais pas si les 32Kb de la mémoire de mon Arduino Uno vaut suffire.
Donc j'aimerai savoir si possible, si vous me conseiller une mémoire EEPROM 24LC512 ou un module Micro SD.
Tout en sachant que je ne connais pas le taux de transfert maximal du MPU-6050 lorsqu'il est au max de ses capacités.
Je précise que dans ce projet je ne souhaite que enregistrer les donnés (sans besoin de les relire immédiatement) pour après les transféré ultérieurement sur mon PC pour traité les données acquise. Le temps de fonctionnement du système étant d'environ 2H30 par jour.
Je possède la Datasheet du module MPU-6050.
J'aimerai donc savoir quelles est (avec les infos de la Datasheet) le taux de transfert des données du MPU lorsqu'il est en mode ultra précision. Pour savoir si je dois opérer en I2C ou en SPI, et savoir si il mieux de EEPROM ou une SD niveau vitesse transfert et capacité de mémoire (sachant que je dois relativement facilement récupérer les donnés sous une forme utilisable sous PC Windows).
MPU-6050 Datasheet:
Merci énormément d'avance pour vos réponse. (Désolé du pavé)
Cordialement, Kyu
Je ne peux pas te répondre, mais il faut que le temps d'écriture sur SD soit inférieur à la fréquence à laquelle tu écris sur SD.
Les cartes n'ont pas toutes les mêmes temps d'accès, mais je suis certains qu'il y a un spécialiste dans le coin ^^.
Merci très instructif, cela m'aidera fortement si je dois utiliser une carte SD.
Mes questions sont toujours les mêmes que dans mon premier message. Je ne sais pas qui choisir en fonction de mon module MPU-6050.
Comme t'as dit kammo, ça dépend de la fréquence d'enregistrement et j'ajouterai aussi de sa durée, c'est à dire du nombre de points à stocker.
A priori, surtout si tu veux transférer sur un PC, une carte SD parait le plus indiqué.
Sur la datasheet du module, je crois comprendre que cela tourne entre 8000 à 10000 Hz, soit 10K / seconde. Il y a un convertisseur analogique-numérique 16 bits, doit donc comprendre qu'il y a jusqu'à 10K donné de 16 bit par seconde d'émit par le module MPU-6050?
Pourriez me dire comment avec les info de la datasheet connaître le débit de donné maximal que le capteur peut émettre en mode Ultra.
Ces besoin ont déjà étaient expliciter dans le premier message. Environ 02H30 de fonctionnement par jour étalonner sur plusieurs morceaux de période. Le truc c'est que si je connais le taux de transfert maxi possible du module en mode Ultra Précision et que je connais le temps d'acquisition (02H30), alors je pourrais savoir la capacité de mémoire dont j'ai besoin.
Attendu que le module MPU-6050 est un module I2C esclave, il n'envoie pas de données de sa propre initiative.
C'est donc le logiciel que tu vas développer qui va fixer le rythme de la mesure, donc des échanges avec le module.
La question est simple.
De quelle fréquence de mesure as-tu besoin ?
Ensuite en fonction de cette contrainte, il sera possible de déterminer si un bus i2c est adéquat et si une SD va pouvoir suivre, et même éventuellement si un ARDUINO va pouvoir suivre.
Hello,
J'ai un MPU6050 que j'interroge 200x par seconde en I2C.
On peut sans doute aller plus vite mais pour mon usage c'est suffisant.
Si tu récupères 6 valeurs de 2 octets à chaque fois, je te laisse faire le calcul du volume.
Mais l'eeprom de l'arduino n'est pas faite pour ca. Il faut stocker sur un module externe.
A+
J'ai un MPU6050 que j'interroge 200x par seconde en I2C.
Donc une acquisition toutes les 5ms.
Ce qui serait intéressant de savoir, c'est le temps que prend chaque acquisition.
Ainsi il serait possible de connaître le temps disponible pour stocker les données.
J'ai l'impression que c'est encore un cas qu'on peut traiter en lisant les datasheets et en faisant des calculs complexes à la pépé (je comprends rarement ce qu'il dit^^), ou en testant à la kammo (attention certains composants brulent^^).
J'aurais tendance à essayer, pousser le machin, essayer, pousser, et voir sa limite.
En fonction de la carte (qualité, vitesse, capacité, d'autres trucs de chinois), des données, de l'arduino, de la connectique, du cheval blanc d'Henri IV, il va être megafficile d'avoir un calcul sûr.
Teste avec ce que tu as, si ça marche, tu as gagné une journée de maths.
Je reprends l'idée de fond des collègues, c'est pas de savoir combien de données max on peut écrire en un temps T, mais de savoir de combien de données tu as besoin.
Si le but c'est de relire le parcours d'un drone dans un modèle 3d, ça sert à rien d'avoir plus de 30 data/s, à moins de faire du slowmotion sur 2h30? Quel est ton besoin, quelles sont les contraintes?
D'un module à un autre, je suis presque certain qu'on n'aura pas les mêmes données REELLES.