Le pcDuino : quel langage pour programmer le - Mon Club-Elec

Le pcDuino : quel langage pour programmer le pcDuino ?
Par X. HINAULT – Juin 2013– MAJ : Juin 2013 – www.mon-club-elec.fr
Intro
Le pcDuino est donc un vrai mini-PC qui dispose des broches E/S sur le même schéma que l'Arduino sur un même système. La question se pose tout
naturellement de la meilleure solution de développement à adopter, au sens fluidité d'usage, simplicité de mise en œuvre, facilité de codage, potentiel
évolutif, etc... pour programmer la « bête ».
Pour les possibilités de programmation des broches E/S, grosso modo, on peut distinguer :
le codage en C/C++ (langage compilé – chaîne de compilation présente nativement sur le système)
soit en C/C++ brut dans un éditeur C/C++
soit en Arduino-like dans l'éditeur Arduino adapté, qui rappelons-le repose sur Java. En pratique, le code utilisé est tout de même assez différent du
code Arduino original..
le codage en Python (langage interprété – présent nativement sur le système )
soit en Python dans l'interpréteur, ce qui permet très simplement de faire des tests
soit en Python brut dans un éditeur Python permettant l'exécution des codes « à la volée » par simple clic sur bouton exécuter
soit en Python « Arduino-like » dans un éditeur Python : je vous propose ma propre solution « maison »... je pense que çà vous plaira...
Ce qu'il faut savoir, c'est que les broches E/S du pcDuino sont accessibles par l'intermédiaire de fichiers système, en lecture ou écriture. Dès lors, travailler
avec les broches E/S et analogiques du pcDuino va essentiellement consister à travailler sur des fichiers. A ce titre, l'usage de la chaîne de compilation
Le pcDuino : choisir un langage pour programmer le pcDuino - Par X. HINAULT – Juin 2013 – www.mon-club-elec.fr – p. 1 / 7
C/C++ n'a rien d'indispensable sur le pcDuino (à la différence de l'Arduino qui exécute un binaire transféré dans le microprocesseur)
Programmer les broches E/S du pcDuino en C/C++ à partir de l'IDE Arduino ?
La dernière version de la distribution Lubuntu fournie pour le pcDuino intègre un IDE Arduino modifié (paquet pcduino-arduino-ide) pour programmer
directement les broches E/S du pcDuino (voir : http://www.pcduino.com/?p=946 ):
Ajout de la carte pcDuino et des exemples pour le pcDuino
Le pcDuino : choisir un langage pour programmer le pcDuino - Par X. HINAULT – Juin 2013 – www.mon-club-elec.fr – p. 2 / 7
Le code « Arduino » utilisé est quand même assez différent du code Arduino « standard »...
L'idée paraît séduisante à première vue en ce sens que l'on reste dans l'environnement connu de l'IDE Arduino mais les limites sont bien là :
le langage « Arduino » utilisé intègre de nombreux éléments de C/C++ qui nécessitent une réelle adaptation... Rien que la capture d'écran ci-dessus est
à peu près incompréhensible si on ne connaît que Arduino...
même si coder les broches E/S de cette façon peut éventuellement être intéressante pour un test initial...
cette solution est surtout une impasse en terme de possibilités de développement à moyen terme car elle fait perdre le potentiel très très intéressant
que représente la « jonction » des broches E/S et des fonctions systèmes au sein d'un même code : cela semble vraiment dommage vu le potentiel très
intéressant que représente la possibilité d'allier dans un même code l'utilisation des broches E/S, analogiques, etc... et les fonctions avancées du système
Le pcDuino : choisir un langage pour programmer le pcDuino - Par X. HINAULT – Juin 2013 – www.mon-club-elec.fr – p. 3 / 7
Lubuntu (vidéo, réseau, son, etc... )
En bref :
A mon sens, programmer les broches E/S du pcDuino au sein de l'IDE Arduino sur le pcDuino, c'est se priver du potentiel énorme que représente la programmation au sein
d'un même code des broches E/S ET des éléments du système Lubuntu du pcDuino (réseau, vidéo, son, etc... ). Dans ce cas autant utiliser une carte Arduino !
En clair, avec l'IDE Arduino, vous ne pourrez jamais réaliser une capture d'image (fonctionnalité système Lubuntu) par appui sur un bouton poussoir (broche E/S), alors
qu'avec un code Python, çà sera assez facile à faire, mais aussi à l'enregistrer, l'envoyer sur le réseau, etc...
En « re-clair », avec l'IDE Arduino, on ne fera que du -Duino sur le pcDuino : seul Python permettra de faire du PC+Duino sur le pcDuino !
Analyse : ressources utilisées par Java, l'IDE Arduino et la toolchain avr-c versus Python / Geany
De plus, l'IDE Arduino repose sur Java (l'IDE Arduino est un fait une interface Processing « modifiée »), ainsi que sur la chaîne de compilation C pour
l'avr... Or, je rappelle que :
nous sommes sur un « vrai » PC et que l'accès aux broches E/S se fait par de simples fichiers... donc à priori pas la peine de se compliquer la vie avec
une chaîne de compilation qui n'est pas indispensable...
nous sommes dans la situation d'un système néanmoins limité, notamment l'espace de mémoire NAND pour le système n'est que de 2 Go... Un rapide
listing des paquets installés classé par ordre de taille avec la commande :
$ dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n
donne ceci :
Le pcDuino : choisir un langage pour programmer le pcDuino - Par X. HINAULT – Juin 2013 – www.mon-club-elec.fr – p. 4 / 7
Constat : à eux seuls les paquets Java, IDE Arduino, gcc-avr , binutils-avr... etc.. occupent 200 Mo de la mémoire NAND... En comparaison, l'alternative
représentée par Python + l'éditeur Geany occupe à peine 10 Mo... !!!!!!
Au final, ce constat m'incite à opter pour l'alternative légère et puissante que constitue Python + Geany pour développer sur le pcDuino.
De plus, cette façon de coder va permettre une programmation très interactive car aucune compilation n'est nécessaire, le code étant immédiatement
interprété.
Mon choix : le langage Python
A mon sens, le langage Python est probablement la meilleure solution pour plusieurs raisons :
Le pcDuino : choisir un langage pour programmer le pcDuino - Par X. HINAULT – Juin 2013 – www.mon-club-elec.fr – p. 5 / 7
1 / 7 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !