Aller au contenu


Photo
- - - - -

Lego Spybotics


14 réponses à ce sujet

#1 gheaeckkseqrz

gheaeckkseqrz

    Membre

  • Membres
  • 18 messages

Posté 04 août 2010 - 02:41

Bonjour tout le monde,



Voila, je suis tout nouveau sur le forum, je suis totalement débutant en robotique, et je viens vous parler d'une idée qui me tourne dans la tête depuis un bon moment.



Il y a quelque années, je me suis fais offrir un robot LEGO Spybotics pour mon anniversaire, aujourd'hui j'ai perdu le câble qui permettait de le relier a l'ordinateur, j'ai perdu le CD qui servait a le programmer (mais je suppose que sa ce retrouve sur le net) et surtout, j'ai un peu passé l'age de jouer les missions fournie.



Image IPB[/left]



Je me demandais donc si il était possible de bricoler un peu le robot, dire d'en faire quelque chose de sympa.



Je sais, c'est s'attaquer a gros pour débuter, mais j'ai jeter un coup d'œil aux cocotix, et a Roby, et je vous avoue que sa ne m'intéresse pas vraiment, et en plus j'ai pas de matos sous la main.



Donc j'ai plusieurs idées, je sais que c'est pas forcement (voire pas du tout) abordable pour un débutant, mais je suis assez motivé et je demande qu'a apprendre.



Donc je sais que ca va surement demander de reprogrammer le robot, et comme j'imagine que la doc technique et pas dispo, ca s'annonce compliqué (rétro-ingénierie), mais bon, ya bien un gamin de 18 ans qui a "piraté" la PS3, alors ca doit être possible ^^ (Je sais bien, il est bien meilleur que moi, mais bon, je peux bien essayer quand même).



Donc parmi les idées que j'avais,



  • Déjà, pouvoir le reprogrammer, juste pour dire de lui faire faire ce que je veux (genre parcourt prédéfini, ce genre de conneries).
  • Éventuellement pousser un peu la puissance des moteurs.



Enfin, l'idée que j'avais (vous avez le droit de dire que je vise trop haut, je sais) c'était d'en faire une sorte de drone, je verrai bien une système de commande en wifi, avec une petite camera qui affiche ce qui ce passe devant le robot et qui transmet les images (toujours en wifi) a une PSP, qui servirai de télécommande.



Je sais, c'est très compliqué, mais je sais aussi que c'est possible.



J'espère pas arriver a ce résultat du jour au lendemain, mais j'espère quand même pouvoir faire quelque chose de sympa avec robot.



Je vous préviens tout de suite, pour l'instant je ne fais que sortir les idées telles qu'elle sont dans ma tête, je n'ai absolument pas commencé a me renseigner ou quoi que soit.



Voila, j'espère que vous aurez des commentaires a faire, et que vous pourrez me donner un coup de main pour savoir par ou commencer et pour resoudre les (très) nombreaux problemès que je vais rencontrer.





#2 Philippe-RX

Philippe-RX

    Membre

  • Membres
  • 17 messages

Posté 04 août 2010 - 10:28

Je te cache pas que tu vas avoir beaucoup de mal.

En plus, si tu n'as pas de câble tu commences mal. De mémoire, cette brique programmable utilise un câble usb avec un port propriétaire comme sur les autres briques NXT. Donc... c'est assez compliqué pour trouver ça. Mais je suis sûr que c'est possible.

Ceci mis à part, j'ai une bonne nouvelle. Cette brique est programmable en un langage proche du C grâce à un compilateur fait par des fans. Donc le CD t'en a pas besoin, tu peux utiliser le compilo et faire à peu près tout ce que tu espères en termes de déplacements. Bien sûr, tu devras être un pro en C. :p
J'avais déjà programmé une brique NXT avec ça. La brique NXT contrôlait un bras mécanique et je pouvais contrôler le bras à partir du pc en python.

Lien avec tutos de prog pour Spybotics (anglais) : http://users.ncable.net.au/~blane/smartParts/0401m6b.htm

Maintenant sur les moteurs, je ne pense pas que ce soit faisable.
http://www.brickshelf.com/gallery/stevencombs/Spybotics/spybot_top_no_cover.jpg

Tu pourrais changer les moteurs (sur la photo y'a 4 soudures pour les 2 moteurs tu vois ? ) mais en trouver un + puissant qui peut entrer dans la boite sans tout casser j'crois pas que ce soit possible.

Au sujet de la caméra, il existe des mini-caméras "espion" sans fil qui se branchent sur une tv.
J'ai un ami qui avait ça : http://annonces.ebay.fr/viewad/Mini-Camera-Espion-sans-fil-Recepteur/5009303374
il l'avait fixé sur une Voiture RC.

Tu pourrais la brancher sur un pc avec une carte adaptée et retransmettre le flux vidéo avec VLC. Je pense que ça doit être possible de le récupérer pour le lire sur une psp (je n'ai pas de psp). Mais j'ai déjà fait une retransmission de flux vidéo d'une webcam à un ipod touch. http://blog.taku.fr/2010/05/afficher-sa-webcam-sur-son-iphone-ipod-touch/ (mon article) avec ce genre de caméra, la technique devrait marcher.

Pour contrôler ta voiture en WiFi je sais pas trop comment. Par contre, à vue de nez la télécommande est infrarouge. (pas sûr hein) tu devrais chercher s'il n'y a pas un moyen de programmer le récepteur pour qu'il puisse recevoir des ordres "personnalisés".

Dans le pire des cas, tu peux trafiquer un détecteur pour envoyer des informations à la brique à partir d'un module que t'as fait toi même. (Exemple : sacrifier un détecteur de contact et remplacer par un transistor)

Ben... Bonne chance.

#3 gheaeckkseqrz

gheaeckkseqrz

    Membre

  • Membres
  • 18 messages

Posté 04 août 2010 - 02:00

OK merci, je vais déjà voir pour la programmation, je dis pas que je suis un pro, mais je commence a avoir pas mal de lignes de code derrière moi.

Après pour ce qui est des moteurs,de la camera et du contrôle wifi je verrai plus tard, de toute façon c'est que des idée très lointaines (j'ai même pas de PSP ^^ )

Le câble c'était pas de l'USB, c'était un port RS232 du coté PC, et deux sorties lumineuses du coté du robot., je voir comment je peux m'en sortir. De toute façon même si je l'avais encore, je pourrais pas m'en servir, ma carte mère a pas de RS232 ><

Merci pour les réponses, a bientôt.

#4 gheaeckkseqrz

gheaeckkseqrz

    Membre

  • Membres
  • 18 messages

Posté 18 août 2010 - 05:52

Bon, je vous tien un peu au courant de l'avancement des choses,



J'ai retrouvé mon câble, j'ai remis en état mon vieux PC pour avoir accès a un port RS232, pas de bol, ca marche pas, j'ai demandé de l'aide sur les forum Ubuntu (oui, mon PC tourne sous Linux), j'espère avoir une réponse bientôt.



Sinon j'ai commencé a lire le tuto NQC (langage de programmation des brique LEGO), le site SmartPart ne propose pas le chapitre sur la gestion de la télécommande, mais je suppose que ca se trouve ailleurs .



Par contre j'ai réfléchi a ce que j'allais pouvoir faire en reprogrammant le robot, et je me dis que je ferrai rien de plus que les fonctions déjà présentes. (Avancer, reculer, tourner, faire du bruit, allumer les LEDs et le "laser").



Donc j'ai commencé a réfléchir a ce que je pourrais faire après, je pense que pour commencer, le plus simple serai de commencer pas refaire la télécommande, si je me trompe pas, c'est 5 bouton poussoirs, un sélecteur 3 positions, je pense que j'ai déjà une idée du shema électronique.



Un micro contrôleur, un émetteur infrarouge, et quelque composant basiques.



Je viens de la démonter, je vous envois les photos bientôt, j'ai un composant que je n'arrive pas identifier.



Donc je me disais que la première étape pourrait être de fabriquer un récepteur infrarouge, pour identifier le signal que chaque combinaison de touche produit, et après refaire un télécommande, en rajoutant des signaux qui pourrait être traité en reprogrammant la brique.



Par exemple, les boutons de déplacement, un bouton pour jouer du son, un pour allumer le laser, et d'autre pour provoqué des actions préprogrammées (fait demi-tour, joue de la "musique", allume telle combinaison de LEDs etc ...)



Voila je voudrais avoir votre avis sur cette idée, et aussi une approximation du cout pour une telle réalisation .



Merci d'avance.



Voila une photo (DSL pour la qualité de merde)



Image IPB



Donc sur le haut de la carte électronique on voit 3 composants, je dirais un émetteur infrarouge, une LED témoin, et je pense que le troisième doit être un récepteur infrarouge, même si je vois pas bien en quoi la télécommande a besoin de recevoir des infos. Si quelqu'un pouvais m'éclairer sur ce point.



Et je voudrais aussi savoir quel composant correspond a quoi, j'ai beau savoir qu'il y a un émetteur et un récepteur (si je me suis pas trompé), je ne sais pas reconnaitre qui est quoi sur la carte.



Voila, j'attends vos avis, si vous avez besoin d'une photo plus nette, dites le, emprunterai le reflex de ma mère.

#5 frank9321

frank9321

    Membre occasionnel

  • Membres
  • Pip
  • 133 messages

Posté 18 août 2010 - 10:36

On voit pas trop bien sur la photo mais je dirais, de gauche à droite:
led verte témoin de transmission de données (pas sur)
led rouge batterie faible (pas sur)
led IR de transmission (presque sur).
Puis en bas, un µC qui s'occupe de générer la trame à envoyer.

Si tu connais les différentes trames de données, tu peux facilement programmer un récepteur IR.

#6 gheaeckkseqrz

gheaeckkseqrz

    Membre

  • Membres
  • 18 messages

Posté 18 août 2010 - 10:49

Pour les photos j'ai trouvé ca, c'est pas la mienne, mais c'est la meme. ==> http://www.abs-robotics.com/internals/spyboticremote.htm

Et ca qui pourra surement servir si j'ai besoin de vous montrer l'intérieur de la brique.

Sinon au niveau du cout pour un récepteur qui permettrait d'identifier les trames qu'envoie la télécommande et de quoi faire une autre télécommande, ca reviendrai a peu près a combien ?

#7 frank9321

frank9321

    Membre occasionnel

  • Membres
  • Pip
  • 133 messages

Posté 19 août 2010 - 11:48

Ben si ta brique dispose d'un récepteur IR (ce que toutes les briques, je crois, disposent), il te faut que programmer ca.

#8 gheaeckkseqrz

gheaeckkseqrz

    Membre

  • Membres
  • 18 messages

Posté 20 août 2010 - 12:56

Oui bien sur que ma brique a un récepteur IR, faut bien qu'elle reçoive les ordre de la télécommande, mais comment je récupère le valeurs ?

La seule methose que je vois c'est si les trames font moins de 6bits, je pourrais les afficher sur les leds du dessus, ou alors enregistrer la séquence et le rejouer avec led de droite pour 1 et led de gauche pour 0, en temporisant, une seconde entre chaque valeur, mais ca risque d'entre plus compliqué.

Par ce que je me vois mal souder un afficher sur la carte électronique ...


Si je fais des erreur au niveau vocabulaire dites le moi, les "trames de 6bits" je sais pas si ca se dit comme ca .


#9 frank9321

frank9321

    Membre occasionnel

  • Membres
  • Pip
  • 133 messages

Posté 20 août 2010 - 02:39

Il y a quelques temps je me suis amusé à faire un émetteur/récepteur radio. Pour décoder les trames sans utiliser un api de temps, j'ai fait comme ca:
C'est du C. Il est assez facile, je crois, à comprendre:

void waitForData()
{
while(!bit_is_set(PINB, RECEPTEUR)) //On attend un front haut
{
asm volatile("NOP"); //On est actuellement dans un front bas
}
}




int main(void)
{

INPUT(RECEPTEUR);
OUTPUT(A);
OUTPUT(B);
OUTPUT©;
OUTPUT(D);


unsigned long dataLength = 0; //Le truc pour voir le + grand
unsigned long dataLengthFinal = 0; //Le plus grand
unsigned long boucles = 0;
unsigned int ouOnEnEst = 0;
while(boucles < 20)
{

waitForData();
//Un front haut vient de sortir

dataLength = 0;
while(bit_is_set(PINB, RECEPTEUR)) //Le front haut continue d'être envoyé
{
dataLength++;
_delay_us(1);
}
if(dataLength > dataLengthFinal) dataLengthFinal = dataLength; //On a la longueur du bit de start
boucles++;
}



dataLengthFinal -= 100; //Marge d'erreur
while(1)
{
waitForData();

dataLength = 0;
while(bit_is_set(PINB, RECEPTEUR)) //On va analyser un bit
{
dataLength++;
_delay_us(1);
}


PORTB = 0x00;
if(dataLength > dataLengthFinal) //C'est un bit de start
{
asm("NOP");
ouOnEnEst = 0;
}

else if(dataLength > dataLengthFinal - 250) //Bit 1
{
asm("NOP");
if(ouOnEnEst == 1)
{
TURN_ON(A);
}

if(ouOnEnEst == 2)
{
TURN_ON(B);
}

if(ouOnEnEst == 3)
{
TURN_ON©;
}

if(ouOnEnEst == 4)
{
TURN_ON(D);
}

}

else if(dataLength > dataLengthFinal - 500) //Bit 0
{
asm("NOP");
if(ouOnEnEst == 1)
{
TURN_OFF(A);
}

if(ouOnEnEst == 2)
{
TURN_OFF(B);
}

if(ouOnEnEst == 3)
{
TURN_OFF©;
}

if(ouOnEnEst == 4)
{
TURN_OFF(D);
}
}
ouOnEnEst++;


}

return 0;
}

[/code]

Le fonctionnement est le suivant: l'émetteur envoie en continu la trame. Elle se compose comme ceci: START_A(on/off)_B(on/off)_C(on/off)_D(on/off).
Le "bit" de start est à l'état haut pendant, je crois, 5ms. Chaque séparation est un bit à l'état bas pdt 1ms. Un on est symbolisé par un bit haut pdt 1ms, un off est un bit pdt 3ms (ou un truc comme ca, je me rappelle plus trop).
Le récepteur, quand il est allumé, va mesurer combien de temps dure le bit de start transmis. Ensuite, comme il sait les reconnaître, il sait analyser les trames.

Si tu comprends a peu près le code, je pense que tu pourras facilement faire ton récepteur.

EDIT: pour commencer, essaye de faire allumer une led ou un moteur quand quelque chose est recu dans le récepteur IR. Ensuite, commence à faire évoluer ton programme pour lui faire reconnaître les trames de ta télécommande.

#10 gheaeckkseqrz

gheaeckkseqrz

    Membre

  • Membres
  • 18 messages

Posté 20 août 2010 - 05:23

OK, merci pour le code, c'est pas vraiment le style de C dont j'ai l'habitude, mais je vais me débrouiller quand même.

Je vais deja essayer ca, et selon la longueur des trames, je verrais bien comment je me débrouille.

Pour l'instant faut encore que je trouve un moyen de programmer la brique, parce que de mon Linux, ca marche toujours pas ><

Je vous tient au courant des que j'arrive a faire quelque chose.



#11 gheaeckkseqrz

gheaeckkseqrz

    Membre

  • Membres
  • 18 messages

Posté 20 août 2010 - 11:37

Bon alors, les dernière nouvelles ...

J'ai récupérer un autre PC sous XP cette fois, j'ai relancé NQC, mais il me renvoie une erreur:



J'ai vérifier, mon ordi envoie bien un signal, la led au bout du câble clignote, j'en deduis donc que c'est mon robot qui est défaillant,

Le robot est muni d'une led et d'un récepteur photo sensible,
Le câble est muni d'une led, est j'imagine que le deuxième composant est aussi un récepteur photo-sensible.

Donc la led du câble se pose sur le récepteur du robot, et le recteur du câble sur la led du robot.

J'imagine que le transfert se fait avec l'ordi qui envoie un signal, et le robot qui répond pour confirmer qu'il la bien reçu.

Si je me trompe pas, j'ai donc deux possibilitées, soit le recepteur du robot est HS, soit c'est la LED (j'ai jamais réussi a l'allumer).

J'ai posé un voltmètre sur les patte du récepteur du robot en envoyant un signal lumineux, mais l'aiguille n'a pas bougé, mais vu que je suis absolument pas sur d'avoir fais ma mesure comme il faut, je fais pas de conclusions pour l'instant.

Donc je voudrais tester la LED, pour ca il faudrait que je la branche, mais je ne sais pas quelle tension lui envoyer (je me souvient en avoir fait exploser une une fois, avec une pile de 9V), et surtout, j'ai peur que le courant passe dans le reste de la carte électronique.

Voila, j'attends vos commentaires ...








#12 frank9321

frank9321

    Membre occasionnel

  • Membres
  • Pip
  • 133 messages

Posté 21 août 2010 - 12:21

Mieux vaut que tu touche à rien du tout coté électronique. Je sais pas comment tu communiques avec ton ordi. Si c'est avec une petite tour infrarouge que tu connectes à ton ordi (comme les lego mindstorm), vérifie la distance tour-lego, elle doit être, je crois, d'une 40aine de centimètres.

Après, ca fait longtemps que j'ai pas touché aux légos, je pourrais pas t'aider plus que ca.


#13 gheaeckkseqrz

gheaeckkseqrz

    Membre

  • Membres
  • 18 messages

Posté 21 août 2010 - 12:32

J'ai récupérer, une vielle LED (jaune) qui traînait dans mes placards, et j'ai joué un peu avec (oui je suis un peu gamin parfois ^^⁾, j'ai fait je contact entre les bornes + et - des moteurs, (oui ca fait de la lumière :p ), et apres je suis partit du + du moteur vers le + de la LED du robot (rouge) qui s'est allumée.

Donc la led du robot n'est mas HS. Il fraudais donc maintenant que je teste le récepteur photo-sensible, mais pour voir une led qui s'allume faiblement quand on est en pleine lumière, c'est une autre histoire ...

#14 gheaeckkseqrz

gheaeckkseqrz

    Membre

  • Membres
  • 18 messages

Posté 23 août 2010 - 02:29

Bonne nouvelle, mon robot n'est pas défectueux, c'est juste moi qui avait mal lu la doc de NQC (une erreur a la con, j'avais oublier une majuscule dans un des paramètres de la commande ><)

Donc j'ai téléchargé mon premier programme sur la brique (pour l'instant ca se contente de faire tourner un moteur).

Je vais faire quelque tests pour m'habituer a ce langage, et je vais m'attaquer au programme pour identifier les trames IR envoyées par la télécommande.


#15 Esprit

Esprit

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 503 messages
  • Gender:Male
  • Location:Belgique

Posté 28 août 2010 - 07:46

Bonne continuation, ça a l'air assez sympa ! ;)

N'hésite surtout pas à nous montrer des photos/vidéos. On en est friands !



Répondre à ce sujet



  


0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users