Data Stream

bon OK le titre est en anglais, mais je savais pas comment expliquer

je suis en train de réaliser un robot avec un Arduino Uno
celui-ci sera équipe de Télémètre IR, d'une Camera TTL, et d'un shield Wifi, pour communiquer avec un ordinateur (pour info c'est un shield DFRobot, qui bridge le serial sur le protocol TCP)
et c'est la que se pose mon problème

je voudrait envoyait les mesure des télémètre ET la "video" de la camera via le wifi,
mais comment faire pour envoyer a la fois les mesure ET les images

faudrait en faite que mon appli PC envoie au robot des QUERY pour avoir des images et des mesure ?

ce qui faudrait c'est un système de multithread, enfin pas en bidouille, pour gerer le stream en tache de fond

Bonjour,

Les cartes arduino classique ne peuvent pas faire plusieurs chose en même temps comme sur un ordinateur.
Le multithread sur des plateformes embarquées arduino (et plus généralement microcontrolleur) n'existe pas, ce qui s'en rapproche le plus c'est les RTOS comme duinOS pour arduino mais ce n'est pas du "vrai" multi tache, juste de la gestion de temps d'exécution entre les différentes taches.

Le simple fait de vouloir streamé la vidéo de la caméra TTL par wifi demanderai 100% du temps de calcul de l'arduino (et même à une vitesse relativement basse genre 1 image toute les 5sec) ...

Pour la télémétrie et les commandes aucun probléme, mais pour la vidéo je ne pense pas qu'une carte arduino soit adapté, un lot émetteur/récepteur video le serait plus.

ton ordi n'est pas plus multitache que ton arduino ^^ (ok ingenieur dev' spotted :D)

c'est la gestion et la cadence du CPU qui fait que ca donne l'impression de multitache (oui bon ok maintenant avec les multicore on emule un pseudo vrai multitask, mais j'aime bien mon vieux Z80)

enfaite je comptait le faire de façon cyclique, du genre :

DEBUT

  • vérifier commande (si un utilisateur envoie une CMD)
  • vérifier la télémétrie
  • avancer (fct(télémétrie))
  • envoyer télémétrie
  • envoyer img
    goto DEBUT

étant donne que l'on est a 16Mhz en cadence CPU, ce qui fait que je pourrai avoir 5 a 6 image seconde en prenant en compte que transmet a 96000bauds

mais l'envoie de télémétrie ou d'image sers parametrable par l'utilisateur
via les commande "video on / off", ou bien "sensor on /off"

du coup si on desactive le traitement dans certain cas pourra être plus rapide