[Programmation] Programme spécifique sous Flowcode
Répondre à la discussion
Affichage des résultats 1 à 23 sur 23

Programme spécifique sous Flowcode



  1. #1
    ThomasDU

    Programme spécifique sous Flowcode


    ------

    Bonjour / Bonsoir,

    M'étant inscrit très récemment, je me permet de vous faire un petit "TOPO" sur le contexte de ma requête : je suis un élève de terminale S-SI (Sciences de l'Ingénieur), et cette année a débuté avec un projet bien définit.
    Le nom du projet est le "Codeur Scott"; il consiste à communiquer (en mer lors d'une panne ou d'un silence radio) avec les navires alentours grâce à des signaux lumineux issus d'un projecteur, en utilisant le code Morse.

    Mon groupe et moi avons définit le système dans cet ordre:
    - Un clavier Alphanumérique va acquérir une information. (Ex: l'utilisateur appuie une fois sur la touche 2, ou bien 2 fois sur la touche 3)
    - La carte électronique à microcontrôleur va traiter cet information reçue depuis le clavier pour la "transformer" en une lettre. (Par exemple, "Appuyer une fois sur 2" correspond à la lettre A, "Appuyer deux fois sur 3" correspond à la lettre "E", etc.)
    - L'afficheur LCD va ensuite afficher le message que l'utilisateur veut communiquer.

    En effet, cette expérience préliminaire doit d'abord être effectuée avant de l'essayer sur le système "réel".

    Maintenant voilà l'issue de ma requête:
    Ayant construit un modèle numérique de ce système sur ISIS (proteus), je dois maintenant programmer sous Flowcode un algorithme permettant au Microcontrôleur de convertir les informations acquises en un message bien clair.
    Seulement, mes recherches n'ayant rien données, je n'ai rien trouvé qui puisse m'aider à créer ce programme.

    Toutes les infos dont je dispose sont que je dois, à l'intérieur de ce programme, créer une boucle qui permettra au microcontrôleur de recevoir et de traiter chaque information, pour ensuite la communiquer à l'Afficheur. Je dois également faire appel à des "Routines", mais je n'ai aucune idée de comment les utiliser.

    J'espère trouver de l'aide sur ce topic afin de réussir à créer un algorithme tel que celui-ci sous Flowcode.

    (PS: le Microcontrôleur utilisé est un E-block : le PIC 16F876; l'Afficheur LCD est de dimension 16x2 (8 colonnes et 2 lignes); le clavier Alphanumérique est un clavier classique 12 touches (de 0 à 9 avec * et #)

    Je vous remercie d'avoir pris le temps de lire. Bien cordialement,

    Thomas.

    -----

  2. #2
    mag1

    Re : Programme spécifique sous Flowcode

    Bonjour,

    Dans ce projet, il faut bien poser le problème. La difficulté n'est pas de faire ce programme, mais de le faire en flowcode.
    De quel clavier s'agit il ? Alphanumérique, donc 16 touches ?
    Il faut faire un tableau de correspondance entre une combinaison de touches et une lettre de l'alphabet.
    Perso, je choisirais une association de deux caractères: une lettre (A à F) et un chiffre, plus facile à manier qu'une suite de chiffres dont on ne sait pas à priori où elle s'arrête.
    La lettre fait un premier tri, le chiffre identifie la lettre. Faut ensuite se diriger sur la séquence de flashs correspondante.
    Tout cela n'est pas très compliqué, mais en flowcode...bon courage.

    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  3. #3
    ThomasDU

    Re : Programme spécifique sous Flowcode

    Bonjour,

    Il s'agit d'un clavier Alphanumérique 12 touches. (de 0 à 9 avec * et #) Mais le bémol dans ce projet est que je n'ai aucune idée de comment procéder sur un tel logiciel, notamment sur Flowcode.
    Je saisis bien votre conseil, mais le seul problème est que je suis obligé de créer un programme tel que celui-ci : je n'ai pas d'autre choix possible.

    Je reste ouvert à toute autre forme d'aide pour me guider et me conseiller sur ce que je devrais faire.

    Merci tout de même de votre réponse.

    Thomas.

  4. #4
    Antoane
    Responsable technique

    Re : Programme spécifique sous Flowcode

    Bonjour,

    Je dois également faire appel à des "Routines", mais je n'ai aucune idée de comment les utiliser.
    C'est là qu'il faut commencer : ces routines sont des morceaux de programme simplifiant l'usage des périphériques (clavier, afficheur LCD, etc.). Commence par voir lesquelles sont disponibles pour les périphériques que tu utilises et comprends bien ce qu'elles font.
    Ensuite, ou plutôt en parallèle, voire même avant, il faudra réfléchir à comment ton micro-contrôleur va faire son travail étape par étape : attendre que qqn appuie sur une touche, déduire quelle lette est appuyée, etc.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  5. A voir en vidéo sur Futura
  6. #5
    mag1

    Re : Programme spécifique sous Flowcode

    Citation Envoyé par ThomasDU Voir le message
    Bonjour,

    Il s'agit d'un clavier Alphanumérique 12 touches. (de 0 à 9 avec * et #) Mais le bémol dans ce projet est que je n'ai aucune idée de comment procéder sur un tel logiciel, notamment sur Flowcode.
    Je saisis bien votre conseil, mais le seul problème est que je suis obligé de créer un programme tel que celui-ci : je n'ai pas d'autre choix possible.

    Je reste ouvert à toute autre forme d'aide pour me guider et me conseiller sur ce que je devrais faire.

    Merci tout de même de votre réponse.

    Thomas.

    Bonjour,

    Je ne connais pas flowcode, je suppose qu'il y a plusieurs versions. On trouve sur le net des tutos de ce genre:
    http://stiddsin.free.fr/explorer/Cou...owcode-IHM.pdf

    Mais l'idée du codage sur deux caractères tient toujours. 01,02,....28.

    MM
    Dernière modification par mag1 ; 11/12/2017 à 08h25.
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  7. #6
    Antoane
    Responsable technique

    Re : Programme spécifique sous Flowcode

    Bonjour mag1,

    C'est plus facile, mais j'imagine que le but était de recréer le fonctionnement des anciens téléphones (en particuliers des portables ni smart ni blackberry), finalement relativement pratique. Surtout s'il faut connaitre le rang de chaque lettre de l'alphabet pour pouvoir utiliser le clavier que tu proposes d'implémenter
    Pis ça répond pas au sujet
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  8. #7
    mag1

    Re : Programme spécifique sous Flowcode

    Citation Envoyé par Antoane Voir le message
    Bonjour mag1,

    C'est plus facile, mais j'imagine que le but était de recréer le fonctionnement des anciens téléphones (en particuliers des portables ni smart ni blackberry), finalement relativement pratique. Surtout s'il faut connaitre le rang de chaque lettre de l'alphabet pour pouvoir utiliser le clavier que tu proposes d'implémenter
    Pis ça répond pas au sujet
    Bonjour Antoane,

    Oui, je vois, mais ça suppose d'introduire un délai pour définir la fin de séquence, je ne sais pas si c'est le but. Le codage fixe est plus simple, on attend deux caractères, ex de 00 à 09 pour les chiffres, 10 pour A, etc. le * pour une RAZ par ex
    Après un simple lookup suffit à identifier le caractère, mais en flowcode ?

    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  9. #8
    ThomasDU

    Re : Programme spécifique sous Flowcode

    Bonjour,

    J'ai bien lu vos messages et ai bien pris en compte vos conseils : il m'ont été assez instructif.

    J'ai commencé le programme sous Flowcode, en y insérant des Routines (pour initialiser l'afficheur LCD, mettre les coordonnées d'un curseur et également pour insérer une chaîne de caractère par le biais d'une variable).
    Mais un nouveau problème se dévoile : l'afficheur n'affiche uniquement que les chiffres sur lesquels j'appuie lors de la simulation, et non des lettres; j'en déduis donc qu'il faudrait insérer une autre variable qui, par exemple, interprétera le nombre "2" comme étant la lettre "A". Mais comment faire? Faut-il que j'utilise une multi-décision? Une condition?
    De plus, comment faire en sorte que le caractère que j'ai précédemment tapé sur le clavier se "glisse/décale" d'un rang vers la droite, pour laisser place à un autre caractère (et ainsi de suite)?

    Ce projet me donne certes du fil à retordre, mais il m'interroge et me donne la volonté de continuer à progresser.
    Je continue d'essayer des choses, en espérant trouver des solutions.

    Thomas.

  10. #9
    mag1

    Re : Programme spécifique sous Flowcode

    Si le décodage du clavier et l'affichage fonctionne, c'est déjà bien.

    Pour transformer un 2 en A, il faut un tableau de correspondance. Je ne sais pas si il existe l'équivalent de la fonction "lookup" en flowcode.
    Le principe est simple, on dispose une suite de caractères comme : "1234ABCD", on donne à la fonction lookup un nombre, par ex 5 et lookup va extraire le 5ème élément de la chaine , le "B",(on part en général de 0) pour le placer dans une variable ex "var",

    Pour placer ce caractère a côté du précédent, il faut simplement incrémenter la position du curseur du LCD

    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  11. #10
    mag1

    Re : Programme spécifique sous Flowcode

    voir mid$, si il existe

    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  12. #11
    ThomasDU

    Re : Programme spécifique sous Flowcode

    Bonjour,

    L'algorithme créé sous Flowcode fonctionne : Le curseur se déplace bien à chaque fois que l'on appuie sur une touche du clavier (j'ai utilisé des variables, vérifiant que cette variable obtient sa valeur + 1 à chaque boucle de l'algorithme).

    Il ne me reste plus qu'une chose à trouver : Comment associer un nombre (par exemple : 2) à plusieurs caractères (par exemple : A, B ou C).
    J'ai réussi à associer chaque nombre (de 0 à 9) à une lettre (0=A, 1=B, 2=C...), mais je n'arrive pas à associer plusieurs lettres à un seul et même nombre (par exemple pour que 0 soit égal à A si l'on appuie une seule fois dessus, à B si l'on appuie deux fois dessus, etc..)

    Thomas.

  13. #12
    Antoane
    Responsable technique

    Re : Programme spécifique sous Flowcode

    Bonjour,

    il faut déjà que tu réussisses à grouper les appuis par caractères.
    Exemple : "1 1 1 2 pause 2 2" signifie :
    1 1 1 => c
    2 => d
    2 2 => e

    Il s'agira ensuite de faire la conversion.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  14. #13
    f6exb

    Re : Programme spécifique sous Flowcode

    Bonjour,
    Les derniers paragraphes parle de la façon de traiter les chaînes de caractères comme des tableaux. Faut voir si ça paut servir :
    https://www.matrixtsl.com/mmforums/v...hp?f=26&t=6650

    J'ai aussi trouvé ça :
    http://www.matrixtsl.com/wiki/index....ting_Variables

    Pour reprendre l'idée d'Antoane, je coderais de cette façon :
    1 ===> 01
    2 ===> 02
    3 ===> 03
    ...
    0 ===> 10
    A ===> 2
    B ===> 22
    C ===> 222
    D ===> 3
    E ===> 33
    F ===> 333
    G ===> 4
    H ===> 44
    I ===> 444
    ....
    O ===> 0
    Q ===> 00

    Nom : a.jpg
Affichages : 206
Taille : 9,7 Ko
    Dernière modification par f6exb ; 12/12/2017 à 13h20.
    Seuls les faucons volent. Les vrais restent au sol.

  15. #14
    mag1

    Re : Programme spécifique sous Flowcode

    Citation Envoyé par ThomasDU Voir le message
    Bonjour,

    L'algorithme créé sous Flowcode fonctionne : Le curseur se déplace bien à chaque fois que l'on appuie sur une touche du clavier (j'ai utilisé des variables, vérifiant que cette variable obtient sa valeur + 1 à chaque boucle de l'algorithme).

    Il ne me reste plus qu'une chose à trouver : Comment associer un nombre (par exemple : 2) à plusieurs caractères (par exemple : A, B ou C).
    J'ai réussi à associer chaque nombre (de 0 à 9) à une lettre (0=A, 1=B, 2=C...), mais je n'arrive pas à associer plusieurs lettres à un seul et même nombre (par exemple pour que 0 soit égal à A si l'on appuie une seule fois dessus, à B si l'on appuie deux fois dessus, etc..)

    Thomas.
    Comme déjà évoqué, c'est la difficulté de ce type de codage. Il faut introduire une temporisation, disons par ex 1s
    On tape 2, si on ne tape pas un second 2 dans la seconde qui suit, c'est un 2
    Si on tape un second 2 en moins d'une seconde, alors: 2x10 +2 =22, pas d'autre 2?, c'est 22 à transformer en A
    Si un troisième 2 en moins...alors 22*10+2 =222, c'est un B
    Etc...
    Une pause de plus de 1s marque la fin d'une séquence, que l'on traite ensuite
    Faut transformer ça en algorithme, un select case par ex

    MM
    Dernière modification par mag1 ; 12/12/2017 à 14h38.
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  16. #15
    mag1

    Re : Programme spécifique sous Flowcode

    Une autre solution est d'utiliser les caractères * ou # comme fin de séquence, pour simplifier un peu.

    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  17. #16
    f6exb

    Re : Programme spécifique sous Flowcode

    Il faut en garder au moins un pour effacer les erreurs.
    Seuls les faucons volent. Les vrais restent au sol.

  18. #17
    ThomasDU

    Re : Programme spécifique sous Flowcode

    Bon,

    j'ai montré le programme au professeur aujourd'hui, et il m'a clairement dit que tout était à refaire, que ça ne convenait pas...
    Je commence très sérieusement à perdre toute motivation sur ce projet, puisque toutes ces heures de travail furent inutile.

    Y aurait-il quelqu'un qui s'y connaisse en FlowCode, et qui puisse m'aider à coder l'algorithme?.. s'il vous plaît

    Thomas..

  19. #18
    Antoane
    Responsable technique

    Re : Programme spécifique sous Flowcode

    Bonjour,

    Qu'as-tu fais ? Qu'as-tu présenté à ta prof ?
    depuis le post 6 on discute entre nous sur ton problème sans retour de ta part, l'as-tu utilisé ?


    Il faut y aller par étapes :
    - savoir exactement et précisément et de manière détaillée ce que doit faire le programme pas à pas et l'écrire dans un langage que tu comprends et que tu maitrise (e.g. des morceaux de phrases) ;
    - retranscrire cela en flowcode.
    Où en es-tu ?
    Tant que tu n'as pas passé la première étape, il n'est guère utile de penser à flowcode et de s'inquiéter de son incapacité à s'en servir. Chaque chose en son temps .

    Personne ici ne fera ton travail, on pourra tout au plus te guider.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  20. #19
    ThomasDU

    Re : Programme spécifique sous Flowcode

    Bonjour,

    j'ai montré ce programme au professeur :

    1513673709-flowcode1.png

    1513673713-flowcode2.png

    Ce à quoi il m'a répondu : "Non, ça ne fonctionne pas comme ça une chaîne de caractère. Tout est à refaire."
    Sachant que je débute sur ce logiciel, j'ai mis plus de 3 heures à faire cela; ça fonctionnait bien, mais apparemment ce n'est ce qui était attendu.

    J'avais bel et bien lu et pris en compte vos idées, mais c'est le lendemain que le professeur m'a dit que tout était à refaire..
    Etant dégoûté de voir que tout ce que j'avais fait était vain, je ne m'y suis plus intéressé, jusqu'à aujourd'hui.

    Je vais donc essayer de faire l'algorithme en langage non-Flowcode.

    Thomas
    Dernière modification par Antoane ; 19/12/2017 à 09h22. Motif: Rapatriement des PJ sur le serveur du forum

  21. #20
    Antoane
    Responsable technique

    Re : Programme spécifique sous Flowcode

    Bonjour,

    > ça fonctionnait bien
    Ouais... Enfin :
    - il fallait rester appuyé moins de 250 ms sur le bouton
    - les boutons appuyés n'étaient pas sauvegardés ;
    - la gestion du "Par exemple, "Appuyer une fois sur 2" correspond à la lettre A, "Appuyer deux fois sur 3" correspond à la lettre "E", etc.)" n'était, en l'état, pas possible.
    Ta prof entendais probablement qu'il fallait utiliser une unique chaine de caractères dans laquelle tu sauvegardes les boutons appuyés.

    Sachant que je débute sur ce logiciel, j'ai mis plus de 3 heures à faire cela; ça fonctionnait bien, mais apparemment ce n'est ce qui était attendu.

    J'avais bel et bien lu et pris en compte vos idées, mais c'est le lendemain que le professeur m'a dit que tout était à refaire..
    Etant dégoûté de voir que tout ce que j'avais fait était vain, je ne m'y suis plus intéressé, jusqu'à aujourd'hui.
    Désolé, je ne suis pas capable de réconforter les gens.

    Bon, quand même : c'est formateur et tu galèreras moins sur la version 2 du programme.
    Dernière modification par Antoane ; 19/12/2017 à 18h47.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  22. #21
    ThomasDU

    Re : Programme spécifique sous Flowcode

    Bonjour,

    Oui il est vrai que j'ai besoin d'une chaîne de caractère qui va permettre de stocker toutes les lettres entrées, mais je réflechis encore à comment le mettre en place.
    J'ai egalement essayé de d'abord écrire sur papier ce qu'il fallait, dans l'ordre des choses, je pense y être arrivé.
    Je ne perd tout de même pas espoir, je continue mes recherches.

    Thomas.

  23. #22
    ThomasDU

    Re : Programme spécifique sous Flowcode

    Bonjour,

    Après beaucoup d'essais sur le logiciel Flowcode j'ai réussi à programmer l'algorithme de façon à ce qu'il affiche une lettre en fonction de la touche sur laquelle on appuie. Chaque caractère introduit suit le précédent sur l'Afficheur LCD, et passe automatiquement à la ligne d'en dessous lorsque la première est remplie (je rappelle que l'afficheur est de dimension 16x2). J'ai utilisé le code ASCII pour dire, par exemple, que lorsque l'on appuie sur la touche 1 du clavier 12 touches (donc que la valeur appuyée est de 49), l'algorithme affiche la lettre A.

    Maintenant, je voudrais savoir s'il y aurait un moyen pour dire que lorsque l'on appuie plus d'une fois sur une touche, ça affiche d'autres lettres :
    un seul appuie sur 1 afficherait A, un deuxième afficherait B, un troisième afficherait C. Avec 2, un appuie afficherait D, deux appuies afficherait E..

    J'ai compris le fonctionnement de la chaîne de caractère, il ne me manque plus qu'à savoir afficher les caractères en fonction du nombre d'appuis sur les touches.
    Je prends toutes sortes d'idées.

    T.

  24. #23
    Antoane
    Responsable technique

    Re : Programme spécifique sous Flowcode

    Bonjour,
    Citation Envoyé par ThomasDU Voir le message
    Maintenant, je voudrais savoir s'il y aurait un moyen pour dire que lorsque l'on appuie plus d'une fois sur une touche, ça affiche d'autres lettres :
    un seul appuie sur 1 afficherait A, un deuxième afficherait B, un troisième afficherait C. Avec 2, un appuie afficherait D, deux appuies afficherait E..
    Tu peux essayer de commencer simplement en rendant obligatoire l'appui sur une touche de validation (par exemple # ou autre touche n'étant pas utiliser pour les lettres).
    Ainsi, si l'utilisateur veut écrire "A", il doit appuyer "1#".
    Si l'utilisateur veut écrire "B", il doit appuyer "11#".
    Si l'utilisateur veut écrire "BD", il doit appuyer "11#2#".

    Tu verras ensuite s'il y a moyen de simplifier : certain # sont inutiles. Par exemple : "12#" ne peut signifier que "AD".


    Tu pourras ensuite remplacer le "#" par un timer : si le temps sécoulant entre deux appui est "suffisamment long", alors on considère que ce temps sépare deux caractères.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

Discussions similaires

  1. Programme anémomètre sous flowcode
    Par Zik-A dans le forum Électronique
    Réponses: 5
    Dernier message: 13/05/2015, 15h17
  2. Programme LCD sous FlowCode
    Par Poker92 dans le forum Électronique
    Réponses: 0
    Dernier message: 08/03/2015, 15h34
  3. [HELP] Programme flowcode
    Par Hiboucho dans le forum Électronique
    Réponses: 21
    Dernier message: 08/02/2015, 12h23
  4. Programme flowcode
    Par AerWyn81 dans le forum Électronique
    Réponses: 6
    Dernier message: 11/01/2015, 19h53
  5. Passage d'un Programme de Flowcode V3 sous Isis Proteus 7
    Par invite27c900d3 dans le forum Électronique
    Réponses: 1
    Dernier message: 26/02/2010, 14h53
Découvrez nos comparatifs produits sur l'informatique et les technologies.