IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

les simulateurs ?


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut les simulateurs ?
    Salut,

    Quels sont les simulateurs que vous connaissez ?
    Quels sont les avantages et inconvénients que vous constatez ?

    Voici ceux que j'ai pu tester pour l'instant :

    - Celui d'Atmel Studio 7.
    - SimulIDE...

    J'ai vu qu'il en existait d'autres mais je n'ai pas pu tester :

    - Tinkercad
    - Virtual Breadboard
    - Arduino Simulator 1.5.1

  2. #2
    Membre chevronné Avatar de electroremy
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2007
    Messages
    999
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 999
    Par défaut
    Bonjour,

    Je n'ai utilisé aucun "simulateur" à proprement parler

    Si vous avez un code c++ à tester, vous pouvez le tester sur un PC (par exemple avec c# ou c++ .NET ou autre).
    Presque toutes les fonctions c++ de l'Arduino sont identiques au c++ sur ordinateur.
    C'est l'avantage du c++ et il faut en tirer partit.

    C'est très utile :
    - pour les traitements sur chaines de caractères sans utiliser la bibliothèque string.h (il faudra juste mettre des const à la place de progmem)
    - pour la génération de code HTML si vous faites un serveur Arduino
    - pour le traitement de données en hexadécimal ou en binaire
    - pour toutes sortes de calculs mathématiques, avec ou sans boucles
    - ...

    Ce genre de tests est plus facile à faire sur PC :
    - vous avez un vrai clavier, un grand écran
    - vous avez un vrai environnement de development avec des fonctions de débogage avancées
    - le PC est rapide, donc il peut tester automatiquement beaucoup de combinaisons en une minute alors que sur Arduino ça prendrait des heures
    - le PC permet de lire et de sauver des fichiers avec des données pour faire des tests "automatisés", ce qui évite de tout taper ou cliquer à chaque fois.

    Evidemment, les fonctions spécifiques au hardware Arduino vous devrez les remplacer par autre chose, par exemple :
    - au lieu d'allumer une LED votre code C++ sur PC va afficher un truc dans une fenêtre
    - pour "simuler" des entrées utilisez des zones de texte, ou bien des scrollbars.
    - pour "simuler" des boutons poussoirs, un clic de souris sur un bouton.
    - pour "simuler" un interrupteur, une case à cocher
    - pour "simuler" un afficheur TFT graphique il suffit d'utiliser une zone d'image avec la fonction DrawPixel de GDI.
    En c++ sur ordinateur on peut presque se faire son propre simulateur, en se faisant une "version ordinateur" des fonctions d'entrée/sortie Arduino.

    Une fois que votre fonction de calcul ou de traitement en c++ fonctionne bien sur votre PC, alors vous pouvez la tester sur Arduino, bien sûr en adaptant les fonctions d'entrées/sorties

    A bientôt

  3. #3
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Salut,

    Citation Envoyé par electroremy Voir le message
    Si vous avez un code c++ à tester, vous pouvez le tester sur un PC (par exemple avec c# ou c++ .NET ou autre).
    Presque toutes les fonctions c++ de l'Arduino sont identiques au c++ sur ordinateur.
    C'est l'avantage du c++ et il faut en tirer partit.
    Oui c'est une idée intéressante d'ailleurs j'ai installé récemment les outils pour coder en C++, cela fait longtemps que j'en ai pas fait, je dois revoir les choses... Autrefois j’avais utilisé C++ Builder, c'était "révolutionnaire" à l'époque (pour faire des interfaces graphiques facilement et rapidement)...

    Pour le code c++ en général ça va mais si on commence à vouloir manipuler les registres ou connaitre la taille et le nombre de cycle d'horloge des différentes instructions alors là je suppose que ce ne sera pas possible, il faudra utiliser le compilateur qui correspond au microcontrôleur...

    C'est un des avantages du simulateur d'AS7 : on peut aussi compiler, exécuter et déboguer le code C++ et on a même le code assembleur correspondant en parallèle... On peut faire du pas à pas ou mettre des points d’arrêts au niveau du code C++ aussi bien qu''au niveau du code assembleur...

    On a la possibilité de voir tous les registres et on peut aussi "espionner" les variables du code C++, on peut observer le contenu de toutes les mémoires (flash, ram...)... Pour l'espionnage des variables et des registres on peut les mettre dans une table "watch" ou on peut simplement les survoler avec la souris (hover) pour que leur contenu s'affiche...

    Par contre ce simulateur simule seulement le microcontrôleur mais les autres simulateurs simulent aussi d'autres composants électroniques et instruments de mesure (oscilloscopes, voltmètre...), on peut donc simuler des montages complets...

    C'est quand même bien pratique je trouve...

    Citation Envoyé par electroremy Voir le message
    - le PC est rapide, donc il peut tester automatiquement beaucoup de combinaisons en une minute alors que sur Arduino ça prendrait des heures
    Oui effectivement avec la vraie carte Arduino l'exécution doit être plus lente et en plus il faut à chaque fois téléverser le code binaire mais ce n'est pas le cas avec le simulateur qui est donc beaucoup plus rapide...


    Citation Envoyé par electroremy Voir le message
    le PC permet de lire et de sauver des fichiers avec des données pour faire des tests "automatisés", ce qui évite de tout taper ou cliquer à chaque fois.
    Je n'ai encore fait ce genre de chose en c++ mais cela m'a l'air intéressant.

    Citation Envoyé par electroremy Voir le message
    En c++ sur ordinateur on peut presque se faire son propre simulateur, en se faisant une "version ordinateur" des fonctions d'entrée/sortie Arduino.
    Oui et ça a l'air intéressant en plus mais en fait c'est cela que certains ont déjà fait... J'ai pu voir par exemple que l'auteur de SimulIDE semble encore actif (il y a un forum dédié) et le code source est fournie apparemment...

    J'avoue que j'aimerais bien savoir quels sont les principes permettant de simuler les divers composants...


    Citation Envoyé par electroremy Voir le message
    Evidemment, les fonctions spécifiques au hardware Arduino vous devrez les remplacer par autre chose, par exemple :
    - au lieu d'allumer une LED votre code C++ sur PC va afficher un truc dans une fenêtre
    - pour "simuler" des entrées utilisez des zones de texte, ou bien des scrollbars.
    - pour "simuler" des boutons poussoirs, un clic de souris sur un bouton.
    - pour "simuler" un interrupteur, une case à cocher
    - pour "simuler" un afficheur TFT graphique il suffit d'utiliser une zone d'image avec la fonction DrawPixel de GDI.
    Pour faire tout ça cela suppose que l'on fasse une interface graphique, n'est-ce pas ? Je me rappelle de certains magazines qui proposaient de belles interfaces en Delphi... Aujourd'hui j'ai l'impression que c'est Qt qui a la cote...

  4. #4
    Membre chevronné Avatar de electroremy
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2007
    Messages
    999
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 999
    Par défaut
    Pour faire tout ça cela suppose que l'on fasse une interface graphique, n'est-ce pas ? Je me rappelle de certains magazines qui proposaient de belles interfaces en Delphi... Aujourd'hui j'ai l'impression que c'est Qt qui a la cote...
    J'utilise .NET, qui permet de programmer en VB, en C# et en C++ ; la force de .NET est la facilité avec laquelle on peut créer des interfaces graphiques, c'est aussi facile qu'en visual basic.

    Donner un avis objectif est difficile car il y a énormément d'outils, et pour un développeur "le meilleur outil" est celui qu'il maitrise le plus

    Malheureusement une vie entière n'est pas suffisante pour tout essayer en détail.

    C'est le paradoxe de notre époque : l'humanité est allée très loin dans la connaissance et la technique, et Internet rend accessible facilement une bonne partie du savoir, mais il y a tellement de choses qu'on est condamné à ne pouvoir en maitriser qu'un petit morceau.

    A bientôt

  5. #5
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 252
    Par défaut
    Bonjour,
    Comme electroremy j'utilise mon PC pour mettre au point des algorithmes ou même des principes physiques gérés par le hardware. A la fin je travaille sur le micro pour finaliser les interfaces avec les registres et le hardware. Bien entendu, quand le soft du micro est très simple (pas de traitement du signal ou de calcul mathématique) je travaille tout de suite dessus.

    Les simulateurs dans le genre SimulIDE ou son équivalent payant Proteus https://www.labcenter.com/ (quand j'étais étudiant nous l'avions déjà) sont bien pour apprendre et découvrir mais pour les microcontrôleurs dès qu'on passe à la pratique, très vite on en a moins besoin et d'autant plus si la plateforme dispose d'un débuggeur.

    Dans mon cas, je me sers de différents simulateurs mais plutôt pour de la mise au point hardware de certaines parties du projet.
    • QucsStudio (pour ce qui est électronique RadioFréquence, exemple dans ce message https://amat-radio-amat-fr.forumacti...n-recepteur-rf)
    • LTspice (pour les composants de chez Analog Devices et Linear)
    • Proteus version d'évaluation gratuite mais pas souvent
    • TINA TI (pour les composants de chez Texas Instruments)
    • Octave/Matlab





    Exemple :
    La dernière fois que j'ai voulu démythifié le principe de la détection synchrone, je me suis servi de Octave (Matlab) pour simuler ce principe. Je peux tester différents temps d'intégration, j'ai vu dans les spectres qu'il me fallait un filtre passe bas etc...

    Nom : path1947.png
Affichages : 202
Taille : 177,0 Ko

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Salut et merci à vous deux,

    Citation Envoyé par electroremy Voir le message
    J'utilise .NET, qui permet de programmer en VB, en C# et en C++ ; la force de .NET est la facilité avec laquelle on peut créer des interfaces graphiques, c'est aussi facile qu'en visual basic.
    A une époque j'hésitais entre C# et Java... J'avais alors regardé les différents outils disponibles et c'est vrai que j'avais été séduit par Visual Studio... Mais finalement j'ai plutôt commencé par Java (espérant passer ensuite à C# ce qui n'a pas eu lieu) et alors j'ai vu qu'il y avait aussi un outil intéressant L’éditeur GUI WindowBuilder Pro.

    J'ai bien aimé à l'époque le RAD de Delphi / C++ Builder qui existe depuis longtemps déjà...

    Citation Envoyé par Vincent PETIT Voir le message
    Les simulateurs dans le genre SimulIDE ou son équivalent payant Proteus https://www.labcenter.com/ (quand j'étais étudiant nous l'avions déjà) sont bien pour apprendre et découvrir mais pour les microcontrôleurs dès qu'on passe à la pratique, très vite on en a moins besoin et d'autant plus si la plateforme dispose d'un débuggeur.
    Merci, j'ai commencé à regarder Proteus...

    Citation Envoyé par Vincent PETIT Voir le message
    Dans mon cas, je me sers de différents simulateurs mais plutôt pour de la mise au point hardware de certaines parties du projet.
    • QucsStudio (pour ce qui est électronique RadioFréquence, exemple dans ce message https://amat-radio-amat-fr.forumacti...n-recepteur-rf)
    • LTspice (pour les composants de chez Analog Devices et Linear)
    • Proteus version d'évaluation gratuite mais pas souvent
    • TINA TI (pour les composants de chez Texas Instruments)
    • Octave/Matlab
    Merci pour ces références cela pourrait être utile...


    Citation Envoyé par Vincent PETIT Voir le message

    Exemple :
    La dernière fois que j'ai voulu démythifié le principe de la détection synchrone, je me suis servi de Octave (Matlab) pour simuler ce principe. Je peux tester différents temps d'intégration, j'ai vu dans les spectres qu'il me fallait un filtre passe bas etc...
    Ah je vois que tu t'amuses bien !

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/08/2018, 23h49
  2. simulateur castalia pour les rcsf
    Par louiza louize dans le forum Réseaux
    Réponses: 0
    Dernier message: 07/06/2017, 23h12
  3. simulateur pour les réseaux de capteurs sans fil
    Par ama.10 dans le forum Hardware
    Réponses: 1
    Dernier message: 27/06/2013, 18h43
  4. Infinite Flight : dans les coulisses du meilleur simulateur de vol sur Smartphone et tablettes
    Par Gordon Fowler dans le forum Développement 2D, 3D et Jeux
    Réponses: 13
    Dernier message: 26/02/2013, 20h26
  5. Réponses: 1
    Dernier message: 12/03/2009, 16h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo