dsDRO

  • Auteur de la discussion MaX-MoD
  • Date de début
M

MaX-MoD

Compagnon
Chose promise, chose due!
Et quitte à faire les choses, autant les faire bien!

logo.png


Intro:


dsDRO est un interface DRO (Digital ReadOut). Un DRO est un affichage sur machine outil de la position de l'outil.
Il est réalisé autour d'un dsPIC et fera l'interface entre les règles digitales chinoises et un PC (écran LCD possible dans le futur).


Les caractéristiques:



Il y a:
  • 3 ports pour Pieds A Coulisse digitaux
  • 1 port utilisable soit pour un PAC, soit pour un encodeur quadrature (par exemple, pour un diviseur etc.)
  • Une entrée pour une fourche optique ou un capteur Hall pour mesurer la vitesse de rotation d'une broche
  • Un port d'extensions, pour le LCD et les prochaines évolutions!

Interfaces supportés:
  • Interface "2x24 bits"
  • interface 7 BCD
  • Interface PAC castorama

Affichage des positions :
  • Affichage sur un programme dédié: dsView
  • Affichage sur un écran LCD 4*20 ou graphique (cela viendra après que dsDRO soit complètement opérationnel sur PC)

et bien sûr il y aura un bootloader pour upgrader le firmware si une nouvelle fonction est apparue entre temps, ou qu'un bug a été corrigé :)


Si il y a des personne qui veulent participer, vous êtes les bienvenues :wink:


Avancement de la V1: 100%


La première version de dsDRO est terminée. La plus part des fonctions prévues sont implémentées et testées, d'autres viendront par la suite.

  • Interface PC : OK
  • Initialisation de l'horloge, ports, etc. FAIT
  • Communication bas niveau (E/S série): FAIT
  • Capture des données des règles, protocole 2*24: 100% a tester
  • Capture des données des règles, protocole 7BCD: 100% a tester
  • Capture des données des règles, protocole "casto": OK
  • Capture d'interface TTL : 0%
  • Capture de la vitesse de la broche: 100% à valider
  • Entrée encodeur quadrature: 100%
  • Gestion bas niveau des menus: OK
  • Menus: 100%
  • Mise en forme des données pour les afficher:OK
  • Sauvegarde de la configuration en mémoire non volatile : OK
  • Alimentation (1.5V/-1.5V) des règles: Terminé. à valider
  • Interface 1.5V/5V entre règle et PIC: Terminé. à valider
  • dispositif permettant de forcer les sortie DATA et CLOCK des règles pour modifier leur mode de fonctionnement: Terminé. à valider
  • Routage de la carte mère: TERMINE
  • Routage des cartes filles (interface règle=>TTL) : TERMINE

Page du projet


Toutes les informations utiles sont sur origo.
Il y a un serveur SVN pour récupérer les fichiers sources du code du dsPIC et du projet KiCAD pour le PCB.
La doc est encore un peu pauvre, elle doit recevoir encore pas mal de pages.
http://dsdro.origo.ethz.ch/wiki/doc




Assembler sa carte



La V1.0 est prête.
Les derniers fichiers (Firmware et dsView) seront bientôt à disposition. http://dsdro.origo.ethz.ch/download

Un dossier de construction est commencé, mais pas encore fini:

http://dsdro.origo.ethz.ch/wiki/doc#toc0


Bêta-testeurs



Pour signaler un bug ou proposer une amélioration, il y a un système de gestion intégré à Origio:
http://dsdro.origo.ethz.ch/issues


Photos



dscn0101_s.jpg
Proto de la version finale, à 30F4011. Il manque le connecteur d'extension​


Max
 
R

romteb

Fondateur
J'ai pas les compétences mais tu as mon soutient moral :itm:

Encore un projet qui pootre :supz:
 
M

MaX-MoD

Compagnon
romteb a dit:
J'ai pas les compétences mais tu as mon soutient moral :itm:

Encore un projet qui pootre :supz:

Ca avait l'air d'intéresser pas mal de monde, et comme ça risquait de m'être utile un jour ben je me suis lancé :wink:

Je vais peut être aussi dépoussiérer ma platine 18F4550 USB.
J'ai quelques trucs là dessus, je verrais ce que je peux en faire... vu que le port série est en voie de disparition :sad:

et même si ça fait le 3e projet que je mène de front, ça me permet de ne pas rester tout le temps sur le même projet, ça me gonfle au bout d'un moment.

A+
Max
 
N

nektarfl

Compagnon
Je sens que ton projet pourrait être intéressant, mais certains termes m'échappent (OK, en électronique, j'ai à chaque fois décroché aux transistors :oops: ) Si tu pouvais expliquer le but final (avec des mots français pour que le nul que je suis puisse comprendre le pourquoi du comment) je pense que ça aiderait.

1) qu'est-ce qu'une interface DRO?
2) qu'est-ce qu'un dsPIC? ou un PIC?

BCD : Binaire Codé Décimal?

3) qu'est-ce qu'un C30?

Ensuite, tu codes ... quel langage pour quel processeur/machine?

Comme tu le vois, je te soutiens moralement dans ton projet, mais j'avoue que là, mon neurone a vraiment du mal! :lol:
 
M

MaX-MoD

Compagnon
nektarfl a dit:
1) qu'est-ce qu'une interface DRO?
Les DRO (pour Digital ReadOut) sont sont des afficheurs digitaux, principalement pour les coordonnées d'une machine outil.
Le but est d'utiliser des pieds à coulisse électroniques, qui possèdent une sortie série de la position mesurée, et d'afficher les différentes coordonnées X,Y et Z (et même l'angle d'un axe A si on veut) sur un ordi ou un écran LCD plus grand et lisible que les afficheurs LCD des règles elles-même.

nektarfl a dit:
2) qu'est-ce qu'un dsPIC? ou un PIC?
une famille de microcontrôleurs vendu par Microchip, très performante et facile à programmer, en langage C (C30 est le compilo de Microchip)

nektarfl a dit:
BCD : Binaire Codé Décimal?
si je me souviens bien, oui :meganne:

nektarfl a dit:
Ensuite, tu codes ... quel langage pour quel processeur/machine?
en C (C30) sur un PC et pour un microcontrôleur (petite bébête à 28-40+ pattes qu'on soude sur un circuit imprimé)

nektarfl a dit:
Comme tu le vois, je te soutiens moralement dans ton projet, mais j'avoue que là, mon neurone a vraiment du mal! :lol:
hmm, oui je comprends, je vais essayer de faire le ménage dans tout ça demain (enfin ce midi)
ah, et fait bien gaffe à ton neurone, il est important celui-là^^

Max
 
W

wika58

Compagnon
Super Max-MoD,

C'est bien les gens qui tiennent leurs promesses :wink:

Comme mes prédécesseurs, je ne peu t'aider dans ce domaine... :???: ... mais je te soutien de toute mes forces pour que tu ailles au bout de ce projet....:wink:
... et que je puisse en profiter pour l'installer sur ma fraiseuse. :lol: :lol: :lol:

Je suis en train d'installer 3 PàC montés en règles sur les 3 axes et je prévois déjà le câblage pour alimenter les PàC et rappatrier les infos... :roll:

D'avance merci pour cette réalisation que tu vas partager. :smt038

Pourrais-tu déjà faire une liste du matériel qu'il faudra pour réaliser cet interface DRO afin que je commence à chercher le matos... :wink:
 
W

wika58

Compagnon
Une petite sugestion.. :?:

Serait-il possible que cet interface puisse aussi faire la vitesse de broche? 8-)
 
N

nektarfl

Compagnon
Merci pour ces explications Max-Mod, je comprends maintenant bien mieux l'idée du projet, c'est de réaliser une visu 3D sur une machine. Je me sens désormais moins inutile car ayant, dans le passé programmé en objective C (NeXT et mac osX)
La programmation devant alors traduire une valeur en une série de bits pour que l'afficheur allume les diodes correspondant à la valeur affichée (voire même autre chose en cas de besoin)

Il est vrai que je n'ai jamais tenté de lire les valeurs qui étaient envoyées à partir d'un pied à coulisse numérique (est-ce un format numérique, ou une suite de caractères ASCII?)

wika58 a dit:
Serait-il possible que cet interface puisse aussi faire la vitesse de broche? 8-)
A priori, si un système de comptage permet de récupérer le passage de la broche en une position (par interruptions ?) Le calcul d'une vitesse de rotation doit pouvoir être faisable (si une horloge est aussi intégrée au système) mais peut-être cela complique-t-il l'idée initiale.
 
W

wika58

Compagnon
nektarfl a dit:
...
wika58 a dit:
Serait-il possible que cet interface puisse aussi faire la vitesse de broche? 8-)
A priori, si un système de comptage permet de récupérer le passage de la broche en une position (par interruptions ?) Le calcul d'une vitesse de rotation doit pouvoir être faisable (si une horloge est aussi intégrée au système) mais peut-être cela complique-t-il l'idée initiale.

La détection de rotation broche est très simple à faire avec un capteur opto... 8-)

Le microcontrôleur a une horloge interne. Peut-être pas hyperprécise, mais la précision que l'on recherche sur la vitesse de broche... :roll:
Si on fait un développement autour d'un PIC, pour la vitesse de broche, il faut juste une entrée supplémentaire et un bout de soft (que je suis incapable d'écrire ...) mais toute la gestion de l'afficheur ou de la liason vers le PC est déjà faite.

C'est pour cela que je "suggérais" cette option supplémentaire (qui pourrait être faite dans une phase II du projet mais qui serait prévue dès le début au niveau du HW...) :roll:
 
M

MaX-MoD

Compagnon
alors les règles ont des protocoles de transmission série synchrone (comprendre une pin d'horloge et une pin de donnée) particulière.
Elles sont décrites sur Yadro.de

La liste du matériel requis est assez sommaire:
-Un PC :P
-Un pic programmé.
-un quartz (4 à 7.37MHZ)
-un MAX232 et ses condensateurs associés
-une prise DB9
-Des optocoupleurs seront peut-être à prévoir dans certains car car la masse des PAC est reliée au + de leur pile
-de quoi faire un alim -1.5V (ou 1.5V dans le cas ou la masse de la machine est isolée de la masse du PIC)
-De quoi monter la sortie à 1.5V à 5V (transistors/chip dédié?)
-Des condensateurs au tantale (entre 1 et 10µF devraient suffire) pour se passer des piles dans les PAC
-une source de courant 5V (à vue de nez, moins de 500mA), comme par exemple récupérée d'un port USB d'un PC


La vitesse de la broche (je l'avais oubliée celle-la) aura son entrée dédiée.
et en ce qui concerne l'horloge d'un PIC, avec un Quartz elle est hyper précise!
La partie soft est simple, je vais peut-être même commencer par ça, car je serais en mesure de ne tester que ça, j'ai pas (encore) de PAC digital...

Bien sur les suggestions sont bienvenues :wink:

Je publierais le code actuel dans quelques temps, je dois d'abord commenter, nettoyer tout ça, etc.
Mais je vous préviens de suite, la programmation sera très proche du silicone! (comprendre, il faut pas mal connaître l'HW du PIC)
Je m'efforce de faire un code qui fasse le plus abstraction possible des manipulations de registres du PIC, pour avoir une évolutivité plus simple.

A+
Max
 
L

legelbe

Compagnon
coucou, votre projet m'interesse au plus haut point. neanmoin, je suis une huitre en electronique :wink: . mais je ne demande qu'a apprendre. je suivrai donc ce fil avec interet......
 
P

Pierreg60

Compagnon
coucou, votre projet m'intéresse au plus haut point. néanmoins, je suis une huitre en électronique Wink . mais je ne demande qu'a apprendre. je suivrai donc ce fil avec intérêt......

ben oui moi aussi.......
 
W

wika58

Compagnon
Génial Max-MoD,

Je vais commencer à rassembler tout ça. :roll:
Dommage qu'on ne soit pas du même coin car des PAC j'en ai quelques'un (installés ou en attente de montage...).
Et là, j'aurais pu t'aider et participer au projet...

Pour le PIC, qu'elle référence ?

Une question complémentaire:
Le PC que je compte installer près de mes machines est un petit portable (HP Omnibook 6000) que mon amis est en train de me préparer sous Linux.
Dans ton projet, qu'as-tu prévu du côté PC?
Une aplication Windows (en C) ?
C'est normalement portable sur Linux... :?:

Je sais que certains sur ce forum sont intéressés par les applications de CNC sous Linux... :roll:
 
M

MaX-MoD

Compagnon
oui on est quant même assez loin l'un de l'autre :lol:

pour le PIC, c'est à peu près comme tu veux dans la famille des pic 16bits...
il faut pas mal de mémoire, aussi le 30F4012 me semble bien proportionné.
j'en vois déjà qui soureint à la lecture de cette dernière ligne, mais je connais bien plus sur les 30F et C30 que les usuels 16F87x :)

coté PC, il faut juste un terminal série (même les MAC doivent en avoir un :P ), sinon je ferais une appli GTK linux portable sur win mac etc, vu qu'il y a apparemment des libs. RS232 itou itou :-D
mais pour l'appli PC, je suis un gros noob alors ça risque de prendre du temps :wink:
Je conaissais mieux Visual Basic mais c'est windaube uniquement (c'est caca tout plein et pas geek dutout)

A+
Max
 
D

Doctor_itchy

Compagnon
hello

je suis ton popost de pret

pour moi si tu peu faire un truc autonome donc avec 3 axe et 3ecran lcd par axe , avec option habituelle pour remise a zero de l'axe , cotation en pouçe/millimetre , paver numerique pour rajouter une valeur sur un des axe ,ect

voila le miminum a faire pour interesser tout le monde et moi en premier :lol:

avec si possible entree pour regle chinoise et encodeur a quadrature !! commutable !!

se serais le top

(ps je suis occuper a router les pcb pour les carte servo , normalement la semaine prochaine je devrais commençer les tests ^^
 
A

alex68

Apprenti
pareil je suis ce post de pret ......

Un ptit dro pour mes machines conventionnelles ca serait le bonheur !!

Bonne chance Max !!
 
W

wika58

Compagnon
MaX-MoD a dit:
...aussi le 30F4012 me semble bien proportionné.
j...
coté PC, ...
mais pour l'appli PC, je suis un gros noob alors ça risque de prendre du temps :wink:
...

OK, je regarde ce que je peux trouver dans ce sens...

Pour l'appli PC, J'ai peut-être une solution.
J'avais demandé à mon ami qui touche en microcontrôleurs et en PC (Linux,...) de regarder s'il pourrait me faire ce DRO sur PC. Mais il n'a pas trop de motivation car il n'en voit pas l'intérêt.
Mais si c'est juste l'appli côté PC, je crois que ce sera possible.
Et puis pour la partie visu sur le PC, Visual Basic est assez bien adapté. Et il existe un équivalent sous Linux.

Il suffirait de décrire un protocole entre le microC et le PC et ainsi, chacun pourrait développer sa partie et on avancerait deux fois plus vite...

Qu'en penses-tu?

J'en parle à mon ami...

P.S: Crois-tu que la vitesse de transmission de la liaison série soit suffisante?
Dans le projet que nous avions discuté, il avait prévu de faire un échange par un protocole synchrone (RX, TX, Clock) sur 1E et 2S du port // du PC.

Quel est ton point de vue sur ceci.

Bon dimanche.
 
M

MaX-MoD

Compagnon
@ Ichy:
Je note :wink:

@Alex:
Merci :-D

@Wika:
Eh bien ça tomberait bien si ton amis pouvait faire le soft :-D
pour la transmission série, à 56Kbits/s il n'y aura pas de pb je crois^^
avec disons 10DRO on pourrait avoir des rafraîchissements des positions à plus de 100HZ...

j'avais regardé ce qu'on pouvait faire avec le port //, mais vu la vitesse de transmission des règles, le port // n'est pas assez rapide, ou tout juste.
De plus ça aurait été bcp plus complexe (noyeau temps réel, linux uniquement...)
Sinon faire un protocole série synchrone avec le port //, c'est possible mais je ne m'avancerais pas sur la vitesse de transmission.
que ce soit I2C ou SPI les deux sont présents sur les dsPIC, donc c'est au choix, et en fonction des ressources du PC (présence d'un port série ou non).

pour le protocole (coté SW), je pensais un truc simple (ASCII), ça ressemblerait à ça:
A est le 'numéro' de l'entrée PAC, xxxxxx la valeur de la coordonnée, et ainsi de suite.
Il est très facile de récupérer les coordonnées de cette manière.
Il ne faut alors plus qu'une petite mise en forme et voila!
Après, on pourra rajouter un utilitaire de config, le dialogue se faisant par paquets (simple et robuste) entre PC et PIC, ou même via console série intégrée (dsDRO sera de toute façon paramétrable via hyperterminal ou tout equivalent linux/mac)

A+

Max
 
W

wika58

Compagnon
OK mad-MoX,
J'en parle avec lui et je tiens au courant.

Je suis très content de cette possible collaboration... :wink:

Au plaisir. :wink:
 
P

PsykoK

Compagnon
Slt,

Superbe projet!

Pour al transmission des données entre le dro et le PC on peut aussi tabler sur un port USb car il existe maintenant des module USB pour presque rien et en plus de l'utilisation est guère plus complique qu'un port RS232

Sinon pour le reste je peux aussi donner un petit coup de main j’ai de bonne base en électronique et pas mal d’expérience dans la réalisation de PCB. Pour le PIC je vais suivre ca de prêt ca je débute dans ce domaine :D
Pareil pour la partie soft PC :D


@++
 
M

MaX-MoD

Compagnon
super, encore un intéressé :-D

les 18F4550 de microchip on un port USB, sont assez peu chèrs et il existe multitude de codes sources pour émuler, par exemple, un port série, sans pilotes, sans rien, on branche et ça marche (win 2000 et supérieur, linux 2.x et supérieur)
Super donc pour donner un port USB à dsDRO, sans avoir besoin de bcp plus de composants (ou de devoir souder des QFP :P )

je ferais bientôt un petit schémas, tu pourrais faire le routage PsykoK?
ce soir j'espère pouvoir distribuer le code déjà produit.

Max
 
W

wika58

Compagnon
Super,
Un projet qui à mon avis va aboutir sur qqch de super...et home-made. :wink:

On attend ton shéma avec impaticience... :smt023
 
P

PsykoK

Compagnon
Pas de problème je peut m'occuper du routage :D:D

Faut juste établir un cahier des charges pour savoir vers quoi je dois me diriger.


Au faite pour l'affichae du dro a mon avis le plus top c'est de tabler sur des afficheurs a digit rouge, c'est plus visible que les LCD.


Petite question, tu utilises quoi comme soft pour les PCB??
Moi je bosse sous Eagle!


@++
 
M

MaX-MoD

Compagnon
Wika, moi aussi je l'espère :wink:

PsykoK, moi j'aime pas Eagle :smt078
enfin disons que j'a jamais accroché...

Je bosse avec Target! 3001.

pour une 50aine d'euros, je ne suis pas limité en taille et j'ai pas mal de possibilités (limites 750pins, 2 couches je crois): routage, face avant, sortie directe de G-code pour les PCB (avec créations de pin pour retourner le PCB en dbl face), etc.

pour l'affichage led, c'est avec le VFD (Vacuum Fluorescent Display, les écrans des caisses des supermarchés) ce qui a le plus de contraste.
en revanche, c'est plus complexe à contrôler que les LCD.
mais il y aura probablement une version à affichage 7seg, ça dépend.

bon je zipe tout ça et je poste mon code.
 
L

legelbe

Compagnon
moi je prefère le 7 segments, le lcd, c'est pas très lisible.....



petit hs: comment fait on un circuit imprimé en mode debutant????
 
M

MaX-MoD

Compagnon
legelbe a dit:
petit hs: comment fait on un circuit imprimé en mode debutant????

un stylo permanent, une plaque cuivrée non présensibilisée, un bain de perchlo, et SURTOUT de la patience^^

voila le code!
En revanche, comme je ne m'attendais pas vraiment à ce que je ne sois pas le seul à bosser dessus, tous les commentaires sont en Anglais!
Eh oui, ils parlent la langue de Shakespear sur le forum microchip...

je vais voir si je peux pas faire un trad auto et la corriger, mais ça va faire du boulot :???: Voir la pièce jointe dsDRO.zip
 
F

Fred8

Compagnon
Salut,
Moi aussi, je suis très intéressé (de même pour la numérisation de la SX3 d'ailleurs, mais chaque chose en son temps).
J'aimerais bien apporter ma pierre à l'édifice, mais je n'ai pas assez de temps à moi, et je ne serai pas un partenaire fiable.

Max, j'ai commencé à regarder tes source, il manque juste ta librairie dsdro.h pour compiler.
 
M

MaX-MoD

Compagnon
non, pire, il manquait aussi timer.c.

mais il faut encore du boulot pour que ça compile :wink:

c'est en grand chantier^^
 
W

wika58

Compagnon
Y'a un problème...
Je sais pas et j'ai rien pour compiler :cry: :cry: :cry:
 

Sujets similaires

esloch
Réponses
52
Affichages
1 861
esloch
esloch
fred03800
Réponses
2
Affichages
899
petit_lulu
petit_lulu
B
Réponses
13
Affichages
1 355
Ubert
U
D
Réponses
2
Affichages
4 248
metalux
M
Coyote94
Réponses
41
Affichages
3 416
Hubert86
H
P
Réponses
44
Affichages
2 442
p7m13
P
D
Réponses
6
Affichages
1 233
ornemaniste
ornemaniste
Haut