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
Radar pour futur projet Emptypar jjn4 Aujourd'hui à 17:49

» select intégrés [résolu]
Radar pour futur projet Emptypar jjn4 Aujourd'hui à 17:00

» number_mouse_up
Radar pour futur projet Emptypar jjn4 Aujourd'hui à 11:59

» Aide de PANORAMIC
Radar pour futur projet Emptypar jjn4 Aujourd'hui à 11:16

» trop de fichiers en cours
Radar pour futur projet Emptypar lepetitmarocain Aujourd'hui à 10:43

» Je teste PANORAMIC V 1 beta 1
Radar pour futur projet Emptypar papydall Aujourd'hui à 4:17

» bouton dans autre form que 0
Radar pour futur projet Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Radar pour futur projet Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Radar pour futur projet Emptypar Klaus Lun 6 Mai 2024 - 10:23

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

» @Jack
Radar pour futur projet Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
Radar pour futur projet Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Radar pour futur projet Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Radar pour futur projet Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Radar pour futur projet 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 : -39%
Pack Home Cinéma Magnat Monitor : Ampli DENON ...
Voir le deal
1190 €

 

 Radar pour futur projet

Aller en bas 
2 participants
AuteurMessage
gigi75

gigi75


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

Radar pour futur projet Empty
MessageSujet: Radar pour futur projet   Radar pour futur projet EmptyJeu 14 Aoû 2014 - 18:57

Bonjour,

Je partage ce bout de code pour de futurs projets.
C'est un radar où dans l'attente de connexions avec le monde réel (Robotique, autre,) des échos sont crées aléatoirement.
Ce code est vide, dans l'attente de toute idée.

Gilles

Code:
' Radar 360° avec échos aléatoires pour projet robotique



' déclaration variable

' variable coordonées
dim x,y
' ligne de balayage
dim x1,y1,x2,y2
' rand d'echo
dim rand
' variable standard de boucle
dim i
' position des échos
dim dist
dim px
px=180
' tempo des echos
dim tp
' probabilité des échos
dim pr
pr=40
' données prédéfinis variables
x=0
 
' déclaration label
label balayage, sortie
 
 
' construction fenêtre principale
maximize 0 : color 0,255,255,255 : caption 0,"Radar 1.0"
 
 
 
' affichage dans fenêtre
button 102 : left 102,300 : width 102,110 : top 102,66 : font_color 102,145,145,145 : font_bold 102 : caption 102,"Exit" : on_click 102, sortie

' création du radar

2d_pen_width 5 : 2d_pen_color 2,2,2 : 2d_circle 750,300,200

 
' balayage
balayage:
for i=1 to 500 step 0.03
x=int(190*(cos(i)))
y=int(190*(sin(i)))
2d_pen_width 5 : 2d_pen_color 0,0,0: 2d_line 750,300,750+x,300+y
wait 20
2d_pen_width 5 : 2d_pen_color 255,255,255: 2d_line 750,300,750+x,300+y
2d_pen_width 5 : 2d_pen_color 255,255,255: 2d_line 750,300,751+x,301+y
2d_pen_width 5 : 2d_pen_color 255,255,255: 2d_line 750,300,749+x,299+y
2d_pen_width 5 : 2d_pen_color 255,255,255: 2d_line 750,300,749+x,301+y
2d_pen_width 5 : 2d_pen_color 255,255,255: 2d_line 750,300,751+x,299+y
' traitement écho
rand=int((rnd(pr)))
dist=int((rnd(px)))
if rand=10
  beep
  x=int((190-dist)*(cos(i)))
  y=int((190-dist)*(sin(i)))
  2d_pen_width 5 : 2d_pen_color 255,0,0: 2d_circle 750+(x-1),300+(y-1),2
end_if
next i
end

' fin du programme
sortie:
terminate
end

Revenir en haut Aller en bas
Klaus

Klaus


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

Radar pour futur projet Empty
MessageSujet: Re: Radar pour futur projet   Radar pour futur projet EmptyJeu 14 Aoû 2014 - 19:23

Pas mal ! Qu'est-ce que tu veux connecter comme radar, et par quel interface ?

EDIT

Je vois que tu as mis tout ton traitement avant le END, dans la procédure principale qui en principe ne sert qu'à créer l'environnement d'exécution (les objets visuels, chargement de fichiers de paramètres, ...). Un bouton ou une ligne dans un menu devrait déclencher le traitement. Je me suis permis d'adapter ton programme à cette structure. Voici le résultat (pas de panique, la modif est minime !) :
Code:
' Radar 360° avec échos aléatoires pour projet robotique



' déclaration variable

' variable coordonées
dim x,y
' ligne de balayage
dim x1,y1,x2,y2
' rand d'echo
dim rand
' variable standard de boucle
dim i
' position des échos
dim dist
dim px
px=180
' tempo des echos
dim tp
' probabilité des échos
dim pr
pr=40
' données prédéfinis variables
x=0

' déclaration label
label balayage, sortie


' construction fenêtre principale
maximize 0 : color 0,255,255,255 : caption 0,"Radar 1.0"



' affichage dans fenêtre
button 102 : left 102,300 : width 102,110 : top 102,66 : font_color 102,145,145,145 : font_bold 102 : caption 102,"Exit" : on_click 102, sortie
button 103 : left 103,300 : width 103,110 : top 103,96 : font_color 103,145,145,145 : font_bold 103 : caption 103,"Start" : on_click 103, balayage

' création du radar

2d_pen_width 5 : 2d_pen_color 2,2,2 : 2d_circle 750,300,200

end

' balayage
balayage:
for i=1 to 500 step 0.03
x=int(190*(cos(i)))
y=int(190*(sin(i)))
2d_pen_width 5 : 2d_pen_color 0,0,0: 2d_line 750,300,750+x,300+y
wait 20
2d_pen_width 5 : 2d_pen_color 255,255,255: 2d_line 750,300,750+x,300+y
2d_pen_width 5 : 2d_pen_color 255,255,255: 2d_line 750,300,751+x,301+y
2d_pen_width 5 : 2d_pen_color 255,255,255: 2d_line 750,300,749+x,299+y
2d_pen_width 5 : 2d_pen_color 255,255,255: 2d_line 750,300,749+x,301+y
2d_pen_width 5 : 2d_pen_color 255,255,255: 2d_line 750,300,751+x,299+y
' traitement écho
rand=int((rnd(pr)))
dist=int((rnd(px)))
if rand=10
  beep
  x=int((190-dist)*(cos(i)))
  y=int((190-dist)*(sin(i)))
  2d_pen_width 5 : 2d_pen_color 255,0,0: 2d_circle 750+(x-1),300+(y-1),2
end_if
next i
end

' fin du programme
sortie:
terminate
end


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

Radar pour futur projet Empty
MessageSujet: Re: Radar pour futur projet   Radar pour futur projet EmptyVen 15 Aoû 2014 - 0:37

Klaus,

Je vais connecter un servo moteur avec un detecteur ultrason juste pour simuler un vrai radar.
Le but est d'apporter de l'aide pour plus tard en apportant quelques brique de passion pour d'autre.

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

Radar pour futur projet Empty
MessageSujet: Re: Radar pour futur projet   Radar pour futur projet EmptyVen 15 Aoû 2014 - 0:41

Intéressant. Et prometteur...
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

Radar pour futur projet Empty
MessageSujet: Re: Radar pour futur projet   Radar pour futur projet EmptySam 16 Aoû 2014 - 10:46



Bonjours,

Encore du radar,et encore.
Jack a parler de robotique, etc. Faisons honneur.
Jack pour la connexion Arduino sans DLL, serait le pied, en soket aussi. Jack si tu le souhaite je t'envoie une Arduino YUN (Carte arduino avec WIFI).
arduino yun

Je continue donc les radar puisque c'est la base pour éviter qu'un robot se cogne partout.

Le radar d'aujourd'hui capte des échos pour l'instant aléatoire (Il ne fait que ca pour l'instant)

Le but est de trouver la meilleure sortie, et aussi de dessiner la carte en 3D des échos.

Je partage toujours avec grand plaisir ces petits programmes qui ne servent à rien maintenant mais des briques pour panoramic dans le futur.
Pour les critiques je suis preneur, chaques critiques est une pierre de plus dans les fondations.

Pour les Sub, je débuterais bientôt. je continue doucement.

Merci à Jack, et à la communauté Panoramic.

Code:
 ' description programme
 ' Un balayage en une passe trouve des échos, puis analyse l'image pour trouver la sortie la mieux adaptée
 ' Un tirage aléatoire des échos dans l'attente de connecter un interface servo ave un radar ultrason
 ' Création d'un dessin 3D de la scene




 ' déclaration de variable
 dim i : ' boucle
 dim y,x : ' Coordonnées balayage
 dim y1,x1 : ' Coordonnées centre radar
 dim degree : ' Variable degrée
 dim af : ' Variable affichage texte echo
 dim posiecho : ' Position aléatoire de l'echo (En remplacement interface)
 dim distance : ' Distance de l'echo aléatoire (En remplacement interface)
 dim rand : ' Probabilité d'echo (En remplacement interface)
 dim dist : ' Variable de distance echo (En remplacement interface)
 dim afpo : ' Variable position affichage echo (top)
 dim inecho : ' Incrementation echo
 dim tempoecho : ' Tempo affichage Echo (Pour eviter d'être écrasé)
 dim presecho : ' Echo trouvé
 dim xx,yy : ' Retard écho
 dim dist1 : ' Vrai distance
 dim alerte : ' echo distance minimale
 dim line1, line2, line3, line4 : ' position ligne périmètre
 ' valeur variable
 y1=650
 X1=325
 degree=0
 posiecho=8
 distance=200
 afpo=30
 inecho=2
 tempoecho=1
 presecho=0
 alerte=20
 ' déclaration de label
label sortie, balayage, analyse

 ' déclaration fenêtre principale
button 100 : left 100,10 : width 100,110 : top 100,650 : font_color 100,145,145,145 : font_bold 100 : caption 100,"Exit" : on_click 100, sortie
button 101 : left 101,10 : width 101,110 : top 101,600 : font_color 101,145,145,145 : font_bold 101 : caption 101,"Start" : on_click 101, balayage
button 102 : left 102,10 : width 102,110 : top 102,550 : font_color 102,145,145,145 : font_bold 102 : caption 102,"Analyse" : on_click 102, analyse
hide 102
maximize 0 : color 0,200,200,255 : caption 0, "Reperage radar"
alpha 1 : left 1,580 : top 1,650 : font_color 1,0,0,1 : font_bold 1 : ' affichage degree

 ' création du cadre radar
2d_pen_width 5
2d_rectangle 300,50,1000,600
end

balayage:
for i=4.716 to 11 step 0.03
degree=degree+1.7142864
caption 1, "Degrées :" + str$(int(degree))
x=int(268*(cos(i)))
y=int(268*(sin(i)))
2d_pen_width 5 : 2d_pen_color 0,0,0: 2d_line y1,x1,y1+x,x1+y
wait 20
2d_pen_width 5 : 2d_pen_color 255,255,255: 2d_line y1,x1,y1+1+x,x1+y
2d_pen_width 5 : 2d_pen_color 255,255,255: 2d_line y1,x1,y1+1+x,x1+1+y
2d_pen_width 5 : 2d_pen_color 255,255,255: 2d_line y1,x1,y1-1+x,x1-1+y
2d_pen_width 5 : 2d_pen_color 255,255,255: 2d_line y1,x1,y1-1+x,x1+1+y
2d_pen_width 5 : 2d_pen_color 255,255,255: 2d_line y1,x1,y1+1+x,x1-1+y
 ' Traitement echo si echo
rand=int((rnd(posiecho)))
dist=int((rnd(distance)))
if rand=5 and presecho=0
 dist=int((rnd(distance)))
 dist1=200-dist
 alerte=200-dist
 xx=int((268-dist)*(cos(i)))
 yy=int((268-dist)*(sin(i)))
 presecho=1
end_if
if presecho>0
 presecho=presecho+1
end_if

if presecho=15
  if dist1<21
  alpha inecho : font_color inecho,255,0,0 : left inecho,10 : top inecho,afpo : font_bold inecho : caption inecho, "Echo n°:"+str$(inecho)+"-degrée :"+ str$(int(degree))+" Dist="+str$(int(dist1)) + "  Echo rapproché"
  2d_pen_width 5 : 2d_pen_color 255,0,0: 2d_circle y1+(xx-1),x1+(yy-1),2
  else
  2d_pen_width 5 : 2d_pen_color 0,0,0: 2d_circle y1+(xx-1),x1+(yy-1),2
  alpha inecho : font_color inecho,255,0,0 : left inecho,10 : top inecho,afpo : font_bold inecho : caption inecho, "Echo n°:"+str$(inecho)+"-degrée :"+ str$(int(degree))+" Dist="+str$(int(dist1))
  font_color inecho,0,0,0
  end_if
 inecho=inecho+1
 afpo=afpo+15
 presecho=0
 beep
end_if
next i
show 102
hide 101
end

analyse:
beep
end

sortie:
terminate
end





Revenir en haut Aller en bas
Klaus

Klaus


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

Radar pour futur projet Empty
MessageSujet: Re: Radar pour futur projet   Radar pour futur projet EmptySam 16 Aoû 2014 - 11:07

Ca prend forme ! J'ai quelques remarques à te faire, au sujet de la structure de ton code.

1. essaye de faire une indentation plus rigoureuse. Le code sera d'autant plus lisible et plus facile à maintenir.
2. les routines évènement (celles déclenchées par un ON_xxx comme un ON_CLICK, par exemple) sont des sous-programmes qui sont exécutées comme si elles avaient été appelées par la commande GOSUB. Il faut donc impérativement les terminer par RETURN et non par END, car sinon, tu perturbes la gestion interne de la pile des retours dans Panoramic. Certes, dans l'état actuel du programme, tu ne t'en rends pas encore compte. Mais lorsque tu utiliseras GOSUB à l'intérieur de ces routines, tu auras des surprises...
3. évite la commande WAIT sauf cas très particuliers. Elle est totalement bloquante et empêche Windows de gérer ses évènements pendant cette période. Autant dire qu'au niveau application, tout est figé et l'attente ne sert à rien, sauf à faire passer le temps. Utilise plutôt la commande PAUSE à la place.

Je me suis permis de reformater ton code en tenant compte de ces idées. J'ai mis des commentaires explicatifs dans le source:
Code:
' description programme
 ' Un balayage en une passe trouve des échos, puis analyse l'image pour trouver la sortie la mieux adaptée
 ' Un tirage aléatoire des échos dans l'attente de connecter un interface servo ave un radar ultrason
 ' Création d'un dessin 3D de la scene




 ' déclaration de variable
 dim i : ' boucle
 dim y,x : ' Coordonnées balayage
 dim y1,x1 : ' Coordonnées centre radar
 dim degree : ' Variable degrée
 dim af : ' Variable affichage texte echo
 dim posiecho : ' Position aléatoire de l'echo (En remplacement interface)
 dim distance : ' Distance de l'echo aléatoire (En remplacement interface)
 dim rand : ' Probabilité d'echo (En remplacement interface)
 dim dist : ' Variable de distance echo (En remplacement interface)
 dim afpo : ' Variable position affichage echo (top)
 dim inecho : ' Incrementation echo
 dim tempoecho : ' Tempo affichage Echo (Pour eviter d'être écrasé)
 dim presecho : ' Echo trouvé
 dim xx,yy : ' Retard écho
 dim dist1 : ' Vrai distance
 dim alerte : ' echo distance minimale
 dim line1, line2, line3, line4 : ' position ligne périmètre
 ' valeur variable
 y1=650
 X1=325
 degree=0
 posiecho=8
 distance=200
 afpo=30
 inecho=2
 tempoecho=1
 presecho=0
 alerte=20
 ' déclaration de label
label sortie, balayage, analyse

 ' déclaration fenêtre principale
button 100 : left 100,10 : width 100,110 : top 100,650 : font_color 100,145,145,145 : font_bold 100 : caption 100,"Exit" : on_click 100, sortie
button 101 : left 101,10 : width 101,110 : top 101,600 : font_color 101,145,145,145 : font_bold 101 : caption 101,"Start" : on_click 101, balayage
button 102 : left 102,10 : width 102,110 : top 102,550 : font_color 102,145,145,145 : font_bold 102 : caption 102,"Analyse" : on_click 102, analyse
  hide 102
maximize 0 : color 0,200,200,255 : caption 0, "Reperage radar"
alpha 1 : left 1,580 : top 1,650 : font_color 1,0,0,1 : font_bold 1 : ' affichage degree

 ' création du cadre radar
2d_pen_width 5
2d_rectangle 300,50,1000,600
end

balayage:
  for i=4.716 to 11 step 0.03
    degree=degree+1.7142864
    caption 1, "Degrées :" + str$(int(degree))
    x=int(268*(cos(i)))
    y=int(268*(sin(i)))
    2d_pen_width 5 : 2d_pen_color 0,0,0: 2d_line y1,x1,y1+x,x1+y
    pause 20 : ' <<<====== attention: wait est totalement bloquant ! wait 20
    2d_pen_width 5 : 2d_pen_color 255,255,255: 2d_line y1,x1,y1+1+x,x1+y
    2d_pen_width 5 : 2d_pen_color 255,255,255: 2d_line y1,x1,y1+1+x,x1+1+y
    2d_pen_width 5 : 2d_pen_color 255,255,255: 2d_line y1,x1,y1-1+x,x1-1+y
    2d_pen_width 5 : 2d_pen_color 255,255,255: 2d_line y1,x1,y1-1+x,x1+1+y
    2d_pen_width 5 : 2d_pen_color 255,255,255: 2d_line y1,x1,y1+1+x,x1-1+y
    ' Traitement echo si echo
    rand=int((rnd(posiecho)))
    dist=int((rnd(distance)))
    if rand=5 and presecho=0
      dist=int((rnd(distance)))
      dist1=200-dist
      alerte=200-dist
      xx=int((268-dist)*(cos(i)))
      yy=int((268-dist)*(sin(i)))
      presecho=1
    end_if
    if presecho>0
      presecho=presecho+1
    end_if
    ' tu aurais pu faire simplement:
    ' if presecho>0 then presecho=presecho+1

    if presecho=15
      if dist1<21
        alpha inecho : font_color inecho,255,0,0 : left inecho,10 : top inecho,afpo : font_bold inecho : caption inecho, "Echo n°:"+str$(inecho)+"-degrée :"+ str$(int(degree))+" Dist="+str$(int(dist1)) + "  Echo rapproché"
        2d_pen_width 5 : 2d_pen_color 255,0,0: 2d_circle y1+(xx-1),x1+(yy-1),2
      else
        2d_pen_width 5 : 2d_pen_color 0,0,0: 2d_circle y1+(xx-1),x1+(yy-1),2
        alpha inecho : font_color inecho,255,0,0 : left inecho,10 : top inecho,afpo : font_bold inecho : caption inecho, "Echo n°:"+str$(inecho)+"-degrée :"+ str$(int(degree))+" Dist="+str$(int(dist1))
        font_color inecho,0,0,0
      end_if
      inecho=inecho+1
      afpo=afpo+15
      presecho=0
      beep
    end_if
  next i
  show 102
  hide 101
  return : ' end <<<====toujours terminer un sous-programme par RETURN !

analyse:
  beep
  return : ' end <<<====toujours terminer un sous-programme par RETURN !

sortie:
  terminate
  ' end <<<=====  ce END ne sera jamais exécuté. TERMINATE est la dernière commande exécutée.
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

Radar pour futur projet Empty
MessageSujet: Re: Radar pour futur projet   Radar pour futur projet EmptySam 16 Aoû 2014 - 11:19

Merci Klaus pour l'aide, je regarde le code modifié.

Sympas
Revenir en haut Aller en bas
gigi75

gigi75


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

Radar pour futur projet Empty
MessageSujet: Re: Radar pour futur projet   Radar pour futur projet EmptySam 16 Aoû 2014 - 11:23

J'ai compris pour les Return,
La différence entre pause et wait aussi.

Merci.

PS: Déjà j'essaye de ne plus utiliser de GOTO, source PAPY je crois
Revenir en haut Aller en bas
Klaus

Klaus


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

Radar pour futur projet Empty
MessageSujet: Re: Radar pour futur projet   Radar pour futur projet EmptySam 16 Aoû 2014 - 11:37

C'est à ça que ça sert, le forum. Aider à faire progresser mutuellement...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





Radar pour futur projet Empty
MessageSujet: Re: Radar pour futur projet   Radar pour futur projet Empty

Revenir en haut Aller en bas
 
Radar pour futur projet
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» futur pour panoramic
» Projet pour Android
» Un debut de radar, encore de la trigo
» Comment réaliser un écran radar
» Le futur de l'Arduino ?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: