Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2014-04-24 10:04:07 aide sur stockage des données avec Processing

magui
nouveau membre
Date d'inscription: 2014-04-24
Messages: 5

aide sur stockage des données avec Processing



Bonjour,

je suis débutante dans la programmation Arduino; Mon projet consiste à récupérer des données depuis un ruban perforée qui commande une ancienne machine,ensuite les enregistrer dans un fichier sur ordinateur afin de commander directement la machine avec le pc  avec ces fichier et enlever le ruban perforée tout en ralisant en réalisant une IHM

Dans un premier temps Avec ARDUINO UNO  j'ai élaboré un petit programme qui lit les données gravées sur le ruban perforée. Le problème c'est que j'arrive pas à stocker ces données sur mon pc dans un fichier texte en faisant quelque recherche j'ai trouvé qu'avec Processing il es possible de le faire. S'il vous plait si vous savez comment le faire je vosu serait reconnaissante.

N.B: dans de ruban il y a 600 opérations et dans chaque opérations il y a 192 bits.et il faut que toutes les données passent directement et s 'enregistrent dans un fichier texte sans looper aucun bit.

Merci du temps que vous allez me consacrez.
Voila le code avec lequel j'ai acquis les données

  
int i,j;
int time_spkt=11;
boolean datas[8][24];
void setup()
{
  for(i=2;i<10;i++)
{   pinMode(i,INPUT);}
    Serial.begin(115200);      
}
void loop()
{
  while(digitalRead(10)==1);
  while(digitalRead(10)==0);
  for (j=0;j<24;j++)  
{ for (i=0;i<8;i++)
{
  datas[i][j]=digitalRead(i+2);
  
}
delay(time_spkt);
}

for(j=0;j<24;j++)  
{ for (i=0;i<8;i++)
{
Serial.print( datas[i][j]);

  
}
Serial.print("\n");
}
Serial.print("\n ******************************************************************");
Serial.print("\n");
delay(5000);
}

neutral

Hors ligne

 

#2 2014-04-24 11:52:17 Re : aide sur stockage des données avec Processing

top
membre
Date d'inscription: 2012-04-12
Messages: 43

Re: aide sur stockage des données avec Processing



Désolé mais il y a un truc que je comprends pas
Tu dis que dans ton ruban il y a 600 opérations avec 192 bits par opérations donc tu dois stocker 600*192 bits
Or je vois que pour acquérir ces informations tu déclares un tableau de type boolean jusque là pourquoi pas...
mais la taille du tableau est de 8*24 ???? 
Comment tu fais entrer les 600*192 bits dans un tableau 8*24 de type boolean ?

Dernière modification par top (2014-04-24 11:52:32)

Hors ligne

 

#3 2014-04-24 22:21:10 Re : aide sur stockage des données avec Processing

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: aide sur stockage des données avec Processing



Bonsoir,

Avant de passer à la partie Processing et la réception des données, il serait bon d'affiner la collecte des éléments.
Si tu pouvais joindre une image de ta bande perforée afin que nous puissions t'aider au mieux.
Je te propose ceci :

uint8_t data[24];

C'est un tableau d'entier non-signés qui sont stockés sur 8bits.
D'autre part, il vaut mieux utiliser Serial.write :
http://arduino.cc/en/Serial/Write
En plus il permet d'envoyer un tableau en entier.

Pour remplir  les octets, il est préférable d'utiliser l'affectation de bit.

  for (int j = 0; j < 24; j++) {
    for (int i = 0; i < 8; i++) {
      if (digitalRead(i+2)) {
        bitSet(data[j], i);
      } 
      else {
        bitClear(data[j], i);
      }
    }
  }

Voilà quelques pistes de réflexion en attendant un exemple de la bande perforée.

Hors ligne

 

#4 2014-04-25 17:52:32 Re : aide sur stockage des données avec Processing

magui
nouveau membre
Date d'inscription: 2014-04-24
Messages: 5

Re: aide sur stockage des données avec Processing



top a écrit:

Désolé mais il y a un truc que je comprends pas
Tu dis que dans ton ruban il y a 600 opérations avec 192 bits par opérations donc tu dois stocker 600*192 bits
Or je vois que pour acquérir ces informations tu déclares un tableau de type boolean jusque là pourquoi pas...
mais la taille du tableau est de 8*24 ???? 
Comment tu fais entrer les 600*192 bits dans un tableau 8*24 de type boolean ?

je déclare un tableau de [24] [8] par ce que dans la machin est commandé par une pédale, à chaque fois on pédale il y a une rangée de 24 colonnes qui passent est dans chaque colonne il y a 8 lignes de datas ( trous perforés).Donc à chaque fois il y a une impulsion de la pédale qui survient et le signal spkt (strobe générer par des petits trous dans la bande) passent d'un 1 à 0 (front descendant) il faut que ma carte Arduino lisent les données passées dans le lecteur de bande.

Hors ligne

 

#5 2014-04-25 17:58:25 Re : aide sur stockage des données avec Processing

top
membre
Date d'inscription: 2012-04-12
Messages: 43

Re: aide sur stockage des données avec Processing



Ok je me doutais que que çà marchait comme çà mais ce que j'aimerais comprendre c'est qu'elle variable
utilises-tu pour stocker l'ensemble des données ? Il va bien falloir communiquer ces données à Processing ?
J'ai l'impression que ton programme se contente d'afficher ces données et que de plus à chaque loop, les données
précédentes sont perdues !

Dernière modification par top (2014-04-25 18:00:00)

Hors ligne

 

#6 2014-04-25 17:59:02 Re : aide sur stockage des données avec Processing

magui
nouveau membre
Date d'inscription: 2014-04-24
Messages: 5

Re: aide sur stockage des données avec Processing



Mushussu a écrit:

Bonsoir,

Avant de passer à la partie Processing et la réception des données, il serait bon d'affiner la collecte des éléments.
Si tu pouvais joindre une image de ta bande perforée afin que nous puissions t'aider au mieux.

Voici une image de ma bande il y a 8 canaux de données et les petits trous sont le signal SPKT (strobe) qui génére les impulsions de synchronisation.
http://codelab.fr/up/Ruban.PNG

J'ai pu lire les données sur le moniteur série voici une image:

http://codelab.fr/up/sa.PNG

Maintenant je veux qu'une fois je pédale les données passent directement dans le fichier texte et s'enregistrent dans l'ordre par ce que après j'aurais besoin d'eux pour commander la machineen utilisant un programme qui transmettra 24 rangée de 8 datas à chassue impulsion de la pédale

Hors ligne

 

#7 2014-04-25 18:01:33 Re : aide sur stockage des données avec Processing

magui
nouveau membre
Date d'inscription: 2014-04-24
Messages: 5

Re: aide sur stockage des données avec Processing



top a écrit:

Ok je me doutais que que çà marchait comme çà mais ce que j'aimerais comprendre c'est qu'elle variable
utilises-tu pour stocker l'ensemble des données ? Il va bien falloir communiquer ces données à Processing ?
J'ai l'impression que ton programme se contente d'afficher ces données et que de plus à chaque loop, les données
précédentes sont perdues !

J'ai utilisé pour le moment aucune variable par ce que dans le programme ci-dessus je voulais juste lire les données à chaque impulsion de la pédale  sortant du lecteur bande et s'assurer qu'elles étaient les même sur la bande c'est tout

Hors ligne

 

#8 2014-04-26 08:52:09 Re : aide sur stockage des données avec Processing

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: aide sur stockage des données avec Processing



Merci pour la photo, c'est beaucoup plus clair. Je ferais un truc comme cela :

A priori, tu mettais la lecture du SPKT sur le pin 10. Je te propose d'utiliser une interruption, mais il faut que ce soit le pin 2.
http://arduino.cc/en/Reference/AttachInterrupt
Cette interruption se déclenche quand le pin 2 passe de 0 à 1. On lit ensuite les différents bits. Quand on le tableau est rempli, on l'envoie.
Il est nécessaire de décaler la lecture des bits sur les pin 3 à 10.

Peux-tu vérifier que cela fonctionne avant de passer à la suite ?
- Synchronisation avec Processing (handshaking)
http://arduino.cc/en/Tutorial/SerialCallResponse
- Lecture des données et écriture d'un fichier
http://processing.org/reference/saveBytes_.html

Hors ligne

 

#9 2014-04-28 18:46:37 Re : aide sur stockage des données avec Processing

magui
nouveau membre
Date d'inscription: 2014-04-24
Messages: 5

Re: aide sur stockage des données avec Processing



Mushussu a écrit:

A priori, tu mettais la lecture du SPKT sur le pin 10. Je te propose d'utiliser une interruption, mais il faut que ce soit le pin 2.
http://arduino.cc/en/Reference/AttachInterrupt
Cette interruption se déclenche quand le pin 2 passe de 0 à 1. On lit ensuite les différents bits. Quand on le tableau est rempli, on l'envoie.
Il est nécessaire de décaler la lecture des bits sur les pin 3 à 10.

Peux-tu vérifier que cela fonctionne avant de passer à la suite ?

J'ai voulu tester ce programme ci-dessus mais la machine est tombé en panne , une fois en marche je le testerai et afficher les résultats

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024