Le prototypage rapide à l'ère de l'Arduino, du MikroBUS et du traitement | shoppingmaroc.net


Téléchargez cet article au format PDF

Les conférences et salons sont l’un des produits de base de la Silicon Valley, et les panneaux d’affichage le long du corridor de la Highway 101 entre San Francisco et San Jose annoncent la date et le lieu à venir. Il est de plus en plus difficile d'attirer leur attention alors que des vagues de pantalons cargo, de vestes de costume et d'écouteurs se déplacent dans les halls d'exposition.

La conception et la réalisation de démonstrations pour ces événements ont toujours occupé une grande partie de ma carrière en génie électrique, et j'aime beaucoup le défi. Les progrès de la technologie des systèmes intégrés – et plus particulièrement de la nouvelle technologie de capteur – constituent un sujet relativement banal, et proposer des démonstrations convaincantes qui suscitent l'intérêt n'est pas une tâche facile.

Récemment, je me suis lancé dans la création d'une démonstration interactive. cela a permis de réunir un système complet basé sur des capteurs. La démo devait utiliser au moins deux des trois piliers d’une bonne conception: vision, son et mouvement. Mon expérience m'a appris à réduire les derniers piliers, à savoir des explosions et des lasers montés sur des requins.

Heureusement, nous vivons maintenant dans le monde du prototypage rapide grâce à des sociétés comme Arduino MikroElektronika et Adafruit . J'utilise tout le temps les produits de ces entreprises pour développer les systèmes que j'utilise pour les sessions d'enseignement et l'évaluation de nouveaux produits. Heureusement pour moi, quand j'ai commencé cette démo, Microchip venait de lancer une campagne de promotion avec MikroElektronika autour de leurs panneaux clic. J'en avais donc quelques-uns en train de traîner. J'ai eu un clic 10DOF qui a deux très bons capteurs Bosch sur elle. Plus précisément, il possède l'unité de mesure inertielle (IMU) BNO055 à 9 axes et le capteur de pression numérique BMP 180.

Nous sommes proches du niveau de la mer, ici à San Jose, et le sol du centre des congrès est plutôt plat. Le flux de données du capteur allait être plutôt ennuyeux. Avoir un capteur de mouvement complet à 9 axes était une toute autre histoire. J'ai également installé dans mon bureau quelques boucliers de clic Arduino UNO que j'ai utilisés pour cette démonstration. Le bouclier de clic UNO, comme son nom l'indique, permet à une carte MikroElektronika Click de se brancher à la norme de bouclier Arduino.

1. La carte ATmega328P Xplained Mini (à gauche) est combinée avec le bouclier Arduino Click (à droite).

La dernière pièce du puzzle matériel était une carte ATmega328P Xplained Mini (Fig. 1) . Transformer cette carte en une plate-forme semblable à Arduino UNO n’est qu’une question de programmation du chargeur de démarrage, mais j’avais une solution plus élégante à l’esprit. Cette carte d’évaluation permet également d’accepter les en-têtes de prise à broches Arduino dans le modèle standard, et ces en-têtes étaient également disponibles. Bien que je veuille éviter beaucoup de modifications matérielles, ce fut une tâche de soudure rapide.

Il semblait que tout allait se brancher (Fig. 2) . Je savais que le bouclier de sécurité UNO acheminerait les capteurs BNO055 I 2 C au bon endroit sur l'Arduino. Cependant, il y avait un autre problème fondamental à surmonter. La 10DOF Click est une carte 3,3 V uniquement et la configuration par défaut de la 328P Xplained Mini est une opération 5 V à partir d’une connexion USB. Cependant, l'équipe des outils de Microchip s'était déjà occupée du problème du 3,3 V en fournissant un LDO sur le 328P Xplained Mini pouvant être mis en service à l'aide de quelques cavaliers.

2 . Voici à quoi ressemble une pile complète avec le clic MikroElektronika 10DOF, le bouclier anti-clic Arduino Uno et la carte ATmega328P Xplained Mini branchés ensemble. J'avais une pile de capteurs / microcontrôleurs viable alimentée à mon bureau sans aucune trace de la fumée magique des circuits intégrés.

Application de démonstration

Après l'installation, la partie la plus difficile, la application de démonstration.

Comme je connaissais déjà l’IMU Bosch BNO055 à 9 axes de BNO055, j’avais déjà reçu du code de test d’Adafruit pour valider le flux de données de base des trois capteurs de mouvement. Adafruit fournit également une bibliothèque complète pour le BNO055, qui contient le code de test que j'utilisais.

Le BNO055 est un IMU assez puissant capable de fournir non seulement des données brutes de base de l'accéléromètre, du gyroscope et du magnétomètre, mais également des données complètes. solutions de capteurs en formats d'angle d'Euler et de quaternion. Le code de test Adafruit était déjà sous forme d’esquisse et avait été écrit sur le même appareil BNO055. Adafruit est l’un de mes lieux de prédilection lorsque j’assemble des systèmes de démonstration ou d’enseignement. Non seulement les conceptions matérielles sont solides, mais la documentation est au plus haut niveau. Chaque produit est fourni avec une excellente quantité de garanties, y compris des notes d'application et des guides de raccordement.

Comme j'utilisais la fonction d'importation de croquis Arduino dans Atmel Studio 7, il n'était pas nécessaire de programmer le chargeur de démarrage Arduino dans la carte méga328P Xplained Mini. Comme prévu, le code de test d'Adafruit a été importé sans problème dans Atmel Studio 7. Travailler avec Studio 7 a apporté deux avantages réels à la concrétisation de cette démonstration, en plus de pouvoir exploiter la grande quantité de code déjà disponible dans le domaine ouvert.

La première et la plus importante valeur ajoutée est la possibilité d'effectuer un débogage au niveau source sur une esquisse Arduino, notamment de pouvoir utiliser des points d'arrêt et d'inspecter / modifier des données en mémoire sans avoir à utiliser la fonction Serial.print (). tout. Cette quantité de visibilité et de contrôle, qui fait partie intégrante des systèmes de développement embarqués professionnels, me permet de créer une cause fondamentale et d'écraser tous ces minuscules bugs gênants qui apparaissent quand on commence à lancer rapidement du code de démonstration.

Deuxièmement, parce que le flux de données principal sortant de la carte Xplained Mini était le port USB du CDC; je n'avais donc pas besoin de contaminer le flux de données IMU avec des informations de débogage. Le seul problème réel que j’ai vu à l’époque était une discordance I 2 mais la carte BNO055 d’Adafruit et les schémas de clic de 10DOF indiquaient que cela ne poserait pas de problème.

J’ai téléchargé le code, a démarré mon application de console de terminal sur l’ordinateur portable et a été agréablement accueilli par le flux de données ACSII suivant:

Parfait.

Hormis quelques problèmes d’étalonnage des capteurs eux-mêmes, les données fournies sens à la fois de la magnitude et de la réponse à agiter les conseils sur sa laisse USB. Je suis à peu près à mi-chemin dans la mesure où une unité IMU à 9 axes qui fonctionne m'envoie un flux de données de télémétrie raisonnable. C'est un flux basé sur des caractères ASCII, donc un peu moins efficace en charge utile, mais parfait pour un environnement de démonstration car je peux diviser le système en deux pour montrer à quoi ressemblent les données de base IMU.

Je souhaitais toutefois implémenter. quelque chose de beaucoup plus intéressant sur l’écran du PC qu’un mur de chiffres défilant. La foire commerciale à laquelle je participais ne comptait pas un grand nombre de comptables en fiscalité, donc quelque chose d’un peu plus élégant que des colonnes de chiffres semblait nécessaire. Une application de démonstration typique pour les capteurs de mouvement consiste à tracer le vecteur de gravité ou trois graphes d'axes distincts représentant le vecteur de gravité. Il fait passer le message mais ne démontre pas vraiment toute la puissance du BNO055. Il existe un meilleur moyen de montrer la fusion de capteurs se déroulant à l'intérieur de cet appareil.

Encore une fois, Adafruit à la rescousse. Lorsqu’on visite la page Web du tableau BNO055, une courte vidéo montre un lapin en 3D suivant le mouvement d’une planche à pain connectée sans fil. Ce code de «lapin» (Fig. 3) est également le premier exemple esquissé figurant dans la liste Exemple de bibliothèque Adafruit BNO055. L'exemple d'esquisse du lapin est associé à une autre application (également appelée esquisse) exécutée dans Processing .

