Le BeagleBone Black offre une simplicité de connectivité Arduino aux systèmes Linux embarqués

Par Rédacteurs européens

Avec la contribution de Rédacteurs européens de DigiKey


Le Raspberry Pi a apporté une contribution importante à l'industrie électronique au cours de l'année qui vient de s'écouler depuis son lancement. Initialement positionné comme ordinateur à faible coût pour un usage éducatif, il a rapidement renforcé son attractivité sur le marché de l'électronique grand public en tant que plateforme de prototypage et d'évaluation pour les ingénieurs. En plus d'être utilisé pour l'enseignement de l'informatique, le Pi est très largement suivi par un public de passionnés et d'amateurs d'électronique, ce qui ne s'était pas vu depuis très longtemps. Compte tenu de l'enthousiasme que le Pi a généré, on serait tenté de croire que rien de semblable n'a eu lieu dans le passé. Toutefois, il existe des cartes semblables à Arduino depuis longtemps, lesquelles sont plébiscitées par une forte communauté d'utilisateurs de ressources de programmation sur le Web pour faciliter le développement. Il existe, bien sûr, des différences fondamentales entre ces cartes. La carte Arduino utilise un microcontrôleur AVR 8 bits d'Atmel et fournit des E/S adéquates pour une connexion avec des applications du monde réel, ainsi qu'un environnement de développement intégré (IDE) extrêmement convivial. L'Arduino constitue une base idéale pour l'apprentissage de la programmation d'un microcontrôleur embarqué à l'aide d'un langage tel que le langage C, mais aussi de l'électronique de base. En revanche, le Raspberry Pi utilise un système sur puce SoC ARM® 32 bits et se veut davantage au service de l'enseignement des rudiments des langages informatiques de haut niveau et des systèmes d'exploitation tels que Linux dans les écoles et autres établissements d'enseignement supérieur. La prise en charge de Linux est disponible sur une multitude de cartes de développement embarquées et offre de nombreux avantages par rapport aux cartes 8 bits moins puissantes. Elle permet également de partager le processeur entre plusieurs programmes et tâches en cours d'exécution. Le BeagleBoard-XM est un exemple de carte basée sur Linux, c'est-à-dire une véritable carte de développement open-source développée avec le support de Texas Instruments. Cependant, c'est la dernière carte de développement Linux proposée par Texas Instruments qui suscite beaucoup d'intérêt. Le BeagleBone Black, lancé en avril 2013, est considéré comme un sérieux concurrent au Raspberry Pi. Il fait office de plateforme idéale non seulement pour découvrir le système informatique Linux, mais également pour apprendre l'électronique de base grâce à l'interface et à l'interaction avec des applications du monde réel. Le format BeagleBone, initialement lancé à la fin de l'année 2011, a permis non seulement de regrouper la plupart des fonctionnalités du BeagleBoard-XM au sein d'un boîtier de la taille d'une carte de crédit plus compact, mais il présente également une empreinte standard de deux connecteurs à 46 broches double rangée pour une série de modules d'extension de carte fille appelés « capes ». Similaires aux cartes d’extension « Shields » utilisées avec Arduino, ces modules permettent d'héberger une variété de cartes enfichables afin d'ajouter des E/S encore plus avancées.

CircuitCo BeagleBone Black

Figure 1 : BeagleBone Black – Disposition des principaux composants.

Le BeagleBone Black intègre un microprocesseur Sitara™ AM3359 ARM Cortex™-A8 de Texas Instruments, cadencé à 1 GHz (2000 DMIPS), par opposition à un dispositif de 720 MHz sur le Raspberry Pi. Fait le plus remarquable, le modèle Black dispose de 2 Go de mémoire Flash intégrée, en plus des 512 Mo de mémoire DDR3 à 400 MHz. Un connecteur micro HDMI de type D, ainsi que des ports Ethernet et USB sont inclus et la carte est alimentée par une unique source de 5 VCC. La carte peut également être alimentée par le port USB, car elle ne consomme que 250 mA maximum.

