1

Sujet : NXT et sons

Bonjour à tous, ceci est mon premier post sur le forum !

Pour me présenter brièvement, je travaille depuis un certain temps déjà sur la création d'un androïde taille adulte, et pour la partie robotique je compte utiliser le NXT 2.0 (ceci pour une question de simplicité, de rapidité de mise en oeuvre, pour le nombre de capteurs disponibles sur le marché etc... Mais aussi parce que je n'ai pas de compétences en électronique...).

Pour mon projet les pièces d'assemblage du Lego Technics ne sont d'aucune utilité, seuls les composants électroniques du Mindstorms seront utilisés et implantés dans le corps de l'androïde.

L'une des fonctionnalités dont je veux doter mon androïde, c'est la capacité de s'exprimer (lecture de fichiers sons) suite à la stimulation de certains capteurs notamment. Le NXT est capable de lire des fichiers sons, mais la mémoire de la brique est, comme vous le savez, extrêmement limitée - ce qui limite énormément les possibilités. De plus la compression des échantillons sonores fait que qualité est relativement médiocre.

L'objectif est donc de parvenir, d'une manière ou d'une autre, à ce que le NXT lise des fichiers (au format MP3 de préférence), et ce sur un support de stockage annexe (carte mémoire, clef USB, disque dur situé sur un PC relié par bluetooth etc...).

Avez-vous des idées lumineuses à proposer permettant de solutionner le problème ?

2

Re : NXT et sons

Le plus simple serait de chercher à interfacer un module de restitution MP3 avec le NXT.

On en trouve plusieurs modèles chez LEXTRONIC par exemple. Il faudrait en trouver un doté d'une interface I2C, car les ports capteurs et actionneurs du NXT utilisent ce bus également.

3 Dernière modification par Kroff (21-07-2010 09:34)

Re : NXT et sons

Je vais chercher...

Il y a la partie logicielle également... Les fichiers sons à lire doivent être stockés dans une base de données comprenant différentes tables. Une application doit sélectionner (constitution de phrases) de manière cohérente ou aléatoire les fichiers à lire en fonction des capteurs actionnés. Je ne sais pas si la brique NXT est capable de faire ça...

Sinon j'avais pensé à une solution relevant du bricolage : Utiliser un iPhone, développer une appli affichant un tableau composé de X cases ; Chacune renvoyant sur un fichier son. Ensuite construire en légo un mini bras articulé contrôlé par la brique : Lorsqu'un capteur est actionné, le bras se déplace sur l'écran de l'iPhone et appuie sur une case bien définie.

Ca permettrait aussi d'utiliser la grosse capacité de stockage de l'iPhone...

Qu'en penses-tu ?

4

Re : NXT et sons

On peut interfacer directement un téléphone avec le NXT via Bluetooth : ça me semble plus convenir au besoin (tables, reconstitution de phrases, etc...).

Voir ce qui a été fait pour ajouter une caméra / un GPS / une boussole via Android : http://android-france.fr/2010/07/13/and … -lego-nxt/

Mais on peut le faire avec un autre langage selon le téléphone dont on dispose, par exemple Mobile Processing)

5

Re : NXT et sons

Bonsoir,

avec des connaissances limités en électronique, il y a :

http://www.lextronic.fr/P5732-micro-mod … audio.html

ou ça :

http://www.lextronic.fr/P2216-module-de … -ump3.html

ou encore ça :

http://www.selectronic.fr/article.asp?a … .9882-9999

Il y a aussi un module pour picaxe (mais pas seulement) dispo chez gotronic et pilotable , il me semble avec un bus SPI.

Cependant, la demande manque de précision : nombre de messages differents à gerer, durée de chaque message, type de commande disponibles (boutons poussoirs, I2C, liaison serie, ... etc)

6

Re : NXT et sons

Kroff a écrit:

Il y a la partie logicielle également... Les fichiers sons à lire doivent être stockés dans une base de données comprenant différentes tables. Une application doit sélectionner (constitution de phrases) de manière cohérente ou aléatoire les fichiers à lire en fonction des capteurs actionnés. Je ne sais pas si la brique NXT est capable de faire ça...

Qu'entends-tu exactement par "base de données" ? Si tu fais référence à quelque chose ayant des possibilités style ACCESS ou MySQL, oublie tout de suite le NXT ou toute carte du genre Arduino ou similaire smile

S'il s'agit juste de sélectionner un fichier son en fonction d'informations fournies par des capteurs ou quelque chose du genre, ça peut s'envisager : il y a d'ailleurs une démo sur le NXT qui fait jouer certains des fichiers sons inclus par défaut en fonction du capteur actionné. Mais ça reste très limité à tout point de vue, car la mémoire flash du NXT ne permet pas de stocker énormément de fichiers de ce type, et sans parler des capacités de restitution sonore qui sont anecdotiques. C'est pour cela que je t'avais orienté vers une carte équipé d'un chip décodant le MP3 et pilotable pour la sélection du fichier à jouer.

Est-ce que tu peux préciser exactement ce que tu veux faire ?

7 Dernière modification par Kroff (28-07-2010 22:36)

Re : NXT et sons

Merci pour les liens Stephan, mais ça m'a l'air assez compliqué à connecter au NXT pour un néophyte. Et peut-être pas assez évolué en terme de potentiel à vrai dire.

Eric, quand je dis "base de données" il s'agit bien d'une BDD de type Access ou MySQL en effet.

Je ne veux pas simplement permettre au robot de jouer quelques fichiers sons en fonction du capteur sollicité : Il doit pouvoir s'exprimer de manière relativement poussée et cohérente, mais sans que cela soit un dialogue évidemment (nous ne sommes pas réellement dans le domaine de l'AI).

Le discours se construit grâce à un programme chargé d'interroger la BDD : Une ou plusieurs valeurs sont sélectionnées dans une ou plusieurs tables afin de construire des phrases structurées.

Exemple fictif :

Table 1
Valeur A = "Oui"
Valeur B = "Non"

Table 2
Valeur A = "Je peux le faire"
Valeur B = "Ca m'est impossible"

Dans cet exemple deux options sont envisageables :
Valeur A de Table 1 + Valeur A de Table 2 = "Oui, je peux le faire"
Valeur B de Table 1 + Valeur B de Table 2 =  "Non, ça m'est impossible"

Grâce à la multiplication des tables et des valeurs, il est possible d'obtenir un discours varié et intéressant. Une phrase pouvant être un mix élaboré soit de manière rationnelle, soit de manière aléatoire.

Le programme doit ensuite renvoyer au NXT la phrase qu'il a construite pour qu'elle soit jouée par un haut-parleur situé sur le robot.

J'imagine que la solution la plus simple serait de :

- Héberger la BDD sur un PC distant relié au NXT par Bluetooth
- Programmer le logiciel en PHP par exemple, et de le faire tourner sur le PC avec un serveur Apache
- Renvoyer les données au NXT > mais il me paraît plus judicieux de se passer de cela puisque l'on a juste besoin d'un haut-parleur sur le robot - lui aussi relié au PC par un module Bluetooth -, les fichiers sons n'ayant pas d'utilité à transiter par la brique.

Qu'en pensez-vous ? Suis-je suffisamment clair ?

8

Re : NXT et sons

Pito loki wikute tuji !

Tu peux regarder comment fait l'équipe de Roila qui fait parler un robot NXT. Plutôt qu'une langue existante, ils ont inventé le leur dont la phrase ci-dessus est issue.

http://roila.org/ et on en parle ici : http://thenxtstep.blogspot.com/2010/07/ … r-nxt.html

Contacte-les directement pour avoir des infos sur la génération de sons, car leur site n'est pas complet concernant cet aspect.

9

Re : NXT et sons

Je vais regarder ça attentivement.

Mais après un premier coup d'oeil je pense qu'ils font fausse route : L'idée de créer une langue spécifique pour parler aux robots et les faire parler est une erreur stratégique : C'est aux robots d'apprendre notre langage si l'on veut qu'ils s'intègrent harmonieusement dans notre société... C'est pareil dans tous les domaines, notamment technologiques : Le produit doit se mettre à la portée des utilisateurs.

En tout cas leur projet démontre que d'autres personnes trouvent un réel intérêt à faire communiquer des Mindstorms, c'est déjà ça !

10

Re : NXT et sons

Kroff a écrit:

- Renvoyer les données au NXT > mais il me paraît plus judicieux de se passer de cela puisque l'on a juste besoin d'un haut-parleur sur le robot - lui aussi relié au PC par un module Bluetooth -, les fichiers sons n'ayant pas d'utilité à transiter par la brique.

Tout à fait. Et tu peux même faire encore plus simple : liaison radio analogique entre le PC et le robot, connectée sur la sortie HP de la carte son du PC. En gros, cela revient à dématérialiser le fil du haut-parleur.

Un exemple de module qui fait cela : http://www.directindustry.com/prod/circ … 59100.html

PS: côté robot, il faut bien entendu rajouter un petit ampli, comme ceci : http://www.lextronic.fr/P2233-amplificateur-audio.html