pour un projet de robot humanoïde j'ai besoin notamment de deux caméras ainsi qu'un accéléromètre, le robot tournera sur un système d'exploitation se trouvant sur une carte mère ATX sur laquelle je ne peux pas connecter directement les trois éléments cités, pour faciliter la chose j'aimerais connecter deux caméras Arduino et un accéléromètre Arduino également s'il en existe à une carte aussi Arduino, cette dernière sera reliée et transmettra toutes les données à la carte ATX via USB ou autre du moment que les deux cartes acceptent. Savez-vous s'il existe une carte Arduino assez puissante pour réceptionner toutes les données de deux caméras (320x240 à 30fps est amplement suffisant) et d'un accéléromètre pour directement les envoyer à ma carte ATX ?
Il existe bien sûr de nombreux accéléromètres fonctionnant sur arduino.
Mais à mon avis non, ce sera difficile avec les arduinos standards Car 320x240pixels x 30fps sur 2 caméras ça fait 4,608,000 pixels à envoyer par seconde. Si vous êtes en noir et blanc ça fait beaucoup et si en plus vos pixels sont sur 24 bits (3x8 bits pour les couleurs RGB) c'est énorme
En noir et blanc, c'est 4 millions de bits par seconde, il vous faudra du temps d'acquisition, de mise en forme et d'envoi et synchro - les arduinos sont en général entre 4 et 84 MHz. Avec un 84MHz ça vous laisse environ 20 tick d'horloge par bit en assembleur pour acquérir et envoyer les données - sans Parler des autres tâches sans doute à réaliser
Les pixels des images noir et blanc sont codés en 2 bits ? Un vingtième de la puissance de calcul totale me parait être suffisamment faible pour me permettre d'en plus tout retransmettre sur un pc en usb, après je ne m'y connais pas assez pour l'affirmer. Je devrais avoir deux microphones, un haut-parleur et un accéléromètre à relier sur cette carte aussi. Sur la plus puissante des cartes Arduino ce ne serait pas possible de collecter tout ça uniquement et directement l'envoyer en usb ?
Je n'ai pas dit un vingtième de la puissance - j'ai dit qu'il fallait faire l'acquisition d'un pixel et son envoi et tous les traitements connexes en moins de 20 cycles d'horloge sur un Arduino à 84MHz
Il y a vraiment un truc qui m'échappe: tu veux brancher des caméras sur un Arduino, lui-même branché en USB sur une carte mère ATX. Tu es sans doute au courant qu'il existe un truc qui s'appelle "Webcam" et qui se branche sur un port USB. Et qu'avec un hub USB tu peux en brancher plusieurs.
ComputerMail:
... pour faciliter la chose j'aimerais connecter deux caméras Arduino ...
C'est pas pour faciliter les choses que tu veux faire ça, c'est pour les compliquer
Il y peut-être une contrainte que je n'ai pas saisie, n'hésite pas à en dire plus.
Le robot sera dans un premier temps non autonome en puissance de calcul et peut-être aussi en énergie, pour faire simple au niveau de la transmission des données à traiter j'aimerais mettre seulement un câble usb entre le robot et le pc fixe. c'est également pour le nombre de tutos sur le net que l'on peut trouver à ce propos. Le choix de la caméra se fera en fonction de la possibilité de travailler avec des pixels codés sur un octet directement en sortie de la caméra. De cette façon j'ai 8bit * 320*240 * 30fps * 2 caméras soit 36 000 000 de bit par seconde, avec le reste je ne pense pas dépasser les 40 millions. Maintenant est-ce déjà un flux que pourrait supporter la transmission en usb pour la Arduino Due car c'est la plus puissante ?
Prenez un raspberry - c'est injouable à mon avis sur arduino - oubliez les tutos et les librairies car il vous faudrait coder en assembleur et je ne suis même pas sûr que ce soit faisable tellement la fréquence est faible en regard de vos besoins
D'autre part - juste mon avis - s'il y a zéro traitement effectué au niveau de l'Arduino ça sert absolument à rien de passer par lui... séparez les problèmes, envoyer les flux vidéo directement en stream usb en rajoutant un hub sur votre robot par exemple ou en stream wifi directement depuis des webcams embarquées - vous aurez ainsi plusieurs micro processeurs dédiés à des tâches bien spécifiques travaillant conjointement - du vrai parallélisme
J-M-L:
D'autre part - juste mon avis - s'il y a zéro traitement effectué au niveau de l'Arduino ça sert absolument à rien de passer par lui... séparez les problèmes, envoyer les flux vidéo directement en stream usb en rajoutant un hub sur votre robot par exemple ou en stream wifi directement depuis des webcams embarquées - vous aurez ainsi plusieurs micro processeurs dédiés à des tâches bien spécifiques travaillant conjointement - du vrai parallélisme
C'est là que ça pose problème, si je pouvais tout brancher en usb ça passerait mais là j'ai 4 autres composants qui ne se connectent pas ainsi. Sinon j'ai une Beaglebone Black qui traine chez moi, ça pourrait marcher dessus pensez-vous ?
Avec une Beaglebone Black sans problème, mais donne plus d'infos sur ton architecture et les différents composants parce que là, sans connaître tes contraintes, c'est pas facile de donner des bonnes solutions
(sinon un Beaglebone Black tournant à 1GHz avec un ARM Cortex-A8 - oui sans problème pour router vos flux vidéos.. mais ça ne présente vraiment aucun intérêt si aucun traitement n'est effectué sur le flux lui même, autant passer du producteur (la caméra) au consommateur (le PC) et l'intermédiaire peut être votre hub USB
3Sigma:
Avec une Beaglebone Black sans problème, mais donne plus d'infos sur ton architecture et les différents composants parce que là, sans connaître tes contraintes, c'est pas facile de donner des bonnes solutions
Je débute en robotique, la caméra il faudrait la connecter en i²c ? Mais le reste je ne sais absolument pas quelles connectiques sont habituellement utilisées est ceux qui peuvent l'être sur la Beaglebone Black. Comme dit, les composants qui sont souhaité connectés sur cette carte sont deux caméras, deux microphones, un haut-parleur et un accéléromètre.
Pour les caméras, oublie les caméras "Arduino". Pour faire ce que tu veux, tu dois utiliser des Webcams, compatibles UVC et qui se connectent en USB sur ta "carte mère" (BeagleBone Black, ATX, RPi, etc...)
Alors les caméras en usb. Pour les microphones, le haut-parleur et l'accéléromètre comment pourrais-je m'y prendre ? J'ajoute aussi que le microphone doit être suffisamment précis car il servira notamment à la reconnaissance de la parole.
Tu peux aussi brancher les modules dont tu as donné les liens sur une BeagleBone Black. Maintenant, je ne sais pas si on peut comparer ton capteur de son à un micro.
Si tu veux un vrai micro, il faut peut-être chercher une carte qui dispose de ce type d'entrée. Mais je n'y connais rien dans ce domaine.