Open Silicium N°
Numéro
3

ARM + FPGA = Robotique

Temporalité
Juillet/Août/Septembre 2011
Image v3
ARM + FPGA = Robotique
Article mis en avant

Résumé

La robotique expérimentale utilise souvent comme actionneurs des servomoteurs de radiocommande en grand nombre. Leur pilotage demande la génération d’autant de signaux temporellement précis et synchrones.Même si les systèmes embarqués disposent aujourd’hui d’une puissance de calcul impressionnante, elle n’est pas suffisante pour produire des signaux de commandes ayant ces caractéristiques à cause des problèmes de latences du système d’exploitation.Seule une alternative matérielle peut y pallier. Le FPGA est la solution disponible aujourd’hui, polyvalente et facilement accessible.Le projet proposé ici permet de commander jusqu’à 32 servomoteurs de radiocommande avec un système embarqué Armadeus : la puissance d’un ARM9 sous GNU/Linux alliée à celle d’un FPGA.

Dans ce numéro...


Et de trois ! Il paraît que la troisième fois, c'est la confirmation. La première est la tentative, la seconde la vérification et la dernière confirme le projet. Eh bien, nous voici avoir confirmé OpenSilicium.
Le lancement du LaunchPad par Ti (Texas Instruments), une plateforme de développement livrée avec connectique et deux microcontrôleurs basse consommation, n'est sans doute pas sans relation avec le succès de l'Arduino. Également open source et open hardware, LaunchPad se distingue par deux points particuliers. Il s'agit de MSP430, et c'est donc un point d'entrée vers une vaste gamme de microcontrôleurs. Le second point est le fait que le kit est furieusement accessible, moins de $5 pièce !
En mai dernier, lors d'une présentation au Google I/O 2011, trois ingénieurs de Google faisaient l'annonce de l'ADK ou Accessory Development Kit. Cette nouvelle fonctionnalité intégrée dans Android 3.1 et backportée dans 2.3.4 sous forme d'add-on permet à tout un chacun de développer des accessoires pouvant interagir avec un périphérique Android à jour. La documentation officielle présente plusieurs kits basés sur Arduino, d'autres cartes à base Atmel AVR ou encore des kits reposant sur Microchip PIC24F. En y regardant de plus près, on s'aperçoit qu'en réalité, il n'est pas vraiment nécessaire de disposer d'un tel kit pour commencer à développer son accessoire.
Cet article constitue un retour d’expérience sur la création d’une application Android, on va ici détailler quelques problèmes rencontrés et comment ils ont été résolus.
Dans la première partie, nous avons conçu un nouveau périphérique basé sur un FPGA : le contrôleur matériel de servomoteurs. Il est l’équivalent d’un circuit électronique capable d’une concurrence vraie tout en ayant la souplesse d’une conception logicielle.Comme tout périphérique, il nécessite un peu de logiciel pour être utilisable sous un système d’exploitation tel que Linux. Tout d’abord, nous aborderons le pilote de périphérique ou driver. Il est au sein du noyau Linux et assure la communication entre le matériel et l’espace utilisateur. Ensuite, nous verrons le serveur de commandes. Il reçoit les ordres d’un client distant et les exécute. Pour clore le sujet loin des arcanes du mode noyau, un exemple de client graphique Qt est présenté, qui permet de faire bouger les servomoteurs avec une souris.
Eh oui, bientôt 7 ans déjà que l’idée du projet Armadeus a germé dans le cerveau de ses concepteurs. Trois modèles de carte et plus de 300 membres autour du monde, voici un petit historique à destination de ceux qui aimeraient en savoir plus.
Il n'est pas évident de trouver un titre court pour l'article qui va suivre. En résumé, nous allons exposer une technique permettant de programmer l'AVR d'une carte Arduino compatible, via le connecteur ISP, mais sans programmeur spécifique. Certaines cartes Arduino disposent d'un convertisseur USB/série FTDI. Celui-ci peut être utilisé comme programmeur ISP et offre ainsi un accès étendu au microcontrôleur Atmel moyennant une simple poignée de connecteurs et un peu de C.
On pourrait dire que la rédaction surf sur une vague d'inquiétudes populaires sur fond d'écologisme gentil, mais en fait il n'en est rien. Il est des domaines qui sont captivants et aptes à susciter l'intérêt de l'evil scientist qui sommeil en chacun de nous, celui du nucléaire en fait partie. Mais contrairement à l'énergie du vide, à la téléportation ou au contrôle mental à distance, celui-ci peut être touché du doigt.
Les microcontrôleurs de la famille AVR, qu'il s'agisse d'ATtiny ou d'ATmega, disposent tous d'une certaine quantité de mémoire EEPROM intégrée. Ceci permet de stocker des informations qui perdureront après une coupure d'alimentation de votre montage. Malheureusement, même si 128 ou 512 octets peuvent être suffisants pour un certain nombre de développements, il arrive souvent que cette limite pose problème. La solution ? Ajouter une EEPROM externe.
Depuis quelque temps déjà, NETGEAR propose, entre autres modèles, le routeur Wifi WNR3500L. Sa particularité est de proposer, en plus du firmware classique, plusieurs systèmes open source en téléchargement. Fédérée autour du site myopenrouter.com, une communauté d'utilisateurs et de développeurs a été créée. Voyons ce que vaut vraiment cette initiative qui a tout d'un coup d'essai.

Magazines précédents

Arduino
Open-Silicium N°2
Arduino

Les derniers articles Premiums

Les derniers articles Premium

Game & Watch : utilisons judicieusement la mémoire

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Au terme de l'article précédent [1] concernant la transformation de la console Nintendo Game & Watch en plateforme de développement, nous nous sommes heurtés à un problème : les 128 Ko de flash intégrés au microcontrôleur STM32 sont une ressource précieuse, car en quantité réduite. Mais heureusement pour nous, le STM32H7B0 dispose d'une mémoire vive de taille conséquente (~ 1,2 Mo) et se trouve être connecté à une flash externe QSPI offrant autant d'espace. Pour pouvoir développer des codes plus étoffés, nous devons apprendre à utiliser ces deux ressources.

Raspberry Pi Pico : PIO, DMA et mémoire flash

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Le microcontrôleur RP2040 équipant la Pico est une petite merveille et malgré l'absence de connectivité wifi ou Bluetooth, l'étendue des fonctionnalités intégrées reste très impressionnante. Nous avons abordé le sujet du sous-système PIO dans un précédent article [1], mais celui-ci n'était qu'une découverte de la fonctionnalité. Il est temps à présent de pousser plus loin nos expérimentations en mêlant plusieurs ressources à notre disposition : PIO, DMA et accès à la flash QSPI.

Programmation des PIO de la Raspberry Pi Pico

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

La carte Pico de Raspberry Pi est appréciable à bien des égards. Ses ressources, son prix, ses deux cœurs ARM... Mais ce morceau de silicium qu'est le RP2040 renferme une fonctionnalité unique : des blocs PIO permettant de créer librement des périphériques supplémentaires qu'il s'agisse d'éléments standardisés comme SPI, UART ou i2c, ou des choses totalement exotiques et très spécifiques à un projet ou un environnement donné. Voyons ensemble comment prendre en main cette ressource et explorer le monde fantastique des huit machines à états de la Pico !

Body