Logiciel Arduino
Ce tutoriel vous guidera dans le téléchargement, l’installation et le test du logiciel Arduino (également connu sous le nom de Arduino IDE – abréviation de Integrated Development Environment). Avant de passer à la page correspondant à votre système d’exploitation, assurez-vous que vous disposez de tout le matériel nécessaire.
Pour suivre ce tutoriel, vous aurez besoin du matériel suivant. Il est possible que vous n’ayez pas besoin de tout, en fonction de ce que vous avez. Ajoutez-le à votre panier, lisez le guide et ajustez le panier si nécessaire.
Remarque : Il existe plusieurs variantes qui utilisent l’empreinte de l’Arduino Uno R3. En fonction de la conception, vous devrez peut-être installer des pilotes supplémentaires pour votre convertisseur USB-série avant de pouvoir télécharger du code sur votre microcontrôleur. Par exemple, la RedBoard utilise un FTDI tandis que la RedBoard Plus utilise le CH340.
Les deux utilisent des pilotes différents par rapport à l’Arduino Uno R3. Assurez-vous de regarder attentivement votre carte et son guide de branchement respectif pour déterminer le convertisseur USB-série qui est à bord. Vous aurez probablement un FTDI ou un CH340 sur la carte.
Télécharger Arduino ide 2.0
Vous pouvez télécharger le dump hexadécimal du fichier, mais il n’y a pas de moyen facile d’obtenir tout le code C++ et les commentaires. Si vous comprenez l’assemblage, vous pourriez recréer le programme, mais cela prendrait du temps. Il y a des dissassembleurs disponibles pour certains appareils, je ne sais pas pour arduino.
Dans le cas d’un “sketch court”, il est préférable de réécrire à partir de zéro. Ce serait plus rapide, presque certainement. Dans le cas d’un “long sketch”, cela ne vaut tout simplement pas la peine. Aucun des noms de variables n’est préservé et, vu la façon dont le compilateur optimise le code, même la structure du code serait difficile à déterminer.
Une autre approche pourrait être de traiter le programme embarqué sur l’Arduino comme un exercice de boîte noire. C’est-à-dire, exécuter le programme et prendre des notes minutieuses de ce qui se passe (via Serial Monitor ou autre). Si, en fait, il y a une sortie que vous pouvez observer, faites-en une tâche pour créer votre propre nouveau code pour émuler ce que le programme FAIT. Cela ne sera pas productif à moins que le programmeur d’origine ait généreusement inclus des instructions Serial.print() dans tout le code, ce que je RECOMMANDE FORTEMENT comme une habitude de programmation à développer. Cela facilite justement l’exercice que je suggère. (Demandez-moi pourquoi j’ai développé cette habitude pour tout ce que j’ai codé au cours des 30 dernières années).
Idée Arduino
Pour presque tous les microcontrôleurs, vous pouvez relire le contenu de la flash (si elle n’a pas été spécialement sécurisée par une protection de lecture). Voir par exemple pour les puces AVR ou ESP8266/ESP32. Cependant, vous avez alors exactement cela – le code machine. Le code C/C++ original n’est pas sur la carte.
Transformer le contenu du flash de lecture / code machine en code C/C++ original tel qu’il était avant la compilation est un processus appelé ingénierie inverse. Des programmes comme IDA (Pro) et Ghidra de la NSA sont conçus pour cela, avec leurs désassembleurs et décompilateurs intégrés. Il s’agit cependant d’un processus très manuel si vous voulez récupérer un code bien lisible – vous devez renommer toutes les fonctions et variables (car il n’y a pas de noms de ce genre enregistrés dans le cade de la machine), reconstruire les types de données utilisés à l’origine, etc. Dans le cas où vous ne disposez que d’un désassembleur (comme radare2), vous devez reconvertir vous-même le code machine en fonctions C/C++. Dans tous les cas, il est conseillé d’en savoir beaucoup sur l’architecture du CPU et le jeu d’instructions de votre carte cible afin de donner un sens au contenu récupéré.
Transférer le code de l’arduino à l’ordinateur
Je veux télécharger un sketch depuis la carte Arduino UNO J’utilise l’IDE 1.8.13. Je ne peux que télécharger des sketchs sur la carte. Existe-t-il un moyen ou un autre programme qui me permette d’éditer le sketch qui se trouve déjà sur le FLAS de l’Arduino UNO ou des cartes compatibles ?
Ce que vous téléchargez sur un Arduino est le résultat du compilateur Arduino, qui a compilé le code C du sketch en code Assembleur (au format binaire/hex).
Si vous parvenez à télécharger les données hexadécimales brutes de votre Arduino, il y a peut-être une option pour les reconvertir en code C, mais le code résultant sera très difficile à lire ou à utiliser (pas de noms de variables, d’appels système directs, d’autres choses bizarres, etc).
Je n’ai pas d’expérience avec Python sur l’Arduino, mais comme tous les microcontrôleurs utilisent une forme d’assembleur, Python peut fonctionner de la même manière (un compilateur convertit le C, ou dans votre cas Python, en code adapté à l’Arduino).
Si vous voulez apprendre Python, je vous recommande de l’apprendre d’abord sur un PC normal (par exemple, créer des programmes PC ou Mac), afin de mieux comprendre les mécanismes de Python et le langage lui-même, avant d’être confus par les étapes supplémentaires nécessaires pour le faire sur un Arduino.