Côté logiciel, un grand nombre de programmes prêts à l'emploi a été préchargé sur le Black. Il suffit de connecter l'alimentation, les ports HDMI et Ethernet, ainsi qu'un clavier/une souris USB pour que la carte démarre la distribution Angstrom Linux, après quoi le bureau Gnome apparaît. Au cours du processus de démarrage, l'ensemble de 4 voyants DEL utilisateur (USR0 – 3) clignote pour signaler une activité. Grâce aux trois navigateurs fournis, Chrome, Firefox et Epiphany, vous pouvez surfer sur Internet en quelques secondes. Il n'est pas nécessaire d'ajouter une carte SD Flash ni de télécharger la distribution avant de pouvoir faire fonctionner la carte pour la première fois comme c'est le cas avec le Raspberry Pi. Si Angstrom Linux convient à la majorité des développeurs et amateurs, le modèle Black peut également exécuter le système d'exploitation Ubuntu ou Android grâce à l'architecture ARM v7 utilisée dans le dispositif Cortex-A8. La connectivité supplémentaire offerte par une interface Ethernet constitue un autre aspect de l'utilisation de Linux sur une carte de développement. Ainsi, l'utilisation de FTP, SSH, Telnet et autres services d'accès à distance offre la flexibilité au niveau des connexions, en plus de la possibilité de se connecter au propre serveur Web du Black.

CircuitCo BeagleBone Black - Schéma fonctionnel

Figure 2 : Schéma fonctionnel du BeagleBone Black.

En termes d'outils de développement, le Black est également bien équipé. Un interpréteur Python et un compilateur C/C++ sont préchargés avec une réplique locale de l'environnement de développement intégré Cloud9, préconfigurée pour exécuter Node.js. On y trouve aussi la bibliothèque Bonescript, basée sur Node.js, qui fournit un certain nombre de fonctions Arduino pour gérer l'interface avec le matériel. Par conséquent, les lecteurs qui connaissent bien la fonction « digitalWrite » d'Arduino se sentiront immédiatement à l'aise avec cette fonctionnalité et avec les fonctions similaires incluses avec Bonescript. Les ressources de la communauté beagleboard.org servent également de référentiel utile de projets d'exemple, de forums instructifs et de documentation sur le matériel/logiciel.

Brochage GPIO CircuitCo BeagleBone Black

Figure 3 : Brochage GPIO du BeagleBone Black.

C'est grâce à ces outils et à sa capacité à utiliser ses E/S à usage général (GPIO) étendues que le modèle Black est clairement devenu une plateforme idéale pour une utilisation dans l'enseignement de l'informatique et l'apprentissage de l'électronique de base. Le BeagleBone Black dispose d'un total de 92 broches accessibles via les deux embases à double rangée P8 et P9. Bien supérieures aux GPIO disponibles sur l'Arduino ou le Raspberry Pi, ces embases permettent également les connexions aux capes d'extension. Les broches peuvent avoir différentes fonctions, du contrôle des E/S à la lecture des capteurs, en passant par le fonctionnement des relais et la commande des DEL. Disponibles auprès de divers fournisseurs tiers, les capes jouent un rôle essentiel en fournissant notamment une zone de montage d'essai simple, un écran LCD et même un cape complet utilisé pour contrôler les projets de véhicules sous-marins. Le site communautaire beagebonecapes.com, mis à disposition par CircuitCo, le fabricant du BeagleBone Black, tient à jour une liste des capes compatibles qui ont été testés et jugés entièrement conformes. Techniquement, jusqu'à 4 capes peuvent être empilés les uns sur les autres tant qu'il n'y a pas de conflits dans l'utilisation des GPIO. Par ailleurs, il convient de noter qu'il existe plusieurs façons de configurer ou de multiplexer les GPIO. Selon le système d'exploitation, les GPIO peuvent fonctionner avec un mode différent. Le mode de multiplexage par défaut avec Angstrom Linux est le mode 7. Le nom du signal Linux pour une broche spécifique n'est pas identique au numéro de broche indiqué sur la carte.

Le moyen le plus aisé d'expérimenter avec ces GPIO consiste à utiliser l'environnement de développement intégré (IDE) Cloud9. Cloud9 est lancé automatiquement au moment du démarrage et est accessible à l'aide du propre serveur Web du Black. Le navigateur Epiphany semble trouver l'environnement de développement intégré automatiquement au démarrage, mais n'importe quel navigateur peut être configuré pour pointer vers le port 3000 de l'adresse IP du BeagleBone Black. Si la procédure est similaire à l'utilisation de l'environnement de développement intégré d'Arduino, il n'est cependant pas nécessaire de charger le code sur la carte ; il est automatiquement stocké dans le système de fichiers. Le propre serveur Web du Black fournit un ensemble pratique de pages qui vous donne également accès à l'environnement de développement intégré Cloud9 et à des exemples de code Bonescript simples qui peuvent être exécutés de manière interactive avec la carte.

Environnement de développement intégré Cloud9

Figure 4 : Environnement de développement intégré Cloud9.

À l'instar de la plupart des environnements de développement intégré traditionnels pour les applications embarquées, Cloud9 dispose de zones d'espace de travail pour la modification, la validation, le débogage et le test du code. L'écriture de code est un processus interactif au cours duquel la vérification de la syntaxe et des variables a lieu au moment de la saisie. Le processus de débogage est beaucoup plus sophistiqué que celui d'Arduino, avec la pleine utilisation des points d'arrêt, des variables à surveiller et l'exécution en une seule étape. Cloud9 fournit un certain nombre d'exemples simples écrits en JavaScript node.js et intégrant la bibliothèque Bonescript. L'exemple de code « blinked.js » (voir Figure 5) permet d'activer l'un des voyants DEL utilisateur (USR3). Cet exemple peut être étendu à l'utilisation d'une des broches GPIO en connectant une DEL et une résistance de limitation de courant/d'excursion haute à la broche GPIO désirée et en modifiant l'affectation de ledPin sur la GPIO pertinente, par exemple bone.P8_3. En tant qu'environnement de développement intégré d'entrée de gamme, Cloud9 fournit un moyen rapide et facile d'écrire des projets de code courts, puis de les exécuter et les déboguer. Si l'activation/la désactivation d'une DEL peut sembler une tâche simple, il s'agit d'une première étape importante pour gagner en confiance et se familiariser avec la carte, en particulier pour les développeurs de logiciels souhaitant avoir un avant-goût des tâches d'interface avec le monde réel.

Exemple de code « blinked.js »

Figure 5 : Exemple de code « blinked.js ».

L'utilisation de node.js en JavaScript semble être la meilleure façon de programmer le BeagleBone Black. Il permet assurément à ceux qui ne connaissent pas la programmation ou les langages de plus haut niveau de se familiariser facilement avec ces concepts, ou tout simplement d'obtenir un prototype rapide. Cependant, pour ceux qui ont plus d'expérience en programmation et qui ont besoin d'une conception plus complexe, Python et C sont bien pris en charge. De la même manière que Bonescript ajoute des commandes d'E/S analogiques et numériques de type Arduino à node.js, une bibliothèque appelée PyBBIO est à la disposition des développeurs Python.

Les GPIO peuvent également être adressées directement à partir du système d'exploitation Linux. Cela peut se faire directement sur la carte ou au moyen d'une connexion à distance via SSH. Tout d'abord, il convient d'identifier le nom correct du signal Linux avec une broche GPIO spécifique, et d'autre part, de disposer d'une connaissance raisonnable de l'utilisation de la ligne de commande Linux. Chaque broche GPIO comporte un répertoire nommé d'après le nom du signal Linux au sein du parent /sys/class quand il est utilisé. C'est de cette façon que les conflits potentiels de signal/GPIO peuvent être repérés quand un ou plusieurs capes sont utilisés. La broche 16 du connecteur P8 est identifiée comme GPIO46 (voir Figure 6). Dans la capture d'écran, vous pouvez voir qu'il n'existe pas de répertoire gpio46 ; le signal est donc disponible. Lors de la commande d'une DEL connectée à la broche, vous pouvez l'activer en écrivant un 1 dans le fichier de valeurs Linux ou la désactiver avec un 0. Après utilisation, n'oubliez pas de supprimer l'exportation du répertoire pour effacer l'utilisation de la broche. Ces commandes d'environnement peuvent également être intégrées à des instructions Python.

Exemples de commandes via SSH pour contrôler une broche GPIO

Figure 6 : Exemples de commandes via SSH pour contrôler une broche GPIO.

Que vous soyez un développeur expérimenté cherchant à accélérer votre nouveau projet en utilisant une plateforme open-source bien documentée, ou un passionné d'électronique désirant simplement se faire plaisir, le BeagleBone Black fournit un excellent choix pour créer vos conceptions.
 
DigiKey logo

Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de DigiKey ni les politiques officielles de la société.

À propos de l'auteur

Rédacteurs européens

À propos de l'éditeur

Rédacteurs européens de DigiKey