Forum Linux.débutant Choix de système pour transformer un pc de bureau en une sorte d'arduino super puissant

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
2
21
juin
2021

Salut tout le monde

Je suis nouveau dans ce forum, et comme le titre l'indique, je cherche a savoir quel serait le System le mieux adapté pour transformé une carte mère de PC en une carte microcontrôleur qui pourra gérer un afficheur VGA ou autre, des événement sonores, et une interface entré sortie via USB, merci d'avance pour votre aide

  • # Je ne suis pas sûr de comprendre la question

    Posté par  . Évalué à 2.

    Mais si ce que tu veux, c'est un contrôle de bas niveau, Linux te permet de faire ça. Donc tu met un Linux minimaliste, éventuellement avec buildroot ou yocto, comme c'est fait en embarqué. Par contre, je ne fais pas ce genre d'embarqué, donc je ne sais pas si ce sera adapté à une carte complexe comme une carte mère de PC…

  • # C'est tout con, mais...

    Posté par  . Évalué à 3.

    …une carte mère de PC n'héberge par un microcontroleur mais un microprocesseur.

    Si tu as besoin de puissance tu peux te tourner vers des Raspiberry Pi, qui ont la ressource necessaire pour gérer un écran et des périphériques USB en plus des GPIOs..
    Si tu as besoin d'entrées /sorties pilotable tout en restant sur une architecture x86, tu as des cartes PCI ou USB qui font ça, ou tu peux également rajouter directement une carte Arduino ou Raspiberry que tu pilotes via des interfaces standard de ton OS.

  • # Linux MAIS

    Posté par  . Évalué à 4.

    le System le mieux adapté pour transformé une carte mère de PC en une carte microcontrôleur

    AUCUN systeme ne permettra de transformer un PC en carte microcontrolleur
    comme son nom l'indique un micro-controlleur est un "mini PC" qui consomme très peu
    et va proposer des entrées/sorties pour "contrôler" d'autres appareils.

    … qui pourra gérer un afficheur VGA ou autre, des événement sonores, et une interface entré sortie via USB, merci d'avance pour votre aide

    donc rien de plus que ce que fait un PC standard,
    donc là, n'importe quel OS fera l'affaire,
    comme tu es ici sur linuxfr je dirais bien que LINUX est un bon candidat.

    Ensuite tu vas avoir des linux orientés "temps reels" pour la musique par exemple

  • # Un RTOS minimaliste ?

    Posté par  . Évalué à 2. Dernière modification le 21 juin 2021 à 19:07.

  • # Alors, Linux ou microcontroleur ?

    Posté par  (Mastodon) . Évalué à 5. Dernière modification le 22 juin 2021 à 07:42.

    En y réfléchissant, dans ton cas (flipper) c'est pas si évident de trancher. Pour s'aider on peut faire une liste de POUR/CONTRE

    Linux (PC ou RPi)

    POUR :

    • Facile de développer dessus, dans n'importe quel langage
    • Puissance "illimitée"
    • Sortie écran directement disponible pour faire un affichage complet

    CONTRE :

    • Pas adapté naturellement au temps réel (même si peut toujours appliquer des patches sur un kernel Linux, ou choisir un OS temps réel type RTOS)
    • Les E/S doivent être ajoutées

    Microcontrôleur

    POUR :

    • Ça coûte rien (à 5€ tu as déjà des microcontrôleurs capables de faire de la reconnaissance de visage sur une webcam)
    • Temps réel facile (pas ou peu d'OS, on maîtrise tout niveau timings)
    • Beaucoup d'E/S disponibles, et on en rajoute encore facilement (multiplexers)

    CONTRE :

    • Développement pas immédiat (SDK, cycle compilation/flash/exécution)
    • Puissance graphique limitée (bien qu'on fasse du VGA sur ESP32 par exemple)
    • Choix du langage de développement limité

    Donc selon ce que tu sais, ce que tu veux apprendre, et ce que tu veux faire au final, je te laisse juger. J'ai sûrement oublié des points, je laisse les commentaires enrichir la liste.

    Après perso si tu pars sur un Linux, j'aurais tendance à dire que la distribution à choisir c'est celle qui aura la meilleure documentation pour l'adapter à ton besoin : patches temps réel notamment.

    En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

    • [^] # Re: Alors, Linux ou microcontroleur ?

      Posté par  . Évalué à 4.

      Pour pouvoir parler de « Temps Réel », il faut déjà poser une contrainte de temps.
      Le temps réel, ce n’est pas aller vite, mais arriver à temps tout le temps.

      Un noyaux Linux standard fera très bien l’affaire pour une précision de l’ordre de la milliseconde, alors pour un flipper…

      • [^] # Re: Alors, Linux ou microcontroleur ?

        Posté par  . Évalué à 3. Dernière modification le 22 juin 2021 à 19:07.

        Ca doit aussi dépendre de ce que tu fais faire à ton flipper.

        Perso je ferais un truc hybride et modulaire : une partie basée sur microcontroleur pour gérer directement le hardware, et les loupiottes sur le plateau de jeuet une partie basée sur Linux pour ordonnancer le tout et gérer l'affichage des points et des animations . Pour la communication entre modules je verrais bien un bus CAN (a moins que ça soit Overkill ?).

      • [^] # Re: Alors, Linux ou microcontroleur ?

        Posté par  (Mastodon) . Évalué à 3. Dernière modification le 22 juin 2021 à 20:38.

        Le temps réel, ce n’est pas aller vite, mais arriver à temps tout le temps.

        Oui bien sûr. Un système d'arrosage de plante verte reste un système temps réel, et pourtant tu peux mettre 10mn à prendre une décision si tu veux, sans pour autant faire crever la plante.

        J'avoue que je ne sais pas trop niveau feeling ce que demande le flipper, mais dans l'ordre d'idée de la ms ça devrait être largement suffisant en effet (quand je joue sur ma PS4 à 60Hz j'ai une image toutes les 16ms, donc quoi que je fasse ne réagira pas en moins de 16ms et ça ne me dérange pas).

        Après, tenir la ms sur le kernel sans patch, ça n'a pas l'air systématique non plus (mais on reste sous les 16ms dont je parle ci-dessus donc pourquoi pas).

        En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

        • [^] # Re: Alors, Linux ou microcontroleur ?

          Posté par  . Évalué à 4.

          Tu as sched_setscheduler qui permet de passer ton processus en mode temps réel avec le paramètre SCHED_FIFO ou SCHED_RR. Sans noyau temps réel, la seule chose plus prioritaire restera le noyau de l’OS. Ce qui dans 95% des cas est suffisant (de mon point de vu)

          Alors oui, on peut avoir un très léger décalage au démarrage. Mais l’objectif c’est que le temps entre l’entrée (touché d’un bumper) et la réaction (allumage d’une loupiote) tu es moins de x ms.

          En utilisant un timer (setitimer), je n’ai jamais été réveillé avec du décalage pourri.

          Tu peux aussi faire un sched_setaffinity qui va permettre d’éviter les migrations entre cœur. En plus, naturellement, l’OS utilisera les autres cœurs pour s’exécuter et exécuter les tâches applicatives.

  • # The Ben Heck Show, Teensy, etc

    Posté par  . Évalué à 2. Dernière modification le 23 juin 2021 à 23:26.

    Tu peux aller voir les anciens épisodes de The Ben Heck Show parlant de flipper, pour y trouver de l'inspiration (il y en a pas mal si je me souviens bien).

    Si c'était à moi de le faire, je choisirais un Teensy car il a une très bonne librairie audio, simple et puissante. le dernier (4.1) a énormément de broches pour gérer plein de trucs.
    Pour la sortie son, tu peux utiliser le module audio qui va avec la carte, sinon un PCM5102 (moins cher) fera très bien l'affaire.

    Si un écran 2.8 pouces te suffit, un ILI9341 marchera très bien avec le teensy et tu trouveras de la doc pour l'utiliser, et la librairie qu'il te faut. Petite vidéo sur youtube.

    Et si ça ne te suffit pas, tu prends un raspberry pi zero pour gérer la partie graphique.
    Mais un raspberry pi seul, pour gérer des moteurs, des solénoides et tout le bazar dont tu auras besoin c'est possible, mais tu vas galérer. Par exemple il n'y a que 2 sorties PWM si je ne me trompe pas, donc tu ne peux gérer que 2 servo-moteurs. (Et adieu la carte son car elle utilise les mêmes broches…).

    Et à ta place je ne partirais pas dans le "linux temps réel". Ce sera beaucoup plus difficile, surtout si tu débutes. Ne garde l'ordinateur que pour ce qui est impossible à faire par un microcontrôleur.

    C'est ce que moi je ferais, mais je ne suis pas toi ;)

  • # tu peux garder le PC pour ...

    Posté par  . Évalué à 2.

    • programmer tes cartes contrôleurs
    • faire des essais, utiliser des simulateurs

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.