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
31. Vous ne pouvez pas participer à ce sondage.
  • C

    6 19,35%
  • C++

    15 48,39%
  • Python

    1 3,23%
  • Assembleur

    3 9,68%
  • Java

    1 3,23%
  • C#

    2 6,45%
  • VB.NET

    0 0%
  • Arduino

    12 38,71%
  • Ada

    1 3,23%
  • Erlang

    0 0%
  • Forth

    0 0%
  • D

    0 0%
  • Haskell

    0 0%
  • Autres (à préciser)

    2 6,45%
  • Pas d'avis

    0 0%
Sondage à choix multiple
  1. #1
    Chroniqueur Actualités
    Avatar de Michael Guilloux
    Homme Profil pro
    Consultant
    Inscrit en
    juillet 2013
    Messages
    2 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : juillet 2013
    Messages : 2 091
    Points : 67 419
    Points
    67 419
    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
    10 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : janvier 2009
    Messages : 10 131
    Points : 42 765
    Points
    42 765
    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 éprouvé Avatar de onilink_
    Profil pro
    Inscrit en
    juillet 2010
    Messages
    271
    Détails du profil
    Informations personnelles :
    Âge : 27
    Localisation : France

    Informations forums :
    Inscription : juillet 2010
    Messages : 271
    Points : 1 088
    Points
    1 088

    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.
    Des tutos de pixel art: https://twitter.com/OniMille

  4. #4
    Membre du Club
    Inscrit en
    novembre 2012
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : novembre 2012
    Messages : 23
    Points : 40
    Points
    40

    Par défaut

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

  5. #5
    Membre confirmé
    Profil pro
    Ingénieur Syslog-ng
    Inscrit en
    juillet 2008
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur Syslog-ng

    Informations forums :
    Inscription : juillet 2008
    Messages : 189
    Points : 530
    Points
    530

    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 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    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 864
    Points : 24 858
    Points
    24 858

    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
    2 178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    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 : 2 178
    Points : 7 006
    Points
    7 006

    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
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    mai 2010
    Messages
    2 428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    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 428
    Points : 7 317
    Points
    7 317

    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
    10 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : janvier 2009
    Messages : 10 131
    Points : 42 765
    Points
    42 765
    Billets dans le blog
    9

    Par défaut

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

    Nom : ArduinoMatlabBlink.PNG
Affichages : 8706
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
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Aisne (Picardie)

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

    Informations forums :
    Inscription : juillet 2014
    Messages : 91
    Points : 206
    Points
    206

    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

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