FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» PANORAMIC V 1
cartographie pour la robotique Emptypar jjn4 Hier à 17:49

» select intégrés [résolu]
cartographie pour la robotique Emptypar jjn4 Hier à 17:00

» number_mouse_up
cartographie pour la robotique Emptypar jjn4 Hier à 11:59

» Aide de PANORAMIC
cartographie pour la robotique Emptypar jjn4 Hier à 11:16

» trop de fichiers en cours
cartographie pour la robotique Emptypar lepetitmarocain Hier à 10:43

» Je teste PANORAMIC V 1 beta 1
cartographie pour la robotique Emptypar papydall Hier à 4:17

» bouton dans autre form que 0
cartographie pour la robotique Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
cartographie pour la robotique Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
cartographie pour la robotique Emptypar Klaus Lun 6 Mai 2024 - 10:23

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
cartographie pour la robotique Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

» @Jack
cartographie pour la robotique Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
cartographie pour la robotique Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
cartographie pour la robotique Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
cartographie pour la robotique Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
cartographie pour la robotique Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment : -50%
-50% Baskets Nike Air Huarache Runner
Voir le deal
69.99 €

 

 cartographie pour la robotique

Aller en bas 
4 participants
AuteurMessage
gigi75

gigi75


Nombre de messages : 101
Age : 51
Date d'inscription : 13/04/2013

cartographie pour la robotique Empty
MessageSujet: cartographie pour la robotique   cartographie pour la robotique EmptyDim 5 Mai 2013 - 23:22

Bonsoir à tous,

Je vous laisse ce petit programme:

En résumer, il cartographie la pièce en dessinant des points qui sont reliés par des lignes. Il manque le moteur pas à pas et sa commande, mais le principe est ok, je tourne la platine de detection sur 360°, les murs apparaissent.

je vous donne le programme qui fonctionne avec la carte, inutile de l'executer, un message d'erreur apparaitra sachant que la liaison avec la carte n'existe pas.



Code:
labels()
constantes()
variables()
GUI()
initialisations()
end

sub labels()
  label  timer1, connect
end_sub

sub constantes()
  dim nom_dll$ : nom_dll$ = "wrapper_K8055d.dll"
end_sub

sub variables()
  dim resultat%, Data1%, Data2%, n%, point%
  dim h%, CardAddr%, lio%
  dim i,a,x,y,x1,y1,angle,hypo, pas
  width 0,1370 : height 0,768
hypo = 10
pas =360
alpha 2 : top 2,8 : left 2,8 : width 2,10 : height 2,49 : caption 2,"Angle en degrée :"
alpha 3 : top 3,8 : left 3,95 : width 3,109 : height 3,49
2d_fill_color 1,1,1
2d_circle 620,350,5
angle = 0
hypo = 0
y = 0
x = 0
end_sub

sub GUI()
    width 0,1370 : height 0,768
    button 21 : caption 21,"Connect" : font_bold 21
    top 21,20 : left 21,8 : width 21,80 : height 21,30
    on_click 21,connect
    alpha 10 : caption 10," Radar V 1.0 Gilles"
    alpha 11 : caption 11, "Sortie 1 analogique :" : font_bold 11 : font_size 11,11
    top 11,100 : Left 11,5




  timer 31 : timer_off 31 : timer_interval 31,50
    on_timer 31,timer1

  alpha 41 : top 41,100 : left 41,150 : font_size 41,11
  alpha 51 : top 51,120 : Left 51,150 : font_size 51,11

end_sub

sub initialisations()
  dll_on nom_dll$
  n% = 1
end_sub
return

timer1:
  timer_off 31
  for i=1 to pas
  resultat% = dll_call1("K8055d_ResetCounter",2)
  resultat% = dll_call2("K8055d_ReadAllAnalog",adr(Data1%), adr(Data2%))
  lio% = data1%*1.6
  caption 41,str$(lio%)
  2d_fill_color 1,1,254
  2d_circle 620,350,5

angle = ((2*3.14116)/pas)+ angle
caption 3,str$ (angle*I)
pause 1
hypo = data1%*2
x = hypo*cos (angle)
y = hypo*sin (angle)
2d_point 620+int (X),350+int(Y)
if i>1
2d_line 620+int (X),350+int(Y),x1,y1
end_if
If i>47
end
end_if

x1 = 620+int (X)
y1 = 350+int(Y)


next i

connect:
h% = dll_call1("K8055d_OpenDevice",CardAddr%)
timer_on 31
  return

Par contre j'ai fait un programme plus simple où l'acquisition de la carte est remplacé par un RND pour que vous voyez.

Code:

dim i,a,x,y,x1,y1,angle,hypo, pas


width 0,1370 : height 0,768
hypo = 10
pas =120
alpha 2 : top 2,8 : left 2,8 : width 2,10 : height 2,49 : caption 2,"Angle en degrée :"
alpha 3 : top 3,8 : left 3,95 : width 3,109 : height 3,49
2d_fill_color 1,1,1
2d_circle 620,350,5
angle = 0
hypo = 0
y = 0
x = 0

label debut


debut:
2d_fill_color 1,1,1
2d_circle 620,350,5
for i=1 to pas
angle = ((2*3.14116)/pas)+ angle
caption 3,str$ (angle*I)
pause 300
hypo = rnd (50)+ 200
x = hypo*cos (angle)
y = hypo*sin (angle)
2d_point 620+int (X),350+int(Y)
if i>1
2d_line 620+int (X),350+int(Y),x1,y1
end_if

x1 = 620+int (X)
y1 = 350+int(Y)


next i
pause 2000

Voilà je débute, bonsoirs à tous

gilles
Revenir en haut Aller en bas
gigi75

gigi75


Nombre de messages : 101
Age : 51
Date d'inscription : 13/04/2013

cartographie pour la robotique Empty
MessageSujet: Re: cartographie pour la robotique   cartographie pour la robotique EmptyDim 5 Mai 2013 - 23:26

Juste pourquoi en 2D, au moins je trouve que cela est plus souple pour travailler après

Gilles
Revenir en haut Aller en bas
mindstorm

mindstorm


Nombre de messages : 685
Age : 55
Localisation : charente
Date d'inscription : 13/02/2013

cartographie pour la robotique Empty
MessageSujet: Re: cartographie pour la robotique   cartographie pour la robotique EmptyLun 6 Mai 2013 - 12:22

Bonjour gille
tu me donne envie,pour l instant je n ai que capteur optique qui porte a 20cm
attention les difficutees arrivent.
Maintenant il faut controler la position de ton robot par rapport au plan que tu as constitue
en effet le robot n est pas un pixel et il a tendance a c ecarter de son chemin
A suivre
mindstorm
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

cartographie pour la robotique Empty
MessageSujet: Re: cartographie pour la robotique   cartographie pour la robotique EmptyMer 8 Mai 2013 - 18:08

Excellente application. Je vais réfléchir à investir
Revenir en haut Aller en bas
gigi75

gigi75


Nombre de messages : 101
Age : 51
Date d'inscription : 13/04/2013

cartographie pour la robotique Empty
MessageSujet: me voilà   cartographie pour la robotique EmptyVen 10 Mai 2013 - 22:22

Bonsoir à tous, désolé du retard

Alors voilà, j'ai fait un petit radar, la commande du moteur n'y est pas, mais le principe fonctionne.

Code:
labels()
constantes()
variables()
GUI()
initialisations()
end

sub labels()
  label  timer1, connect
end_sub

sub constantes()
  dim nom_dll$ : nom_dll$ = "wrapper_K8055d.dll"
end_sub

sub variables()
  dim resultat%, Data1%, Data2%, n%, point%
  dim h%, CardAddr%, lio%
  dim i,a,x,y,x1,y1,angle,hypo, pas
  width 0,1370 : height 0,768
hypo = 10
pas =360
alpha 2 : top 2,8 : left 2,8 : width 2,10 : height 2,49 : caption 2,"Angle en degrée :"
alpha 3 : top 3,8 : left 3,95 : width 3,109 : height 3,49
2d_fill_color 1,1,1
2d_circle 620,350,5
angle = 0
hypo = 0
y = 0
x = 0
end_sub

sub GUI()
    width 0,1370 : height 0,768
    button 21 : caption 21,"Connect" : font_bold 21
    top 21,20 : left 21,8 : width 21,80 : height 21,30
    on_click 21,connect
    alpha 10 : caption 10," Radar V 1.0 Gilles"
    alpha 11 : caption 11, "Sortie 1 analogique :" : font_bold 11 : font_size 11,11
    top 11,100 : Left 11,5




  timer 31 : timer_off 31 : timer_interval 31,50
    on_timer 31,timer1

  alpha 41 : top 41,100 : left 41,150 : font_size 41,11
  alpha 51 : top 51,120 : Left 51,150 : font_size 51,11

end_sub

sub initialisations()
  dll_on nom_dll$
  n% = 1
end_sub
return

timer1:
  timer_off 31
  for i=1 to pas
  resultat% = dll_call1("K8055d_ResetCounter",2)
  resultat% = dll_call2("K8055d_ReadAllAnalog",adr(Data1%), adr(Data2%))
  lio% = data1%*1.6
  caption 41,str$(lio%)
  2d_fill_color 1,1,254
  2d_circle 620,350,5

angle = ((2*3.14116)/pas)+ angle
caption 3,str$ (angle*I)
pause 1
hypo = data1%*2
x = hypo*cos (angle)
y = hypo*sin (angle)
2d_point 620+int (X),350+int(Y)
if i>1
2d_line 620+int (X),350+int(Y),x1,y1
end_if
If i>(pas-1)
end
end_if

x1 = 620+int(X)
y1 = 350+int(Y)
next i

connect:
h% = dll_call1("K8055d_OpenDevice",CardAddr%)
timer_on 31
  return

En fait, le but est de faire tourner un capteur à ultrason ou laser, (moi je suis avec ultrason) et cela cartographie la pièce, attention les ultrason ne sont pas precis par la cause de l'echo.
Revenir en haut Aller en bas
gigi75

gigi75


Nombre de messages : 101
Age : 51
Date d'inscription : 13/04/2013

cartographie pour la robotique Empty
MessageSujet: Re: cartographie pour la robotique   cartographie pour la robotique EmptyVen 10 Mai 2013 - 22:34

Oui le robot n'est pas un pixel, voila pourquoi il faut qu'il analyse sa position apres chaque déplacement.

Mais je but sur un problème, mais Klaus avait répondu, c'est de faire tourner deux ou trois executables avec des relations (une passerelle sur des variables par exemple, car la detection est la cartographie est un module à part entière, mais le reste?, comment le mettre en lien. Si on doit faire un programme entier, je crois que ce sera long.
Bon pour l'instant, je vais fabriquer le plan en deux dimensions, afficher les obstacles. Par contre faire un autre module pour qu'il trouve la sortie d'une pièce sera plus tard, mais je vois pas comment le faire tourner sur un autre executable. Je pense qu'il faut créer la carte avec les obstacles, la sauvegarder (Sous forme de données ou autres), puis le recharger avec un autre executable pour l'exploiter. Qu'en pensez vous?


gilles
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12294
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

cartographie pour la robotique Empty
MessageSujet: Re: cartographie pour la robotique   cartographie pour la robotique EmptyVen 10 Mai 2013 - 22:58

Sincèrement, tu devrais abandonner l'idée de faire tourner certains traitements dans un processus à part. Tu n'as aucune chance de pouvoir synchroniser tout cela de façon satisfaisante.

Prévois plutôt une section de code à l'intérieur de ton programme principal pour analyser la position du robot et sont entourage, en reconstruisant son modèle interne. Et tu appelles ce module de deux manières: d'une part, après l'exécution d'un déplacement quelconque, et d'autre part, par déclenchement par un timer qui intervient à une fréquence ç déterminer.

Bien sûr, pour éviter les conflits, il est nécessaire, qu début de cette routine, de désactiver le timer et de mettre en pause le déplacement du robot. A la fin de la routine, on réactive le timer et on débloque éventuellement le déplacement en cours.

Et voilà - c'est ce qu'on appelle la programmation évènementielle, et Panoramic est justement conçu pour cela. Peu importe que ton programme fasse 100 lignes, 1000 lignes ou 50000 lignes - cela n'est rien par rapport aux capacités mémoire des ordinateurs actuels. Mais tu auras un fonctionnement souple, rapide et efficace.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
gigi75

gigi75


Nombre de messages : 101
Age : 51
Date d'inscription : 13/04/2013

cartographie pour la robotique Empty
MessageSujet: Re: cartographie pour la robotique   cartographie pour la robotique EmptyVen 10 Mai 2013 - 23:02

Merci Klaus pour ta réponse,

tu as raison, essayons, en fait je creer des label? (Sub end_sub)?
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12294
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

cartographie pour la robotique Empty
MessageSujet: Re: cartographie pour la robotique   cartographie pour la robotique EmptyVen 10 Mai 2013 - 23:23

S'il s'agissait seulement d'appeler ce module à la fin d'un traitement, tu pourrais le réaliser sous forme de procédure ou sous forms de subroutine, peu importe.

Mais puisque je suggère de le déclencher également par un timer, cela ne peut être qu'une subroutine, qui commence donc par un label et se termine par un return.

A moins que la subroutine appelée par le timer fasse appel à la procédure...

Selon le modèle suivant:
Code:
label timer_pour_analyse
dim deplacement_en_cours%        : ' 0=pas de déplacement
                                : ' 1=déplacement en cours
                                : ' 2=déplacement suspendu

timer 17                        : ' le numéro 17 est choisi de façon arbitraire
  timer_interval 17,1000        : ' déclencher chaque seconde
  timer_off                      : ' désactiver le timer au départ
  on_timer 1,timer_pour_analyse  : ' lier le timer à sa routine évènement
 


' à faire lorsque le robot a terminé un déplacement
executer_analyse()              : ' on reconstruit l'environnement





' routine évènement du timer
timer_pour_analyse:
  executer_analyse()            : ' on reconstruit l'environnement
  return

' procédure pour reconstruire l'environnement
sub executer_analyse()
  timer_off 17                  : ' bloquer le timer
  if déplacement_en_cours%=1 then deplacement_en_cours% = 2 : ' suspendre
  ' ici faire toutes les analyses
  ...
  if deplacement_en_cours%=2 then deplacement_en_cours% = 1 : ' reprendre
  timer_on 17    : '            : ' libérer le timer
end_sub
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
mindstorm

mindstorm


Nombre de messages : 685
Age : 55
Localisation : charente
Date d'inscription : 13/02/2013

cartographie pour la robotique Empty
MessageSujet: Re: cartographie pour la robotique   cartographie pour la robotique EmptySam 11 Mai 2013 - 8:47

Bonjour a tous
gigi heureux de voir que tu avance
regarde mon robot minipelle et essais de le faire sortir de son enclos cela te permetra de reflechir
mindstorm
Revenir en haut Aller en bas
mindstorm

mindstorm


Nombre de messages : 685
Age : 55
Localisation : charente
Date d'inscription : 13/02/2013

cartographie pour la robotique Empty
MessageSujet: Re: cartographie pour la robotique   cartographie pour la robotique EmptySam 11 Mai 2013 - 13:12

bonjour a tous Smile
je poursuit apres reflexion
il faut veiller a ne pas se perdre en details inutiles sunny
et se concentrer sur le but a atteindre Arrow
la cartographie total et permanente est un but difficile a realiser avec nos moyens.
souvent le robot agit dans un environnement connu et il suffit de le faire reagir convenablement aux evenements (connus du programmeur) qu il rencontrera.
un aspirateur n'a pas besoin de connaitre le plan de la maison mais doit etre capable d'eviter les escaliers et la chute qui vas avec.
les combats de robots se font dans des arenes calibrées aux difficultées definis!
scratch scratch
j'ai cree mon programme de robot pour permettre a chacun de reflechir et simuler avant d'investir dans un equipement reel.
encore en cour d'evolution il est deja sur mon webdav
mindstorm
Revenir en haut Aller en bas
Contenu sponsorisé





cartographie pour la robotique Empty
MessageSujet: Re: cartographie pour la robotique   cartographie pour la robotique Empty

Revenir en haut Aller en bas
 
cartographie pour la robotique
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Aide-mémoire des mots-clés Panoramic
» Petits jeux pour enfants et pour moins jeunes
» Aide pour la création d'un wrapper pour le langage Linotte.
» Pour mes petits-enfants et pour les vôtres
» Un peu pour JL35 et pour vous et moi

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: