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

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

    6 22,22%
  • C++

    15 55,56%
  • Python

    1 3,70%
  • Assembleur

    2 7,41%
  • Java

    1 3,70%
  • C#

    2 7,41%
  • VB.NET

    0 0%
  • Arduino

    9 33,33%
  • Ada

    1 3,70%
  • Erlang

    0 0%
  • Forth

    0 0%
  • D

    0 0%
  • Haskell

    0 0%
  • Autres (à préciser)

    1 3,70%
  • Pas d'avis

    0 0%
Sondage à choix multiple
+ Répondre à la discussion Actualité déjà publiée
  1. #1
    Chroniqueur Actualités
    Avatar de Michael Guilloux
    Homme Profil pro
    Consultant
    Inscrit en
    juillet 2013
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : juillet 2013
    Messages : 1 625
    Points : 47 037
    Points
    47 037
    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
    Rédacteur/Modérateur

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

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : janvier 2009
    Messages : 8 845
    Points : 34 725
    Points
    34 725
    Billets dans le blog
    9

    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 du Club
    Profil pro
    Inscrit en
    juillet 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 26
    Localisation : France

    Informations forums :
    Inscription : juillet 2010
    Messages : 38
    Points : 65
    Points
    65

    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.

  4. #4
    Nouveau membre du Club
    Inscrit en
    novembre 2012
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : novembre 2012
    Messages : 22
    Points : 39
    Points
    39

    Par défaut

    Pas touché depuis un moment mais la prochaine fois ça sera du Rust.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    juillet 2008
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : juillet 2008
    Messages : 129
    Points : 324
    Points
    324

    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
    Ingénieur d'études décisionnel
    Inscrit en
    mai 2002
    Messages
    7 444
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 7 444
    Points : 22 564
    Points
    22 564

    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
    Ancien développeur matériel électronique (Hard/Soft)
    Inscrit en
    avril 2002
    Messages
    1 880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ancien développeur matériel électronique (Hard/Soft)
    Secteur : Service public

    Informations forums :
    Inscription : avril 2002
    Messages : 1 880
    Points : 5 926
    Points
    5 926

    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 confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    mai 2010
    Messages
    2 083
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : mai 2010
    Messages : 2 083
    Points : 5 919
    Points
    5 919

    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
    Rédacteur/Modérateur

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

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : janvier 2009
    Messages : 8 845
    Points : 34 725
    Points
    34 725
    Billets dans le blog
    9

    Par défaut

    Je sais qu'on peut aussi "programmer" l'Arduino avec Matlab+Simulink :

    Nom : ArduinoMatlabBlink.PNG
Affichages : 425
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.

Discussions similaires

  1. Réponses: 31
    Dernier message: 02/08/2012, 00h34
  2. Réponses: 7
    Dernier message: 12/04/2010, 23h52
  3. Réponses: 145
    Dernier message: 15/02/2009, 12h51
  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, 21h55

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