3. Le code «Bunny» est le premier exemple figurant dans la liste des exemples de bibliothèque Adafruit BNO055.

J'étais déjà familiarisé avec le traitement. C’est un très bon langage pour les concepteurs intégrés comme moi: obtenir des données sur un écran de PC, au-delà du texte ASCII dans un programme de console. Le traitement était également à la base du câblage, et le câblage est le langage de base pour Arduino. Tout coule bien ensemble. L'importation de l'exemple d'esquisse de lapin Arduino dans Atmel Studio 7 s'est parfaitement déroulée, comme prévu, et après l'installation de quelques packages de support supplémentaires pour Processing sur mon système de développement principal, j'ai décidé de vérifier le flux de données avec une console de terminal avant de lancer l'esquisse de lapin. :

Le format du flux de données a confirmé que je travaillais avec des angles d'Euler et non des quaternions. C'était important car j'étais également à peu près sûr que le problème du blocage de la nacelle serait visible à moins que les développeurs de la bibliothèque de rotation ne s'occupent de ce problème.

Un rapide coup d'œil au code 3D du lapin dans Processing (Fig. 4 ) m'a dit que la taille de la fenêtre d'objet était de 640 × 480 pixels. Je ne vois pas beaucoup de 20 pouces. Les moniteurs CRT VGA présents dans les salons professionnels, et même la pile d’électronique ancienne de mon garage ne contient pas de tube cathodique, aussi j’ai porté la résolution à une résolution modeste de 1024 × 768 et modifié les décalages et l’échelle en conséquence.

[19659003] 4. Code de lapin 3D en cours de traitement.

Le lapin a pivoté comme prévu alors que je pivotais la pile de cartes dans l'espace (Fig. 5) .

. 5 J'ai cliqué sur le bouton de lecture et le lapin a fait pivoter la pile de cartes dans l'espace.

J'avais maintenant une démonstration interactive qui répondait à toutes mes exigences de base pour une démonstration rapide du salon:

  • . Elle était facilement reproductible, rapide.
  • Il peut être décomposé en composants système
  • Hormis le module d’alimentation de la Mega328P Xplained Mini, il n’y avait pas de fils bleus ni de piratages matériels impliqués.

La démonstration a bien démontré l’effet de blocage du cardan: la rotation du lapin faisait un pas en avant chaque fois que l’orientation de la planche s’approchait des limites de 90 ° ou de 180 ° sur un axe. C’est bien mieux de montrer ce concept directement que d’expliquer le calcul derrière le problème.

La démonstration elle-même est assez simple. Ce qui m'a vraiment surpris, c'est le peu d'effort et le peu de temps qu'il a fallu pour passer d'une pile de planches à une démonstration de rotation 3D complète sur mon ordinateur portable. En fin de compte, il m'a fallu environ une heure pour que tout se passe bien. L'aspect matériel de la démo utilise deux normes de prototypage matériel différentes: Arduino Shield et mikroBUS. La partie logicielle utilise trois plates-formes de développement: Arduino IDE, Atmel Studio 7 et Processing.

En ce qui concerne le système, tout est réuni dans une séquence qui a du sens et qui fonctionne. J'ai été ingénieur d'applications système pour une entreprise de gyroscopes MEMS pendant quelques années, et une démo comme celle-ci prenait généralement une bonne partie de la semaine.

Il était également clair que l'étape suivante consistait à ajouter une connexion sans fil. à la démo car j’avais une prise de secours mikroBUS en attente d’un type de carte de clic basée sur RF de MikroElektronika. La question du blocage de la suspension à la cardan devait également être examinée, mais à la fin de la journée, j’avais une démo prête à emporter dans mon sac à dos pour ordinateur portable.

Il est clair que l’ère du prototypage rapide est imminente. Des entreprises telles que MikroElektronika, Adafruit et, bien sûr, Microchip s’efforcent de permettre aux concepteurs de réunir des concepts dans un délai extrêmement court. La compatibilité croisée des normes de prototypage matériel signifie moins de temps à la station de soudage et plus de temps pour affiner la conception. Des exemples de solutions sont distribués sur des assiettes ces jours-ci – n’ayez pas peur d’en prendre une.

Bob Martin est ingénieur en chef chez Microchip Technology . [19659003] Références:

Matériel

Logiciels



Arduino Maroc
Acheter Arduino ICI

Source

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *