LOCODUINO

Parlons Arduino => Modélisation, Architectures logicielles et matérielles => Discussion démarrée par: fcot2002 le juin 18, 2020, 10:50:31 am

Titre: IDE Arduino une alternative plus riche sans être complexe
Posté par: fcot2002 le juin 18, 2020, 10:50:31 am
Bonjour @ tous !

On voit ici beaucoup de beaux développements, qu'en est-il de vos outils ?

J'ai découvert "PlateformIO", complet, simple, etc. Sans compter la chaîne YT de Tommy qui est une mine d'or et francophone qui plus est.

https://www.youtube.com/watch?v=-2NhjhzFQsM

Au plaisir

Titre: Re : IDE Arduino une alternative plus riche sans être complexe
Posté par: bobyAndCo le juin 18, 2020, 03:18:39 pm
PlateformIO est effectivement un environnement de développement intéressant. Dire qu’il est simple, je ne suis pas certain. Beaucoup plus complet, oui avec en particulier des possibilités de debug en mode trace.

Un vrai plus aussi pour moi, la possibilité d’associer les bibliothèques au projet, (ce qui est facultatif toute fois) par exemple pour des bibliothèques qui portent le même nom mais s’adressent à des cartes différents (ESP ou Arduino par exemple).

Il faut aussi bien régler le compilateur car parfois, de simples warnings empêchent la compilation.

Mais je n’ai toujours pas trouvé comment téléverser un sketch en mode OTA. Si quelqu’un peut me dire ça me rendrait un grand service.

Titre: Re : IDE Arduino une alternative plus riche sans être complexe
Posté par: fcot2002 le juin 20, 2020, 10:19:51 am
Salut Christophe,

Apparemment et sauf erreur de ma part il compile dans l'IDE Arduino si j'en crois la vidéo.

Qu'entends-tu par OTA ?

Bon week-end
Titre: Re : IDE Arduino une alternative plus riche sans être complexe
Posté par: bobyAndCo le juin 20, 2020, 01:59:02 pm
L’OTA (over the air) permet le téléversement du sketch par le WiFi. Plus de câble donc entre l'ordinateur et la carte, qui doit toute fois permettre le WiFi bien sûr ! Interessant si la carte est difficile d'accès comme dans le cas de mon pont tournant.
Titre: Re : IDE Arduino une alternative plus riche sans être complexe
Posté par: ethal le juin 21, 2020, 04:45:01 pm
Bonjour,

je suis sur mac, j' utilise VSCODE avec l'extension PlatformIO,

pour le chargement en OTA sur un esp32:

#include <Arduino.h>
#include <WiFiClientSecure.h>
#include <ESPmDNS.h>
#include <ArduinoOTA.h>


#define SSID "nom de mon reseau wifi"
#define PASS "password de mon reseau wifi"
#define HOSTNAME "nom sur le reseau de votre ESP32 , en général : truc.local"


void setup() {

  WiFi.mode(WIFI_STA);
  WiFi.begin(SSID, PASS);
  WiFi.setHostname(HOSTNAME);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }


  ArduinoOTA.setHostname(WiFi.getHostname());
  ArduinoOTA
    .onStart([]() {
      String type;
      if (ArduinoOTA.getCommand() == U_FLASH)
        type = "sketch";
      else // U_SPIFFS
        type = "filesystem";

      // NOTE: if updating SPIFFS this would be the place to unmount SPIFFS using SPIFFS.end()
      Serial.println("Start updating " + type);
    })
    .onEnd([]() {
      Serial.println("\nEnd");
    })
    .onProgress([](unsigned int progress, unsigned int total) {
      Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
    })
    .onError([](ota_error_t error) {
      Serial.printf("Error[%u]: ", error);
      if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
      else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
      else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
      else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
      else if (error == OTA_END_ERROR) Serial.println("End Failed");
    });


  ArduinoOTA.begin();
}

void loop() {

  ArduinoOTA.handle();

  // put your main code here, to run repeatedly:
}

et surtout dans le fichier platformio.ini du projet mettre ces deux lignes:

upload_protocol = espota
upload_port = "Adresse IP du ESP32 ou son Hostname définie plus haut"


La première fois charger en USB sans mettre les deux ligne de code ci dessus:
ensuite mettre les deux lignes dans le fichier PlatformIO.ini comme décrit ci-dessus,
maintenant les téléchargements ce feront en mode OTA,



Titre: Re : IDE Arduino une alternative plus riche sans être complexe
Posté par: bobyAndCo le juin 21, 2020, 09:26:27 pm
Merci beaucoup, c'est super. A première vue, le code de l'ESP est similaire pour l'IDE Arduino comme pour PlatformIO. Mais je n'avais pas trouvé le code pour platformio.ini.

En ésprérant que l'OTA soit moins capricieux sur PlatformIO que sur l'IDE Arduino.

Je pense que François à bien fait d'ouvrir ce fil sur PlatformIO. Ce qui serait intéressant, c'est dans un premier temps de connaitre quels sont les utilisateurs.

Ce fil peut être un bon moyen d'échanger des pratiques et des astuces comme le fait ethal pour répondre à ma question.

In fine, PlatformIO est plus intéressant selon moi que l'IDE Arduino mais plus complexe d'où l'intérêt des échanges.
Titre: Re : IDE Arduino une alternative plus riche sans être complexe
Posté par: fcot2002 le juin 22, 2020, 02:17:41 pm
Salut

Oui Christophe je comprends mieux et m'étais mal exprimé.

Plus complet donc peut-être moins simple.

Je voulais dire plus simple dans le sens où tout est sous la main ;-)

Ok pour OTA merci ;-)
Titre: Re : IDE Arduino une alternative plus riche sans être complexe
Posté par: Pyk35 le juin 22, 2020, 10:46:40 pm
Et du coup PlateformIO, vous y accédez via visual studio code?
Titre: Re : IDE Arduino une alternative plus riche sans être complexe
Posté par: bobyAndCo le juin 23, 2020, 02:01:33 pm
Salut Cédric, oui, c'est un plug-in de Visual Studio Code.
Titre: Re : IDE Arduino une alternative plus riche sans être complexe
Posté par: Pyk35 le juin 23, 2020, 03:22:14 pm
Je suis d’accord, j’avais un doute.
Titre: Re : IDE Arduino une alternative plus riche sans être complexe
Posté par: bobyAndCo le juin 23, 2020, 09:38:40 pm
Pour être précis, PlateformIO est aussi disponible sous d'autres environnements comme Sublime Texte.

@ François : j'ai corrigé le lien vers la vidéo youtube ci-dessus. C'est vrai que c'est bien expliqué je trouve aussi.
Titre: Re : IDE Arduino une alternative plus riche sans être complexe
Posté par: bobyAndCo le juin 24, 2020, 10:53:45 am
Bonjour à tous,

J'ai configuré le fichier plateforio.ini tel que me l'a suggéré ethal et effectivement, l'OTA fonctionne (parfaitement) bien. Je mets parfaitement entre parenthèses car j'ai de temps en temps un plantage mais à la tentative suivante, cela fonctionne en générale. Beaucoup mieux dans tous les cas qu'avec l'IDE Arduino.


[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino

; Verbose
build_flags = -DCORE_DEBUG_LEVEL=5

upload_protocol = espota
upload_port = 192.168.1.126
;upload_flags =
;    --spiffs

Par contre, concernant les fichiers à copier en SPIFF, il faut préalablement créer une partition et je n'ai pas encore trouvé comment faire. C'est pour cela que les deux dernières lignes du fichier plateforio.ini ci-dessus sont commentées. Dans le fichier .ini, les lignes de commentaires commencent par ";".

Je précise que je n'ai pas ici d'authentification, ce qui n'est pas franchement recommandé. Je n'ai pas testé mais à priori, l'authentification est à ajouter à la liste des flags comme ceci :

upload_flags =
    --spiffs
    --auth = votre_password
Titre: Re : IDE Arduino une alternative plus riche sans être complexe
Posté par: Dominique le juin 24, 2020, 04:53:15 pm
Du coup, existe-t-il une extension "Arduino" pour VSCODE (à la place de plateformIO) ?

Il me semble que Thierry développe de l'Arduino avec Visual Studio et a même réalisé un simulateur depuis un bon moment...

Est-ce que ça vaut le coup de regarder ailleurs qu'Arduino pour nos petits trains, au risque de provoquer inquiétude et abandons chez les modélistes ?
Titre: Re : IDE Arduino une alternative plus riche sans être complexe
Posté par: Thierry le juin 24, 2020, 05:44:52 pm
On ne peut simplement pas se passer de l'IDE Arduino. Pour des questions de pérennité, de simplicité, et aussi parce que ces utilisateurs que l'on attire du coté obscur de l'Arduino sont souvent des béotiens du domaine Electronique/Informatique et seraient pour la plupart forcément rebutés par des installations d'outil multiples et variés, et des paramétrages de ces outils tout aussi peu simples...
Je travaille effectivement avec un simulateur, mais il répond à un autre besoin, celui d'un debuggeur efficace ! L'utilisation de Serial.print a ses limites et c'est quand même plus cool de pouvoir visualiser la valeur des variables du programme pendant son exécution. Cela dit, lorsque je passe sur le vrai matériel, j'utilise l'IDE Arduino pour compiler et uploader le résultat. Cela me permet de m'assurer que ce que je fais dans Visual se compile correctement dans l'IDE (et j'ai parfois des surprises) et de ne pas avoir d'outil/plugin/addin/Extension dédié à l'Arduino dans mon Visual.
La compilation dans VisualCode+PlatformIO est une bonne solution pour bénéficier d'un véritable environnement de développement, mais un debuggeur est toujours absent... C'est une solution possible à réserver aux spécialistes que nous sommes. Il ne s'agit pas de convertir nos lecteurs/membres/fans à autre chose que l'IDE Arduino.

PS : PlatformIO fonctionne aussi sur mon Visual Studio Community gratuit...
Titre: Re : Re : IDE Arduino une alternative plus riche sans être complexe
Posté par: ethal le juin 24, 2020, 07:02:28 pm
Bonjour,

Je mets parfaitement entre parenthèses car j'ai de temps en temps un plantage mais à la tentative suivante, cela fonctionne en générale. Beaucoup mieux dans tous les cas qu'avec l'IDE Arduino.
Exact.

Par contre, concernant les fichiers à copier en SPIFF, il faut préalablement créer une partition et je n'ai pas encore trouvé comment faire. C'est pour cela que les deux dernières lignes du fichier plateforio.ini ci-dessus sont commentées. Dans le fichier .ini, les lignes de commentaires commencent par ";".

Il faut créer un fichier de partition dans son projet, voir le site de espressif pour en connaitre toutes les finalités, mais la on rentre dans le dur....,
example "partitions.csv":
# Name,   Type, SubType, Offset,  Size, Flags
nvs,      data, nvs,     0x9000,  0x5000,
otadata,  data, ota,     0xe000,  0x2000,
app0,     app,  ota_0,   0x10000, 0x1B0000,
app1,     app,  ota_1,   0x1C0000,0x1B0000,
spiffs,   data, spiffs,  0x370000,0x70000,

et mettre ce fichier en référence dans le PlatformIO.ini

board_build.partitions = partitions.csv


Pour terminer , l'IDE Arduino est très bien pour débuter et compiler , charger son petit sketch , mais l'avantage d'utiliser un logiciel tel que VSCODE ou autre avec différente extension, c'est pour l ' "IntelliSense", gestion de ces librairies,...

Pour les anglophones:
Citer
Visual Studio (full version) is a "full-featured" and "convenient" development environment.

Visual Studio (free "Express" versions - only until 2017) are feature-centered and simplified versions of the full version. Feature-centered meaning that there are different versions (Visual Studio Web Developer, Visual Studio C#, etc.) depending on your goal.

Visual Studio (free Community edition - since 2015) is a simplified version of the full version and replaces the separated express editions used before 2015.

Visual Studio Code (VSCode) is a cross-platform (Linux, Mac OS, Windows) editor that can be extended with plugins to your needs.


Titre: Re : IDE Arduino une alternative plus riche sans être complexe
Posté par: Pyk35 le juin 24, 2020, 07:17:08 pm
Citer
Par contre, concernant les fichiers à copier en SPIFF, il faut préalablement créer une partition et je n'ai pas encore trouvé comment faire.

Christophe, j’ai fait le boulot et je t’ai partagé un fichier sous Google doc pour t’expliquer comment faire. Je peux te dire que cela marche très bien !!
Titre: Re : IDE Arduino une alternative plus riche sans être complexe
Posté par: bobyAndCo le juin 24, 2020, 11:56:59 pm
@ Pyk35 : Merci Cédric pour l'info mais cette procédure concerne l'IDE Arduino.

J’ai résolu la question du téléchargement des fichiers « data » dans le SPIFFS en OTA avec PlateformIO.

En fait, il ne faut pas chercher à uploader les fichiers en même temps que le sketch. Aussi, j’ai désactivé le flag (commentaire) 1 sur l’image.

Il faut ensuite cliquer sur l’icône « PlateformIO » à gauche de l’écran (2).

Cliquer sur Upload File System image (3)

De cette manière, le upload des fichiers du dossier data est parfaitement et simplement réalisé (4)

Il y a de temps en temps des echecs pour le SPIFFS en OTA (comme pour le sketch) mais la plus part du temps, cela fonctionne à la deuxième ou à la troisième tentative alors que sur l’IDE Arduino, j’ai vu ne jamais pouvoir faire les mises à jour en OTA. Un vrai et grand progrès donc.

(http://www.locoduino.org/IMG/jpg/02.jpg)
Titre: Re : IDE Arduino une alternative plus riche sans être complexe
Posté par: bobyAndCo le juin 25, 2020, 12:08:11 am
@ ethal :


Il faut créer un fichier de partition dans son projet, voir le site de espressif pour en connaitre toutes les finalités, mais la on rentre dans le dur....,
example "partitions.csv":
# Name,   Type, SubType, Offset,  Size, Flags
nvs,      data, nvs,     0x9000,  0x5000,
otadata,  data, ota,     0xe000,  0x2000,
app0,     app,  ota_0,   0x10000, 0x1B0000,
app1,     app,  ota_1,   0x1C0000,0x1B0000,
spiffs,   data, spiffs,  0x370000,0x70000,

et mettre ce fichier en référence dans le PlatformIO.ini

board_build.partitions = partitions.csv

Cette procédure est en effet fastidieuse. Par contre, l'ESP32 que j'utilisais avait déjà "reçu" des fichiers en SPIFFS à partir de l'IDE Arduino. Du coup, je n'ai pas eu à créer la partition.

Bien sûr, avec l'IDE Arduino on ne peut pas déterminer la taille ce qui est possible avec la méthode que tu proposes.
Titre: Re : IDE Arduino une alternative plus riche sans être complexe
Posté par: bobyAndCo le juin 25, 2020, 12:14:02 am
@ Thierry :

On ne peut simplement pas se passer de l'IDE Arduino. Pour des questions de pérennité, de simplicité, et aussi parce que ces utilisateurs que l'on attire du coté obscur de l'Arduino sont souvent des béotiens du domaine Electronique/Informatique et seraient pour la plupart forcément rebutés par des installations d'outil multiples et variés, et des paramétrages de ces outils tout aussi peu simples...

Tu as tout à fait raison de le rappeler. D'ailleurs, Tommy dans la vidéo du premier post de François dit la même chose. "Si l'IDE Arduino vous convient, ne changez pas !"
Titre: Re : IDE Arduino une alternative plus riche sans être complexe
Posté par: Thierry le juin 25, 2020, 02:23:45 pm
Ça ne nous empêche évidemment pas de chercher à améliorer notre 'productivité' avec des outils plus pointus, mais il ne faut pas oublier de compiler TOUS nos projets sur l'IDE Arduino parce que c'est là qu'ils seront utilisés...
Titre: Choix d'un IDE alternatif
Posté par: AmadeusHF le février 18, 2021, 07:44:20 pm
Bonjour à tous, en particulier à ceux qui codent !

J'ai une question similaire à celle relative au choix d'un soft pour le routage de PCB...

Ici il s'agit du choix d'un IDE plus poussé que celui fourni de base pour Arduino.
J'en connais des tonnes depuis le temps que je programme, au quotidien je tourne avec Eclipse ou VStudioCode par exemple, ma contrainte étant que je suis (et resterai) sous Linux...donc sont exclus les outils purement Windows.

Vous me suggérez quoi ?

Le besoin est d'avoir un truc efficace pour le C/C++ et l'assembleur idéalement.

La question vise en particulier Thierry, j'ai cru percevoir dans tes sources que tu tournais avec VisualStudio...me gourges ? ;)
Titre: Re : Choix d'un IDE alternatif
Posté par: AmadeusHF le février 18, 2021, 07:48:34 pm
Je fais notamment référence à cette page :

https://playground.arduino.cc/Main/DevelopmentTools/

Ma question vise surtout à savoir ce que vous avez essayé et ce qui marche bien / pas terrible.

Je vais bien entendu tester le plugin Eclipse...j'ai déjà pratiqué pour du dev Gnu/C/C++ Linux avec le CDT qui integre très bien GCC et GDB.

Si il y avait l'équivalent pour l'arduino ce serais top...
Titre: Re : Choix d'un IDE alternatif
Posté par: bobyAndCo le février 18, 2021, 08:01:30 pm
Ce sujet a déjà été évoqué sur le forum. Cherche !

Pour ma part, et je crois que c'est assez général, VS Studio Code (que tu utilises déjà) avec PlateformIO.
Titre: Re : Choix d'un IDE alternatif
Posté par: AmadeusHF le février 18, 2021, 08:08:21 pm
....si je pose la question c'est que ces choses ont tendance à évoluer : il y a des tonnes d'outils mais certains n'existent déjà plus ou ne sont plus maintenus. Ca ne mange pas de pain de faire un refresh de la question.

Merci pour ta réponse. J'ai cette combinaison en tete, mais j'aimerai savoir si d'autres ont fait d'autres choix et pourquoi (notamment avec des éléments concrets de comparaison)
Titre: Re : IDE Arduino une alternative plus riche sans être complexe
Posté par: Thierry le février 19, 2021, 10:42:28 am
Comme j'ai déjà eu l'occasion de le dire, Visual Studio Community me sert pour développer grâce à un éditeur puissant et des facilités pour naviguer entre les sources. Grâce à un simulateur, je debugge aussi depuis visual avec un outil externe de ma conception qui représente l'Arduino, tout ça sans Arduino connecté bien sûr. Mais au final, lorsque je veux tester sur le vrai matériel, c'est l'IDE Arduino qui compile et télécharge le résultat sur la petite bête.
J'ai essayé PlatformIO dans Visual Studio ou Eclipse au début, et ça ne m'a pas convenu. Trop compliqué, non fonctionnel 'out of the box'. Ca c'était avant. Ca a sans doute évolué depuis ! Et puis comme je reste conscient du besoin que tout marche avec l'IDE officiel, surtout pour mes nombreuses bibliothèques, c'est un bon moyen d'être forcé d'y revenir systématiquement.

PS : J'utilise aussi SublimeText, mais uniquement en remplacement du Notepad de base pour le tout venant des fichiers texte.
Titre: Re : IDE Arduino une alternative plus riche sans être complexe
Posté par: AmadeusHF le février 19, 2021, 11:27:06 am
Merci pour ton retour Thierry

J'ai fait une passe de test sur Sloeber, le plugin pour Ecliipse, hier soir : version actuelle soit 4.04 il me semble.

Deux constats :


Au delà, en version PRODUCT, tout semble fonctionner : édition avec toutes les facilités d'Eclipse, compilation, chargement de l'Arduino, console série, gestionnaire de libraires : bref l'équivalent des fonctions de l'IDE mais dans Eclipse.

Je vais voir ce que ça donne au quotidien pour des projets significatifs et je ferais un retour.
Titre: Re : IDE Arduino une alternative plus riche sans être complexe
Posté par: Dominique le février 19, 2021, 02:41:45 pm
Je suis du même avis que Thierry : il vaut mieux, en finale, compiler et tester avec l'IDE Arduino pour tout projet à partager sur Locoduino, afin de permettre à tous d'être dans les même conditions et éviter aux débutants d'installer autre chose que l'IDE Arduino.

Et pouvoir assurer le support de ce que l'on partage !