Auteur Sujet: IDE Arduino une alternative plus riche sans être complexe  (Lu 15112 fois)

fcot2002

  • Full Member
  • ***
  • Messages: 114
    • Voir le profil
IDE Arduino une alternative plus riche sans être complexe
« 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.



Au plaisir

« Modifié: juin 23, 2020, 09:47:22 pm par bobyAndCo »

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 904
  • HO avec DCC++
    • Voir le profil
Re : IDE Arduino une alternative plus riche sans être complexe
« Réponse #1 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.

« Modifié: juin 18, 2020, 03:23:56 pm par bobyAndCo »

fcot2002

  • Full Member
  • ***
  • Messages: 114
    • Voir le profil
Re : IDE Arduino une alternative plus riche sans être complexe
« Réponse #2 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

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 904
  • HO avec DCC++
    • Voir le profil
Re : IDE Arduino une alternative plus riche sans être complexe
« Réponse #3 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.

ethal

  • Newbie
  • *
  • Messages: 11
    • Voir le profil
Re : IDE Arduino une alternative plus riche sans être complexe
« Réponse #4 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,



« Modifié: juin 21, 2020, 05:45:13 pm par ethal »

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 904
  • HO avec DCC++
    • Voir le profil
Re : IDE Arduino une alternative plus riche sans être complexe
« Réponse #5 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.

fcot2002

  • Full Member
  • ***
  • Messages: 114
    • Voir le profil
Re : IDE Arduino une alternative plus riche sans être complexe
« Réponse #6 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 ;-)

Pyk35

  • Full Member
  • ***
  • Messages: 110
    • Voir le profil
Re : IDE Arduino une alternative plus riche sans être complexe
« Réponse #7 le: juin 22, 2020, 10:46:40 pm »
Et du coup PlateformIO, vous y accédez via visual studio code?
A+
Cédric

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 904
  • HO avec DCC++
    • Voir le profil
Re : IDE Arduino une alternative plus riche sans être complexe
« Réponse #8 le: juin 23, 2020, 02:01:33 pm »
Salut Cédric, oui, c'est un plug-in de Visual Studio Code.

Pyk35

  • Full Member
  • ***
  • Messages: 110
    • Voir le profil
Re : IDE Arduino une alternative plus riche sans être complexe
« Réponse #9 le: juin 23, 2020, 03:22:14 pm »
Je suis d’accord, j’avais un doute.
A+
Cédric

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 904
  • HO avec DCC++
    • Voir le profil
Re : IDE Arduino une alternative plus riche sans être complexe
« Réponse #10 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.
« Modifié: juin 23, 2020, 09:48:35 pm par bobyAndCo »

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 904
  • HO avec DCC++
    • Voir le profil
Re : IDE Arduino une alternative plus riche sans être complexe
« Réponse #11 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

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2889
  • 100% Arduino et N
    • Voir le profil
Re : IDE Arduino une alternative plus riche sans être complexe
« Réponse #12 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 ?
Cordialement,
Dominique

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 745
    • Voir le profil
Re : IDE Arduino une alternative plus riche sans être complexe
« Réponse #13 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...

ethal

  • Newbie
  • *
  • Messages: 11
    • Voir le profil
Re : Re : IDE Arduino une alternative plus riche sans être complexe
« Réponse #14 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.


« Modifié: juin 24, 2020, 07:13:00 pm par ethal »