Lire/Ecrire dans carte SD

Bonjour,

Alors je vous expose ma problématique :

Je souhaiterais utiliser dans mon programme un tableau de 1000 lignes et de 1000 colonnes dont les cellules devraient contenir une valeur entière. Ceci étant dit, la mémoire ne supportera jamais.......AIE!!

Donc, je me demandais si il m'était possible d'écrire dans la carte SD une matrice me permettant de palier à ce problème. Soit un fichier *.txt composé de 1000 lignes et chaque ligne se décompose de 1000 données séparées par des virgules ou point virgules....Ne vous étouffez pas quand même en lisant ces quelques lignes hein.....c'est une idée d'amateur quoi!!

Alors, nous est t'il possible dans une carte SD de lire non pas une ligne entière mais une certaine partie........

En espérant ne pas avoir engendré d'infarctus chez certains....Désolé....

Évidemment si il existe une solution plus orthodoxe je veux bien en prendre connaissance....

Merci par avance.

juste un fichier qui contient UNE seule "colonne". La donnée se trouvant en cellule (5 [line], 500 [col]) est alors la 5x1000+500 = 5500. Il suffit donc juste de lire la 5500éme ligne du fichier

Salut,

Si tu pars sur ta solution avec un tableau de n colonnes x n lignes, tu peux jeter un oeil au format CSV si ce n'est déjà fait : Comma-separated values — Wikipédia
Ainsi ton fichier pourra éventuellement être utilisé par diverses applications, tableur ou autre...

++

taddot:
juste un fichier qui contient UNE seule "colonne". La donnée se trouvant en cellule (5 [line], 500 [col]) est alors la 5x1000+500 = 5500. Il suffit donc juste de lire la 5500éme ligne du fichier

Je plussoie totalement !

Je tient juste à précisez quelques petites chose :
les carte sd ne sont pas des ram, elle ont un nombre limité d'écriture/lecture, si ton application doit utiliser trés souvent la SD tu risque vite de la tuer,
Dans ton cas les données doivent être "permanente" ou elle sont juste "d'usage" ? Peut être qu'une ram spi pourrait suffir (ram -> nb cycle infini à l'inverse du carte SD).

Merci pour toutes ces propositions.

Alors effectivement mon application devra utiliser souvent l’accès à la carte SD. Celle-ci sera en fait une vue 2D des pièces à explorer.

J'aimerai bien utiliser une RAM qui est à coût sûr la solution la plus orthodoxe mais comment ajouter une RAM pouvant contenant disons un array de 1000 lignes * 1000 colonnes dont chaque cellule peut contenir un entier..........quelques pistes...

Telson:
Alors effectivement mon application devra utiliser souvent l’accès à la carte SD. Celle-ci sera en fait une vue 2D des pièces à explorer.

J'aimerai bien utiliser une RAM qui est à coût sûr la solution la plus orthodoxe mais comment ajouter une RAM pouvant contenant disons un array de 1000 lignes * 1000 colonnes dont chaque cellule peut contenir un entier..........quelques pistes...

Aie maintenant que j'y réfléchi 1000x1000x2 (int=2bytes) = 2000000 bytes soit presque 2Mo ... même en sram SPI je crois pas que ça se fait ...

Quel est le but final ? A mon avis il doit y avoir une autre solution qu'un tableau de 1000x1000 ... sinon carte SD en priant pour quel dure le temps qu'il faut ...
Et pour le coup quitte à utilisez une carte sd il sera souhaitable d'utiliser un module uDRIVE-uSD de lextronic pour lire/écrire en binaire (question de vitesse et d'économie de donnée à écrire).

C'est pour faire de la planification de trajectoire.

http://www.robotix.fr/exploration-pathfinding-dans-un-labyrinthe-chapitre-134-theorie.html
http://ze.bot.free.fr/program.html#algo

Telson:
C'est pour faire de la planification de trajectoire.

http://www.robotix.fr/exploration-pathfinding-dans-un-labyrinthe-chapitre-134-theorie.html
BOBIII - ROBOT Autonome

Je vois donc soit tu garde ton systéme de "carte" virtuelle et alors tu utilise une carte SD, soit tu peut peu être regarde l'algo derrière les robot "maze solver" il doit pouvoir être utilisable. http://blog.makezine.com/archive/2008/06/mazesolving-robot.html

Bonjour,

Une liaison WIFI XBEE ou Bluetooth n'est pas envisageable de façon à échanger des données avec une machine puissante?
C'est peut être acceptable au moins dans une phase de dév avec ensuite du matériel un peu plus musclé embarqué?
D'ailleurs quelles sont les solutions possibles pour rajouter de la RAM sur un ARDUINO?

ojal:
D'ailleurs quelles sont les solutions possibles pour rajouter de la RAM sur un ARDUINO?

Arduino Playground - SpiRAM (je crois pas que le m328 à un de quoi faire l'adressage de ram extérieur en hardware (?))

Ha oui effectivement, utiliser le module wifi pour échanger les donner sur un pc me permettrait en plus de visualiser en temps réel ces même données.

Merci c'est une bonne idée.

Bonjour à tous,

Je propose une autre solution : tu pourrais avoir mixé les deux. La RAM pour gérer la matrice dont tu as besoin à un instant T et la SD comme banque de données...
La RAM sera utilisé au maximum, tandis que la SD te permettra de garder les données en cas de perte d'alimentation ou bug etc...

Oui, effectivement je pourrais utiliser la RAM en tempon et utiliser la SD pour le stockage à long terme. C'est une bonne idée également.

Combien de RAM 25X256 nous pouvons utiliser en même temps?

Telson:
Oui, effectivement je pourrais utiliser la RAM en tempon et utiliser la SD pour le stockage à long terme. C'est une bonne idée également.

Combien de RAM 25X256 nous pouvons utiliser en même temps?

Autant que nécessaire si elle sont en spi (avec un peu de logique ttl pour l'adressage par contre) ou 8 si elle sont en I2C.

Ha oui très intéressant tous ça.

Auriez vous un exemple pour le schéma d'implémentation et la gestion de leurs adressages?

Merci.

Telson:
Auriez vous un exemple pour le schéma d'implémentation et la gestion de leurs adressages.

Il n'éxiste pas de schémas type mais déjà pour ce simplifier la tache un 7442 (décodeur bcd-décimal) permet avec 4 fils coté arduino de faire la sélection jusqu'a 10 CI de ram.
Le 7442 a lu même une broche enable donc il est encore possible de chainer les 7442 pour avoir encore plus de ram adressable.