Bienvenue sur le site des Questions/Réponses du site www.mon-club-elec.fr. Posez vos questions autour de l'Arduino, de l'électronique programmée, de la programmation des mini-PC avec Pyduino ou encore du langage Python : nos spécialistes et la communauté vous répondront en français ! Notez les meilleures réponses : tous en profiteront !
Bienvenue sur le site des Questions/Réponses du site www.mon-club-elec.fr. Posez vos questions autour de l'Arduino, de l'électronique programmée, de la programmation des mini-PC avec Pyduino ou encore du langage Python : nos spécialistes et la communauté vous répondront en français ! Notez les meilleures réponses : tous en profiteront !

Donnez-moi 10 bonnes raisons de coder avec Pyduino plutôt qu'Arduino !

0 votes
Je découvre Pyduino, je connais le langage Arduino. J'ai bien compris que le langage Arduino est basé sur le langage C tout en apportant une couche d'abstraction qui simplifie le codage. D'après ce que je comprends aussi, Pyduino est basé sur le langage Python et reprend les instructions Arduino à l'identique pour l'essentiel, permettant de contrôler les GPIO d'un mini-PC aussi simplement qu'une carte Arduino... Mais à part ça, qu'apporte de plus le passage du langage Arduino au langage Pyduino, ou pour dire les choses autrement, le passage du langage C au langage Python ?? Donnez-moi au moins 10 bonnes raisons de faire le saut ! enfin si elles existent...
demandé 21-Jan-2014 dans PYDUINO : Généralités par newbie (480 points)

1 Réponse

0 votes

La première chose que j'ai envie de vous dire avant tout, c'est que Pyduino vous permet de retrouver l'environnement Arduino à l'identique sur le mini-PC : les instructions sont les mêmes pour l'essentiel (à 95%), l'IDE Pyduino est comparable à l'IDE Arduino, on utilise le Terminal avec Pyduino comme on utilise le Terminal avec Arduino, etc... J'ai déjà envie de dire que cette "non-différence"  globale est un argument en faveur de Pyduino : si vous connaissez Arduino, vous ne serez pas perdu avec Pyduino, si vous apprenez Pyduino, vous apprenez Arduino du même coup... Autrement dit, c'est un apprentissage polyvalent, "rentable" quelque soit la plateforme sur laquelle on commence...

Mais au-delà de ce point, Pyduino basé sur le langage Python et utilisé sur un mini-PC apporte de nombreux atouts très très intéressants en "codage pur".... et je ne devrais pas avoir de mal à en trouver au moins 10 significatifs :

  • Pyduino simplifie la syntaxe du code : pas d'accolades qui traînent, pas de ; de fin de ligne, etc... Une fois comprise l'utilisation de l'indentation des blocs de code, on apprend très vite grâce à çà !
  • Pyduino permet de tester des instructions "à la volée" directement dans l'interpréteur Python, sans avoir à compiler obligatoire un programme : ceci est possible car le langage Python est un langage interprété... Très pratique pour apprendre... Impossible avec Arduino...
  • Pyduino permet également d'exécuter un code même si il contient encore des erreurs... : le code est "interprété" et l'exécution sera stoppée seulement lors de l'erreur avec un message... mais le code aura été exécuté jusqu'à l'erreur au préalable... Avec Arduino, le code doit être "sans erreur" d'emblée pour être exécuté...
  • Avec Pyduino, dans le même code, on va pouvoir accéder au GPIO, au réseau, à la carte SD, gérer la webcam etc... ! Vous pourrez même faire une interface graphique appelant les fonctions Pyduino directement ! Avec Arduino, ce n'est pas possible....
  • Avec Pyduino, on n'a pas à s'occuper de la RAM... car elle est illimitée pour ainsi dire ! Sur une carte Arduino, on dispose de quelques ko de RAM, sur un mini-PC, on dispose de Méga-octets de RAM. Conséquence : sur le mini-PC, la taille des chaînes n'a aucune importance, le nombre de messages affichés n'a aucune importance... Avec Arduino, il faut y penser en permanence et ruser le cas échéant... Un programme qui s'arrête sans raison... c'est un dépassement de RAM probable de la carte Arduino.
  • Avec Pyduino utilisé sur un mini-PC, sans aucun shield complémentaire et surtout SANS SERVEUR EXTERNE, il est facile de réaliser un serveur de fichiers texte, image, sons, vidéos, d'utiliser des librairies Javascript locale au sein d'une page HTML fournie par le code serveur Pyduino !!!  Autrement dit, il est possible de créer des serveurs graphiques autonomes, interactifs et sans fil, accessible depuis n'importe autre navigateur ou système (Gnu/Linux, Windows, Mac, etc...) et même d'une tablette Android... A lui tout seul, ce point est un atout inégalable avec Arduino... !
  • Un mini-PC utilisé avec Pyduino est programmable à distance et sans fil "en natif", sans avoir besoin d'équipement supplémentaire notamment pour le pcDuino v2 qui intègre une carte Wifi ! Les conséquences sont nombreuses : le mini-PC peut être physiquement éloigné du poste de travail, on peut travailler sur plusieurs mini-PC d'un même poste de travail, on peut relancer un code serveur à distance même si il a "planté", on peut utiliser le retour vidéo, etc... Impossible avec Arduino !
  • Pyduino permet l'utilisation des chaînes multilignes incluant des caractères spéciaux très simplement, avec possibilité d'inclusion automatique ou conditionnelle de variables du code Pyduino au sein de la chaîne multiligne ! Conséquence : il est possible de copier/coller le code HTML / Javascript d'une page web au sein d'un code Pyduino d'un coup, sans avoir besoin d'échapper les caractères spéciaux et en incluant aux endroits voulus les variables utiles du code Pyduino... Cette possibilité rend la mise en place d'un serveur élaboré relativement simple... et fait gagner un temps fou... A comparer à une succession de println(chaine) nécessaires avec Arduino...
  • Avec Pyduino, la gestion des répertoires et des chemins, l'ouverture et la lecture des fichiers est très simple : la lecture de la liste des fichiers d'un répertoire ou la lecture d'un fichier texte se font en... 1 ligne d'un coup !! Rien à voir avec la nécessité d'un code ré-entrant en boucle utilisé pour lire le contenu d'un répertoire d'une carte SD avec Arduino... Rien à voir non plus avec la lecture caractère par caractère du contenu d'un fichier... sans parler de la prise en compte du débordement possible de la RAM... avec Arduino. Il faut avoir fait les 2 pour comprendre de quoi je parle... en un mot, utiliser les fichiers avec Pyduino, c'est faire en quelques minutes... ce que l'on mettrai plusieurs heures à coder avec Arduino... pour un résultat instable en plus.
  • Pyduino offre une précision des calculs mathématiques, notamment en virgule flottante, très impressionnante ! Par exemple, il est possible d'utiliser des variables avec une précision de 35 chiffres derrière la virgule sans perte de précision !!! Du coup, les calculs physiques ou astronomiques deviennent possibles... Avec Arduino, c'est 8 chiffres de précision en tout... déjà bien pour les besoins courant.... mais vraiment insuffisant pour des calculs astronomiques !
  • Avec Pyduino, les tableaux de variables sont des "list" : la différence est fondamentale car la souplesse est totale ! Il devient possible d'enlever, d'ajouter des éléments à un tableau très simplement, de mixer les types différents dans un tableau, etc... On est loin de la "rigidité" des tableaux en C (taille prédéfinie, type unique...)
  • Avec Pyduino, il est très simple de défiler un tableau grâce à la boucle Python : plus besoin d'utiliser l'index pour accéder à l'élément courant, il suffit de défiler les éléments.... Quand on y a goûté, on aime çà !! Et quand vous combinez çà à la possibilité de mixer les types dans le "tableau"...
  • Avec Pyduino, on peut passer littéralement "ce que l'on veut" en paramètre à une fonction : tableau, int, float, etc...et même une fonction !! Passer un tableau à une fonction en Arduino relève d'un véritable défi de compréhension notamment en ce qui concerne les pointeurs...
  • Avec Pyduino, on dispose de librairies mathématiques permettant des calculs sur  tableaux multi-dimensionnels aussi simplement que sur une variable simple ! Même le calcul "symbolique" est possible, ainsi que la résolution d'équations, etc...  Je n'ai même pas osé imaginer que c'était envisageable lorsque je j'utilisais Arduino
  • Avec Pyduino, l'analyse des chaînes est très puissante grâce aux "expressions régulières" et la manipulation des éléments d'une list ou d'un tableau est rendue très puissante grâce à la notation dite "slice"... Avec Arduino, jamais entendu parlé de çà...
  • Plein, plein de librairies dans tous les domaines pour faire plein de chose disponibles... !!

Je crois que j'ai largement dépassé les 10 raisons... En fait, le langage Python est un langage dont on tombe quasiment "amoureux" quand on commence à l'utiliser.... car il rend simple ce qui est compliqué dans d'autres langages. Vous gagnez du temps à "tous les étages" et surtout "çà marche !" Pyduino repose sur le langage Python, tout en rendant son utilisation aussi simple qu'Arduino...Pas belle la vie ?

répondu 21-Jan-2014 par xavadmin (3,140 points)
edité 22-Jan-2014 par xavadmin
...