Bonjour,
Je suis débutante dans la programmation avec Arduino. Mon projet est: acquérir un programme gravé sur une bande perforée.
La bande est codée sur 8 bits avec code ASCII et passe dans un lecteur bande qui la décode et envoie les données vers une carte lié au lecteur bande cette carte communique via un connecteur 25 broches avec une carte entrée sortie qui contrôle trois moteurs selon les axes (x,y,z). j'ai opté pour la carte Arduino uno pour lire les 8 bits de datas du connecteur 25 broches.
J'ai déja décodé une séquence de perforation à la main et voila le résultat:
1)est-ce que le programme suivant me permettra de visualiser les données sur le moniteur série.
est- ce que cette vitesse 9600 bps me permettra de visualiser les données ou dois-je la changer?
les données vont sortir en binaire alors que moi je devrais avoir le programmes c-à-d les caractères.Est-ce que la carte Arduino me permet de faire cette mise en forme?
Le baud rate de 9600 bps est celui du port série, donc la communication entre l'Arduino et l'ordinateur. On peut le modifier à volonté.
Le delay(10000) fera ici que deux mesures successives seront espacées de 10 sec., ça va être lent !
Il faudra sans doute détecter l'avance de la bande perforée pour passer à la mesure suivante.
Les 8 mesures sont en binaire, mais on peut convertir facilement un octet en Ascii à partir de ça
Magui:
Bonjour,
Je suis débutante dans la programmation avec Arduino. Mon projet est: acquérir un programme gravé sur une bande perforée.
La bande est codée sur 8 bits avec code ASCII et passe dans un lecteur bande qui la décode et envoie les données vers une carte lié au lecteur bande cette carte communique via un connecteur 25 broches avec une carte entrée sortie qui contrôle trois moteurs selon les axes (x,y,z). j'ai opté pour la carte Arduino uno pour lire les 8 bits de datas du connecteur 25 broches.
J'ai déja décodé une séquence de perforation à la main et voila le résultat:
est- ce que cette vitesse 9600 bps me permettra de visualiser les données ou dois-je la changer?
les données vont sortir en binaire alors que moi je devrais avoir le programmes c-à-d les caractères.Est-ce que la carte Arduino me permet de faire cette mise en forme?
Quelle marque/type le lecteur de bande ?
doc dispo ?
au minimum pour lire une bande 8 canaux avec un arduino , il faut 9 entrées :
8 pour la codage proprement dit et 1 pour l'impulsion de lecture
J'ai peur qu'aprés avoir traduit les données gravées sur le lecteur bande que se soit non significatif pour moi c-à-d que la bande peut contenir juste des @ mémoires dont les variables sont stockées dans une EPROM. . Dans la machine il y a 4 EPROM de référence M2716F1 et sont soudées dans une carte.
Pour espionner les sorties de datas de ces mémoires.Est-ce que je dois connecter juste les pins de data ou bien les pins de datas et les pins des adresses avec la carte ARDUINO?
Magui: J'ai peur qu'aprés avoir traduit les données gravées sur le lecteur bande que se soit non significatif pour moi c-à-d que la bande peut contenir juste des @ mémoires dont les variables sont stockées dans une EPROM. . Dans la machine il y a 4 EPROM de référence M2716F1 et sont soudées dans une carte.
Pour espionner les sorties de datas de ces mémoires.Est-ce que je dois connecter juste les pins de data ou bien les pins de datas et les pins des adresses avec la carte ARDUINO?
ça depend
il y avait plus ou moins une normalisation des programmes de CNC utilisant de la bande perforée (normes ISO ou EIA) .
il faut déjà savoir à quelle machine cette bande etait destinée.
le but du jeu c'est quoi exactement ? : remplacer le lecteur de bande sur une ancienne CNC par des supports plus modernes et/ou recuperer la programmation
Quelle marque/type le lecteur de bande ?doc dispo ?
C'est un lecteur optique de référence EECO avec 9 trous (8 trous de données et entre le trou 5 et 6 on a un trou d'entraînement de la bande (signal SPKT)) comme montré sur l'image:
une fois passé dans le lecteur de bande, les données passent dans des inverseurs pour inverser leurs polarité et des portes logiques afin de booster le signal pour ne pas le perdre aprés ces données sont transmis vers les cartes entrées/sorties qui commandent les moteurs via le connecteur 25 broches suivant:
le but du jeu c'est quoi exactement ? : remplacer le lecteur de bande sur une ancienne CNC par des supports plus modernes et/ou recuperer la programmation
C'est une machine de Wrapping des cartes électroniques fonctionnant avec des programmes gravés sur des bandes perforées.ces programmes contiennent les coordonnées selon les axes (X,Y,Z) où un nez contrôlé par 3 moteurs pas à pas va pointer sur la broche à wrapper .
Le but: 1) récupérer les programmes sur les bandes perforées sur un pc.
2) commander les 3 moteurs pas à pas de la machine avec ces données collectées sur Ordinateur.( c-à-d informatiser la machine en enlèvant le système des bandes perforées et travailler directementa vec un pc et une carte Arduino)
le but du jeu c'est quoi exactement ? : remplacer le lecteur de bande sur une ancienne CNC par des supports plus modernes et/ou recuperer la programmation
C'est une machine de Wrapping des cartes électroniques fonctionnant avec des programmes gravés sur des bandes perforées.ces programmes contiennent les coordonnées selon les axes (X,Y,Z) où un nez contrôlé par 3 moteurs pas à pas va pointer sur la broche à wrapper .
Le but: 1) récupérer les programmes sur les bandes perforées sur un pc.
2) commander les 3 moteurs pas à pas de la machine avec ces données collectées sur Ordinateur.( c-à-d informatiser la machine en enlèvant le système des bandes perforées et travailler directementa vec un pc et une carte Arduino)
ok
sur la DB25 tu connais déjà l'affectations des pins et les niveaux de communication ?
si oui, interfacer avec un arduino le lecteur ne devrait pas etre trop compliqué
si non , il faut aller à la peche en espionnant le dialogue, ce n'est pas compliqué mais il faut un peu de materiel
pour ce qui concerne les infos elles memes, voir déjà si il existe un semblant de normalisation
pour ça pas besoin d'equipement, il suffit de regarder les premieres perfo et comparer( avec une table ISO par exemple)
explication sur photo
J'a déja traduit une séquence du ruban et voila le résultat
Le premier test avec la carte Arduino uno et le programme cité dans le 1er post m'as donné
1)l quand la machine éteinte: de 00000000 et des fois des 1 alors que la machien est éteinte
2)une fois la machine allumé et j'ai comencer le cycle machine en pédalant la 1ere rangée de perforations donne: des 0 et 1 sur 8 bits
N.B= chaque fois on pédale il y a 24 rangées de perforations qui passent.(sur chaque rangée il y a 8 bits).
ce que je veux faire
lire une rangée de perforations et la traduire sur le moniteur par exemple: 01000001 =A
2)introduire le signal SPKT et CLK parce que ça devrait avoir une importance pour le code
lire une rangée de perforations et la traduire sur le moniteur par exemple: 01000001 =A
2)introduire le signal SPKT et CLK parce que ça devrait avoir une importance pour le code
le lecteur est alimenté en 24V
quel niveau de sortie sur les data? 5V ou autre ?
quel est le sens des lignes SPKT et STEP ?
Je pense mais sans plus de certitude que STEP est en entrée (ordre d'avancement du ruban) et SPKT (piste synchro) est en sortie,
mais ça pourrait parfaitement etre l'inverse
Le doute peut surement etre levé si tu a acces au schema (ou que tu peut pister les lignes vers les composants sur la carte de commande.
tu dispose de quoi comme materiel de mesure ? un oscilloscope ?
le signal Spkt est délivrée avec les 8 bits de datas par le lecteur bande
le même signal horloge (Step) qui alimente tout les circuits intégrés se trouvant sur la carte lecteur bande comme les basules D
ce signal Step doit correspondre au passage des perforations d'entraînement.donc ce signal se génère quelque part dans la machine et alimente tout les composants par le même signal.
tu dispose de quoi comme materiel de mesure ? un oscilloscope ?
j'ai un oscilloscope et un multimètre, Qu'est-ce que je dois réaliser comme mesures??
le signal Spkt est délivrée avec les 8 bits de datas par le lecteur bande
le même signal horloge (Step) qui alimente tout les circuits intégrés se trouvant sur la carte lecteur bande comme les basules D
ce signal Step doit correspondre au passage des perforations d'entraînement.donc ce signal se génère quelque part dans la machine et alimente tout les composants par le même signal.
tu dispose de quoi comme materiel de mesure ? un oscilloscope ?
j'ai un oscilloscope et un multimètre, Qu'est-ce que je dois réaliser comme mesures??
OK
si tu es sur des niveaux de sortie 0/5V , il n'y a plus grand chose à verifier
le lecteur est bien motorisé ? = il entraine lui meme le ruban ?
dernier test à faire quel etat logique sur le pin10 ? (sens de deplacement lecture normale)
a partir de là déjà pour simple test , j'utiliserais simplement l'exemple bouton en affectant à tour de role les differentes sorties y compris SPKT data de la DB25 sur le pin 2 arduino (ne pas oublier la R de pull-down 10K ) pour verifier que cela reagit bien sur la la led13.
si tout ça est bon il ne restera ensuite plus qu'à t'attaquer à la lecture des bytes proprement dit.
S'il vous plait est ce que quelqu'un peut m'expliquer cetet ligne de code: parity ^= rotate; =(
Aidez moi s'il vous plait à élaborer un programme qui calcule le bit de parité??? =(
Magui:
S'il vous plait est ce que quelqu'un peut m'expliquer cetet ligne de code: parity ^= rotate; =(
Aidez moi s'il vous plait à élaborer un programme qui calcule le bit de parité??? =(
Voir ici Bitwise XOR
ça vient de quel code ? parce qu'avec une seule ligne isolée...
pareil pour le calcul de parité (parité paire ou impaire ? ) il s'applique à quoi à un octet lui meme , à un bit de parité de transmission ?
Magui:
S'il vous plait est ce que quelqu'un peut m'expliquer cetet ligne de code: parity ^= rotate; =(
Aidez moi s'il vous plait à élaborer un programme qui calcule le bit de parité??? =(