Aller au contenu


Contenu de Beetlejuice

Il y a 15 élément(s) pour Beetlejuice (recherche limitée depuis 03-mai 13)


#48957 Davy

Posté par Beetlejuice sur 23 septembre 2012 - 05:04 dans Et si vous vous présentiez?

Salut, soit le bienvenu sur ce forum :crigon_04:



#48956 un petit aide s-il vous plait?

Posté par Beetlejuice sur 23 septembre 2012 - 05:02 dans Electronique

Salut et bienvenue a toi .

Pour commencer en electronique, tu devrais commencer par une carte arduino :yes:
Car pour controler et rendre ton robot interactif ou autonome, il vas te falloir aussi apprendre a programmer .
Si tu veux réaliser de suite un petit robot autonome, sans programer, tu peux commencer par Cocotix ( http://www.robot-maker.com/forum/tutorials/article/8-cocotix/ )

C'est sur que ce n'est pas un bipède, mais il faut commencer par le début . Au fur et a mesure de tes acquis, tu amélioreras
tes créations jusqu'a faire le robot que tu souhaite en ce moment et surement même plus :ok:



#48822 Liaison ordinateur à un système électronique

Posté par Beetlejuice sur 18 septembre 2012 - 07:09 dans Electronique

Entre le courant et le processing, évidemment.


Oui, effectivement j' me suis mal exprimé :ignat_02:


"Il est évident que pour tout autre courant de puissance tu devras utiliser autre chose que le régulateur de l'Arduino."


Il va te falloir utiliser une carte de puissance a base de pont en H . Il en existe des tout prêt sous forme de " shield " ( carte electronique conçue pour s'emboiter sur l'arduino ) . Sinon tu peux la faire toit même, il y a plein de schema sur le net . Jette un oeil par la : http://www.pobot.org/-Drivers-de-moteurs-.html

Ceci vas aussi te servir, c'est une bibliothèque pour gerer les moteur PaP : http://arduino.cc/fr/Main/LibrairieStepper

Bon courage



#48821 Moi Oasis

Posté par Beetlejuice sur 18 septembre 2012 - 06:52 dans Et si vous vous présentiez?

Salut oasis,
Bienvenu sur le forum :crigon_04:



#48814 Robosapein V1

Posté par Beetlejuice sur 17 septembre 2012 - 01:27 dans Et si vous vous présentiez?

Si l'anglais ne te pose pas de problème, regarde cette page : http://www.markcra.com/robot/dissect.php

Même si tu ne comprends pas l'anglais, il y a des photos de la " disection " .

Je pense que le connecteur pour le moteur qui te pose problème, et celui avec 2 fils ( jaune et orange ) qui est sur la partie gauche de la carte , presque en bas, quand tu es derierre le robot .

Ah oui, quand tu retirera le dos, attention il faut debrancher le connecteur qui relie le bouton ON/OFF et le haut parleur .
Le torse vas surment tomber, pas de soucis . Par contre quand tu refermera, enboite bien les epaule dans les " rigoles " qui sont sculptée dans le torse /dos .

J'espère que tu arrive a me comprendre lol !



#48813 Robosapein V1

Posté par Beetlejuice sur 17 septembre 2012 - 12:43 dans Et si vous vous présentiez?

Salut serge,

Oui , il est surement réparable. C'est soit un moteur qui a laché, soit une mauvaise connection .

Tu peux deja regarder en retirant les 4 vis qui tiennent le dos, si tous les connecteurs sont bien branchés



#48809 Liaison ordinateur à un système électronique

Posté par Beetlejuice sur 16 septembre 2012 - 05:17 dans Electronique

Pour l'arduino, attention, il est possible d'obtenir 40mA sur une broche, mais pas plus de 200mA pour l'ensemble des broches ...

Je ne sais pas si cela peut te servir, mais connais-tu le logociel processing ? http://processing.org/
Il te permet de creer des interfaces grafique pour controller l'arduino a partir du pc .
Quelque infos ici : http://www.arduino.cc/playground/interfacing/processing



#48808 squelette robot humanoide

Posté par Beetlejuice sur 16 septembre 2012 - 05:01 dans Mécanique

Non, c'est un gif que j'ai trouvé sur le net :ignat_02:



#48802 squelette robot humanoide

Posté par Beetlejuice sur 16 septembre 2012 - 10:57 dans Mécanique

Salut,

Je me demandais si l'un de vous aurait des schemas, dessin ou autre plans montrant comment est articulé un robot ...

A part quelque modèle de pince, je n'ai rien trouvé sur google .

Comment fabriquer une main, un bras, une jambe, etc ...



Merci

Image IPB



#48758 [Résolu] Comparaison de deux string qui ne fonctionne pas ;

Posté par Beetlejuice sur 13 septembre 2012 - 12:16 dans Programmation

Problème résolu :lol:

En fait le retour de chariot était ajouté a la commande envoyée, donc forcèment ça ne marchait pas !

Pour être clair, par exemple mon if testait si RSBurp\n était pareil que RSBurp

Il a donc suffit de sortir " inputString += inChar; " de la boucle while .


Voila le code modifié et fonctionnel si jamais quelqu'un en a besoin .

int IRIn = 2;            // We will use an interrupt
int IROut= 3;            // Where the echoed command will be sent from

boolean RSEcho=true;      // Should Arduino Echo RS commands
boolean RSUsed=true;      // Has the last command been used
volatile int RSBit=9;     // Total bits of data
volatile int RSCommand;   // Single byte command from IR
int bitTime=516;          // Bit time (Theoretically 833 but 516)
// works for transmission and is faster
int last;                 // Previous command from IR
String inputString = "";         // a string to hold incoming data
boolean stringComplete = false;  // whether the string is complete
int serialCommand(0xEF); // Command sent via serial

// Array for commands and Ir codes
String commandName[19] = {
  "RSTurnRight", "RSRightArmUp", "RSRightArmOut", "RSTiltBodyRight", "RSRightArmDown", 
  "RSRightArmIn", "RSWalkForward", "RSWalkBackward", "RSTurnLeft", "RSLeftArmUp", 
  "RSLeftArmOut", "RSTiltBodyLeft", "RSLeftArmDown", "RSLeftArmIn", "RSStop", 
  "RSWakeUp", "RSBurp", 
  "RSRightHandStrike", "RSNoOp"
};

int commandIrCode[19] = {
  0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 
  0x8B, 0x8C, 0x8D, 0x8E, 0xB1, 0xC2, 0xC0, 0xEF
};

void setup()                    
{
  pinMode(IRIn, INPUT);     
  pinMode(IROut, OUTPUT);
  pinMode(10,OUTPUT);
  digitalWrite(IROut,HIGH);
  attachInterrupt(0,RSReadCommand,RISING);
  last=0xEF; // Set last command as " noOp "
  Serial.begin(115200);
}

// Receive a bit at a time.
void RSReadCommand() 
{
  delayMicroseconds(833+208);  // about 1 1/4 bit times
  int bit=digitalRead(IRIn); 
  if (RSBit==9) 
  { // Must be start of new command
    RSCommand=0;
    RSBit=0;
    RSUsed=true;
  }
  if (RSBit<8) 
  { 
    RSCommand<<=1;
    RSCommand|=bit;
  }
  RSBit++;
  if (RSBit==9) RSUsed=false;
}

// send the whole 8 bits
void RSSendCommand(int command) {
  digitalWrite(IROut,LOW);
  delayMicroseconds(8*bitTime);
  for (int i=0;i<8;i++) {
    digitalWrite(IROut,HIGH);  
    delayMicroseconds(bitTime);
    if ((command & 128) !=0) delayMicroseconds(3*bitTime);
    digitalWrite(IROut,LOW);
    delayMicroseconds(bitTime);
    command <<= 1;
  }
  digitalWrite(IROut,HIGH);
  delay(250); // Give a 1/4 sec before next
}

void loop() 
{ 
  if (!RSUsed) 
  {
    if (RSCommand==0x8E && last==0x8E) 
    {
      RSEcho=!RSEcho;
    }
    last=RSCommand;
    // print code received from the remote
    Serial.print("IR Code : ");
    Serial.println(RSCommand);
    if (!RSEcho)
    {
      digitalWrite(10,HIGH);  // Turn on LED let us know we have control our wedge                                         
      Serial.println("Arduino control ON ");
    }

    else 
    {
      digitalWrite(10,LOW);   // No longer in control
      Serial.println("Arduino control OFF ");
      RSSendCommand(RSCommand);
    }

    RSUsed=true;
  }


  while (Serial.available()) 
  {
    // get the new byte:
    char inChar = (char)Serial.read(); 
   
    // if the incoming character is a newline
    
    if (inChar == '\n') 
    {
      Serial.print ("inputString value: " );
      Serial.println (inputString);
      // Test if the serial sent command exist and if ok, give the corresponding Ir code to " commandIr "
      for (int i=0;i<=18;i++) {
        if (inputString == commandName[i]) serialCommand=commandIrCode[i];
      }
      Serial.print (" Value sent : " );
      Serial.println (serialCommand,HEX);

      RSSendCommand(serialCommand);
      Serial.println (" Command sent to robosapien " );
      // clear the string:
      inputString = "";
      // add it to the inputString:
    }
    else inputString += inChar;

  }
}







#48756 [Résolu] Comparaison de deux string qui ne fonctionne pas ;

Posté par Beetlejuice sur 13 septembre 2012 - 08:01 dans Programmation

Ah ben oui !! merci, j'y avait même pas pensé :ok:



#48753 Presentation de Beetlejuice

Posté par Beetlejuice sur 13 septembre 2012 - 06:23 dans Et si vous vous présentiez?

Merci :bye:



#48738 [Résolu] Comparaison de deux string qui ne fonctionne pas ;

Posté par Beetlejuice sur 12 septembre 2012 - 05:27 dans Programmation

Merci pour tes conseils :yes:

J'ai déja essayé avec la une valeur directe et cela fonctionne bien, par exemple avec un capteur de distance IR, le robot reçois bien les ordre d'arret, rotation, etc ..

J'avait fait un essai avec des switch / case , mais effectivement, il attends un int ou un char . J'aurai bien aimé faire un programme plus propre qu'avec tous ces if .


Le résultat de "inputString +=" , est correct, les lignes contenant les " serial.print " m'affiche dans la console la valeur de la variable inputString et celle-ci correspond bien au mot que j'ai envoyé via la console . J'utilise cette façon de faire car la liaison série envoie le mot caractère par caractère .

Je ne suis pas sur l'ordi avec lequel je programme pour l'arduino, je posterai ce que dit la console tout a l'heure .

J'ai oublié de préciser que le compilateur ne me retourne aucune erreurs . Ce qui est étrange c'est que cela fonctionnait a un moment ...



#48727 [Résolu] Comparaison de deux string qui ne fonctionne pas ;

Posté par Beetlejuice sur 12 septembre 2012 - 01:57 dans Programmation

Salut,

Voila j'ai un petit soucis. J'ai modifier un robosapien en lui ajoutant une carte arduino 2009 .
Mon programme permet , soit de faire echo de la telecommande d'origine, soit de prendre le controle avec l'arduino.

Tout fonctionne bien, que ce soit avec la telecommande ou en envoyant des commande avec l'arduino ( interphaser entre le recepteur IR et la carte mere du robot ) .

Cependant pour mes test, je souhaite entrer des commandes dans le moniteur serie et c'est la que ça cloche :

L'entrée est bien stockée dans ma variable string , mais la condition if ne semble pas etre respectée pour que le changement de la valeur a envoyer a l' IR du robot se fasse :


if (inputString == "RSTurnRight") serialCommand= 0x80;


Avec des " serial.print " j'ai pu débugger et voir qu'effectivement la valeur de serialCommand ne change pas .

J'ai essayé :

if (inputString == "RSTurnRight")
{
serialCommand= 0x80;
}

Mais ça ne change rien ...

Quelqu'un a une idée de mon erreur ?

Voici le code complet :

int IRIn = 2;            // We will use an interrupt
int IROut= 3;            // Where the echoed command will be sent from

boolean RSEcho=true;      // Should Arduino Echo RS commands
boolean RSUsed=true;      // Has the last command been used
volatile int RSBit=9;     // Total bits of data
volatile int RSCommand;   // Single byte command from IR
int bitTime=516;          // Bit time (Theoretically 833 but 516)
                          // works for transmission and is faster
int last;                 // Previous command from IR
String inputString = "";         // a string to hold incoming data
boolean stringComplete = false;  // whether the string is complete
int serialCommand(0xEF); // Command sent via serial


void setup()                    
{
  pinMode(IRIn, INPUT);     
  pinMode(IROut, OUTPUT);
  pinMode(10,OUTPUT);
  digitalWrite(IROut,HIGH);
  attachInterrupt(0,RSReadCommand,RISING);
  last=0xEF; // Set last command as " noOp "
  Serial.begin(115200);
}

// Receive a bit at a time.
void RSReadCommand() 
{
  delayMicroseconds(833+208);  // about 1 1/4 bit times
  int bit=digitalRead(IRIn); 
  if (RSBit==9) 
  { // Must be start of new command
    RSCommand=0;
    RSBit=0;
    RSUsed=true;
  }
  if (RSBit<8) 
  { 
    RSCommand<<=1;
    RSCommand|=bit;
  }
  RSBit++;
  if (RSBit==9) RSUsed=false;
}

// send the whole 8 bits
void RSSendCommand(int command) {
  digitalWrite(IROut,LOW);
  delayMicroseconds(8*bitTime);
  for (int i=0;i<8;i++) {
    digitalWrite(IROut,HIGH);  
    delayMicroseconds(bitTime);
    if ((command & 128) !=0) delayMicroseconds(3*bitTime);
    digitalWrite(IROut,LOW);
    delayMicroseconds(bitTime);
    command <<= 1;
  }
  digitalWrite(IROut,HIGH);
  delay(250); // Give a 1/4 sec before next
}

void loop() 
{ 
  if (!RSUsed) 
  {
    if (RSCommand==0x8E && last==0x8E) 
    {
      RSEcho=!RSEcho;
    }
    last=RSCommand;
    // print code received from the remote
    Serial.print("IR Code : ");
    Serial.println(RSCommand);
    if (!RSEcho)
    {
      digitalWrite(10,HIGH);  // Turn on LED let us know we have control our wedge                                         
      Serial.println("Arduino control ON ");
    }

    else 
    {
      digitalWrite(10,LOW);   // No longer in control
      Serial.println("Arduino control OFF ");
      RSSendCommand(RSCommand);
    }

    RSUsed=true;
  }


  while (Serial.available()) 
  {
    // get the new byte:
    char inChar = (char)Serial.read(); 
    // add it to the inputString:
    inputString += inChar;
    // if the incoming character is a newline, set a flag
    // so the main loop can do something about it:
    if (inChar == '\n') 
    {
      Serial.print ("inputString value: " );
      Serial.println (inputString);

      if (inputString == "RSTurnRight") serialCommand= 0x80;
      if (inputString == "RSRightArmUp") serialCommand= 0x81;
      if (inputString == "RSRightArmOut") serialCommand= 0x82;
      if (inputString == "RSTiltBodyRight") serialCommand= 0x83;
      if (inputString == "RSRightArmDown") serialCommand= 0x84;
      if (inputString == "RSRightArmIn") serialCommand= 0x85;
      if (inputString == "RSWalkForward") serialCommand= 0x86;
      if (inputString == "RSWalkBackward") serialCommand= 0x87;
      if (inputString == "RSTurnLeft") serialCommand= 0x88;
      if (inputString == "RSLeftArmUp") serialCommand= 0x89;
      if (inputString == "RSLeftArmOut") serialCommand= 0x8A;
      if (inputString == "RSTiltBodyLeft") serialCommand= 0x8B;
      if (inputString == "RSLeftArmDown") serialCommand= 0x8C;
      if (inputString == "RSLeftArmIn") serialCommand= 0x8D;
      if (inputString == "RSStop") serialCommand= 0x8E;
      if (inputString == "RSWakeUp") serialCommand= 0xB1;
      if (inputString == "RSBurp") serialCommand= 0xC2;
      if (inputString == "RSRightHandStrike") serialCommand= 0xC0;
      if (inputString == "RSNoOp") serialCommand= 0xEF;
      Serial.print (" Value sent : " );
      Serial.println (serialCommand,HEX);

      RSSendCommand(serialCommand);
      Serial.println (" Command sent to robosapien " );
      // clear the string:
      inputString = "";
    }
  }
}




#48710 Presentation de Beetlejuice

Posté par Beetlejuice sur 12 septembre 2012 - 07:01 dans Et si vous vous présentiez?

Salut a tous,

Je m'appelle Fred, 36 ans ( 37 dans deux mois ;) ), J'habite Sollies-Pont dans le var (83 ), Marier et pere de trois filles .


Niveau formation, j'ai uniquement infographie, mais etant très autodidacte, je me débrouille très bien dans les domaines de l'informatique .

Mon travail ... Eh bien aucun ! J'ai ouvert un cyber café qui est vite devenu aussi depannage informatique, centre de cours pour debutants et beaucoup d'autres services tel que des montages vidéo ou de la création de site web . Je l'ai gardé 5 ans est ça marchait très bien , malheureusement j'ai du fermer il y a 3 ans a cause d'une maladie articulaire qui fait qu'aujourd'hui je suis handicapé et ne peux plus travailler .

Mes passions, eh bien la robotique bien sur, la moto , l' informatique,l'electronique, et je m'ainteresse aussi a la domotique ; Mais tout cela est très lié :D

Les robots que je possede ... J'ai la base d'un cybot ( robot a 3 roues ) que j'ai équipé d'une carte arduino 2009 et de quelques capteurs pour le rendre autonome , et je viens de faire l'acquisition d'un robosapien V1 en panne pour seulement 5 euro ! qu'il a été très simple de réparer ( soudure seches ) et qui lui aussi c'est vu offrir une carte arduino et pour le moment un capteur IR sharp . Je commence tout juste a le découvrir, mais j'adore ce robot :D

En bref :

-Le film que vous préférez : Léon et pratiquement tous les films avec jean réno ou adam sandler

-Le roman que vous préférez : C'est quoi un roman ? Un truc sans image ? :rolleyes: Les ouvrages que je lis sont soit informatique, robotique, electronique , soit les BD moto comme le joe bar team .

-Qu'est ce qu'il faudrait faire dans le domaine de la robotique: Baisser le tarifs des pièces !

-Comment voyez vous la robotique dans le futur: Omniprésente . Et mangeuse d'emploi . Beaucoup d'androide d'aide a la personne .



Voila ! Wow, c'est la première fois que je fait une présentation aussi longue !