Mai 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | Calendrier |
|
| | Ma présentation | |
|
+5Nardo26 Jean Claude Klaus JL35 Sylvain 9 participants | Auteur | Message |
---|
Sylvain
Nombre de messages : 4 Age : 72 Localisation : Ath - BE Date d'inscription : 02/12/2010
| Sujet: Ma présentation Jeu 2 Déc 2010 - 17:12 | |
| Bonjour à tous, Tout d'abord, merci au boss de m'offrir ce langage que je trouve complet et assez évolué, avec les explications en français. Ça fait 2 semaines maintenant que je lis ce forum pour essayer de me remettre au basic. Mes connaissances étaient restées au Qbasic et mon dernier programme date de plus de 20 ans (22, je crois) Autant dire que j'ai du boulot devant moi, surtout que je programmais presque uniquement de la gestion de fichier. Le Qbasic m'aurait sans doute encore suffit si ce n'est qu'avec mon grand écran, l'éditeur est tout rikiki et l'exécutable dans une fenêtre DOS, c'est pas ça. Je suis de nouveau intéressé par la programmation parce que je me suis mis en tête de motoriser une bobineuse pour transfos avec des moteurs pas à pas. C'est en faisant une recherche sur Google que j'ai trouvé "parallel-on" et que je suis entré ici. Merci. Sylvain. | |
| | | JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Ma présentation Jeu 2 Déc 2010 - 17:56 | |
| Alors bienvenue parmi nous ami Sylvain.
Je suis un peu dans ton cas, comme beaucoup d'entre nous, venant du QBasic qui permettait beaucoup de chose, mais qui est maintenant un peu dépassé. Avec Panoramic ça permet de faire des programmes beaucoup plus présentables sans difficultés, c'est beaucoup plus agréable à regarder. Et tu as en plus la gestion des événements.
Et pour programmer des machines, si elles utilisent l'interface parallèle il y a les commandes pour ça, tu ne devrais pas avoir de problèmes particuliers, pas comme les interfaces série, notamment usb, qui manquent encore en Panoramic.
Dans tous les cas, c'est sympa de te présenter, et je suis content d'être le premier à te souhaiter la bienvenue ! | |
| | | Klaus
Nombre de messages : 12276 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Ma présentation Jeu 2 Déc 2010 - 18:05 | |
| Bienvenue à toi, Sylvain ! Ca fait toujours plaisir de voir un nouveau parmi nous. En plus, tu nous apportes d'autres intérêts - l'utilisation du port parallèle n'est pas très répandue parmi nous !
N'oublie pas de télécharger et installer inpout.dll pour que cela fonctionne. Sache quand-même que Panoramic gère le port parallèle et écrivant directement un octet sur le port de sortie ou en lisant l'octet d'état du port d'entrée. Tu dois donc scruter le port en permanence (à l'aide d'un timer, par exemple - ne tombe pas dans le piège des boucles d'attente faites en code Panoramic !). Bien que très souple et avec un large éventail de commandes, Panoramic n'offre pas la possibilité de gérer les interruptions sur le port parallèle. Si tu as besoins d'infos ou d'un coup de main, n'hésite pas: le fil de discussion "à l'aide" est là pour ça !
| |
| | | Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Ma présentation Jeu 2 Déc 2010 - 19:54 | |
| Je me joint à mes camarades pour te souhaiter bienvenu.
Nous sommes assez nombreux en provenance de Qbasic. Pour ce qui est de la gestion de fichiers, Panoramic offre beaucoups de commandes FILE_????, il te faudra oublier la façon de faire en Qbasic . Mais c'est pas trop difficile. Surtout qu'après 20 ans sans programmer tu peux repartir de zéro.
Je te souhaite bonne programmation........
A+ | |
| | | Nardo26
Nombre de messages : 2294 Age : 55 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Ma présentation Ven 3 Déc 2010 - 5:29 | |
| Bienvenu à toi Sylvain ! Tu t'attelles à quelque chose de sympa: J'attends de voir le résultat de ta commande de moteur pas à pas ! Bonne programmation ! | |
| | | jjn4
Nombre de messages : 2691 Date d'inscription : 13/09/2009
| Sujet: +++ Ven 3 Déc 2010 - 12:28 | |
| Eh bien, selon la bonne habitude déjà bien établie, je vais souhaiter la bienvenue à Sylvain avec un programme en 3D, oh tout simple, un simple effet de transparence. Inutile de chercher à fermer, il suffit d'attendre et ça ferme tout seul quand c'est fini. Ben finalement, y'a pas d'humour, je dois être en panne, aujourd'hui. Ca va peut-être vous manquer, non ? - Code:
-
rem ' Bienvenue-13 dim m1$ , m2$ , m3$ , n$ , i , j n$="Sylvain" m1$="BONJOUR ET" : m2$="BIENVENUE" : m3$="A "+n$
rem form 0 width 0,1020 : height 0,540 caption 0," "+m1$+" "+m2$+" "+m3$ scene3d 1 width 1,900 height 1,450 for i=1 to len(m1$) 3d_text i,mid$(m1$,i,1) 3d_x_position i,i*0.7-4 3d_y_position i,1.5 3d_color i,int(rnd(2))*25,int(rnd(2))*255,int(rnd(2))*255 3d_transparent i,255 next i for i=len(m1$)+1 to len(m1$)+len(m2$) 3d_text i,mid$(m2$,i-len(m1$),1) 3d_x_position i,(i-len(m1$))*0.7-3.8 3d_color i,int(rnd(2))*255,int(rnd(2))*25,int(rnd(2))*255 3d_transparent i,255 next i for i=len(m1$)+len(m2$)+1 to len(m1$)+len(m2$)+len(m3$) 3d_text i,mid$(m3$,i-len(m1$)-len(m2$),1) 3d_x_position i,(i-len(m1$)-len(m2$))*0.7-len(m3$)*0.4 3d_color i,int(rnd(2))*255,int(rnd(2))*255,int(rnd(2))*25 3d_y_position i,-1.5 3d_transparent i,255 next i wait 800
for i=1 to len(m1$)+len(m2$)+len(m3$) for j=255 to 0 step -8 if mid$(m1$+m2$+m3$,i,1)<>" " 3d_transparent i,j wait 1 end_if next j next i beep
for i=0 to 255 step 2 for j=1 to len(m1$+m2$+m3$) 3d_transparent j,i next j wait 1 next i beep wait 1000
for i=255 to 0 step -2 for j=1 to len(m1$+m2$+m3$) 3d_transparent j,i next j wait 1 next i beep wait 1500 terminate
| |
| | | Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Ma présentation Ven 3 Déc 2010 - 12:44 | |
| Mine de rien, tu progresses en 3d, JJN4. | |
| | | Invité Invité
| Sujet: Re: Ma présentation Ven 3 Déc 2010 - 13:46 | |
| A mon tour de te souhaiter la bienvenu Sylvain.
Contrairement à beaucoup d'entre vous, je n'ai jamais utilisé Qbasic. Je ne connaissais pas et j'avais pas internet à l'époque.
Mais je suis certain que Panoramic t'ouvrira d'autre horizon. Il y a une adaptation au départ pour comprendre la méthode, mais cela vient vite. Et de plus tout est en français.
Bienvenu! |
| | | Sylvain
Nombre de messages : 4 Age : 72 Localisation : Ath - BE Date d'inscription : 02/12/2010
| Sujet: Re: Ma présentation Ven 3 Déc 2010 - 18:45 | |
| Bonsoir à tous, Un grand merci à vous tous pour votre accueil. J'ai même droit à une bienvenue N° 13 Je me suis mis au Panoramic en testant tout les objets système. Avec le Qbasic, on aurait pas pu arriver à ce résultat, même à renfort de librairies. Rien que le gestion de la souris mangeait la plupart des ressources. Tandis que maintenant, c'est d'une simplicité et la présentation très pro..... Ce soir ou demain, je posterais un bout de code que j'ai fais, histoire de connaître tout ce qui peut-être amélioré. Le gros problème sera sans doute surtout une histoire de temps car je crois que la plus petite fraction de temps manipulable est la milliseconde. Or, un driver de pas à pas réagit à des impulsions de quelques µsecondes et un pas à pas a besoin au minimum 200 à 400 impulsions par tour, sur quelques dixième de seconde si on veut atteindre les 3-400 tours/minute. Pour le peu que j'ai essayé, je crois que si la vitesse n’atteint pas des sommets, elle sera quand même suffisante pour mon emploi. A moins que quelque chose m'ai échappé. A très bientôt. Sylvain. | |
| | | Jack Admin
Nombre de messages : 2386 Date d'inscription : 28/05/2007
| Sujet: Re: Ma présentation Ven 3 Déc 2010 - 19:20 | |
| Bienvenue au club. Ce qui sera intéressant dans l'application "robotique" que tu comptes faire avec PANORAMIC, c'est que tu nous fasses part des problèmes que tu rencontres.
Les commandes PARALLEL_XXX sont très basiques (envoi d'un octet, réception d'un octet) et peuvent être améliorées. Je pense par exemple à l'envoi d'une séquence d'octets ou de bits en un temps donné, un peu sur le style de FILEBIN_BLOCK_WRITE N,C,V%(P): PARALLEL_BLOCK_OUT A,T,C,V%(P) qui écrit sur le port A en T millisecondes, C octets qui sont dans le tableau V% à partir du rang P. | |
| | | Sylvain
Nombre de messages : 4 Age : 72 Localisation : Ath - BE Date d'inscription : 02/12/2010
| Sujet: Re: Ma présentation Sam 4 Déc 2010 - 11:26 | |
| Bonjour, Tout d'abord, merci à Jack pour sa proposition et à tous pour votre aide. Je met plus bas un bout de code avec lequel, j'ai fais quelques tests. J'y commande 2 moteurs. J'ai réglé les boucles pour avoir un fonctionnement correct des moteurs. J'ai essayé d'autres boucles et c'est la FOR TO NEXT qui est la plus rapide. Les drivers sont réglés sur le 1/8 ième de micropas, c'est pour ça que les 200 pas des moteurs sont multipliés par 1600. Donc, 1600 impulsions par tour. A 100 T/min, on est déjà à 2.6 Khz rien que pour la commande d'un moteur. Si il faut, On peut descendre ce micro-pas, jusqu'à 200 impulsions par tour moteur mais au dépend de la douceur de fonctionnement (vibrations très importantes) Pour qu'ils puissent tourner à grande vitesse, ils ont besoin d'un démarrage progressif et aussi pour l'application car on travaille avec des fil de cuivre de deux dixièmes et les bobines sont carrées. Ainsi, j'arrive à environ 150 T/min. Le fait de sortir le CAPTION hors de de la boucle me fait déjà perdre environ 100 T/min. C'est pourtant une indication importante pour mon but mais pas primordiale. Il sort mieux sur une case à cocher, je sais pas pourquoi, avec alpha, edit ou autres, soit ça ne marche pas, soit ça n'affiche qu'à la fin. Il me manque encore, un calcul supplémentaire pour le deuxième moteur(guide-fil) car il ne va pas tourner à la même vitesse que l'autre (bobineur) tout en restant synchronisé. Il faut aussi une commande pour scruter les entrés du port// afin de détecter un arrêt d'urgence et du clavier pour varier la vitesse aux passages les plus délicats. Ce serait bien de pouvoir lire une seule pin. Tout ça devrait encore ralentir fort la boucle. Le plus rapide des logiciels dédiés à la commande numériquessous windows, Mach3 d'Artsoft,possède son propre driver (top secret??) qui s'installe comme un périphérique dans le gestionnaire de windows. Ses options à cocher vont jusque 100 Khz mais pour mes CNC, le 25Khz est plus que suffisant. Encore mieux, EMC2 mais là, c'est sous Linux. Voilà, je ne me suis probablement pas orienté du bon côté de Panoramic pour mon premier test, et J'espère que j'ai réussi à vous expliquer mon problème. Si je ne parvenais pas à faire cette application, il me restera la solution de faire un petit programme Panoramic qui une fois les données entrées, me produira le Gcode qui me permettra de bobiner avec Mach3. C'est pas très élégant mais ça marchera, là c'est sûr. Merci à vous et bon weekend. Sylvain. - Code:
-
Label CommandeDesDeuxPAP,quitte Dim a%,f%,PlusVite%,NombreDeTour%,NombreImpultion% Dll_on inpout32.dll:PARALLEL_ON
Caption 0,"Bobineuse" left 0,1150:top 0,300 :width 0,300:height 0,200 color 0,192,192,192
edit 1:left 1,50:top 1,40:width 1,50:height 1,20 button 2:left 2,150:top 2,40:caption 2,"Valider":on_click 2,CommandeDesDeuxPAP Alpha 3:left 3,40:top 3,100:width 3,50:height 3,20 :caption 3,"Tours effectués" check 4:left 4,50:top 4,120:width 4,50:height 4,20 button 5:left 5,150:top 5,100:caption 5,"Quitter":on_click 5,quitte end
CommandeDesDeuxPAP: NombreDeTour%=val(text$(1)) NombreImpultion%=NombreDeTour%*1600 PlusVite%=5000
For a% = 1 to NombreImpultion% PlusVite%=PlusVite%-1 caption 4, int (a%/1600) PARALLEL_OUT 888,4:PARALLEL_OUT 888,1:PARALLEL_OUT 888,0 for f%=1 to PlusVite% step 8:next f% Next a% beep:return Quitte: Parallel_off:Dll_off:Terminate
| |
| | | Klaus
Nombre de messages : 12276 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Ma présentation Sam 4 Déc 2010 - 12:00 | |
| Pour la gestion du moteur:
1. pour avoir une actualisation de l'affichage des composants à l'intérieur d'une boucle, il ne faut pas oublier de placer un DISPLAY après l'affichage - cela instruit Panoramic de faire la mise à jour de l'écran alors qu'il n'est pas en attente d'un évènement, ce qui ne se produit pas normalement.
2. Panoramic n'est pas un systèmùe de programmation "temps réel". C'est un système "évèmnement". Tu ne peux pas faire une boucle d'attente avec mes codes Panoramic et espérer "coller" à la réalité d'un chrono. Je t'avais mis en garde tout au début... Il faut passer en mode évènementiel. Mais ne t'inquiète pas: tous les nouveaux-venus sous Panoramic tombent dans ce piège. Il faut que tu prépares, au début, toutes les initialisations, la préparation de ton écran d'affichage, les variables, l'accès aux fichiers, etc. Puis, tu exécutes la commande END. Ceci instruit Panoramic de passer en mode "évènementiel". A partir de ce moment, c'est le noyeau de PAnoramic qui prend la main et attend un évènement Windows. Il en reçoit énormément, mais ne te transmet que les évènements pour lesquels tu as déclaré une toutine d'évènement par la commande on_xxx dans la première partie du programme. Or, comme je te l'avais dit, le port parallel ne peut pas communiquer d'évènement à Panoramic. C'est là peut-être que Jack peut apporter quelque chose, mais j'en doute: la dll INPOUT utilisé pour gérer le port est faite par un tiers... Ce que tu peux faire en Panoramic, c'est déclarer un timer dans la première partie du programme. C'est un objet Panoramic comme un autre. Et tu peux lui associer une durée en incréments de 1 milli-seconde (tu vois, ce n'est pas un système temps-réel !), et tu déclares une routine d'évènement (d'interruption) par on_timer n,lab pour créer le timer "n". Alors, après le END, tu places un label "lab". Ce label sera appelé par le noyau de Panoramic comme un sous-programme par GOSUB, et tu dois donc le terminer par RETURN. Quand ton sous-programme "lab" est appelé, tu sais que la durée voulue s'est écoulé et tu peux faire ce que tu veux - lire le port ou écrire dessus. Si le traitement dépasse la période prévue du timer, il vaut mieux, au début du sous-programme, faire TIMER_OFF, puis TIMER_ON juste avant le RETURN.
Voilà, je sais que je ne t'offre pas la solution miracle, mais j'espère que tu vois un peu plus clair... | |
| | | dragonno
Nombre de messages : 341 Localisation : Près de Toulouse Date d'inscription : 22/01/2009
| Sujet: Re: Ma présentation Sam 4 Déc 2010 - 19:27 | |
| Salut et bienvenue Sylvain Juste une précision, ce que fait sylvain n'est pas de la robotique mais juste l'opération de bobinage d'un transfo. Je dis ça parce que ne confondons pas la robotique avec tout hein, j'en fais en amateur mais pas avec panoramic pour le moment en tous cas. ça n'empêche Sylvain que ton application est interessante pour les panoramiciens, d'ailleurs je compte bien que tu termine ton programme car j'en aurais besoin pour le bobinage d'un rotor, j'aimerais me faire un moteur personnalisé un de ces jours (quand j'aurais un garage). | |
| | | Klaus
Nombre de messages : 12276 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Ma présentation Sam 4 Déc 2010 - 19:58 | |
| Je sais bien, Dragonno. Ce n'est pas de la robotique, mais pour ce que Sylvain veut faire, il faut une programmation "temps réel", avec une réactivité beaucoup plus fine que ce qui est facilement faisable avec Panoramic. ET en mode linéaire (avant la commande END) c'est carrément impossible. Le seul moyen (et ce sans garantie vu les problèmes de timing), c'est de passer en mode évènementiel et d'utiliser un ou plusieurs timer, vu que le port parallèle sous Panoramic ne peut pas gérer les interruptions, pardon les évènements ! | |
| | | philou029
Nombre de messages : 49 Age : 56 Localisation : BREST Date d'inscription : 17/10/2010
| Sujet: Re: Ma présentation Dim 5 Déc 2010 - 5:00 | |
| très intéressant ton projet sylvain je me souviens il y a quelque année javais fai un grog en qbasique pour piloter une cafetière électrique et je suis servi de de l"excellent ouvrage piloter vos montages de Patrick gueule mais fait attention avec le port parallèle il est beaucoup plus sensible que le port serie une erreur et tu a vite fai de cramer ta carte
bon courage et bienvenue | |
| | | dragonno
Nombre de messages : 341 Localisation : Près de Toulouse Date d'inscription : 22/01/2009
| Sujet: Re: Ma présentation Dim 5 Déc 2010 - 14:13 | |
| - Citation :
- Le seul moyen (et ce sans garantie vu les problèmes de timing), c'est de passer en mode évènementiel et d'utiliser un ou plusieurs timer,
Oui tu as raison, c'est la première chose que j'ai pensé en voyant le post de Sylvain, utiliser le timer. Ah le port parallèle c'était le bon vieux temps, on en faisait des choses avec ça, dommage qu'on puisse plus. Mon deuxieme programme en basic c'était un circuit bouchon (pas celui de la HF) qui permettait de tester les entrées/sorties du port parallèle (un truc tout bête) | |
| | | Sylvain
Nombre de messages : 4 Age : 72 Localisation : Ath - BE Date d'inscription : 02/12/2010
| Sujet: Re: Ma présentation Lun 6 Déc 2010 - 11:41 | |
| Bonjour à tous, Eh bien, c'est encourageant, il y a de l'entraide sur ce forum de passionnés. Merci beaucoup. J'ai encore fait quelques essais mais je dois reconnaître que ça va être sans doute impossible de faire ce que j'aimerais, tout du moins avec élégance. Je suis occupé à changé mon fusil d'épaule mais j'aurai toujours besoin de Panoramic. Le µcontrôleur me semble une solution. Un ami me propose la programmation d'un PIC de Microchip. Il peut m'arranger ça avec l'aide d'une DLL, pour que je puisse commander le processeur avec des commandes simples, genre "set frequence pulse moteur 1, faire XX steps clockwise sur moteur 1, faire zz steps CCW sur moteur 2" etc..., le tout à 20Mhz, sans problème. En gros, on envoie les paramètres au µcontrôleur qui fait le travail, tout en surveillant sur ses entrées tout changements. Et tout ça sur le bus USB. On peut donc ajouter aussi plusieurs contrôles extérieurs, compte-tour et surtout un potentiomètre analogique (et même jusqu'à 12) afin de contrôler la vitesse au pied, pratique pour avoir les mains libres. Les composants de cette électronique coûte environ 30€. Voilà, ça va donc bien simplifier la programmation en Panoramic. Je vous tiens de toutes façons au courant. Cordialement. | |
| | | dragonno
Nombre de messages : 341 Localisation : Près de Toulouse Date d'inscription : 22/01/2009
| Sujet: Re: Ma présentation Lun 6 Déc 2010 - 21:04 | |
| ça se développe bien ton projet Bonne chance et courage. | |
| | | Contenu sponsorisé
| Sujet: Re: Ma présentation | |
| |
| | | | Ma présentation | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |