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

Affichage des résultats du sondage: Quels langages de programmation utilisez-vous pour Arduino ?

Votants
45. Vous ne pouvez pas participer à ce sondage.
  • C

    12 26,67%
  • C++

    20 44,44%
  • Python

    3 6,67%
  • Assembleur

    4 8,89%
  • Java

    1 2,22%
  • C#

    2 4,44%
  • VB.NET

    0 0%
  • Arduino

    18 40,00%
  • Ada

    1 2,22%
  • Erlang

    0 0%
  • Forth

    0 0%
  • D

    0 0%
  • Haskell

    0 0%
  • Go

    0 0%
  • Autres (à préciser)

    2 4,44%
  • Pas d'avis

    0 0%
Sondage à choix multiple
Arduino Discussion :

Quels langages de programmation utilisez-vous pour Arduino ?


Sujet :

Arduino

  1. #1
    Chroniqueur Actualités
    Avatar de Michael Guilloux
    Homme Profil pro
    Data Consultant
    Inscrit en
    Juillet 2013
    Messages
    2 889
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Data Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 2 889
    Points : 87 226
    Points
    87 226
    Billets dans le blog
    2
    Par défaut Quels langages de programmation utilisez-vous pour Arduino ?
    Quels langages de programmation utilisez-vous pour Arduino ?
    Partagez votre expérience

    Quels langages de programmation utilisez-vous pour Arduino ? Il y a quelques mois, nous nous sommes intéressés aux langages que vous utilisez pour le développement de systèmes embarqués. Le sondage à choix multiples a montré que les langages les plus utilisés sont respectivement C (46,97 %), C++ (31,82 %) et Assembleur (19,70 %). Arduino, le langage natif pour le microcontrôleur appelé du même nom ne vient qu’à la 8e place avec 4,55 %, en dépit du fait que la carte Arduino est aujourd’hui la base d'un grand nombre de dispositifs de fabrication et de prototypage.

    Cela peut s’expliquer par le fait que le développement de systèmes embarqués Arduino n’est pas une exclusivité du langage natif de la plateforme. Il est en effet possible de programmer la carte Arduino en C/C++. En fait, vous le faites déjà dès que vous utilisez le langage Arduino, puisqu'il est simplement un ensemble de fonctions C/C++ qui peuvent être appelées à partir de votre code. Votre sketch (nom donné aux programmes écrits pour Arduino) subit des modifications mineures (par exemple, génération automatique de prototypes de fonctions), puis est transmis directement à un compilateur C/C ++ (avr-g ++).

    Pour les programmeurs confirmés, le langage C/C++ qui est traditionnellement utilisé pour programmer les microcontrôleurs peut être la solution la plus performante pour programmer une carte Arduino. Cela dit, on peut également vouloir utiliser un langage de programmation qu'on maitrise déjà pour ne pas avoir à apprendre un nouveau langage pour programmer la carte Arduino.

    Si vous ne pouvez pas écrire du C/C++, il est possible d’utiliser un langage interprété soit directement sur la carte, soit sur un autre ordinateur qui communique avec Arduino. Il existe en effet quelques implémentations de langages interprétés pour l'Arduino, y compris plusieurs ports de Forth sur Arduino, un port de Tiny BASIC, PyMite (un sous-ensemble de Python), et un langage dédié appelé Bitlash. Ces langages peuvent être exécutés directement sur Arduino.

    Cependant, la plupart des langages de script dynamiques modernes sont trop complexes pour tenir dans la RAM et la mémoire de programme très limitées de l'Arduino. Les langages qui entrent dans cette catégorie sont : Java, PHP, Perl, Batch, Shell, Ruby, JavaScript, TCL, Python. Vous pouvez utiliser ces langues pour communiquer avec Arduino, mais en général, le code dans ces langages ne fonctionnera pas directement sur la carte.

    Il faut aussi noter qu'il est possible de convertir les langages interprétés en bytecode qui peuvent fonctionner sur Arduino si vous avez le bon ensemble de compilateurs, éditeurs de liens et de bibliothèques. Mais c'est en général une tâche non triviale avec une utilité limitée. Autrement dit, vous pourrez utiliser un langage que vous maitrisez le plus pour Arduino, mais avec les limitations qui l'accompagnent.

    Nous voulons donc à travers ce nouveau sondage à choix multiples savoir si vous avez déjà programmé pour Arduino. Si oui, dans quels langages et pourquoi ? Quels avantages et inconvénients trouvez-vous à ces langages ?

    Puis-je exécuter un langage interprété sur l'Arduino ? Je ne peux pas écrire du C ou C++ (Site officiel Arduino)
    FAQ Arduino

    Et vous ?

    Avez-vous déjà programmé une carte Arduino ?
    Si oui, quels langages de programmation utilisez-vous (ou avez-vous utilisés) ?
    Partagez votre expérience : difficultés, avantages, etc.

    Voir aussi :

    Forum Arduino sur Developpez.com et rubrique Systèmes embarqués
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 620
    Points : 56 857
    Points
    56 857
    Billets dans le blog
    40
    Par défaut
    Marrant, je ne savais même pas qu'on pouvait programmer l'Arduino avec tous ces langages...
    Si j'ai bien compris, on installe un serveur/firmware sur l'Arduino et un hôte peut communiquer avec l'Arduino par le câble USB et un protocole particulier (firmata).
    J'ai quand même l'impression que 99,9% des votes vont tourner autour du C/C++/Arduino et du coup j'aurais plus vu le vieux débat "langage Arduino vs C/C++" qui finit toujours par déraper.

    Mais on peut toujours s'arranger pour faire dévier la discussion sur ce duel

  3. #3
    Membre émérite Avatar de onilink_
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    597
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 597
    Points : 2 443
    Points
    2 443
    Par défaut
    Ahah pareil, je savais qu'on pouvait théoriquement utiliser n'importe quel langage compilé capable de target de l'assembleur AVR, mais j'avais jamais vu autre chose que C/C++ utilisé pour arduino.
    En tout cas C++ me va très bien, j'utilise ce langage tous les jours alors le retrouver sur arduino ça me simplifie juste la vie. Puis je suis sur qu'il y a moyen de se faire une bibliothèque puissante et efficace spéciale compile-time pour obtenir un asm très optimisé.
    Ça me fait beaucoup penser a cela (A Simple Commodore 64 Game in C++17):

    C'est assez impressionnant.
    Circuits intégrés mis à nu: https://twitter.com/TICS_Game

  4. #4
    Membre du Club
    Inscrit en
    Novembre 2012
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 23
    Points : 43
    Points
    43
    Par défaut
    Pas touché depuis un moment mais la prochaine fois ça sera du Rust.

  5. #5
    Membre expérimenté
    Profil pro
    Ingénieur système Linux N3
    Inscrit en
    Juillet 2008
    Messages
    419
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur système Linux N3

    Informations forums :
    Inscription : Juillet 2008
    Messages : 419
    Points : 1 527
    Points
    1 527
    Par défaut Microcontrôlleurs
    Je viens d'acheter mon premier Arduino, je l'ai reçu ce W.E. et je n'ai encore rien fait avec. Par contre, j'ai réalisé plusieurs projets avec des Microchip PIC16F, PIC18F et dsPIC30F que je programme en C et avec un pickit3. J'ai également réalisé plusieurs autres projets avec des Atmel AT89, architecture MCS-51, que je programme en assembleur ; je le préfère 100 fois à l'assembleur des µC microchip. Par contre, je n'ai pas l'équivalent du pickit3, j'ai un programmateur séparé, et ça c'est lourd de débrancher puis de rebrancher la puce à chaque fois. Je verrai ce que je ferai de l'arduino mais je pense commencer par l'assembleur.

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Pour moi, l'Arduino est juste un outil, un peu comme un moteur de Meccano. J'y branche des shields tout prêts (Affichage, lecteur SD), j'ajoute les bibliothèques fournies par le fabricant et je programme les quelques commandes dont j'ai besoin pour faire fonctionner le tout. C'est ce que j'apprécie dans le concept.
    Bien sûr, je manipule pour cela du C et du C++ mais je n'ai aucune envie de prendre le temps d'aller fouiller dans les arcanes du microcontrôleur pour développer en natif ce que les fonctions de l'environnement Arduino mettent à ma disposition de manière plus pratique à manipuler. Je sais que ce n'est pas toujours optimal mais mes besoins sont couverts.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  7. #7
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 190
    Points : 11 573
    Points
    11 573
    Par défaut
    J'ai une carte Arduino UNO mais je ne m'en sers quasiment pas, je l'ai acheté uniquement pour découvrir la philosophie Atmel. Je développe principalement sur MSP430, PIC16 et PIC18 et récemment sur STM32F303 et uniquement en langage C (l'Assembleur j'en ai énormément fait sur Motorola et Microchip mais c'était il y a 18 ans, aujourd'hui et sauf cas très très particulier et qu'on peut contourner, je trouve que les compilateurs C sont redoutablement efficaces)

    Le plus gros points faible des Arduino équipés de ATMegaxxxx est l'absence du débugger intégré et ça c'est vraiment dommage !
    Il faut acheter une sonde comme Atmel ICE si on veut l'équivalent du Pickit/ICD. Sur des cartes Nucléo (STM32) ou LaunchPad (MSP430) il y a le débugger intégré ce qui vous donne l'impression, depuis Eclipse, d'être exactement comme sur votre PC. Vous pouvez faire ce que vous voulez avec le microcontrôleur, mettre des points d'arrêts, faire défiler le programme pas à pas, voir ce qui ce passe en RAM ou l'état des registres etc...

    De mon point de vu, un microcontrôleur se choisi comme on choisie un langage informatique, mais en prenant en compte le prix/encombrement/fonctionnalités/outils de développement/consommation etc, il y a énormément d'autres choix et certains peuvent être beaucoup plus intéressants et compétitifs, il faut voir au cas par cas. Pour pouvoir faire cet exercice, il n'y a malheureusement pas d'autre choix que d'aller regarder dans le microcontrôleur, la bonne surprise étant que les micro se ressemblent tous très fort.

    Le plus gros avantage est décrit par Alain et c'est indéniable, celui qui veut faire un proto sans pour autant devenir ingénieur en système embarqué y trouvera son bonheur.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  8. #8
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Pour ma part je n'ai pas d’Arduino , mais j'aurais sûrement programmé en assembleur , vu que je ne le fait pas pour un coté 'utilitaire' mais juste pour connaître une machine de A à Z :p

    Pour le commodore64 et le c++ cela ne m'étonne pas mais sur des processeurs comme le 6502 et le z80 les compilateurs sont très mauvais sur ces architectures (ce sont des processeurs du siècle dernier aussi , tout les processeur récent sont pensé pour être écrit par un compilateur et non par un humain).

  9. #9
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 620
    Points : 56 857
    Points
    56 857
    Billets dans le blog
    40
    Par défaut
    Je sais qu'on peut aussi "programmer" l'Arduino avec Matlab+Simulink :

    Nom : ArduinoMatlabBlink.PNG
Affichages : 64645
Taille : 244,6 Ko
    Démo blink de la led 13
    https://fr.mathworks.com/videos/prog...ink-86316.html

    Il me semble qu'un serveur doit être téléversé dans l'Arduino pour la communication.

  10. #10
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2014
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 125
    Points : 230
    Points
    230
    Par défaut Basic- bascom pour Arduino
    J'utilise le compilateur Basic Bascom pour les arduino 8bits, malheureusement il n'est pas disponible pour les autres arduino

    l’intérêt du Basic par rapport au speudoC Arduino est qu'il appelle un chat un chat, je m'explique:
    - les noms des ports du microcontrôleur sont les noms utilisés par AVR exemple pinc.0 est l'entrée 0 du port C est non A0 comme indiqué chez Arduino qui voudrait que les ports analogiques soient réservés à l'ADC
    alors que les AVR sont très versatiles, toutes les broches peuvent être I/O binaires.
    - les bibliothèques sont écrites en assembleur donc très rapide par rapport aux bibliothèques Arduino écrites en C
    -la compilation donne des fichier .bin ou .hex les "point bin" sont beaucoup plus compact.
    - l'IDE Bascom parle de programme et pas de sketch, on ne fait pas du théatre ! On voudrait nous faire croire que la programmation d'Arduino est un jeu, sans connaissance des bases de l’électronique ce qui est une grosse co...rie !
    les includes sont très pratiques en plus des lib

    l'IDE permet de transférer directement le programme compilé dans le µC sans utiliser Dude ni les studio AVR (usine à gaz monstrueuse)
    Enfin j'ai fait un tuto en français avec exemple etc..
    JP

  11. #11
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 712
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 712
    Points : 5 391
    Points
    5 391
    Par défaut
    c'est un peu trompeur de dire qu'on utilise le "langage Arduino"... ça n'existe pas. Ce qui disent cela veulent sans doute dire qu'ils utilise du C++ avec les librairies existantes fournies par Arduino et tous ceux qui offrent leurs bibliothèques en téléchargement...

    et ceux qui ont répondu C++ utilisent sans doute aussi en majorité ces librairies...

    donc en fait il faut fusionner les réponses "C++" et "Arduino"


    celui qui a répondu Java doit avoir un drôle d'arduino, il n'y a pas la place d'installer une VM java sur un Arduino....

  12. #12
    Membre expérimenté
    Profil pro
    Ingénieur système Linux N3
    Inscrit en
    Juillet 2008
    Messages
    419
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur système Linux N3

    Informations forums :
    Inscription : Juillet 2008
    Messages : 419
    Points : 1 527
    Points
    1 527
    Par défaut
    Citation Envoyé par onilink_ Voir le message
    Ahah pareil, je savais qu'on pouvait théoriquement utiliser n'importe quel langage compilé capable de target de l'assembleur AVR, mais j'avais jamais vu autre chose que C/C++ utilisé pour arduino.
    En tout cas C++ me va très bien, j'utilise ce langage tous les jours alors le retrouver sur arduino ça me simplifie juste la vie. Puis je suis sur qu'il y a moyen de se faire une bibliothèque puissante et efficace spéciale compile-time pour obtenir un asm très optimisé.
    Ça me fait beaucoup penser a cela (A Simple Commodore 64 Game in C++17):

    C'est assez impressionnant.
    Au delà de l'exploit technique, quand on voit les soucis que W10 donne au conférencier, qui par ailleurs fait tourner une VM Ubuntu 16.04 pour exécuter le vrai boulot... Linux rulez !

  13. #13
    Membre expérimenté
    Profil pro
    Ingénieur système Linux N3
    Inscrit en
    Juillet 2008
    Messages
    419
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur système Linux N3

    Informations forums :
    Inscription : Juillet 2008
    Messages : 419
    Points : 1 527
    Points
    1 527
    Par défaut
    Citation Envoyé par onilink_ Voir le message
    Ahah pareil, je savais qu'on pouvait théoriquement utiliser n'importe quel langage compilé capable de target de l'assembleur AVR, mais j'avais jamais vu autre chose que C/C++ utilisé pour arduino.
    En tout cas C++ me va très bien, j'utilise ce langage tous les jours alors le retrouver sur arduino ça me simplifie juste la vie. Puis je suis sur qu'il y a moyen de se faire une bibliothèque puissante et efficace spéciale compile-time pour obtenir un asm très optimisé.
    Ça me fait beaucoup penser a cela (A Simple Commodore 64 Game in C++17):

    C'est assez impressionnant.
    Après cette vidéo, je pense que je vais me mettre au C++ et oublier l'assembleur et le C.

  14. #14
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 620
    Points : 56 857
    Points
    56 857
    Billets dans le blog
    40
    Par défaut
    J'ai rajouté le langage Go dans le sondage.
    Parce que maintenant, on peut programmer l'Arduino en langage Go

Discussions similaires

  1. Réponses: 31
    Dernier message: 01/08/2012, 23h34
  2. Réponses: 7
    Dernier message: 12/04/2010, 22h52
  3. Réponses: 145
    Dernier message: 15/02/2009, 11h51
  4. Quel type de collection utilisez-vous pour le binding WPF ?
    Par FRED.G dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 04/07/2008, 20h55

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