Comment gérer en RAM et stocker en EEPROM un grand nombre de données ?

dbe8f

New Member
#1
Bonjour,

Dans le cadre du développement de mon réseau de train, j'ai besoin de stocker beaucoup de données et de variables en EEPROM.
Avec un langage comme C++ ou java, j'aurais créé des tableaux pour manipuler mes données mais avec le langage BASIC des PICAXE, je ne sais pas comment faire et je ne sais pas si cela soit possible.

Petite remarque : Souvent dans les forums, on aime pas trop lorsque les gens mettent des couleurs dans les textes, j'ai l'habitude de mettre toujours mes questions en couleur bleue, cela aide les personnes qui lisent mes posts de repérer tout de suite les questions, alors ne m'en voulez pas trop si je mets un peu de couleur :).

J'ai besoin de beaucoup de données car j'aimerais stocker, par exemple, pour la gestion de ma gare qui compte une 20aine d'aiguillages (5 info pas aiguillage), des feux de signalisation, des états X,Y,...et d'autres informations.
Ces données je dois les avoir en temps réel dans la carte (le programme) qui gère la gare, comment faire ?

Mise à part mon problème spécifique, a-t-on la possibilité de gérer des tableaux, ou plutôt sous quelle forme, car j'ai lu dans la documentation les fonctions table, readtable,... mais elles servent à manipuler les données en EEPROM ?

Merci pour vos réponses et à tout bientôt.
dbe8f
 

PieM

Senior Member
#2
Bonjour,

Stocker des données en EEPROM ne pose pas de problème. par contre la manipulation n'est pas facile, le picaxe ne gérant pas les tableaux à N dimensions.
selon le type de picaxe, il est possible de rapatrier l'eeprom en RAM avec tablecopy par exemple.
Une petite macro peut également faciliter l'accès aux données : donnée(x,y) , x étant un pseudo pointeur de ligne définissant l'adresse du bloc et y, le rang dans ce bloc.
Mais tout ceci est à définir en fonction du picaxe, du type de données (byte ou word), du volume de données, réactualisées ou non, du traitement, et de sa fréquence.
Il me semble que l'ami Besqueut avait travaillé sur une organisation en tableau ... ?

A voir un tableau remarquable sur l'organisation mémoire, fait par Westaust55 : http://www.picaxeforum.co.uk/showthread.php?11514-PICAXE-Memory-Map-and-SFR-Details-Chart
 
Last edited:

dbe8f

New Member
#3
Bonsoir PieM,

Merci pour vos réponses.

il est possible de rapatrier l'eeprom en RAM avec tablecopy par exemple
Mais une fois que les données sont en RAM, il faut encore les manipuler avec des variables et là il m'en faut beaucoup, donc pas vraiment possible.
Je pense qu'il faut une autre solution.

Excellent tableaux réalisés par Westaust55. Si je compte avec le 28X2, j'arrive à quelque chose comme une 50aine de variables ou un peu plus, cela ne sera de toute façon pas suffisant.

Je pense que plusieurs PICAXE doivent dialoguer entre eux mais là on se lance dans quelque chose qui est assez volumineux en temps en je n'en n'ai pas beaucoup. Je vais y réfléchir.

Une question, est-il possible de mélanger des PICAXE et des Arduino ?

Si oui, je pourrais gérer la gare avec des Arduino et le reste avec des PICAXE. Ainsi je verrais directement les deux technologies (langages).

Merci pour vos réponses et rien de presse.

Bonne soirée.
dbe8f
 

PieM

Senior Member
#4
Bonjour,
il faut encore les manipuler avec des variables et là il m'en faut beaucoup, donc pas vraiment possible.
les M2 comportent 512 bytes de RAM. les 28X2 et 40X2 en comportent 1280, accessibles via un pointeur. (voir bptr et @bptr)
D'autre part, je pense que de nombreuses infos sont du type variables booléennes. En se réservant les variables b0 à b3 pour rapatrier les données mémorisées, on a un accès individuel à chacun des 32 bits.

Quant à échanger des infos entre différents types de µC il n'y a aucun problème , chacun utilisant des données du type byte pouvant être transmises via l'USART ou l'I2C.

Voir ce qui a été fait dans un autre fil.: http://www.picaxeforum.co.uk/attachment.php?attachmentid=17949&d=1425046799
http://www.picaxeforum.co.uk/showthread.php?26767-positionnement-avec-un-moteur-pas-%E0-pas/page51
http://www.picaxeforum.co.uk/showthread.php?26792-Gestion-d-un-reseau-train-%E9lectrique
 
Last edited:

BESQUEUT

Senior Member
#5
Une question, est-il possible de mélanger des PICAXE et des Arduino ?
Oui : tout à fait, ne serait-ce que via un port série.
Cela dit, c'est tout un monde, et en particulier, plus de BASIC (même si le BASIC du Picaxe est un peu particulier).
Pour ma part, je pense que c'est jouable en Full Picaxe, avec sans doute une eeprom Externe.

Il faudrait être un peu plus précis sur votre cahier des charges :
- combien d'aiguillages ? Quels sont les infos possibles pour chaque ?
- idem pour tous les autres objets à gérer ? Nombre de chaque type ? Booléen ? mini ? maxi ?

Evidemment, vous ne savez pas encore tout, mais donnez un ordre de grandeur et/ou un maximum.

Avec ça, on saura la quantité de mémoire à prévoir.
Pour quelques euros il y a ça.
Plus performant, mais évidement plus cher : FRAM


Ensuite, il y a l'interface utilisateur :
- interrupteur ?
- boutons rotatifs ?
- LEDs ?
- Afficheur LED (nombre) ?
- afficheur LCD ? -ou OLED) ?
- lien vers un ordi ? Vers Androïd ?

Si on reste dans des choses mécaniques (interrupteur, bouton rotatif) chacun est-il dédié à une et une seule fonction, ou bien y a-t-il partage? exemple :
- un bouton rotatif pour la vitesse de chaque motrice ?
- ou bien un commutateur pour choisir la motrice, et un seul bouton pour régler la vitesse .

Autre exemple :
- un (ou plusieurs) inters par aiguillage ?
- ou bien un moyen de choisir l'aiguillage, puis une seule commande commune ?

Si Ordi et/ou Androïd, est-ce en plus ou à la place de commandes mécaniques ?

Avec ça, on pourra dire si ça passe sur un ou plusieurs Picaxes et/ou s'il faut prévoir des trucs en plus...
 
Last edited:
Top