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 l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!