Mini-pc ou carte électronique ?

a marqué ce sujet comme résolu.

Bonjour !

Ces dernières années, les mini-pc ont émergé : Raspberry, BeagleBone, pcDuino… L'avantage est qu'on a un Linux classique dessus, ce qui offre une grande interactivité avec nos programmes.

Mais j'ai lu dernièrement, je ne sais plus où, que ces cartes n'étaient pas adaptées à de l'électronique en temps réel (par exemple : découpeuse laser, aide à la conduite…) parce que l'OS était multi-tâche. Du coup, je me demandais quand il fallait les utiliser et quand il fallait plutôt opter pour une carte électronique "classique" (typiquement, Arduino).

Autrement dit, quand faut-il opter pour quelle solution :

  • Une BBB (par exemple), chargée des commandes électroniques et de l'interface (via un serveur Web par exemple)
  • Une Arduino (par exemple) couplée à une RPi (par exemple), la première gérant exclusivement les commandes électroniques, la seconde s'occupant de l'interface et communiquant directement les paramètres à l'Arduino

Merci. :)

+0 -0

je ne pourrais pas te répondre, mais ça a tiqué :

la seconde s'occupant de l'interface et communiquant en temps réel les paramètres à l'Arduino

Au final le rapsberry continu de communiquer en temps réel, donc y'a pas de changement non ?

+0 -0

Mais j'ai lu dernièrement, je ne sais plus où, que ces cartes n'étaient pas adaptées à de l'électronique en temps réel

tu dit au début que ce n'est apparemment pas adapté puis tu dit que le RaspB va communiquer en temps réel avec l'arduino

+0 -0

tu dit au début que ce n'est apparemment pas adapté puis tu dit que le RaspB va communiquer en temps réel avec l'arduino

Par "temps réel", je veux dire qu'il n'y a pas besoin de recharger le programme sur la carte. :)

Il faut s'avoir qu'il est possible de mettre des OS temps reels sur ce type de carte quand même.

Ces OS ont-ils un nom particulier ? Angstrom a été conçu spécialement pour la BBB, mais j'ai cru comprendre qu'il posait certains problèmes, au niveau du Wifi par exemple.

+0 -0

http://www.framboise314.fr/un-module-rtc-a-base-de-ds1302-pour-le-raspberry-pi/ ?

QuanticPotato

Nop, ajouté une horloge temps réel (un composant qui donne l'heure quand tu lui demandes) ne fait pas de ton PC un PC temps réel.

Par "temps réel", je veux dire qu'il n'y a pas besoin de recharger le programme sur la carte. :)

Attention aux abus de langages car ce n'est pas du temps réel ca.

Ces OS ont-ils un nom particulier ? Angstrom a été conçu spécialement pour la BBB, mais j'ai cru comprendre qu'il posait certains problèmes, au niveau du Wifi par exemple.

Tu peux par exemple patcher ton noyau Linux avec Xenomai.

+0 -0

Bonjour !

Ces dernières années, les mini-pc ont émergé : Raspberry, BeagleBone, pcDuino… L'avantage est qu'on a un Linux classique dessus, ce qui offre une grande interactivité avec nos programmes.

Mais j'ai lu dernièrement, je ne sais plus où, que ces cartes n'étaient pas adaptées à de l'électronique en temps réel (par exemple : découpeuse laser, aide à la conduite…) parce que l'OS était multi-tâche. Du coup, je me demandais quand il fallait les utiliser et quand il fallait plutôt opter pour une carte électronique "classique" (typiquement, Arduino).

Autrement dit, quand faut-il opter pour quelle solution :

  • Une BBB (par exemple), chargée des commandes électroniques et de l'interface (via un serveur Web par exemple)
  • Une Arduino (par exemple) couplée à une RPi (par exemple), la première gérant exclusivement les commandes électroniques, la seconde s'occupant de l'interface et communiquant directement les paramètres à l'Arduino

Merci. :)

Vayel

Le temps réel s'applique principalement au soft et une définition simple est qu'il est déterministe : on connaît le temps maximum qu'une tâche peut mettre à s'exécuter. Il faut ensuite distinguer :

  • Temps réel "dur" : les tâches exécutées ont un temps limite d'exécution, si la tâche n'est pas effectuée dans le temps imparti (quelque soit la raison), le processeur se met en faute et doit normalement s'arrêter d'exécuter le programme normal. C'est principalement utilisé pour des applications critiques.

  • Temps réel "mou" : les tâches exécutées ont aussi une limite de temps mais on tolère un dépassement. C'est le cas pour des applications non critiques.

En général ça se décide au niveau du choix de l'OS ou lors de la programmation si on n'utilise pas d'OS. Et tu peux très bien faire du multi-tâches (on va dire 2 max) avec une Arduino.
En fait qu'importe la plateforme que tu utilise, le principe du temps réel s'appliquant au soft, à toi de choisir en fonction de ce que tu veux.

Linux n'est pas vraiment considéré pour faire du temps réel, il existe néanmoins des distributions dédiées, comme RTLinux : https://en.wikipedia.org/wiki/RTLinux
Si tu veux un OS temps réel je te conseille de te tourner vers ChibiOS ou FreeRTOS

Tu peux enfin réaliser une architecture à base d'un microcontrôleur ou microprocesseur maître qui dirige des esclaves en général dédiés à des tâches précises : par exemple tu as besoin de faire des acquisitions analogiques qui nécessites un peu de configuration de composants, tu peux utiliser un petit MCU qui lorsqu'il recevra une commande d'acquisition réalisera toutes les configurations et conversions nécessaires et ne renverra qu'une valeur traitée et directement utilisable par le processeur.

Au boulot, on utilise un ARM Cortex-A9 (l'équivalent de 2 BBB) avec un noyau Linux avec les patchs preempt RT. On a quelques dizaines de micro-secondes dont il faut tenir compte pour l'ordonnancement (et je ne me souviens plus de l'overhead par rapport à une implémentation non-RT), mais on a un système tout à fait viable pour asservir des processus physiques.

L'architecture fait cependant qu'on ne sait pas réagir à un événement en moins de 2µs sans bricolage dédié.

En bref, le choix du contrôleur doit se faire en fonction du processus physique à asservir.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte